// SAL_VERSION=4.1.2 XML_VERSION=5.1.0
module ATCamera {
struct bonnShutter_cc3d4d32 {  // @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")
	  float	shutter5V; // @Metadata=(Units="volt",Description="")
	  float	shutter36V; // @Metadata=(Units="volt",Description="")
	};
#pragma keylist bonnShutter_cc3d4d32 
struct command_abort_92f21e16 {  // @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_92f21e16 
struct command_clear_62be390c {  // @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")
	  long	nClears; // @Metadata=(Units="unitless",Description="Number of consecutive clear operations to perform")
	};
#pragma keylist command_clear_62be390c 
struct command_disable_f58c9bb3 {  // @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_f58c9bb3 
struct command_disableCalibration_fcd31833 {  // @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="Unused")
	};
#pragma keylist command_disableCalibration_fcd31833 
struct command_discardRows_fe46981d {  // @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")
	  long	nRows; // @Metadata=(Units="unitless",Description="Number of rows to discard")
	};
#pragma keylist command_discardRows_fe46981d 
struct command_enable_8a77295b {  // @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_8a77295b 
struct command_enableCalibration_f40e5a69 {  // @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="Unused")
	};
#pragma keylist command_enableCalibration_f40e5a69 
struct command_endImage_1d46235d {  // @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="Unused")
	};
#pragma keylist command_endImage_1d46235d 
struct command_enterControl_a71539d3 {  // @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_a71539d3 
struct command_exitControl_f348d0b0 {  // @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_f348d0b0 
struct command_initGuiders_e442cfa5 {  // @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>	roiSpec; // @Metadata=(Units="unitless",Description="TBD specification for region of interest")
	};
#pragma keylist command_initGuiders_e442cfa5 
struct command_initImage_0a599ce5 {  // @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	deltaT; // @Metadata=(Units="second",Description="Estimate of time period before takeImages will be issued")
	};
#pragma keylist command_initImage_0a599ce5 
struct command_setLogLevel_e7aa6f66 {  // @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_e7aa6f66 
struct command_setSimulationMode_1012d94e {  // @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_1012d94e 
struct command_setValue_9b8444fd {  // @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_9b8444fd 
struct command_standby_7494c6a5 {  // @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_7494c6a5 
struct command_start_05613453 {  // @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_05613453 
struct command_startImage_571f2449 {  // @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	shutter; // @Metadata=(Units="unitless",Description="True if the shutter should be opened/closed")
	  string	sensors; // @Metadata=(Units="unitless",Description="Sensors to be read out; if blank all configured sensors will be read out")
	  string	keyValueMap; // @Metadata=(Units="unitless",Description="Map of additional key value pairs; e.g. imageType: XYZ; groupId: ABC")
	  string	obsNote; // @Metadata=(Units="unitless",Description="An arbitrary operator provided string; useful for informally flagging images")
	  double	timeout; // @Metadata=(Units="second",Description="Timeout after which imaging will be abandoned if no endImage command received")
	  string<256>	imageType; // @Metadata=(Units="unitless",Description="Image type (a.k.a. IMGTYPE) (e.g. e.g. BIAS; DARK; FLAT; FE55; XTALK; CCOB; SPOT...)")
	  string<256>	groupId; // @Metadata=(Units="unitless",Description="Image groupId. Used to fill in FITS GROUPID header")
	};
#pragma keylist command_startImage_571f2449 
struct command_stop_c5a72250 {  // @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="Attribute required by the API; but is unused.")
	};
#pragma keylist command_stop_c5a72250 
struct command_takeImages_2b3178ed {  // @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")
	  long	numImages; // @Metadata=(Units="unitless",Description="Number of consecutive images to take")
	  double	expTime; // @Metadata=(Units="second",Description="Exposure time")
	  boolean	shutter; // @Metadata=(Units="unitless",Description="True if the shutter should be opened/closed")
	  string	sensors; // @Metadata=(Units="unitless",Description="Sensors to be read out; if blank all configured sensors will be read out")
	  string	keyValueMap; // @Metadata=(Units="unitless",Description="Map of additional key value pairs to associate extra data with the image(s); e.g. imageType: XYZ; groupId: ABC")
	  string	obsNote; // @Metadata=(Units="unitless",Description="An arbitrary operator provided string; useful for informally flagging images")
	};
#pragma keylist command_takeImages_2b3178ed 
struct logevent_appliedSettingsMatchStart_42e49875 {  // @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_42e49875 
struct logevent_bonnShutterSettingsApplied_7684d793 {  // @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")
	  long	version; // @Metadata=(Units="unitless",Description="Version name of bonn shutter settings.")
	  float	startA; // @Metadata=(Units="millisecond",Description="Start A time value")
	  float	startB; // @Metadata=(Units="millisecond",Description="Start B time value")
	  float	travelDistance; // @Metadata=(Units="millimeter",Description="Shutter travel distance.")
	  float	startVelocity; // @Metadata=(Units="Steps/s",Description="Shutter start velocity.")
	  float	acceleration; // @Metadata=(Units="m/s2",Description="Shutter acceleration.")
	  float	maxVelocity; // @Metadata=(Units="Steps/s",Description="Shutter maximum velocity")
	  float	threshold; // @Metadata=(Units="unitless",Description="Threshold for shutter open/close.")
	  string<256>	shutterVersion; // @Metadata=(Units="unitless",Description="Version of the shutter software.")
	  string<256>	firmwareVersion; // @Metadata=(Units="unitless",Description="Version of the shutter firmware.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_bonnShutterSettingsApplied_7684d793 
struct logevent_calibrationDetailedState_6eabdf59 {  // @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")
	  long	substate; // @Metadata=(Units="unitless",Description="Enumeration of valid substates")
	  double	transitionTimestamp; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_calibrationDetailedState_6eabdf59 
	 const long calibrationDetailedState_DISABLED=1;
	 const long calibrationDetailedState_ENABLED=2;
	 const long calibrationDetailedState_INTEGRATING=3;
struct logevent_ccsCommandState_4c6c2ed6 {  // @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")
	  long	substate; // @Metadata=(Units="unitless",Description="Substate of the CCS command.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_ccsCommandState_4c6c2ed6 
	 const long ccsCommandState_IDLE=1;
	 const long ccsCommandState_BUSY=2;
struct logevent_endOfImageTelemetry_9a18af9c {  // @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	imageType; // @Metadata=(Units="unitless",Description="The imageType as passed to the takeImages command (using keyValueMap)")
	  string	groupId; // @Metadata=(Units="unitless",Description="The groupId as passed to the takeImages command (using keyValueMap)")
	  string	additionalKeys; // @Metadata=(Units="unitless",Description="Additional keys passed to the takeImages command (: delimited)")
	  string	additionalValues; // @Metadata=(Units="unitless",Description="Additional values passed to the takeImages command (: delimited; in same order as additionalKeys)")
	  long	imagesInSequence; // @Metadata=(Units="unitless",Description="The total number of requested images in sequence")
	  string<32>	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure; assigned by the camera")
	  long	imageIndex; // @Metadata=(Units="unitless",Description="The zero based index number for this specific exposure within the sequence")
	  string<2>	imageSource; // @Metadata=(Units="unitless",Description="The source component of the image name (AT/CC/MC)")
	  string	imageController; // @Metadata=(Units="unitless",Description="The controller for the image  (O=OCS/C=CCS/...)")
	  string<8>	imageDate; // @Metadata=(Units="unitless",Description="The date component of the image name (YYYYMMDD)")
	  long	imageNumber; // @Metadata=(Units="unitless",Description="The image number (SEQNO) component of the image name")
	  double	timeStampAcquisitionStart; // @Metadata=(Units="second",Description="The effective time at which the image acquisition started (i.e. the end of the previous clear or readout)")
	  double	exposureTime; // @Metadata=(Units="second",Description="The requested exposure time")
	  string<64>	imageTag; // @Metadata=(Units="unitless",Description="The DAQ assigned image tag (hex string)")
	  double	timestampDateObs; // @Metadata=(Units="second",Description="The observation date; as computed by CCS (as TAI)")
	  double	timestampDateEnd; // @Metadata=(Units="second",Description="The end observation date; as computed by CCS (as TAI)")
	  double	expTime; // @Metadata=(Units="second",Description="The exposure time; as computed by CCS")
	  double	darkTime; // @Metadata=(Units="second",Description="The dark time; as computed by CCS")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_endOfImageTelemetry_9a18af9c 
struct logevent_endReadout_6555112c {  // @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	imageType; // @Metadata=(Units="unitless",Description="The imageType as passed to the takeImages command (using keyValueMap)")
	  string	groupId; // @Metadata=(Units="unitless",Description="The groupId as passed to the takeImages command (using keyValueMap)")
	  string	additionalKeys; // @Metadata=(Units="unitless",Description="Additional keys passed to the takeImages command (: delimited)")
	  string	additionalValues; // @Metadata=(Units="unitless",Description="Additional values passed to the takeImages command (: delimited; in same order as additionalKeys)")
	  long	imagesInSequence; // @Metadata=(Units="unitless",Description="The total number of requested images in sequence")
	  string<32>	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure; assigned by the camera")
	  long	imageIndex; // @Metadata=(Units="unitless",Description="The zero based index number for this specific exposure within the sequence")
	  string<2>	imageSource; // @Metadata=(Units="unitless",Description="The source component of the image name (AT/CC/MC)")
	  string	imageController; // @Metadata=(Units="unitless",Description="The controller for the image  (O=OCS/C=CCS/...)")
	  string<8>	imageDate; // @Metadata=(Units="unitless",Description="The date component of the image name (YYYYMMDD)")
	  long	imageNumber; // @Metadata=(Units="unitless",Description="The image number (SEQNO) component of the image name")
	  double	timeStampAcquisitionStart; // @Metadata=(Units="second",Description="The effective time at which the image acquisition started (i.e. the end of the previous clear or readout)")
	  double	exposureTime; // @Metadata=(Units="second",Description="The requested exposure time")
	  double	timeStampEndOfReadout; // @Metadata=(Units="second",Description="The time at which the readout was completed")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_endReadout_6555112c 
struct logevent_endShutterClose_40932e57 {  // @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")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_endShutterClose_40932e57 
struct logevent_endShutterOpen_6f1d9b42 {  // @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")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_endShutterOpen_6f1d9b42 
struct logevent_endTakeImage_9c349995 {  // @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")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_endTakeImage_9c349995 
struct logevent_errorCode_400c7fe5 {  // @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_400c7fe5 
struct logevent_heartbeat_c3768dd5 {  // @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_c3768dd5 
struct logevent_imageReadinessDetailedState_5bee041b {  // @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")
	  long	substate; // @Metadata=(Units="unitless",Description="Enumeration of valid substates")
	  double	transitionTimestamp; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_imageReadinessDetailedState_5bee041b 
	 const long imageReadinessDetailedState_READY=1;
	 const long imageReadinessDetailedState_NOT_READY=2;
	 const long imageReadinessDetailedState_GETTING_READY=3;
struct logevent_imageReadoutParameters_201fc886 {  // @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>	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure")
	  long	imageIndex; // @Metadata=(Units="unitless",Description="The zero based index number for this specific exposure within the sequence")
	  string<256>	ccdNames; // @Metadata=(Units="unitless",Description="A list of all ccds currently configured; of the form RnnSnn; : delimited (empty if entry not used)")
	  string	raftBay; // @Metadata=(Units="unitless",Description="The raft bay for each CCD listed above; of the form Rnn : delimited")
	  string	ccdSlot; // @Metadata=(Units="unitless",Description="The CCD slot for each CCD listed above; of the form SXn : delimited")
	  long	ccdType; // @Metadata=(Units="unitless",Description="The type of each CCD; this determines segRows; segCols and serCols")
	  long	overRows; // @Metadata=(Units="unitless",Description="See CCD Readout Parameters Diagram")
	  long	overCols; // @Metadata=(Units="unitless",Description="See CCD Readout Parameters Diagram")
	  long	readRows; // @Metadata=(Units="unitless",Description="See CCD Readout Parameters Diagram")
	  long	readCols; // @Metadata=(Units="unitless",Description="See CCD Readout Parameters Diagram")
	  long	readCols2; // @Metadata=(Units="unitless",Description="See CCD Readout Parameters Diagram")
	  long	preCols; // @Metadata=(Units="unitless",Description="See CCD Readout Parameters Diagram")
	  long	preRows; // @Metadata=(Units="unitless",Description="See CCD Readout Parameters Diagram")
	  long	postCols; // @Metadata=(Units="unitless",Description="See CCD Readout Parameters Diagram")
	  long	underCols; // @Metadata=(Units="unitless",Description="See CCD Readout Parameters Diagram")
	  string	daqFolder; // @Metadata=(Units="unitless",Description="DAQ folder where image will be created")
	  string	daqAnnotation; // @Metadata=(Units="unitless",Description="Annotation sent to DAQ")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_imageReadoutParameters_201fc886 
	 const long imageReadoutParameters_E2V=1;
	 const long imageReadoutParameters_ITL=2;
struct logevent_logLevel_b767c823 {  // @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_b767c823 
struct logevent_logMessage_7a434830 {  // @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_7a434830 
struct logevent_notReadyToTakeImage_e6ab5224 {  // @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")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_notReadyToTakeImage_e6ab5224 
struct logevent_offlineDetailedState_f906347d {  // @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")
	  long	substate; // @Metadata=(Units="unitless",Description="Enumeration of valid substates")
	  double	transitionTimestamp; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_offlineDetailedState_f906347d 
	 const long offlineDetailedState_OFFLINE_AVAILABLE=1;
	 const long offlineDetailedState_OFFLINE_PUBLISH_ONLY=2;
struct logevent_prepareToTakeImage_51ed862e {  // @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")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_prepareToTakeImage_51ed862e 
struct logevent_raftsDetailedState_d2949895 {  // @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")
	  long	substate; // @Metadata=(Units="unitless",Description="Enumeration of valid substates")
	  double	transitionTimestamp; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_raftsDetailedState_d2949895 
	 const long raftsDetailedState_NEEDS_CLEAR=1;
	 const long raftsDetailedState_CLEARING=2;
	 const long raftsDetailedState_INTEGRATING=3;
	 const long raftsDetailedState_READING_OUT=4;
	 const long raftsDetailedState_QUIESCENT=5;
struct logevent_readyToTakeImage_367f6e79 {  // @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")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_readyToTakeImage_367f6e79 
struct logevent_settingVersions_d60e434a {  // @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_d60e434a 
struct logevent_settingsApplied_f48a3258 {  // @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_f48a3258 
struct logevent_settingsAppliedLegacy_b7e45cf2 {  // @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>	settings; // @Metadata=(Units="unitless",Description="Applied settings name.")
	  long	version; // @Metadata=(Units="unitless",Description="Version of the applied settings.")
	  string<256>	wrebSettingsVersion; // @Metadata=(Units="unitless",Description="Wreb settings version.")
	  string<256>	bonnShutterSettingsVersion; // @Metadata=(Units="unitless",Description="Bonn shutter version.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_settingsAppliedLegacy_b7e45cf2 
struct logevent_shutterDetailedState_73c0c839 {  // @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")
	  long	substate; // @Metadata=(Units="unitless",Description="Enumeration of valid substates")
	  double	transitionTimestamp; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_shutterDetailedState_73c0c839 
	 const long shutterDetailedState_CLOSED=1;
	 const long shutterDetailedState_OPEN=2;
	 const long shutterDetailedState_CLOSING=3;
	 const long shutterDetailedState_OPENING=4;
struct logevent_shutterMotionProfile_7beb3c38 {  // @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	measuredExposureTime; // @Metadata=(Units="second",Description="The measured average exposure time")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_shutterMotionProfile_7beb3c38 
struct logevent_simulationMode_827028cd {  // @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_827028cd 
struct logevent_softwareVersions_fe7cb29b {  // @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_fe7cb29b 
struct logevent_softwareVersionsSettingsApplied_819f3345 {  // @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<32>	mcmVersion; // @Metadata=(Units="unitless",Description="The version of the MCM software")
	  string<32>	ocsbridgeVersion; // @Metadata=(Units="unitless",Description="The version of the OCS Bridge software")
	  string<32>	rebPowerVersion; // @Metadata=(Units="unitless",Description="The version of the REB power software")
	  string<32>	rebVersion; // @Metadata=(Units="unitless",Description="The version of the REB software")
	  string<32>	pduVersion; // @Metadata=(Units="unitless",Description="The version of the PDU software")
	  string<32>	bonnShutterVersion; // @Metadata=(Units="unitless",Description="The version of the Bonn Shutter software")
	  string<32>	vacuumVersion; // @Metadata=(Units="unitless",Description="The version of the Vacuum software")
	  string<32>	wrebFirmwareVersion; // @Metadata=(Units="unitless",Description="The version of the WREB Firmware")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_softwareVersionsSettingsApplied_819f3345 
struct logevent_startIntegration_a7ce4207 {  // @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	imageType; // @Metadata=(Units="unitless",Description="The imageType as passed to the takeImages command (using keyValueMap)")
	  string	groupId; // @Metadata=(Units="unitless",Description="The groupId as passed to the takeImages command (using keyValueMap)")
	  string	additionalKeys; // @Metadata=(Units="unitless",Description="Additional keys passed to the takeImages command (: delimited)")
	  string	additionalValues; // @Metadata=(Units="unitless",Description="Additional values passed to the takeImages command (: delimited; in same order as additionalKeys)")
	  long	imagesInSequence; // @Metadata=(Units="unitless",Description="The total number of requested images in sequence")
	  string<32>	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure; assigned by the camera")
	  long	imageIndex; // @Metadata=(Units="unitless",Description="The zero based index number for this specific exposure within the sequence")
	  string<2>	imageSource; // @Metadata=(Units="unitless",Description="The source component of the image name (AT/CC/MC)")
	  string	imageController; // @Metadata=(Units="unitless",Description="The controller for the image  (O=OCS/C=CCS/...)")
	  string<8>	imageDate; // @Metadata=(Units="unitless",Description="The date component of the image name (YYYYMMDD)")
	  long	imageNumber; // @Metadata=(Units="unitless",Description="The image number (SEQNO) component of the image name")
	  double	timeStampAcquisitionStart; // @Metadata=(Units="second",Description="The effective time at which the image acquisition started (i.e. the end of the previous clear or readout)")
	  double	exposureTime; // @Metadata=(Units="second",Description="The requested exposure time")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_startIntegration_a7ce4207 
struct logevent_startReadout_d95d4ba7 {  // @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	imageType; // @Metadata=(Units="unitless",Description="The imageType as passed to the takeImages command (using keyValueMap)")
	  string	groupId; // @Metadata=(Units="unitless",Description="The groupId as passed to the takeImages command (using keyValueMap)")
	  string	additionalKeys; // @Metadata=(Units="unitless",Description="Additional keys passed to the takeImages command (: delimited)")
	  string	additionalValues; // @Metadata=(Units="unitless",Description="Additional values passed to the takeImages command (: delimited; in same order as additionalKeys)")
	  long	imagesInSequence; // @Metadata=(Units="unitless",Description="The total number of requested images in sequence")
	  string<32>	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure; assigned by the camera")
	  long	imageIndex; // @Metadata=(Units="unitless",Description="The zero based index number for this specific exposure within the sequence")
	  string<2>	imageSource; // @Metadata=(Units="unitless",Description="The source component of the image name (AT/CC/MC)")
	  string	imageController; // @Metadata=(Units="unitless",Description="The controller for the image  (O=OCS/C=CCS/...)")
	  string<8>	imageDate; // @Metadata=(Units="unitless",Description="The date component of the image name (YYYYMMDD)")
	  long	imageNumber; // @Metadata=(Units="unitless",Description="The image number (SEQNO) component of the image name")
	  double	timeStampAcquisitionStart; // @Metadata=(Units="second",Description="The effective time at which the image acquisition started (i.e. the end of the previous clear or readout)")
	  double	exposureTime; // @Metadata=(Units="second",Description="The requested exposure time")
	  double	timeStampStartOfReadout; // @Metadata=(Units="second",Description="The time at which the readout was triggered")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_startReadout_d95d4ba7 
struct logevent_startShutterClose_5086e2a8 {  // @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")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_startShutterClose_5086e2a8 
struct logevent_startShutterOpen_50cbe03e {  // @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")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_startShutterOpen_50cbe03e 
struct logevent_summaryState_88201533 {  // @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_88201533 
struct logevent_wrebSettingsApplied_16e8fb0b {  // @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")
	  long	version; // @Metadata=(Units="unitless",Description="Wreb software version.")
	  string<256>	sequencerKey; // @Metadata=(Units="unitless",Description="Sequencer key.")
	  long	sequencerChecksum; // @Metadata=(Units="unitless",Description="Sequencer key")
	  long	daqVersion; // @Metadata=(Units="unitless",Description="DAQ version.")
	  long	firmwareVersion; // @Metadata=(Units="unitless",Description="WREB firmware version.")
	  long	aspic0_af1; // @Metadata=(Units="unitless",Description="")
	  long	aspic0_clamp; // @Metadata=(Units="unitless",Description="ASPIC0 clamp")
	  long	aspic0_gain; // @Metadata=(Units="unitless",Description="")
	  long	aspic0_rc; // @Metadata=(Units="unitless",Description="")
	  long	aspic0_tm; // @Metadata=(Units="unitless",Description="")
	  long	aspic1_af1; // @Metadata=(Units="unitless",Description="")
	  long	aspic1_clamp; // @Metadata=(Units="unitless",Description="")
	  long	aspic1_gain; // @Metadata=(Units="unitless",Description="")
	  long	aspic1_rc; // @Metadata=(Units="unitless",Description="")
	  long	aspic1_tm; // @Metadata=(Units="unitless",Description="")
	  long	bias0_csGate; // @Metadata=(Units="unitless",Description="")
	  long	bias0_csGateP; // @Metadata=(Units="volt",Description="")
	  long	bias0_gd; // @Metadata=(Units="unitless",Description="")
	  long	bias0_gdP; // @Metadata=(Units="volt",Description="")
	  long	bias0_od; // @Metadata=(Units="unitless",Description="")
	  long	bias0_odP; // @Metadata=(Units="volt",Description="")
	  long	bias0_og; // @Metadata=(Units="unitless",Description="")
	  long	bias0_ogP; // @Metadata=(Units="volt",Description="")
	  long	bias0_ogSh; // @Metadata=(Units="unitless",Description="")
	  long	bias0_rd; // @Metadata=(Units="unitless",Description="")
	  long	bias0_rdP; // @Metadata=(Units="volt",Description="")
	  long	dac_csGate; // @Metadata=(Units="unitless",Description="")
	  long	dac_pclkHigh; // @Metadata=(Units="unitless",Description="")
	  long	dac_pclkHighP; // @Metadata=(Units="volt",Description="")
	  long	dac_pclkHighSh; // @Metadata=(Units="unitless",Description="")
	  long	dac_pclkLow; // @Metadata=(Units="unitless",Description="")
	  long	dac_pclkLowP; // @Metadata=(Units="volt",Description="")
	  long	dac_pclkLowSh; // @Metadata=(Units="unitless",Description="")
	  long	dac_rgHigh; // @Metadata=(Units="unitless",Description="")
	  long	dac_rgHighP; // @Metadata=(Units="volt",Description="")
	  long	dac_rgHighSh; // @Metadata=(Units="unitless",Description="")
	  long	dac_rgLow; // @Metadata=(Units="unitless",Description="")
	  long	dac_rgLowP; // @Metadata=(Units="volt",Description="")
	  long	dac_rgLowSh; // @Metadata=(Units="unitless",Description="")
	  long	dac_sclkHigh; // @Metadata=(Units="unitless",Description="")
	  long	dac_sclkHighP; // @Metadata=(Units="volt",Description="")
	  long	dac_sclkHighSh; // @Metadata=(Units="unitless",Description="")
	  long	dac_sclkLow; // @Metadata=(Units="unitless",Description="")
	  long	dac_sclkLowP; // @Metadata=(Units="volt",Description="")
	  long	dac_sclkLowSh; // @Metadata=(Units="unitless",Description="")
	  string<8>	ccdManufacturer; // @Metadata=(Units="unitless",Description="CCD Manufacturer")
	  string<16>	ccdType; // @Metadata=(Units="unitless",Description="CCD Type")
	  string<16>	ccdSerialNumber; // @Metadata=(Units="unitless",Description="CCD Serial Number")
	  string<16>	ccdName; // @Metadata=(Units="unitless",Description="LSST assigned CCD name")
	  string<16>	rebName; // @Metadata=(Units="unitless",Description="LSST assigned REB name")
	  string<16>	rebSerialNumber; // @Metadata=(Units="unitless",Description="REB serial number")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_wrebSettingsApplied_16e8fb0b 
struct vacuum_8e5b6864 {  // @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")
	  float	tempCCD; // @Metadata=(Units="Celsius",Description="CCD temperature as measured by cryocon")
	  float	tempColdPlate; // @Metadata=(Units="Celsius",Description="Cold plate temperature as measured by cryocon")
	  float	tempCryoHead; // @Metadata=(Units="Celsius",Description="Cryo head temperature as measured by cryocon")
	  float	vacuum; // @Metadata=(Units="Torr",Description="Vacuum pressure as measured by Pfeiffer gauge")
	  float	tempCCDSetPoint; // @Metadata=(Units="Celsius",Description="CCD temperature set point as read from cryocon")
	};
#pragma keylist vacuum_8e5b6864 
struct wreb_7d89a834 {  // @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")
	  float	temp1; // @Metadata=(Units="Celsius",Description="On-board temperature measurement 1")
	  float	temp2; // @Metadata=(Units="Celsius",Description="On-board temperature measurement 2")
	  float	temp3; // @Metadata=(Units="Celsius",Description="On-board temperature measurement 3")
	  float	temp4; // @Metadata=(Units="Celsius",Description="On-board temperature measurement 4")
	  float	temp5; // @Metadata=(Units="Celsius",Description="On-board temperature measurement 5")
	  float	temp6; // @Metadata=(Units="Celsius",Description="On-board temperature measurement 6")
	  float	atemp0U; // @Metadata=(Units="Celsius",Description="ASPIC temperature Upper")
	  float	atemp0L; // @Metadata=(Units="Celsius",Description="ASPIC temperature Lower")
	  float	ccdTemp0; // @Metadata=(Units="Celsius",Description="Temperature for CCD")
	  float	digV; // @Metadata=(Units="volt",Description="Digital PS voltage measured on REB")
	  float	digI; // @Metadata=(Units="milliampere",Description="Digital PS current measured on REB")
	  float	anaV; // @Metadata=(Units="volt",Description="Analog PS voltage measured on REB")
	  float	anaI; // @Metadata=(Units="milliampere",Description="Analog PS current measured on REB")
	  float	clkHV; // @Metadata=(Units="volt",Description="Clock High PS voltage measured on REB")
	  float	clkHI; // @Metadata=(Units="milliampere",Description="Clock High PS current measured on REB")
	  float	clkLV; // @Metadata=(Units="volt",Description="Clock Low PS voltage measured on REB")
	  float	odV; // @Metadata=(Units="volt",Description="Output Drain PS voltage (OD)")
	  float	odI; // @Metadata=(Units="milliampere",Description="Output Drain PS current (OD)")
	  float	power; // @Metadata=(Units="watt",Description="Total power consumption of REB including heater by summing V*I for all power inputs")
	  float	pClkU; // @Metadata=(Units="volt",Description="Clock Rails: Parallel Upper")
	  float	pClkL; // @Metadata=(Units="volt",Description="Clock Rails: Parellel Lower")
	  float	sClkU; // @Metadata=(Units="volt",Description="Clock Rails: Serial Upper")
	  float	sClkL; // @Metadata=(Units="volt",Description="Clock Rails: Serial Lower")
	  float	rgU; // @Metadata=(Units="volt",Description="Reset Gate upper voltage")
	  float	rgL; // @Metadata=(Units="volt",Description="Reset Gate lower voltage")
	  float	pClk0; // @Metadata=(Units="volt",Description="Actual Parallel Clock voltage")
	  float	sClk0; // @Metadata=(Units="volt",Description="Actual Serial Clock voltage")
	  float	rg0; // @Metadata=(Units="volt",Description="Actual Reset Gate (RG) voltage")
	  float	od0V; // @Metadata=(Units="volt",Description="Applied Output Drain (OD) voltage")
	  float	og0V; // @Metadata=(Units="volt",Description="Applied OG voltage")
	  float	rd0V; // @Metadata=(Units="volt",Description="Applied RD voltage")
	  float	gd0V; // @Metadata=(Units="volt",Description="Applied GD voltage")
	  float	od0I; // @Metadata=(Units="milliampere",Description="Applied Output Drain current")
	  float	hvbiasSwitch; // @Metadata=(Units="unitless",Description="1=On; 0=Off")
	};
#pragma keylist wreb_7d89a834 
struct wrebPower_9571397f {  // @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")
	  float	digital_V; // @Metadata=(Units="volt",Description="")
	  float	digital_I; // @Metadata=(Units="milliampere",Description="")
	  float	analog_V; // @Metadata=(Units="volt",Description="")
	  float	analog_I; // @Metadata=(Units="milliampere",Description="")
	  float	clkHigh_V; // @Metadata=(Units="volt",Description="")
	  float	clkHigh_I; // @Metadata=(Units="milliampere",Description="")
	  float	clkLow_V; // @Metadata=(Units="volt",Description="")
	  float	clkLow_I; // @Metadata=(Units="milliampere",Description="")
	  float	od_V; // @Metadata=(Units="volt",Description="")
	  float	od_I; // @Metadata=(Units="milliampere",Description="")
	  float	dphi_V; // @Metadata=(Units="volt",Description="")
	  float	dphi_I; // @Metadata=(Units="milliampere",Description="")
	  float	hvbias_V; // @Metadata=(Units="volt",Description="")
	  float	hvbias_I; // @Metadata=(Units="milliampere",Description="")
	  float	fan_V; // @Metadata=(Units="volt",Description="")
	  float	fan_I; // @Metadata=(Units="milliampere",Description="")
	  float	otm_V; // @Metadata=(Units="volt",Description="")
	  float	otm_I; // @Metadata=(Units="milliampere",Description="")
	  float	aux_V; // @Metadata=(Units="volt",Description="")
	  float	aux_I; // @Metadata=(Units="milliampere",Description="")
	};
#pragma keylist wrebPower_9571397f 
struct ackcmd_6a4b8b98 {  // @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_6a4b8b98 
};

