
// $Header: https://oberon.oapd.inaf.it/shins/trunk/shins/src/obs_ctrl/sharknir.ice 3964 2022-05-28 15:36:51Z depa $

#ifndef _SHARKNIR_ICE_
#define _SHARKNIR_ICE_

// #include "OverallDiagnosticRecordVar.ice"

module sharknir
{
      // const string shinsRoot = "/home/tan_unstable/SHARK-NIR/shins/branches/unstable"; NOT USED
       /**
        * Assembly for non science devices
        **/
       struct NonSciAssembly{
       	      string name;
       	      int posApodizer;
	            int posCoroSlit;
	            int posLyotGrism;
	            int posWollaston;
	            bool rotator;
       };

       /**
        * Assembly for scientific wheels.
        **/
       struct SciAssembly{
       	      int posSci1;
	            int posSci2;
       };

       struct MotorStatus{
                  int steps;
                  string namedPos;
                  bool connected;
                  bool moving;
                  bool atHome;
                  bool inSwNegativeLimit;
                  bool inSwPositiveLimit;
                  bool inHwNegativeLimit;
                  bool inWhPositiveLimit;
       };

       sequence<string> SeqString;
       sequence<float> SeqFloat;
       sequence<int> SeqInt;
       dictionary<short, NonSciAssembly> dictNonSciAssembly;
       dictionary<string, double> dictSetupPos;
       dictionary<string, double> dictTemperatures;
       dictionary<string, string> dictDevUnit;  /* dictionary with units per device */
       dictionary<string, string> dictSetupNamedPos;
       dictionary<string, string> dictTrackingMode; /* modes for tracking devices*/
       dictionary<string, string> dictDetSetup;
       dictionary<string, string> dictTelescopeSetup;
       dictionary<string, string> dictTipTiltSetup;
       dictionary<string, bool>   dictIsMoving;
       dictionary<string, bool>   dictGenStringString;
       dictionary<string, MotorStatus> dictStatus;

       /**
	     * This will be used when such dictionary will be defined by the
	     **/

       dictionary<short, NonSciAssembly> dictSciAssembly;

};

#endif

