// SAL_VERSION=5.0.1 XML_VERSION=6.2.1
module Scheduler {
struct command_abort_89a3f42b {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_89a3f42b SchedulerID
struct command_disable_49a11088 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_49a11088 SchedulerID
struct command_enable_195c5ba6 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_195c5ba6 SchedulerID
struct command_enterControl_521040a6 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_521040a6 SchedulerID
struct command_exitControl_07609f4b {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_07609f4b SchedulerID
struct command_load_ee8c3f9f {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	uri; // @Metadata=(Units="unitless",Description="URI of the configuration.")
	};
#pragma keylist command_load_ee8c3f9f SchedulerID
struct command_resume_9809cb34 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_resume_9809cb34 SchedulerID
struct command_setAuthList_3f2db169 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	authorizedUsers; // @Metadata=(Units="unitless",Description="Comma seperated list of authorized users currently allowed to command this CSC;")
	  string	nonAuthorizedCSCs; // @Metadata=(Units="unitless",Description="Comma seperated list of CSC's not currently allowed to command this CSC;")
	};
#pragma keylist command_setAuthList_3f2db169 SchedulerID
struct command_setLogLevel_a1999682 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_a1999682 SchedulerID
struct command_setValue_398196fb {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_398196fb SchedulerID
struct command_standby_59e3e967 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_59e3e967 SchedulerID
struct command_start_01c08ddf {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_01c08ddf SchedulerID
struct command_stop_61e1fde4 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	abort; // @Metadata=(Units="unitless",Description="Abort current observation.")
	};
#pragma keylist command_stop_61e1fde4 SchedulerID
struct logevent_appliedSettingsMatchStart_5ab38149 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_5ab38149 SchedulerID
struct logevent_authList_6495ba29 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	authorizedUsers; // @Metadata=(Units="unitless",Description="Comma seperated list of authorized users currently allowed to command this CSC.")
	  string	nonAuthorizedCSCs; // @Metadata=(Units="unitless",Description="Comma seperated list of CSC's not currently allowed to command this CSC.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_authList_6495ba29 SchedulerID
struct logevent_cameraConfig_87478114 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	readoutTime; // @Metadata=(Units="s",Description="Camera readout time")
	  double	shutterTime; // @Metadata=(Units="s",Description="Camera open/close shutter time.")
	  double	filterMountTime; // @Metadata=(Units="s",Description="How long does it take to replace a filter in the camera?")
	  double	filterChangeTime; // @Metadata=(Units="s",Description="How long does it take to change the filter?")
	  string	filterMounted; // @Metadata=(Units="unitless",Description="Comma separated string with the name of the mounted filters")
	  string	filterPos; // @Metadata=(Units="unitless",Description="Current filter position.")
	  string	filterRemovable; // @Metadata=(Units="unitless",Description="Comma-separated list of filters to be considered for removal/swapping.")
	  string	filterUnmounted; // @Metadata=(Units="unitless",Description="Comma-separated list of filters that are not mounted on the camera but are available for the instrument.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_cameraConfig_87478114 SchedulerID
struct logevent_dependenciesVersions_9123c3ed {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	version; // @Metadata=(Units="unitless",Description="Applied settings version.")
	  string	scheduler; // @Metadata=(Units="unitless",Description="Scheduler version")
	  string	cloudModel; // @Metadata=(Units="unitless",Description="Cloud model version")
	  string	downtimeModel; // @Metadata=(Units="unitless",Description="Downtime model version")
	  string	seeingModel; // @Metadata=(Units="unitless",Description="Seeing model version")
	  string	skybrightnessModel; // @Metadata=(Units="unitless",Description="Skybrightness model version")
	  string	observatoryModel; // @Metadata=(Units="unitless",Description="Observatory model version.")
	  string	observatoryLocation; // @Metadata=(Units="unitless",Description="Observatory location version")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_dependenciesVersions_9123c3ed SchedulerID
struct logevent_detailedState_66c83b44 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	substate; // @Metadata=(Units="unitless",Description="The substate or extra states of the CSC ")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_detailedState_66c83b44 SchedulerID
struct logevent_domeConfig_c9c9ffa9 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	altitudeMaxspeed; // @Metadata=(Units="deg/s",Description="Dome altitude maximum speed.")
	  double	altitudeAccel; // @Metadata=(Units="deg/s2",Description="Dome acceleration in altitude.")
	  double	altitudeDecel; // @Metadata=(Units="deg/s2",Description="Dome deceleration in altitude")
	  double	altitudeFreerange; // @Metadata=(Units="deg",Description="Dome free range in altitude.")
	  double	azimuthMaxspeed; // @Metadata=(Units="deg/s",Description="Dome maximum speed in azimuth.")
	  double	azimuthAccel; // @Metadata=(Units="deg/s2",Description="Dome acceleration in azimuth.")
	  double	azimuthDecel; // @Metadata=(Units="deg/s2",Description="Dome deceleration in azimuth.")
	  double	azimuthFreerange; // @Metadata=(Units="deg",Description="Dome free range in azimuth.")
	  double	settleTime; // @Metadata=(Units="second",Description="Dome settle time.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_domeConfig_c9c9ffa9 SchedulerID
struct logevent_driverConfig_d430ceed {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	nightBoundary; // @Metadata=(Units="deg",Description="Sun altitude that marks the beginning/end of the night.")
	  double	newMoonPhaseThreshold; // @Metadata=(Units="unitless",Description="Moon illumination that marks the beginning/end of dark nights")
	  string	startupType; // @Metadata=(Units="unitless",Description="What type of startup should the scheduler do? COLD; WARM or HOT?")
	  string	startupDatabase; // @Metadata=(Units="unitless",Description="If WARM or HOT start; give the path to the startup database.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_driverConfig_d430ceed SchedulerID
struct logevent_errorCode_7bb44d60 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_7bb44d60 SchedulerID
struct logevent_heartbeat_9a29a867 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_9a29a867 SchedulerID
struct logevent_invalidateTarget_88091f6f {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	targetId; // @Metadata=(Units="unitless",Description="Unique target id.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_invalidateTarget_88091f6f SchedulerID
struct logevent_logLevel_52cfbc79 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_52cfbc79 SchedulerID
struct logevent_logMessage_40b28704 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_40b28704 SchedulerID
struct logevent_needFilterSwap_e55118b1 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	needSwap; // @Metadata=(Units="unitless",Description="Does the scheduler need a new filter mounted on the camera?")
	  string	filterToMount; // @Metadata=(Units="unitless",Description="Which filter to add.")
	  string	filterToUnmount; // @Metadata=(Units="unitless",Description="Which filter to remove.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_needFilterSwap_e55118b1 SchedulerID
struct logevent_obsSiteConfig_f8a29d92 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	observatoryName; // @Metadata=(Units="unitless",Description="Name of the observatory.")
	  double	latitude; // @Metadata=(Units="deg",Description="Latitude of the observatory.")
	  double	longitude; // @Metadata=(Units="deg",Description="Longitude of the observatory.")
	  double	height; // @Metadata=(Units="m",Description="Height of the observatory.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_obsSiteConfig_f8a29d92 SchedulerID
struct logevent_opticsLoopCorrConfig_66e5fbf7 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	telOpticsOlSlope; // @Metadata=(Units="second/deg",Description="Multiplication factor to account the time it takes to align the optics given the size of a slew.")
	  double	telOpticsClAltLimit[3]; // @Metadata=(Units="deg",Description="How much can altitude change without the need to perform closed loop correction?")
	  double	telOpticsClDelay[2]; // @Metadata=(Units="second",Description="How long does it take to perform a closed loop?")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_opticsLoopCorrConfig_66e5fbf7 SchedulerID
struct logevent_parkConfig_da9ea910 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	telescopeAltitude; // @Metadata=(Units="deg",Description="Telescope parking altitude.")
	  double	telescopeAzimuth; // @Metadata=(Units="deg",Description="Telescope parking azimuth")
	  double	telescopeRotator; // @Metadata=(Units="deg",Description="Telescope parking rotator position.")
	  double	domeAltitude; // @Metadata=(Units="deg",Description="Dome parking altitude.")
	  double	domeAzimuth; // @Metadata=(Units="deg",Description="Dome parking azimuth.")
	  string	filterPosition; // @Metadata=(Units="unitless",Description="Parking filter.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_parkConfig_da9ea910 SchedulerID
struct logevent_rotatorConfig_f093c361 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	positionMin; // @Metadata=(Units="deg",Description="Camera rotator minimum position.")
	  double	positionMax; // @Metadata=(Units="deg",Description="Camera rotator maximum position.")
	  double	positionFilterChange; // @Metadata=(Units="deg",Description="Camera rotator position for changing the filter.")
	  double	speedMax; // @Metadata=(Units="deg/s",Description="Camera rotator maximum speed.")
	  double	accel; // @Metadata=(Units="deg/s2",Description="Camera rotator acceleration.")
	  double	decel; // @Metadata=(Units="deg/s2",Description="Camera rotator deceleration.")
	  boolean	manualRotator; // @Metadata=(Units="unitless",Description="Is rotator in manual mode?")
	  boolean	followSky; // @Metadata=(Units="unitless",Description="Should rotator aways align north with camera y-axis?")
	  boolean	resumeAngle; // @Metadata=(Units="unitless",Description="After a filter change; should rotator move back to original position?")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_rotatorConfig_f093c361 SchedulerID
struct logevent_schedulerConfig_d77d4fb7 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	surveyDuration; // @Metadata=(Units="year",Description="Survey duration.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_schedulerConfig_d77d4fb7 SchedulerID
struct logevent_settingVersions_1ee8cd03 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_1ee8cd03 SchedulerID
struct logevent_settingsApplied_6fb27566 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_6fb27566 SchedulerID
struct logevent_simulationMode_427453f4 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_427453f4 SchedulerID
struct logevent_slewConfig_ed94d5a5 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	prereqDomalt; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for dome to start moving in altitude. Will wait for these actions before moving.")
	  string	prereqDomaz; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for dome to start moving in azimuth. Will wait for these actions before moving.")
	  string	prereqDomazSettle; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for dome to settle in azimuth.")
	  string	prereqTelalt; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for telescope to start moving in altitude. Will wait for these actions before moving.")
	  string	prereqTelaz; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for telescope to start moving in azimuth. Will wait for these actions before moving.")
	  string	prereqTelOpticsOpenLoop; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for telescope optics open loop to start adjusting. Will wait for these actions before moving.")
	  string	prereqTelOpticsClosedLoop; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for telescope optics closed loop to start adjusting. Will wait for these actions before moving.")
	  string	prereqTelSettle; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for telescope to settle. Will wait for these actions before moving.")
	  string	prereqTelRot; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for camera rotator to start moving. Will wait for these actions before moving.")
	  string	prereqFilter; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for filter change. Will wait for these actions before moving.")
	  string	prereqExposures; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for exposure to start. Will wait for these actions before moving.")
	  string	prereqReadout; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for exposure readout to start. Will wait for these actions before moving.")
	  string	prereqAdc; // @Metadata=(Units="unitless",Description="Not sure what this is about.")
	  string	prereqInsOptics; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for optics alignment. Will wait for these actions before moving.")
	  string	prereqGuiderPos; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites for positioning guider. Will wait for these actions before moving.")
	  string	prereqGuiderAdq; // @Metadata=(Units="unitless",Description="Comma-separated prerequisites guider to start operating. Will wait for these actions before moving.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_slewConfig_ed94d5a5 SchedulerID
struct logevent_softwareVersions_adaa3993 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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>	salVersion; // @Metadata=(Units="unitless",Description="This is the current version of SAL generation")
	  string<256>	xmlVersion; // @Metadata=(Units="unitless",Description="This is the current version of CSC XML")
	  string<256>	openSpliceVersion; // @Metadata=(Units="unitless",Description="This is the current version of OpenSplice")
	  string<256>	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_adaa3993 SchedulerID
struct logevent_summaryState_51b9fa6e {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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_51b9fa6e SchedulerID
struct logevent_surveyTopology_f412d889 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	numGeneralProps; // @Metadata=(Units="unitless",Description="Number of general proposals.")
	  string	generalPropos; // @Metadata=(Units="unitless",Description="Comma-separated string with the ids of the general proposals.")
	  long	numSeqProps; // @Metadata=(Units="unitless",Description="Number of time-series proposals.")
	  string	sequencePropos; // @Metadata=(Units="unitless",Description="Comma-separated string with the ids of the sequence proposals.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_surveyTopology_f412d889 SchedulerID
struct logevent_target_6c8cc762 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	targetId; // @Metadata=(Units="unitless",Description="Unique target id.")
	  double	requestTime; // @Metadata=(Units="second",Description="Time on target.")
	  double	requestMjd; // @Metadata=(Units="day",Description="MJD of the start of the observation")
	  double	ra; // @Metadata=(Units="deg",Description="Right Ascention of the target.")
	  double	decl; // @Metadata=(Units="deg",Description="Declination of the target.")
	  double	skyAngle; // @Metadata=(Units="deg",Description="Sky position angle.")
	  string	filter; // @Metadata=(Units="unitless",Description="Filter name.")
	  long	numExposures; // @Metadata=(Units="unitless",Description="Number of exposures.")
	  double	exposureTimes[10]; // @Metadata=(Units="second",Description="Exposure time.")
	  double	slewTime; // @Metadata=(Units="second",Description="Expected slew time.")
	  double	offsetX; // @Metadata=(Units="arcsec",Description="Offset in X direction (sensor).")
	  double	offsetY; // @Metadata=(Units="arcsec",Description="Offset in Y direction (sensor).")
	  long	numProposals; // @Metadata=(Units="unitless",Description="Number of science proposals this target is part of.")
	  long	proposalId[5]; // @Metadata=(Units="unitless",Description="Id of the proposals this target is part of.")
	  boolean	isSequence; // @Metadata=(Units="unitless",Description="Is this target part of a sequence of observations for the same target?")
	  long	sequenceNVisits; // @Metadata=(Units="unitless",Description="If isSequence=True; number of visits in this sequence.")
	  long	sequenceVisits; // @Metadata=(Units="unitless",Description="If isSequence=True; which visit is this (1-sequenceNVisits)?")
	  double	sequenceDuration; // @Metadata=(Units="unitless",Description="Total duration of the sequence.")
	  double	airmass; // @Metadata=(Units="unitless",Description="Expected airmass of the observation")
	  double	skyBrightness; // @Metadata=(Units="unitless",Description="Expected sky brightness of the observation.")
	  double	cloud; // @Metadata=(Units="unitless",Description="Expected cloud extintion for this observation")
	  double	seeing; // @Metadata=(Units="arcsec",Description="Expected seeing of this observation.")
	  double	moonRa; // @Metadata=(Units="deg",Description="Expected RA of the moon.")
	  double	moonDec; // @Metadata=(Units="deg",Description="Expected Dec of the moon")
	  double	moonAlt; // @Metadata=(Units="deg",Description="Expected altitude of the moon.")
	  double	moonAz; // @Metadata=(Units="deg",Description="Expected azimuth of the moon")
	  double	moonDistance; // @Metadata=(Units="deg",Description="Expected distance to the moon.")
	  double	moonPhase; // @Metadata=(Units="unitless",Description="Expected moon phase/illumination (0-1).")
	  double	sunRa; // @Metadata=(Units="deg",Description="Expected sun RA.")
	  double	sunDec; // @Metadata=(Units="deg",Description="Expected sun dec.")
	  double	sunAlt; // @Metadata=(Units="deg",Description="Expected sun altitude.")
	  double	sunAz; // @Metadata=(Units="deg",Description="Expected sun Az.")
	  double	solarElong; // @Metadata=(Units="deg",Description="Expected solar elongation.")
	  string	note; // @Metadata=(Units="unitless",Description="Note about the target.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_target_6c8cc762 SchedulerID
struct logevent_telescopeConfig_069be8a4 {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  long	private_origin;    //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long	private_host;    //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	altitudeMinpos; // @Metadata=(Units="deg",Description="Telescope minimum reachable altitude position.")
	  double	altitudeMaxpos; // @Metadata=(Units="deg",Description="Telescope maximum reachable altitude position.")
	  double	azimuthMinpos; // @Metadata=(Units="deg",Description="Telescope minimum reachable azimuth position.")
	  double	azimuthMaxpos; // @Metadata=(Units="deg",Description="Telescope maximum reachable azimuth position.")
	  double	altitudeMaxspeed; // @Metadata=(Units="deg/s",Description="Telescope maximum speed of the altitude axis.")
	  double	altitudeAccel; // @Metadata=(Units="deg/s2",Description="Telescope altitude acceleration.")
	  double	altitudeDecel; // @Metadata=(Units="deg/s2",Description="Telescope altitude deceleration.")
	  double	azimuthMaxspeed; // @Metadata=(Units="deg/s",Description="Telescope maximum speed in azimuth")
	  double	azimuthAccel; // @Metadata=(Units="deg/s2",Description="Telescope azimuth acceleration.")
	  double	azimuthDecel; // @Metadata=(Units="deg/s2",Description="Telescope azimuth deceleration.")
	  double	settleTime; // @Metadata=(Units="second",Description="Telescope settle time.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_telescopeConfig_069be8a4 SchedulerID
struct observatoryState_ebad6def {  // @Metadata=(Description="")
	  long	SchedulerID;	//private // @Metadata=(Description="Index number for CSC with multiple instances")
	  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")
	  string<128>	private_identity;    //private // @Metadata=(Units="unitless",Description="Identity of originator")
	  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="second",Description="Current timestamp at the observatory")
	  double	ra; // @Metadata=(Units="deg",Description="Current pointing RA.")
	  double	declination; // @Metadata=(Units="deg",Description="Current pointing Declination")
	  double	positionAngle; // @Metadata=(Units="deg",Description="Current pointing sky position angle")
	  double	parallacticAngle; // @Metadata=(Units="deg",Description="Current parallactic angle.")
	  boolean	tracking; // @Metadata=(Units="unitless",Description="Is the telescope tracking?")
	  double	telescopeAltitude; // @Metadata=(Units="deg",Description="Telescope altitude.")
	  double	telescopeAzimuth; // @Metadata=(Units="deg",Description="telescope azimuth")
	  double	telescopeRotator; // @Metadata=(Units="deg",Description="telescope rotator position")
	  double	domeAltitude; // @Metadata=(Units="deg",Description="Dome altitude position")
	  double	domeAzimuth; // @Metadata=(Units="deg",Description="dome azimuth position")
	  string	filterPosition; // @Metadata=(Units="unitless",Description="Current filter.")
	  string	filterMounted; // @Metadata=(Units="unitless",Description="Current mounted/available filters.")
	  string	filterUnmounted; // @Metadata=(Units="unitless",Description="Current unmounted/unavailable filters.")
	};
#pragma keylist observatoryState_ebad6def SchedulerID
	 const long indexEnumeration_Main=1;
	 const long indexEnumeration_AuxTel=2;
struct ackcmd_ca4d57aa {  // @Metadata=(Description="")
  string<8>	private_revCode; //private
  double	private_sndStamp;    //private
  double	private_rcvStamp;    //private
  long	private_seqNum;    //private
  string<128>	private_identity;    //private
  long	private_origin;    //private
  long	private_host;    //private
	  long	SchedulerID; // @Metadata=(Description="Index number for CSC with multiple instances")
	  long	ack;
	  long	error;
	  string<256>	result;
	  string	identity;
	  long	host;
	  long	origin;
	  long	cmdtype;
	  double	timeout;
	};
#pragma keylist ackcmd_ca4d57aa SchedulerID
};

