// SAL_VERSION=4.1.2 XML_VERSION=5.1.0
module ATMonochromator {
struct command_abort_66d6116d {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_abort_66d6116d 
struct command_calibrateWavelength_a1fea41f {  // @Metadata=(Description="Command to calibrate the wavelength")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  float	wavelength; // @Metadata=(Units="meter",Description="wavelength")
	};
#pragma keylist command_calibrateWavelength_a1fea41f 
struct command_changeSlitWidth_b027db30 {  // @Metadata=(Description="Command to change Front enterance or Front exit slit width to width specified")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	slit; // @Metadata=(Units="unitless",Description="slit")
	  float	slitWidth; // @Metadata=(Units="unitless",Description="slitWidth")
	};
#pragma keylist command_changeSlitWidth_b027db30 
	 const long changeSlitWidth_slit_Slit_FrontEntrance=1;
	 const long changeSlitWidth_slit_Slit_FrontExit=2;
struct command_changeWavelength_7fc037cd {  // @Metadata=(Description="Command to change the wavelength of the monochromator")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  float	wavelength; // @Metadata=(Units="meter",Description="wavelength")
	};
#pragma keylist command_changeWavelength_7fc037cd 
struct command_disable_6f78dafb {  // @Metadata=(Description="Transition from state Enabled to Disabled.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_disable_6f78dafb 
struct command_enable_51d1c529 {  // @Metadata=(Description="Transition from state Disabled to Enabled.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_enable_51d1c529 
struct command_enterControl_a58d99d8 {  // @Metadata=(Description="Transition from state Offline to Standby. Only "externally commandable" CSCs support this command; other CSCs start in Standby state and quit when they go to Offline.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_enterControl_a58d99d8 
struct command_exitControl_6cf577f5 {  // @Metadata=(Description="Transition from state Standby to Offline. For CSCs that are not "externally commandable" this makes the CSC quit.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_exitControl_6cf577f5 
struct command_power_d3056513 {  // @Metadata=(Description="Command to turn the power ON and OFF")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	power; // @Metadata=(Units="unitless",Description="power")
	};
#pragma keylist command_power_d3056513 
struct command_selectGrating_3b1b614f {  // @Metadata=(Description="Select the grating (Blue;Red; Mirror) that will be in the path of light")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	gratingType; // @Metadata=(Units="unitless",Description="grating type")
	};
#pragma keylist command_selectGrating_3b1b614f 
	 const long selectGrating_gratingType_Grating_Blue=1;
	 const long selectGrating_gratingType_Grating_Red=2;
	 const long selectGrating_gratingType_Grating_Mirror=3;
struct command_setLogLevel_b994a155 {  // @Metadata=(Description="Set the logging level.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	level; // @Metadata=(Units="unitless",Description="Logging level; as a Python logging level: error=40; warning=30; info=20; debug=10.")
	};
#pragma keylist command_setLogLevel_b994a155 
struct command_setSimulationMode_226bba75 {  // @Metadata=(Description="Set the simulation mode.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	mode; // @Metadata=(Units="unitless",Description="Desired simulation mode; 0 for normal operation (no simulation); other supported values are specific to each CSC.")
	};
#pragma keylist command_setSimulationMode_226bba75 
struct command_setValue_c413b775 {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string<256>	parametersAndValues; // @Metadata=(Units="unitless",Description="List of parameters and their values as a Json string")
	};
#pragma keylist command_setValue_c413b775 
struct command_standby_bdbd698c {  // @Metadata=(Description="Transition from state Offline; Disabled or Fault to Standby.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_standby_bdbd698c 
struct command_start_83e6262c {  // @Metadata=(Description="Transition from state Standby to Disable; in a specified configuration.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string<256>	settingsToApply; // @Metadata=(Units="unitless",Description="Name of the selected settings set")
	};
#pragma keylist command_start_83e6262c 
struct command_updateMonochromatorSetup_8e6dfd1d {  // @Metadata=(Description="Command used to setup monochromator with a single command")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	gratingType; // @Metadata=(Units="unitless",Description="Grating type")
	  double	fontExitSlitWidth; // @Metadata=(Units="unitless",Description="slitwidth for front exit")
	  double	fontEntranceSlitWidth; // @Metadata=(Units="unitless",Description="slitwidth for front entrance")
	  double	wavelength; // @Metadata=(Units="meter",Description="wavelength")
	};
#pragma keylist command_updateMonochromatorSetup_8e6dfd1d 
	 const long updateMonochromatorSetup_gratingType_Grating_Blue=1;
	 const long updateMonochromatorSetup_gratingType_Grating_Red=2;
	 const long updateMonochromatorSetup_gratingType_Grating_Mirror=3;
struct logevent_appliedSettingsMatchStart_7ab70e11 {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	appliedSettingsMatchStartIsTrue; // @Metadata=(Units="unitless",Description="True when the configuration matches the start conditions")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_appliedSettingsMatchStart_7ab70e11 
struct logevent_detailedState_f70d202b {  // @Metadata=(Description="Detailed State")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	detailedState; // @Metadata=(Units="dimensionless",Description="An enumeration indicating the detailed state. See the DetailedStateValue enumeration defined in the Typedefs package.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_detailedState_f70d202b 
	 const long detailedState_detailedState_DetailedState_DisabledState=1;
	 const long detailedState_detailedState_DetailedState_EnabledState=2;
	 const long detailedState_detailedState_DetailedState_FaultState=3;
	 const long detailedState_detailedState_DetailedState_OfflineState=4;
	 const long detailedState_detailedState_DetailedState_StandbyState=5;
	 const long detailedState_detailedState_DetailedState_MonoSettingUpState=6;
	 const long detailedState_detailedState_DetailedState_StoppedState=7;
	 const long detailedState_detailedState_DetailedState_StoppedCoolerOffState=8;
	 const long detailedState_detailedState_DetailedState_StoppedLightOffState=9;
	 const long detailedState_detailedState_DetailedState_StoppedLightOnState=10;
	 const long detailedState_detailedState_DetailedState_MonoManualSetup=11;
	 const long detailedState_detailedState_DetailedState_MonoAutomaticSetup=12;
struct logevent_entrySlitWidth_c3e64314 {  // @Metadata=(Description="Publishes the slitwidth")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  float	width; // @Metadata=(Units="mm",Description="Entry slit width")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_entrySlitWidth_c3e64314 
struct logevent_errorCode_7a7d5f17 {  // @Metadata=(Description="Output when a CSC goes into the Fault state as an explanation of the problem.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	errorCode; // @Metadata=(Units="unitless",Description="A numeric error code")
	  string	errorReport; // @Metadata=(Units="unitless",Description="An string providing detailed information about the error")
	  string	traceback; // @Metadata=(Units="unitless",Description="An optional stack trace of the error condition")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_errorCode_7a7d5f17 
struct logevent_exitSlitWidth_77399680 {  // @Metadata=(Description="Publishes the slitwidth")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  float	width; // @Metadata=(Units="mm",Description="Exit slit width")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_exitSlitWidth_77399680 
struct logevent_heartbeat_135ddc69 {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	heartbeat; // @Metadata=(Units="unitless",Description="Beats the drum.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_heartbeat_135ddc69 
struct logevent_inPosition_be269449 {  // @Metadata=(Description="Indicates if the monochromator is inposition")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	inPosition; // @Metadata=(Units="dimensionless",Description="Indicates if the monochromator is inposition")
	  long	device; // @Metadata=(Units="dimensionless",Description="device")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_inPosition_be269449 
	 const long inPosition_device_Device_Monochromator=1;
	 const long inPosition_device_Device_LightSource=2;
	 const long inPosition_device_Device_ThermoelectricCooler=3;
struct logevent_internalCommand_829d7b81 {  // @Metadata=(Description="internalcommand")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  octet	commandObject[900]; // @Metadata=(Units="dimensionless",Description="The error code being published.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_internalCommand_829d7b81 
	 const long ATMonochromator_shared_SummaryState_DisabledState=1;
	 const long ATMonochromator_shared_SummaryState_EnabledState=2;
	 const long ATMonochromator_shared_SummaryState_FaultState=3;
	 const long ATMonochromator_shared_SummaryState_OfflineState=4;
	 const long ATMonochromator_shared_SummaryState_StandbyState=5;
	 const long ATMonochromator_shared_DetailedState_NotEnabled=1;
	 const long ATMonochromator_shared_DetailedState_Ready=2;
	 const long ATMonochromator_shared_DetailedState_ChangingWavelength=3;
	 const long ATMonochromator_shared_DetailedState_CalibratingWavelength=4;
	 const long ATMonochromator_shared_DetailedState_Powering=5;
	 const long ATMonochromator_shared_DetailedState_SelectingGrating=6;
	 const long ATMonochromator_shared_DetailedState_ChangingSlitWidth=7;
	 const long ATMonochromator_shared_DetailedState_UpdatingMonochromatorSetup=8;
	 const long ATMonochromator_shared_Status_SettingUp=1;
	 const long ATMonochromator_shared_Status_Ready=2;
	 const long ATMonochromator_shared_Status_Offline=3;
	 const long ATMonochromator_shared_Status_Fault=4;
	 const long ATMonochromator_shared_Grating_Blue=1;
	 const long ATMonochromator_shared_Grating_Red=2;
	 const long ATMonochromator_shared_Grating_Mirror=3;
	 const long ATMonochromator_shared_Slit_Entry=1;
	 const long ATMonochromator_shared_Slit_Exit=2;
	 const long ATMonochromator_shared_LightStatus_On=1;
	 const long ATMonochromator_shared_LightStatus_Off=2;
	 const long ATMonochromator_shared_Device_Monochromator=1;
	 const long ATMonochromator_shared_Device_LightSource=2;
	 const long ATMonochromator_shared_Device_ThermoelectricCooler=3;
struct logevent_logLevel_9770e436 {  // @Metadata=(Description="Current logging level.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	level; // @Metadata=(Units="unitless",Description="Current logging level; a Python logging level: error=40; warning=30; info=20; debug=10.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_logLevel_9770e436 
struct logevent_logMessage_2eac9765 {  // @Metadata=(Description="A log message.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	name; // @Metadata=(Units="unitless",Description="Log name.")
	  long	level; // @Metadata=(Units="unitless",Description="Message level; a Python logging level: error=40; warning=30; info=20; debug=10.")
	  string	message; // @Metadata=(Units="unitless",Description="Log message.")
	  string	traceback; // @Metadata=(Units="unitless",Description="Exception traceback; "" if not an exception.")
	  string	filePath; // @Metadata=(Units="unitless",Description="Path to source file.")
	  string	functionName; // @Metadata=(Units="unitless",Description="Function or method name.")
	  long	lineNumber; // @Metadata=(Units="unitless",Description="Line number in the file specified by filePath.")
	  long	process; // @Metadata=(Units="unitless",Description="Process ID.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_logMessage_2eac9765 
struct logevent_loopTimeOutOfRange_760719e7 {  // @Metadata=(Description="Exceeds loop time")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	loopTimeOutOfRange; // @Metadata=(Units="dimensionless",Description="loop Time is not in range")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_loopTimeOutOfRange_760719e7 
struct logevent_monochromatorConnected_12ebaf71 {  // @Metadata=(Description="Event to inform if the monochromator is connected or not")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	connected; // @Metadata=(Units="dimensionless",Description="connected")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_monochromatorConnected_12ebaf71 
struct logevent_rejectedCommand_d3968962 {  // @Metadata=(Description="Event published when a command is rejected either because command is received when in incorrect state or parameters of command are invalid")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  unsigned short	commandValue; // @Metadata=(Units="dimensionless",Description="command value")
	  long	detailedState; // @Metadata=(Units="dimensionless",Description="detailed state")
	  double	timestamp; // @Metadata=(Units="dimensionless",Description="time when the event occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_rejectedCommand_d3968962 
	 const long rejectedCommand_detailedState_DetailedState_DisabledState=1;
	 const long rejectedCommand_detailedState_DetailedState_EnabledState=2;
	 const long rejectedCommand_detailedState_DetailedState_FaultState=3;
	 const long rejectedCommand_detailedState_DetailedState_OfflineState=4;
	 const long rejectedCommand_detailedState_DetailedState_StandbyState=5;
	 const long rejectedCommand_detailedState_DetailedState_MonoSettingUpState=6;
	 const long rejectedCommand_detailedState_DetailedState_StoppedState=7;
	 const long rejectedCommand_detailedState_DetailedState_StoppedCoolerOffState=8;
	 const long rejectedCommand_detailedState_DetailedState_StoppedLightOffState=9;
	 const long rejectedCommand_detailedState_DetailedState_StoppedLightOnState=10;
	 const long rejectedCommand_detailedState_DetailedState_MonoManualSetup=11;
	 const long rejectedCommand_detailedState_DetailedState_MonoAutomaticSetup=12;
struct logevent_selectedGrating_595fe856 {  // @Metadata=(Description="Event indicating the grating that was selected")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	gratingType; // @Metadata=(Units="dimensionless",Description="Type of grating")
	  double	timestamp; // @Metadata=(Units="dimensionless",Description="timestamp when selected grating event occurs")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_selectedGrating_595fe856 
	 const long selectedGrating_gratingType_Grating_Blue=1;
	 const long selectedGrating_gratingType_Grating_Red=2;
	 const long selectedGrating_gratingType_Grating_Mirror=3;
struct logevent_settingVersions_65ee5da7 {  // @Metadata=(Description="Information about settings which can be specified in the start command.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	recommendedSettingsVersion; // @Metadata=(Units="unitless",Description="List of comma seperated recomended versions of settings sets")
	  string	recommendedSettingsLabels; // @Metadata=(Units="unitless",Description="List of comma seperated names of settings sets")
	  string	settingsUrl; // @Metadata=(Units="unitless",Description="The URL where the settings sets definitions can be found")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_settingVersions_65ee5da7 
struct logevent_settingsApplied_77742ca8 {  // @Metadata=(Description="Base settings applied.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string<256>	settingsVersion; // @Metadata=(Units="unitless",Description="The SHA or name corresponding to the published configuration")
	  string	otherSettingsEvents; // @Metadata=(Units="unitless",Description="A comma delimited list of other specific CSC configuration events. This may be blank if no other CSC specific events are necessary")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_settingsApplied_77742ca8 
struct logevent_settingsAppliedLoop_c449c192 {  // @Metadata=(Description="Settings applied loop")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	period; // @Metadata=(Units="second",Description="period")
	  double	periodAllowedJitter; // @Metadata=(Units="second",Description="Period when jitter is allowed")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_settingsAppliedLoop_c449c192 
struct logevent_settingsAppliedMonoCommunication_26c85cef {  // @Metadata=(Description="setting of the monochromator")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string<15>	ip; // @Metadata=(Units="dimensionless",Description="IP address of the monochromator")
	  long	portRange; // @Metadata=(Units="dimensionless",Description="port range; it will try to connect to any of the ports in this range")
	  float	readTimeout; // @Metadata=(Units="second",Description="Read timeout value")
	  float	writeTimeout; // @Metadata=(Units="second",Description="Write timeout value")
	  float	connectionTimeout; // @Metadata=(Units="second",Description="connection time out setting")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_settingsAppliedMonoCommunication_26c85cef 
struct logevent_settingsAppliedMonoHeartbeat_ae54980b {  // @Metadata=(Description="Internal heartbeat of the application to indicate if communication between linux and windows controlled is active or not")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  float	period; // @Metadata=(Units="second",Description="period")
	  float	timeout; // @Metadata=(Units="second",Description="Time out for the heartbeat to test communication between linux and windows controller")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_settingsAppliedMonoHeartbeat_ae54980b 
struct logevent_settingsAppliedMonochromatorRanges_6385b7ca {  // @Metadata=(Description="Allowed range of different settings")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  float	wavelengthGR1; // @Metadata=(Units="nm",Description="Minimum wavelength to use with Grating 1")
	  float	wavelengthGR1_GR2; // @Metadata=(Units="nm",Description="Wavelength to use to change to Grating 2")
	  float	wavelengthGR2; // @Metadata=(Units="nm",Description="Maximum wavelength to use with Grating 2")
	  float	minSlitWidth; // @Metadata=(Units="mm",Description="Minimum acceptable Slit width")
	  float	maxSlitWidth; // @Metadata=(Units="mm",Description="Maximum acceptable Slit Width")
	  float	minWavelength; // @Metadata=(Units="nm",Description="Minimum acceptable wavelength")
	  float	maxWavelength; // @Metadata=(Units="nm",Description="Maximum acceptable Wavelength")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_settingsAppliedMonochromatorRanges_6385b7ca 
struct logevent_simulationMode_cbf772af {  // @Metadata=(Description="Current simulation mode.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	mode; // @Metadata=(Units="unitless",Description="Current simulation mode; 0 for normal operation (no simulation); other supported values are specific to each CSC.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_simulationMode_cbf772af 
struct logevent_slitWidth_9f887f9b {  // @Metadata=(Description="Publishes the slitwidth")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	slit; // @Metadata=(Units="dimensionless",Description="Specifies which slit. Entry or exit slit")
	  float	slitPosition; // @Metadata=(Units="dimensionless",Description="slit position")
	  double	timestamp; // @Metadata=(Units="unitless",Description="timestamp")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_slitWidth_9f887f9b 
	 const long slitWidth_slit_Slit_Entry=1;
	 const long slitWidth_slit_Slit_Exit=2;
struct logevent_softwareVersions_f4ba882f {  // @Metadata=(Description="Current verions of software in use by CSC.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string<16>	salVersion; // @Metadata=(Units="unitless",Description="This is the current version of SAL generation")
	  string<16>	xmlVersion; // @Metadata=(Units="unitless",Description="This is the current version of CSC XML")
	  string<16>	openSpliceVersion; // @Metadata=(Units="unitless",Description="This is the current version of OpenSplice")
	  string<16>	cscVersion; // @Metadata=(Units="unitless",Description="This is the top-level version of the CSC")
	  string	subsystemVersions; // @Metadata=(Units="unitless",Description="A comma delimited list of key=value pairs relating subsystem name (key) to its version number (value). This may be left blank if there are no subsystems within a CSC")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_softwareVersions_f4ba882f 
struct logevent_status_d43bf38d {  // @Metadata=(Description="Controller status")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	status; // @Metadata=(Units="dimensionless",Description="An enumeration indicating the controller status.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_status_d43bf38d 
struct logevent_summaryState_41b05142 {  // @Metadata=(Description="Current summary state of the CSC")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	summaryState; // @Metadata=(Units="unitless",Description="High level state machine state identifier")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_summaryState_41b05142 
struct logevent_wavelength_cc846eae {  // @Metadata=(Description="Publishes wavelength")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  float	wavelength; // @Metadata=(Units="m",Description="wavelength")
	  double	timestamp; // @Metadata=(Units="dimensionless",Description="timestamp")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_wavelength_cc846eae 
struct loopTime_5f26c5bf {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	loopTime; // @Metadata=(Units="ms",Description="The actual loop time is ms.")
	};
#pragma keylist loopTime_5f26c5bf 
struct timestamp_3c07c396 {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="unitless",Description="The system time (TAI).")
	};
#pragma keylist timestamp_3c07c396 
struct ackcmd_7cda3253 {  // @Metadata=(Description="")
      string<8>	private_revCode;
      double		private_sndStamp;
      double		private_rcvStamp;
      long		private_origin;
      long 		private_host;
      long		private_seqNum;
      long 		ack;
      long 		error;
      string<256>	result;
      long		host;
      long		origin;
      long		cmdtype;
      double		timeout;
	};
#pragma keylist ackcmd_7cda3253 
};

