// SAL_VERSION=5.0.1 XML_VERSION=6.2.1
module ATCamera {
struct bonnShutter_ac5d4f32 {  // @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")
	  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")
	  float	shutter5V; // @Metadata=(Units="volt",Description="5v supply measurement")
	  float	shutter36V; // @Metadata=(Units="volt",Description="36v supply measurement")
	};
#pragma keylist bonnShutter_ac5d4f32 
struct command_abort_6cab99df {  // @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")
	  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_6cab99df 
struct command_clear_a1ddefe6 {  // @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")
	  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	nClears; // @Metadata=(Units="unitless",Description="Number of consecutive clear operations to perform")
	};
#pragma keylist command_clear_a1ddefe6 
struct command_disable_28193b7d {  // @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")
	  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_28193b7d 
struct command_disableCalibration_82034578 {  // @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")
	  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")
	};
#pragma keylist command_disableCalibration_82034578 
struct command_discardRows_c5146889 {  // @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")
	  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	nRows; // @Metadata=(Units="unitless",Description="Number of rows to discard")
	};
#pragma keylist command_discardRows_c5146889 
struct command_enable_216e76ea {  // @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")
	  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_216e76ea 
struct command_enableCalibration_3c8a05d5 {  // @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")
	  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")
	};
#pragma keylist command_enableCalibration_3c8a05d5 
struct command_endImage_479f40bc {  // @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")
	  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")
	};
#pragma keylist command_endImage_479f40bc 
struct command_enterControl_725f4bc1 {  // @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")
	  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_725f4bc1 
struct command_exitControl_a946ebeb {  // @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")
	  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_a946ebeb 
struct command_initGuiders_a49d3e3a {  // @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")
	  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>	roiSpec; // @Metadata=(Units="unitless",Description="TBD specification for region of interest")
	};
#pragma keylist command_initGuiders_a49d3e3a 
struct command_initImage_356422eb {  // @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")
	  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	deltaT; // @Metadata=(Units="second",Description="Estimate of time period before takeImages will be issued")
	};
#pragma keylist command_initImage_356422eb 
struct command_setAuthList_f049e74d {  // @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")
	  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_f049e74d 
struct command_setLogLevel_4129d35a {  // @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")
	  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_4129d35a 
struct command_setValue_c23a40e3 {  // @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")
	  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_c23a40e3 
struct command_standby_e0ee3710 {  // @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")
	  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_e0ee3710 
struct command_start_f8be7cb1 {  // @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")
	  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_f8be7cb1 
struct command_startImage_71bf86dd {  // @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")
	  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	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")
	};
#pragma keylist command_startImage_71bf86dd 
struct command_stop_a56e9fd0 {  // @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")
	  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")
	};
#pragma keylist command_stop_a56e9fd0 
struct command_takeImages_a4060663 {  // @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")
	  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	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_a4060663 
struct daq_monitor_Store_62f869a1 {  // @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")
	  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	capacity; // @Metadata=(Units="Gbyte",Description="total disk space")
	  double	freeSpace; // @Metadata=(Units="Gbyte",Description="available disk space")
	  double	freeFraction; // @Metadata=(Units="unitless",Description="available-space fraction")
	};
#pragma keylist daq_monitor_Store_62f869a1 
struct fp_Ccd_5218adec {  // @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")
	  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	gDV; // @Metadata=(Units="Volt",Description="GD 0 voltage")
	  string	location; // @Metadata=(Units="unitless",Description="Ccd Location")
	  double	oDV; // @Metadata=(Units="Volt",Description="OD 0 voltage")
	  double	oGV; // @Metadata=(Units="Volt",Description="OG 0 voltage")
	  double	rDV; // @Metadata=(Units="Volt",Description="RD 0 voltage")
	  double	temp; // @Metadata=(Units="Celsius",Description="S00/Temp temperature")
	};
#pragma keylist fp_Ccd_5218adec 
struct fp_Reb_c3f9b3a8 {  // @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")
	  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	anaI; // @Metadata=(Units="mA",Description="Analog PS current")
	  double	anaV; // @Metadata=(Units="Volt",Description="Analog PS voltage")
	  double	aspicl_Temp0; // @Metadata=(Units="Celsius",Description="ASPIC 0 lower temp")
	  double	aspicl_Temp1; // @Metadata=(Units="Celsius",Description="ASPIC 1 lower temp")
	  double	aspicl_Temp2; // @Metadata=(Units="Celsius",Description="ASPIC 2 lower temp")
	  double	aspicu_Temp0; // @Metadata=(Units="Celsius",Description="ASPIC 0 upper temp")
	  double	aspicu_Temp1; // @Metadata=(Units="Celsius",Description="ASPIC 1 upper temp")
	  double	aspicu_Temp2; // @Metadata=(Units="Celsius",Description="ASPIC 2 upper temp")
	  double	clkHI; // @Metadata=(Units="mA",Description="Clock High PS current")
	  double	clkHV; // @Metadata=(Units="Volt",Description="Clock High PS voltage")
	  double	clkLI; // @Metadata=(Units="mA",Description="Clock Low PS current")
	  double	clkLV; // @Metadata=(Units="Volt",Description="Clock Low PS voltage")
	  double	digI; // @Metadata=(Units="mA",Description="Digital PS current")
	  double	digV; // @Metadata=(Units="Volt",Description="Digital PS voltage")
	  double	htrV; // @Metadata=(Units="Volt",Description="Heater voltage")
	  double	htrW; // @Metadata=(Units="Watt",Description="Heater power")
	  double	hVBiasSwitch; // @Metadata=(Units="unitless",Description="HV bias switch")
	  string	location; // @Metadata=(Units="unitless",Description="Reb Location")
	  double	oDI; // @Metadata=(Units="mA",Description="OD PS current")
	  double	oDV; // @Metadata=(Units="Volt",Description="OD PS voltage")
	  double	pClkL; // @Metadata=(Units="Volt",Description="Parallel lower")
	  double	pClkU; // @Metadata=(Units="Volt",Description="Parallel upper")
	  double	power; // @Metadata=(Units="Watt",Description="Total power")
	  double	ref05V; // @Metadata=(Units="Volt",Description="5V ref 0 voltage")
	  double	ref125V; // @Metadata=(Units="Volt",Description="2.5V ref 1 voltage")
	  double	ref15V; // @Metadata=(Units="Volt",Description="5V ref 1 voltage")
	  double	ref25V; // @Metadata=(Units="Volt",Description="5V ref 2 voltage")
	  double	refN12; // @Metadata=(Units="Volt",Description="Negative 12 ref")
	  double	refP12; // @Metadata=(Units="Volt",Description="Positive 12 ref")
	  double	rGL; // @Metadata=(Units="Volt",Description="Reset gate lower")
	  double	rGU; // @Metadata=(Units="Volt",Description="Reset gate upper")
	  double	rTDTemp; // @Metadata=(Units="Celsius",Description="RTD temperature")
	  double	sClkL; // @Metadata=(Units="Volt",Description="Serial lower")
	  double	sClkU; // @Metadata=(Units="Volt",Description="Serial upper")
	  double	temp1; // @Metadata=(Units="Celsius",Description="Board temperature 1")
	  double	temp10; // @Metadata=(Units="Celsius",Description="Board temperature 10")
	  double	temp2; // @Metadata=(Units="Celsius",Description="Board temperature 2")
	  double	temp3; // @Metadata=(Units="Celsius",Description="Board temperature 3")
	  double	temp4; // @Metadata=(Units="Celsius",Description="Board temperature 4")
	  double	temp5; // @Metadata=(Units="Celsius",Description="Board temperature 5")
	  double	temp6; // @Metadata=(Units="Celsius",Description="Board temperature 6")
	  double	temp7; // @Metadata=(Units="Celsius",Description="Board temperature 7")
	  double	temp8; // @Metadata=(Units="Celsius",Description="Board temperature 8")
	  double	temp9; // @Metadata=(Units="Celsius",Description="Board temperature 9")
	};
#pragma keylist fp_Reb_c3f9b3a8 
struct fp_RebTotalPower_54083e44 {  // @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")
	  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	rebTotalPower; // @Metadata=(Units="Watt",Description="Reb Total Power")
	};
#pragma keylist fp_RebTotalPower_54083e44 
struct fp_Segment_078dda01 {  // @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")
	  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	i[16]; // @Metadata=(Units="mA",Description="Amplifier current")
	  string	location; // @Metadata=(Units="unitless",Description="Segment Location")
	};
#pragma keylist fp_Segment_078dda01 
struct logevent_appliedSettingsMatchStart_a17cadb6 {  // @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")
	  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_a17cadb6 
struct logevent_authList_bc6c22bd {  // @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")
	  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_bc6c22bd 
struct logevent_calibrationDetailedState_78f4321b {  // @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")
	  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="Enumeration of valid substates")
	  double	timestampTransition; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_calibrationDetailedState_78f4321b 
	 const long calibrationDetailedState_DISABLED=1;
	 const long calibrationDetailedState_ENABLED=2;
	 const long calibrationDetailedState_INTEGRATING=3;
struct logevent_ccsCommandState_2e092801 {  // @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")
	  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="Substate of the CCS command.")
	  double	timestampTransition; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_ccsCommandState_2e092801 
	 const long ccsCommandState_IDLE=1;
	 const long ccsCommandState_BUSY=2;
struct logevent_daq_monitorSettingsApplied_e142de1c {  // @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")
	  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	version; // @Metadata=(Units="unitless",Description="Version number of these settings")
	  string	daqPartition; // @Metadata=(Units="unitless",Description="partition containing DAQ store")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_daq_monitorSettingsApplied_e142de1c 
struct logevent_daq_monitor_StatsSettingsApplied_23d3993a {  // @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")
	  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	version; // @Metadata=(Units="unitless",Description="Version number of these settings")
	  boolean	enablePeriodicPublication; // @Metadata=(Units="unitless",Description="enable periodic publication")
	  long	minDiffAlertWarning; // @Metadata=(Units="unitless",Description="minimum difference between successive reads to raise Alert at warning level")
	  long	minDiffLogWarning; // @Metadata=(Units="unitless",Description="minimum difference between successive reads to put warning in log")
	  string	sumDriverChecks; // @Metadata=(Units="unitless",Description="Driver Stats for warnings on sums")
	  string	sumDriverStats; // @Metadata=(Units="unitless",Description="Driver Stats for sums over location")
	  string	sumFirmwareChecks; // @Metadata=(Units="unitless",Description="Firmware Stats for warnings on sums")
	  string	sumFirmwareStats; // @Metadata=(Units="unitless",Description="Firmware Stats for sums over location")
	  string	sumRdsChecks; // @Metadata=(Units="unitless",Description="Rds Stats for warnings on sums")
	  string	sumRdsStats; // @Metadata=(Units="unitless",Description="Rds Stats for sums over location")
	  string	sumRmsChecks; // @Metadata=(Units="unitless",Description="Rms Stats for warnings on sums")
	  string	sumRmsStats; // @Metadata=(Units="unitless",Description="Rms Stats for sums over location")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_daq_monitor_StatsSettingsApplied_23d3993a 
struct logevent_daq_monitor_StoreSettingsApplied_f74acf59 {  // @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")
	  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	version; // @Metadata=(Units="unitless",Description="Version number of these settings")
	  string	daqFolder; // @Metadata=(Units="unitless",Description="top-level folder for DAQ store")
	  boolean	enableAutoPurge; // @Metadata=(Units="unitless",Description="enable automatic purge of DAQ store")
	  double	purgeTarget; // @Metadata=(Units="unitless",Description="goal of purge for minimum fraction of free disk space")
	  double	purgeThreshold; // @Metadata=(Units="unitless",Description="fraction of free disk space to trigger a store purge")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_daq_monitor_StoreSettingsApplied_f74acf59 
struct logevent_endOfImageTelemetry_97782a9f {  // @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")
	  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	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	measuredShutterOpenTime; // @Metadata=(Units="second",Description="The measured shutter open time; as computed by CCS. This is a best estimate based on a summary of the full information provided")
	  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_97782a9f 
struct logevent_endReadout_0fe754bf {  // @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")
	  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	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	requestedExposureTime; // @Metadata=(Units="second",Description="The requested exposure time (as specified in the takeImages command)")
	  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_0fe754bf 
struct logevent_endShutterClose_40ddb6dd {  // @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")
	  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	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_endShutterClose_40ddb6dd 
struct logevent_endShutterOpen_eb6afff9 {  // @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")
	  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	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_endShutterOpen_eb6afff9 
struct logevent_endTakeImage_b13ea60e {  // @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")
	  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	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_endTakeImage_b13ea60e 
struct logevent_errorCode_6e7cc6fe {  // @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")
	  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_6e7cc6fe 
struct logevent_fileCommandExecution_e27601ee {  // @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")
	  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<32>	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure; assigned by the camera")
	  double	timestampCommandComplete; // @Metadata=(Units="second",Description="The time when the command completed.")
	  string	command; // @Metadata=(Units="unitless",Description="The comamnd executed included arguments.")
	  long	rc; // @Metadata=(Units="unitless",Description="The return code from the command execution.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_fileCommandExecution_e27601ee 
struct logevent_fitsFilesWritten_ab03f345 {  // @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")
	  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<32>	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure; assigned by the camera")
	  double	timestampFilesWritten; // @Metadata=(Units="second",Description="The time when the (last) CCS FITS file was written.")
	  string	rootFileName; // @Metadata=(Units="unitless",Description="The common filesystem location of all files below.")
	  string	relativeFileNames; // @Metadata=(Units="unitless",Description="The file system location of each file; relative to rootFileName (: delimited).")
	  string	fileNode; // @Metadata=(Units="unitless",Description="The node on which each file is written (: delimited; in same order as above).")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_fitsFilesWritten_ab03f345 
struct logevent_focalPlaneDAQSettingsApplied_fc518eef {  // @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")
	  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	version; // @Metadata=(Units="unitless",Description="Version number of these settings")
	  string	daqFolder; // @Metadata=(Units="unitless",Description="Folder in 2-day store where images will be created")
	  string	daqPartition; // @Metadata=(Units="unitless",Description="DAQ partition")
	  boolean	emulatedDAQ; // @Metadata=(Units="unitless",Description="True when using an emulated DAQ")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_focalPlaneDAQSettingsApplied_fc518eef 
struct logevent_focalPlaneHardwareIdSettingsApplied_da3dba0b {  // @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")
	  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	version; // @Metadata=(Units="unitless",Description="Version number of these settings.")
	  string	rebLocation; // @Metadata=(Units="unitless",Description="REB location in focal-plane (e.g. R22RebX) (: delimited)")
	  string	rebLSSTName; // @Metadata=(Units="unitless",Description="REB LSST identifier (: delimited)")
	  string	ccdLocation; // @Metadata=(Units="unitless",Description="CCD location in focal-plane (e.g. R22Snn) (: delimited)")
	  string	ccdLSSTName; // @Metadata=(Units="unitless",Description="CCD LSST identifier (: delimited)")
	  string	ccdManSerNum; // @Metadata=(Units="unitless",Description="Sensor manufacturer's serial number (: delimited)")
	  string	raftLocation; // @Metadata=(Units="unitless",Description="Raft location in focal-plane (e.g. R22) (: delimited)")
	  string	raftLSSTName; // @Metadata=(Units="unitless",Description="Raft identifier (: delimited)")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_focalPlaneHardwareIdSettingsApplied_da3dba0b 
struct logevent_focalPlaneRaftTempControlSettingsApplied_7ac8cdcd {  // @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")
	  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	version; // @Metadata=(Units="unitless",Description="Version number of these settings")
	  string	raftLocation; // @Metadata=(Units="unitless",Description="Raft location in focal-plane (e.g. R22) (: delimited)")
	  double	raft_TempControl_awGain; // @Metadata=(Units="unitless",Description="anti-windup gain")
	  double	raft_TempControl_basePower; // @Metadata=(Units="Watt",Description="base power input")
	  double	raft_TempControl_gain; // @Metadata=(Units="unitless",Description="loop gain")
	  double	raft_TempControl_maxInput; // @Metadata=(Units="unitless",Description="maximum input")
	  double	raft_TempControl_maxOutput; // @Metadata=(Units="Watt",Description="maximum PID output")
	  double	raft_TempControl_minInput; // @Metadata=(Units="unitless",Description="minimum input")
	  double	raft_TempControl_minOutput; // @Metadata=(Units="Watt",Description="minimum PID output")
	  string	raft_TempControl_rebs; // @Metadata=(Units="unitless",Description="The REBs with heaters to use")
	  double	raft_TempControl_setTemp; // @Metadata=(Units="C",Description="Temperature set point")
	  double	raft_TempControl_smoothTime; // @Metadata=(Units="second",Description="input smoothing time")
	  string	raft_TempControl_tempChans; // @Metadata=(Units="unitless",Description="Temperature channels to use")
	  double	raft_TempControl_timeConst; // @Metadata=(Units="second",Description="integration time constant")
	  double	raft_TempControl_tolerance; // @Metadata=(Units="unitless",Description="maximum on-target error (%)")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_focalPlaneRaftTempControlSettingsApplied_7ac8cdcd 
struct logevent_focalPlaneRaftTempControlStatusSettingsApplied_b61cabfa {  // @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")
	  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	version; // @Metadata=(Units="unitless",Description="Version number of these settings")
	  string	raftLocation; // @Metadata=(Units="unitless",Description="Raft location in focal-plane (e.g. R22) (: delimited)")
	  boolean	raft_TempControl_active; // @Metadata=(Units="unitless",Description="True if loop is active")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_focalPlaneRaftTempControlStatusSettingsApplied_b61cabfa 
struct logevent_focalPlaneRebRaftsPowerSettingsApplied_e9002daa {  // @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")
	  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	version; // @Metadata=(Units="unitless",Description="Version number of these settings")
	  double	bias0_gdCal; // @Metadata=(Units="unitless",Description="GD convert factor")
	  double	bias0_gdTestVolts; // @Metadata=(Units="volt",Description="Shorts Test Voltage for GD")
	  double	bias0_gdTol; // @Metadata=(Units="volt",Description="Guard diode tolerance")
	  double	bias0_gdValueErr; // @Metadata=(Units="volt",Description="Tolerance for GD at TestVolts")
	  double	bias0_gdZeroErr; // @Metadata=(Units="volt",Description="Tolerance for GD at 0V")
	  double	bias0_odCal; // @Metadata=(Units="unitless",Description="OD convert factor")
	  double	bias0_odIMax; // @Metadata=(Units="A",Description="Max ODI value")
	  double	bias0_odTol; // @Metadata=(Units="volt",Description="Output drain tolerance")
	  double	bias0_odZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for OD at 0V")
	  double	bias0_ogCal; // @Metadata=(Units="unitless",Description="OG convert factor")
	  double	bias0_ogTestVolts; // @Metadata=(Units="volt",Description="Shorts Test Voltage for OG")
	  double	bias0_ogTol; // @Metadata=(Units="volt",Description="Output gate tolerance")
	  double	bias0_ogValueErr; // @Metadata=(Units="volt",Description="Tolerance for OG at TestVolts")
	  double	bias0_ogZeroErr; // @Metadata=(Units="volt",Description="Tolerance for OG at 0V")
	  double	bias0_rdCal; // @Metadata=(Units="unitless",Description="RD convert factor")
	  double	bias0_rdTestVolts; // @Metadata=(Units="volt",Description="Shorts Test Voltage for RD")
	  double	bias0_rdTol; // @Metadata=(Units="volt",Description="Reset drain tolerance")
	  double	bias0_rdValueErr; // @Metadata=(Units="volt",Description="Tolerance for RD at TestVolts")
	  double	bias0_rdZeroErr; // @Metadata=(Units="volt",Description="Tolerance for RD at 0V")
	  double	bias1_gdCal; // @Metadata=(Units="unitless",Description="GD convert factor")
	  double	bias1_gdTestVolts; // @Metadata=(Units="volt",Description="Shorts Test Voltage for GD")
	  double	bias1_gdTol; // @Metadata=(Units="volt",Description="Guard diode tolerance")
	  double	bias1_gdValueErr; // @Metadata=(Units="Volt",Description="Tolerance for GD at TestVolts")
	  double	bias1_gdZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for GD at 0V")
	  double	bias1_odCal; // @Metadata=(Units="unitless",Description="OD convert factor")
	  double	bias1_odIMax; // @Metadata=(Units="A",Description="Max ODI value")
	  double	bias1_odTol; // @Metadata=(Units="volt",Description="Output drain tolerance")
	  double	bias1_odZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for OD at 0V")
	  double	bias1_ogCal; // @Metadata=(Units="unitless",Description="OG convert factor")
	  double	bias1_ogTestVolts; // @Metadata=(Units="volt",Description="Shorts Test Voltage for OG")
	  double	bias1_ogTol; // @Metadata=(Units="volt",Description="Output gate tolerance")
	  double	bias1_ogValueErr; // @Metadata=(Units="Volt",Description="Tolerance for OG at TestVolts")
	  double	bias1_ogZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for OG at 0V")
	  double	bias1_rdCal; // @Metadata=(Units="unitless",Description="RD convert factor")
	  double	bias1_rdTestVolts; // @Metadata=(Units="volt",Description="Shorts Test Voltage for RD")
	  double	bias1_rdTol; // @Metadata=(Units="volt",Description="Reset drain tolerance")
	  double	bias1_rdValueErr; // @Metadata=(Units="volt",Description="Tolerance for RD at TestVolts")
	  double	bias1_rdZeroErr; // @Metadata=(Units="volt",Description="Tolerance for RD at 0V")
	  double	bias2_gdCal; // @Metadata=(Units="unitless",Description="GD convert factor")
	  double	bias2_gdTestVolts; // @Metadata=(Units="volt",Description="Shorts Test Voltage for GD")
	  double	bias2_gdTol; // @Metadata=(Units="volt",Description="Guard diode tolerance")
	  double	bias2_gdValueErr; // @Metadata=(Units="volt",Description="Tolerance for GD at TestVolts")
	  double	bias2_gdZeroErr; // @Metadata=(Units="volt",Description="Tolerance for GD at 0V")
	  double	bias2_odCal; // @Metadata=(Units="unitless",Description="OD convert factor")
	  double	bias2_odIMax; // @Metadata=(Units="A",Description="Max ODI value")
	  double	bias2_odTol; // @Metadata=(Units="volt",Description="Output drain tolerance")
	  double	bias2_odZeroErr; // @Metadata=(Units="volt",Description="Tolerance for OD at 0V")
	  double	bias2_ogCal; // @Metadata=(Units="unitless",Description="OG convert factor")
	  double	bias2_ogTestVolts; // @Metadata=(Units="volt",Description="Shorts Test Voltage for OG")
	  double	bias2_ogTol; // @Metadata=(Units="volt",Description="Output gate tolerance")
	  double	bias2_ogValueErr; // @Metadata=(Units="volt",Description="Tolerance for OG at TestVolts")
	  double	bias2_ogZeroErr; // @Metadata=(Units="volt",Description="Tolerance for OG at 0V")
	  double	bias2_rdCal; // @Metadata=(Units="unitless",Description="RD convert factor")
	  double	bias2_rdTestVolts; // @Metadata=(Units="volt",Description="Shorts Test Voltage for RD")
	  double	bias2_rdTol; // @Metadata=(Units="volt",Description="Reset drain tolerance")
	  double	bias2_rdValueErr; // @Metadata=(Units="volt",Description="Tolerance for RD at TestVolts")
	  double	bias2_rdZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for RD at 0V")
	  double	clkhiAmin; // @Metadata=(Units="A",Description="Minimum ON_State CLKHI (A) per REB")
	  double	clkhiQmax; // @Metadata=(Units="A",Description="Max OFF_State CLKHI (A) per REB")
	  double	clkliAmin; // @Metadata=(Units="A",Description="Minimum ON_State CLKLI (A) per REB")
	  double	clkliQmax; // @Metadata=(Units="A",Description="Max OFF_State CLKLI (A) per REB")
	  double	dac_clkhIMax; // @Metadata=(Units="A",Description="Max ClkHI value")
	  double	dac_clklIMax; // @Metadata=(Units="A",Description="Max ClkLI value")
	  double	dac_pclkHighCal; // @Metadata=(Units="unitless",Description="Parallel high calib")
	  double	dac_pclkHighTestV; // @Metadata=(Units="Volt",Description="Shorts Test Voltage for PClkU")
	  double	dac_pclkHighTol; // @Metadata=(Units="volt",Description="Parallel high tolerance")
	  double	dac_pclkHighValueErr; // @Metadata=(Units="Volt",Description="Tolerance for PClkU TestV")
	  double	dac_pclkHighZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for 0V w/PClkU test")
	  double	dac_pclkLowCal; // @Metadata=(Units="unitless",Description="Parallel low calib")
	  double	dac_pclkLowTestV; // @Metadata=(Units="Volt",Description="Shorts Test Voltage for PClkL")
	  double	dac_pclkLowTol; // @Metadata=(Units="volt",Description="Parallel low tolerance")
	  double	dac_pclkLowValueErr; // @Metadata=(Units="Volt",Description="Tolerance for PClkL TestV")
	  double	dac_pclkLowZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for 0V w/PClkL test")
	  double	dac_rgHighCal; // @Metadata=(Units="unitless",Description="Reset high calib")
	  double	dac_rgHighTestV; // @Metadata=(Units="Volt",Description="Shorts Test Voltage for RGU")
	  double	dac_rgHighTol; // @Metadata=(Units="volt",Description="Reset high tolerance")
	  double	dac_rgHighValueErr; // @Metadata=(Units="Volt",Description="Tolerance for RGU TestV")
	  double	dac_rgHighZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for 0V w/RGU test")
	  double	dac_rgLowCal; // @Metadata=(Units="unitless",Description="Reset low calib")
	  double	dac_rgLowTestV; // @Metadata=(Units="Volt",Description="Shorts Test Voltage for RGL")
	  double	dac_rgLowTol; // @Metadata=(Units="volt",Description="Reset low tolerance")
	  double	dac_rgLowValueErr; // @Metadata=(Units="Volt",Description="Tolerance for RGL TestV")
	  double	dac_rgLowZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for 0V w/RGL test")
	  double	dac_sclkHighCal; // @Metadata=(Units="unitless",Description="Serial high calib")
	  double	dac_sclkHighTestV; // @Metadata=(Units="Volt",Description="Shorts Test Voltage for SClkU")
	  double	dac_sclkHighTol; // @Metadata=(Units="volt",Description="Serial high tolerance")
	  double	dac_sclkHighValueErr; // @Metadata=(Units="Volt",Description="Tolerance for SClkU TestV")
	  double	dac_sclkHighZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for 0V w/SClkU test")
	  double	dac_sclkLowCal; // @Metadata=(Units="unitless",Description="Serial low calib")
	  double	dac_sclkLowTestV; // @Metadata=(Units="Volt",Description="Shorts Test Voltage for SClkL")
	  double	dac_sclkLowTol; // @Metadata=(Units="volt",Description="Serial low tolerance")
	  double	dac_sclkLowValueErr; // @Metadata=(Units="Volt",Description="Tolerance for SClkL TestV")
	  double	dac_sclkLowZeroErr; // @Metadata=(Units="Volt",Description="Tolerance for 0V w/SClkL test")
	  string	location; // @Metadata=(Units="unitless",Description="Reb Location")
	  double	maxDelta; // @Metadata=(Units="Volt",Description="Max allowed SlowAdcs delta")
	  double	maxStep; // @Metadata=(Units="Volt",Description="Max allowed SlowAdcs step")
	  double	minTol; // @Metadata=(Units="Volt",Description="Min allowed SlowAdcs tolerance")
	  long	nPowerOnPub; // @Metadata=(Units="unitless",Description="Number of consequtive monitor-update pubs after trigger")
	  double	odiAmin; // @Metadata=(Units="A",Description="Minimum ON_State ODI (A) per CCD")
	  double	odiQmax; // @Metadata=(Units="A",Description="Max OFF_State ODI (A) per CCD")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_focalPlaneRebRaftsPowerSettingsApplied_e9002daa 
struct logevent_focalPlaneRebRaftsSettingsApplied_e29f2969 {  // @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")
	  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	version; // @Metadata=(Units="unitless",Description="Version number of these settings")
	  double	bias0_csGateP; // @Metadata=(Units="mA",Description="Current source")
	  double	bias0_gdP; // @Metadata=(Units="volt",Description="Guard diode")
	  double	bias0_odP; // @Metadata=(Units="volt",Description="Output drain")
	  double	bias0_ogP; // @Metadata=(Units="volt",Description="Output gate")
	  double	bias0_rdP; // @Metadata=(Units="volt",Description="Reset drain")
	  double	bias1_csGateP; // @Metadata=(Units="mA",Description="Current source")
	  double	bias1_gdP; // @Metadata=(Units="volt",Description="Guard diode")
	  double	bias1_odP; // @Metadata=(Units="volt",Description="Output drain")
	  double	bias1_ogP; // @Metadata=(Units="volt",Description="Output gate")
	  double	bias1_rdP; // @Metadata=(Units="volt",Description="Reset drain")
	  double	bias2_csGateP; // @Metadata=(Units="mA",Description="Current source")
	  double	bias2_gdP; // @Metadata=(Units="volt",Description="Guard diode")
	  double	bias2_odP; // @Metadata=(Units="volt",Description="Output drain")
	  double	bias2_ogP; // @Metadata=(Units="volt",Description="Output gate")
	  double	bias2_rdP; // @Metadata=(Units="volt",Description="Reset drain")
	  double	dac_pclkHighP; // @Metadata=(Units="volt",Description="Parallel clock high")
	  double	dac_pclkLowP; // @Metadata=(Units="volt",Description="Parallel clock low")
	  double	dac_rgHighP; // @Metadata=(Units="volt",Description="Reset gate high")
	  double	dac_rgLowP; // @Metadata=(Units="volt",Description="Reset gate low")
	  double	dac_sclkHighP; // @Metadata=(Units="volt",Description="Serial clock high")
	  double	dac_sclkLowP; // @Metadata=(Units="volt",Description="Serial clock low")
	  boolean	disableRTDHardwareCheck; // @Metadata=(Units="unitless",Description="Disables the RTD derived CCD type check.")
	  string	location; // @Metadata=(Units="unitless",Description="Reb Location")
	  long	serialNum; // @Metadata=(Units="unitless",Description="Serial number")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_focalPlaneRebRaftsSettingsApplied_e29f2969 
struct logevent_focalPlaneSequencerConfigSettingsApplied_2d8886fe {  // @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")
	  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	clearCountParameter; // @Metadata=(Units="unitless",Description="Name of the clear count parameter")
	  string	clearMain; // @Metadata=(Units="unitless",Description="Name of the clear main")
	  string	idleFlushMain; // @Metadata=(Units="unitless",Description="Name of the idle flush main")
	  string	integrateMain; // @Metadata=(Units="unitless",Description="Name of the integrate main")
	  string	metaDataRegisters; // @Metadata=(Units="unitless",Description="Names of meta-data related registers which must be in the sequencer")
	  long	overCols; // @Metadata=(Units="unitless",Description="overCols")
	  long	overRows; // @Metadata=(Units="unitless",Description="overRows")
	  long	postCols; // @Metadata=(Units="unitless",Description="postCols")
	  long	postRows; // @Metadata=(Units="unitless",Description="postRows")
	  long	preCols; // @Metadata=(Units="unitless",Description="preCols")
	  long	preRows; // @Metadata=(Units="unitless",Description="preRows")
	  string	pseudoReadMain; // @Metadata=(Units="unitless",Description="Name of the pseudo read main")
	  long	readCols; // @Metadata=(Units="unitless",Description="readCols")
	  long	readCols2; // @Metadata=(Units="unitless",Description="readCol2")
	  string	readMain; // @Metadata=(Units="unitless",Description="Name of the read main")
	  long	readRows; // @Metadata=(Units="unitless",Description="readRows")
	  string	rowShiftForwardMain; // @Metadata=(Units="unitless",Description="Name of the row shift forward main")
	  string	rowShiftReverseMain; // @Metadata=(Units="unitless",Description="Name of the row shift reverse main")
	  boolean	scanMode; // @Metadata=(Units="unitless",Description="True if the sequencer is in scan mode")
	  string	sequencer; // @Metadata=(Units="unitless",Description="sequencer")
	  string	sequencerChecksums; // @Metadata=(Units="unitless",Description="sequencerChecksums")
	  string	shiftCountParameter; // @Metadata=(Units="unitless",Description="Name of the shift count parameter")
	  long	transparentMode; // @Metadata=(Units="unitless",Description="True if the ASPIC is in transparent mode")
	  long	underCols; // @Metadata=(Units="unitless",Description="underCols")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_focalPlaneSequencerConfigSettingsApplied_2d8886fe 
struct logevent_focalPlaneSummaryInfo_d67fdaaf {  // @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")
	  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	ccdLocation; // @Metadata=(Units="unitless",Description="CCD location in focal-plane (e.g. R22S01) (: delimited).")
	  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")
	  string	rebSerialNumber; // @Metadata=(Units="unitless",Description="REB hardware serial number (: delimited)")
	  string	rebLSSTName; // @Metadata=(Units="unitless",Description="REB LSST identifier (: delimited)")
	  string	ccdLSSTName; // @Metadata=(Units="unitless",Description="CCD LSST identifier (: delimited)")
	  string	raftLSSTName; // @Metadata=(Units="unitless",Description="Raft LSST identifier (: delimited)")
	  string	ccdManSerNum; // @Metadata=(Units="unitless",Description="Sensor manufacturer's serial number (: delimited)")
	  string	ccdManufacturer; // @Metadata=(Units="unitless",Description="Sensor manufacturer E2V or ITL (: delimited)")
	  long	ccdType; // @Metadata=(Units="unitless",Description="The type of each CCD")
	  double	ccdTempSetPoint; // @Metadata=(Units="unitless",Description="Sensor temperature set point")
	  string	sequencerKey; // @Metadata=(Units="unitless",Description="The name of the CCD sequencer loaded (: delimited)")
	  string	sequencerChecksum; // @Metadata=(Units="unitless",Description="The checksum of the CCD sequencer loaded (: delimited)")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_focalPlaneSummaryInfo_d67fdaaf 
	 const long focalPlaneSummaryInfo_E2V=1;
	 const long focalPlaneSummaryInfo_ITL=2;
struct logevent_heartbeat_0863a6ef {  // @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")
	  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_0863a6ef 
struct logevent_imageReadinessDetailedState_0fe8da65 {  // @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")
	  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="Enumeration of valid substates")
	  double	timestampTransition; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_imageReadinessDetailedState_0fe8da65 
	 const long imageReadinessDetailedState_READY=1;
	 const long imageReadinessDetailedState_NOT_READY=2;
	 const long imageReadinessDetailedState_GETTING_READY=3;
struct logevent_imageReadoutParameters_9a683320 {  // @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")
	  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	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure")
	  string	ccdLocation; // @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_9a683320 
	 const long imageReadoutParameters_E2V=1;
	 const long imageReadoutParameters_ITL=2;
struct logevent_imageStored_e58aa865 {  // @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")
	  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<32>	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure; assigned by the camera")
	  double	timestampImageStored; // @Metadata=(Units="second",Description="The time when the DAQ image was store was complete.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_imageStored_e58aa865 
struct logevent_imageVisualization_bfb711f2 {  // @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")
	  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<32>	imageName; // @Metadata=(Units="unitless",Description="The imageName for this specific exposure; assigned by the camera")
	  double	timestampVisualizationAvailable; // @Metadata=(Units="second",Description="The time when the command completed.")
	  string	url; // @Metadata=(Units="unitless",Description="The URL at which the full image visualization is available.")
	  string	thumbnail; // @Metadata=(Units="unitless",Description="The URL at which the image thumbnail is available.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_imageVisualization_bfb711f2 
struct logevent_logLevel_a4c9ff21 {  // @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")
	  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_a4c9ff21 
struct logevent_logMessage_cd65a1f6 {  // @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")
	  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_cd65a1f6 
struct logevent_notReadyToTakeImage_4032d026 {  // @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")
	  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	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_notReadyToTakeImage_4032d026 
struct logevent_offlineDetailedState_5ae20cbf {  // @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")
	  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="Enumeration of valid substates")
	  double	timestampTransition; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_offlineDetailedState_5ae20cbf 
	 const long offlineDetailedState_OFFLINE_AVAILABLE=1;
	 const long offlineDetailedState_OFFLINE_PUBLISH_ONLY=2;
struct logevent_prepareToTakeImage_89d2de49 {  // @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")
	  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	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_prepareToTakeImage_89d2de49 
struct logevent_raftsDetailedState_a3ba17ad {  // @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")
	  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="Enumeration of valid substates")
	  double	timestampTransition; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_raftsDetailedState_a3ba17ad 
	 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_c589a281 {  // @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")
	  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	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_readyToTakeImage_c589a281 
struct logevent_settingVersions_25205715 {  // @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")
	  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_25205715 
struct logevent_settingsApplied_9cc127de {  // @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")
	  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_9cc127de 
struct logevent_shutterBladeMotionProfile_45cc44b6 {  // @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")
	  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	blade; // @Metadata=(Units="unitless",Description="The blade that is moving")
	  long	direction; // @Metadata=(Units="unitless",Description="Is the blade opening or closing")
	  double	timestampStart; // @Metadata=(Units="second",Description="The time at which the motion started (TAI)")
	  double	startPosition; // @Metadata=(Units="mm",Description="The start position of the blade")
	  double	targetDuration; // @Metadata=(Units="second",Description="Requested blade motion time")
	  double	targetPosition; // @Metadata=(Units="mm",Description="Requested position at end of motion")
	  double	endPosition; // @Metadata=(Units="mm",Description="Actual position and end of motion")
	  double	actualDuration; // @Metadata=(Units="second",Description="Actual blade motion time")
	  long	hallSensorCount; // @Metadata=(Units="unitless",Description="Actual number of hall sensor transitions")
	  double	timestampHallSensor[240]; // @Metadata=(Units="second",Description="Hall effect switch trasition times")
	  long	hallSensorID[240]; // @Metadata=(Units="unitless",Description="Which Hall effect switch trasitioned")
	  double	hallSensorPosition[240]; // @Metadata=(Units="mm",Description="Estimated position of the leading edge of the blade at transition time")
	  boolean	hallSensorTransition[240]; // @Metadata=(Units="unitless",Description="true if switch turned on; false if switch turned off")
	  long	encoderCount; // @Metadata=(Units="unitless",Description="Actual number of encoder measurements")
	  double	timestampEncoder[240]; // @Metadata=(Units="second",Description="timestamps for motor encoder position measurements (TAI)")
	  double	encoderPosition[240]; // @Metadata=(Units="mm",Description="Positions for motor encoder position measurements")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_shutterBladeMotionProfile_45cc44b6 
	 const long shutterBladeMotionProfile_PLUS_X=1;
	 const long shutterBladeMotionProfile_MINUS_X=2;
	 const long shutterBladeMotionProfile_OPEN=1;
	 const long shutterBladeMotionProfile_CLOSE=2;
struct logevent_shutterDetailedState_c294646b {  // @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")
	  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="Enumeration of valid substates")
	  double	timestampTransition; // @Metadata=(Units="second",Description="The time at which the state transition occurred")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_shutterDetailedState_c294646b 
	 const long shutterDetailedState_CLOSED=1;
	 const long shutterDetailedState_OPEN=2;
	 const long shutterDetailedState_CLOSING=3;
	 const long shutterDetailedState_OPENING=4;
struct logevent_shutterMotionProfile_8db7f12f {  // @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")
	  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	measuredExposureTime; // @Metadata=(Units="second",Description="The measured average exposure time")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_shutterMotionProfile_8db7f12f 
struct logevent_simulationMode_ee1e6dea {  // @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")
	  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_ee1e6dea 
struct logevent_softwareVersions_b8ddbf0b {  // @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")
	  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_b8ddbf0b 
struct logevent_startIntegration_f43840e7 {  // @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")
	  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	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_f43840e7 
struct logevent_startReadout_615a98d7 {  // @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")
	  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	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_615a98d7 
struct logevent_startShutterClose_66c322a5 {  // @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")
	  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	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_startShutterClose_66c322a5 
struct logevent_startShutterOpen_83822821 {  // @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")
	  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	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_startShutterOpen_83822821 
struct logevent_summaryState_106508a3 {  // @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")
	  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_106508a3 
struct vacuum_35a37492 {  // @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")
	  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")
	  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_35a37492 
struct wreb_9113eef0 {  // @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")
	  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")
	  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_9113eef0 
struct wrebPower_4e7c0f2b {  // @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")
	  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")
	  float	digital_V; // @Metadata=(Units="volt",Description="Digital voltage")
	  float	digital_I; // @Metadata=(Units="milliampere",Description="Digital current")
	  float	analog_V; // @Metadata=(Units="volt",Description="Analog voltage")
	  float	analog_I; // @Metadata=(Units="milliampere",Description="Analog current")
	  float	clkHigh_V; // @Metadata=(Units="volt",Description="Clock High Voltage")
	  float	clkHigh_I; // @Metadata=(Units="milliampere",Description="Clock High Current")
	  float	clkLow_V; // @Metadata=(Units="volt",Description="Clock Low Voltage")
	  float	clkLow_I; // @Metadata=(Units="milliampere",Description="Clock High Voltage")
	  float	od_V; // @Metadata=(Units="volt",Description="OD Voltage")
	  float	od_I; // @Metadata=(Units="milliampere",Description="OD Current")
	  float	dphi_V; // @Metadata=(Units="volt",Description="DPhi Voltage")
	  float	dphi_I; // @Metadata=(Units="milliampere",Description="DPhi Current")
	  float	hvbias_V; // @Metadata=(Units="volt",Description="HV bias Voltage")
	  float	hvbias_I; // @Metadata=(Units="milliampere",Description="HV bias Current")
	  float	fan_V; // @Metadata=(Units="volt",Description="Fan voltage")
	  float	fan_I; // @Metadata=(Units="milliampere",Description="Fan current")
	  float	otm_V; // @Metadata=(Units="volt",Description="OTM voltage")
	  float	otm_I; // @Metadata=(Units="milliampere",Description="OTM current")
	  float	aux_V; // @Metadata=(Units="volt",Description="Auxilliary Voltage")
	  float	aux_I; // @Metadata=(Units="milliampere",Description="Auxilliary Current")
	};
#pragma keylist wrebPower_4e7c0f2b 
struct ackcmd_f0c279a1 {  // @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	ack;
	  long	error;
	  string<256>	result;
	  long	host;
	  string	identity;
	  long	origin;
	  long	cmdtype;
	  double	timeout;
	};
#pragma keylist ackcmd_f0c279a1 
};

