// SAL_VERSION=4.1.2 XML_VERSION=5.1.0
module MTAOS {
struct command_abort_4043de51 {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_abort_4043de51 
struct command_disable_c5715478 {  // @Metadata=(Description="Transition from state Enabled to Disabled.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_disable_c5715478 
struct command_enable_aacd6d13 {  // @Metadata=(Description="Transition from state Disabled to Enabled.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_enable_aacd6d13 
struct command_enterControl_42e3fa13 {  // @Metadata=(Description="Transition from state Offline to Standby. Only "externally commandable" CSCs support this command; other CSCs start in Standby state and quit when they go to Offline.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_enterControl_42e3fa13 
struct command_exitControl_d9479dc5 {  // @Metadata=(Description="Transition from state Standby to Offline. For CSCs that are not "externally commandable" this makes the CSC quit.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_exitControl_d9479dc5 
struct command_issueWavefrontCorrection_3f95c6ce {  // @Metadata=(Description="Issue the wavefront correction to subsystems based on the most recently measured wavefront error.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="This value is ignored.")
	};
#pragma keylist command_issueWavefrontCorrection_3f95c6ce 
struct command_processCalibrationProducts_5538b309 {  // @Metadata=(Description="Process new calibration products.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	directoryPath; // @Metadata=(Units="unitless",Description="Absolute directory path to calibration products.")
	};
#pragma keylist command_processCalibrationProducts_5538b309 
struct command_processCmosWavefrontError_cbdbbcdf {  // @Metadata=(Description="Process the wavefront data collection by CMOS camera.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	intraImgPath; // @Metadata=(Units="unitless",Description="Absolute path to intra-focal wavefront image FITS file.")
	  string	extraImgPath; // @Metadata=(Units="unitless",Description="Absolute path to extra-focal wavefront image FITS file.")
	  double	sglBrightStarPixelX[10]; // @Metadata=(Units="unitless",Description="Single bright star pixel x position. Put -99999 for the empty star.")
	  double	sglBrightStarPixelY[10]; // @Metadata=(Units="unitless",Description="Single bright star pixel y position. Put -99999 for the empty star.")
	  long	filter; // @Metadata=(Units="unitless",Description="Active filter type. Use 1-6 for u; g; r; i; z; and y. Use 7 for reference.")
	  double	cameraRotation; // @Metadata=(Units="degree",Description="Camera rotation angle.")
	  double	userGain; // @Metadata=(Units="unitless",Description="Gain value between 0 and 1. Set to -1 to ignore user gain.")
	};
#pragma keylist command_processCmosWavefrontError_cbdbbcdf 
struct command_processIntraExtraWavefrontError_8fa8615f {  // @Metadata=(Description="Process the wavefront data collection by camera piston.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	intraVisit; // @Metadata=(Units="unitless",Description="Intra-focal image visit number.")
	  long	extraVisit; // @Metadata=(Units="unitless",Description="Extra-focal image visit number.")
	  string	intraDirectoryPath; // @Metadata=(Units="unitless",Description="Absolute directory path to intra-focal wavefront data collection.")
	  string	extraDirectoryPath; // @Metadata=(Units="unitless",Description="Absolute directory path to extra-focal wavefront data collection.")
	  double	fieldRA; // @Metadata=(Units="degree",Description="Right ascension of telescope boresight.")
	  double	fieldDEC; // @Metadata=(Units="degree",Description="Declination of telescope boresight.")
	  long	filter; // @Metadata=(Units="unitless",Description="Active filter type. Use 1-6 for u; g; r; i; z; and y. Use 7 for reference.")
	  double	cameraRotation; // @Metadata=(Units="degree",Description="Camera rotation angle.")
	  double	userGain; // @Metadata=(Units="unitless",Description="Gain value between 0 and 1. Set to -1 to ignore user gain.")
	};
#pragma keylist command_processIntraExtraWavefrontError_8fa8615f 
struct command_processShWavefrontError_e9195ad7 {  // @Metadata=(Description="Process the wavefront error by Shack-Hartmann wavefront sensor.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	annularZernikePoly[19]; // @Metadata=(Units="micron",Description="z4-z22 terms of annular Zernike polynomials.")
	  double	cameraRotation; // @Metadata=(Units="degree",Description="Camera rotation angle.")
	  double	userGain; // @Metadata=(Units="unitless",Description="Gain value between 0 and 1. Set to -1 to ignore user gain.")
	};
#pragma keylist command_processShWavefrontError_e9195ad7 
struct command_processWavefrontError_6ce79494 {  // @Metadata=(Description="Process the wavefront data collection at corner splitted sensors.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	visit; // @Metadata=(Units="unitless",Description="Image visit number.")
	  string	directoryPath; // @Metadata=(Units="unitless",Description="Absolute directory path to wavefront data collection.")
	  double	fieldRA; // @Metadata=(Units="degree",Description="Right ascension of telescope boresight.")
	  double	fieldDEC; // @Metadata=(Units="degree",Description="Declination of telescope boresight.")
	  long	filter; // @Metadata=(Units="unitless",Description="Active filter type. Use 1-6 for u; g; r; i; z; and y. Use 7 for reference.")
	  double	cameraRotation; // @Metadata=(Units="degree",Description="Camera rotation angle.")
	  double	userGain; // @Metadata=(Units="unitless",Description="Gain value between 0 and 1. Set to -1 to ignore user gain.")
	};
#pragma keylist command_processWavefrontError_6ce79494 
struct command_resetWavefrontCorrection_07cd81be {  // @Metadata=(Description="Reset the current wavefront error correction. The aggregated degree of freedom in optical feedback control will be reset to the initial state.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="This value is ignored.")
	};
#pragma keylist command_resetWavefrontCorrection_07cd81be 
struct command_setLogLevel_5d98e986 {  // @Metadata=(Description="Set the logging level.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	level; // @Metadata=(Units="unitless",Description="Logging level; as a Python logging level: error=40; warning=30; info=20; debug=10.")
	};
#pragma keylist command_setLogLevel_5d98e986 
struct command_setSimulationMode_d4bf241c {  // @Metadata=(Description="Set the simulation mode.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	mode; // @Metadata=(Units="unitless",Description="Desired simulation mode; 0 for normal operation (no simulation); other supported values are specific to each CSC.")
	};
#pragma keylist command_setSimulationMode_d4bf241c 
struct command_setValue_2d2d06a0 {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string<256>	parametersAndValues; // @Metadata=(Units="unitless",Description="List of parameters and their values as a Json string")
	};
#pragma keylist command_setValue_2d2d06a0 
struct command_standby_cafcca8b {  // @Metadata=(Description="Transition from state Offline; Disabled or Fault to Standby.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	value; // @Metadata=(Units="unitless",Description="Not used")
	};
#pragma keylist command_standby_cafcca8b 
struct command_start_e3bc6aea {  // @Metadata=(Description="Transition from state Standby to Disable; in a specified configuration.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string<256>	settingsToApply; // @Metadata=(Units="unitless",Description="Name of the selected settings set")
	};
#pragma keylist command_start_e3bc6aea 
struct logevent_appliedSettingsMatchStart_0b790568 {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	appliedSettingsMatchStartIsTrue; // @Metadata=(Units="unitless",Description="True when the configuration matches the start conditions")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_appliedSettingsMatchStart_0b790568 
struct logevent_cameraHexapodCorrection_986206ba {  // @Metadata=(Description="Correction to the camera hexapod.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  double	x; // @Metadata=(Units="micron",Description="X position offset.")
	  double	y; // @Metadata=(Units="micron",Description="Y position offset.")
	  double	z; // @Metadata=(Units="micron",Description="Z position offset.")
	  double	u; // @Metadata=(Units="degree",Description="X rotation offset.")
	  double	v; // @Metadata=(Units="degree",Description="Y rotation offset.")
	  double	w; // @Metadata=(Units="degree",Description="Z rotation offset.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_cameraHexapodCorrection_986206ba 
struct logevent_degreeOfFreedom_2209c458 {  // @Metadata=(Description="Calculated degree of freedom.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  double	aggregatedDoF[50]; // @Metadata=(Units="micron",Description="Aggregated degree of freedom in the control algorithm. The unit of angle-related elements is arcsec instead of micron.")
	  double	visitDoF[50]; // @Metadata=(Units="micron",Description="Calculated degree of freedom in the last visit. The unit of angle-related elements is arcsec instead of micron.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_degreeOfFreedom_2209c458 
struct logevent_errorCode_1da15f0a {  // @Metadata=(Description="Output when a CSC goes into the Fault state as an explanation of the problem.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	errorCode; // @Metadata=(Units="unitless",Description="A numeric error code")
	  string	errorReport; // @Metadata=(Units="unitless",Description="An string providing detailed information about the error")
	  string	traceback; // @Metadata=(Units="unitless",Description="An optional stack trace of the error condition")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_errorCode_1da15f0a 
struct logevent_heartbeat_c24dab60 {  // @Metadata=(Description="")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  boolean	heartbeat; // @Metadata=(Units="unitless",Description="Beats the drum.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_heartbeat_c24dab60 
struct logevent_logLevel_41c6a0ff {  // @Metadata=(Description="Current logging level.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	level; // @Metadata=(Units="unitless",Description="Current logging level; a Python logging level: error=40; warning=30; info=20; debug=10.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_logLevel_41c6a0ff 
struct logevent_logMessage_4c3588d6 {  // @Metadata=(Description="A log message.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	name; // @Metadata=(Units="unitless",Description="Log name.")
	  long	level; // @Metadata=(Units="unitless",Description="Message level; a Python logging level: error=40; warning=30; info=20; debug=10.")
	  string	message; // @Metadata=(Units="unitless",Description="Log message.")
	  string	traceback; // @Metadata=(Units="unitless",Description="Exception traceback; "" if not an exception.")
	  string	filePath; // @Metadata=(Units="unitless",Description="Path to source file.")
	  string	functionName; // @Metadata=(Units="unitless",Description="Function or method name.")
	  long	lineNumber; // @Metadata=(Units="unitless",Description="Line number in the file specified by filePath.")
	  long	process; // @Metadata=(Units="unitless",Description="Process ID.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_logMessage_4c3588d6 
struct logevent_m1m3Correction_3b33f71f {  // @Metadata=(Description="Correction to M1M3.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  float	zForces[156]; // @Metadata=(Units="newton",Description="Actuator force in z direction.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_m1m3Correction_3b33f71f 
struct logevent_m2Correction_18805b39 {  // @Metadata=(Description="Correction to M2.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  float	zForces[72]; // @Metadata=(Units="newton",Description="Actuator force in z direction.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_m2Correction_18805b39 
struct logevent_m2HexapodCorrection_671f175f {  // @Metadata=(Description="Correction to the M2 hexapod.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  double	x; // @Metadata=(Units="micron",Description="X position offset.")
	  double	y; // @Metadata=(Units="micron",Description="Y position offset.")
	  double	z; // @Metadata=(Units="micron",Description="Z position offset.")
	  double	u; // @Metadata=(Units="degree",Description="X rotation offset.")
	  double	v; // @Metadata=(Units="degree",Description="Y rotation offset.")
	  double	w; // @Metadata=(Units="degree",Description="Z rotation offset.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_m2HexapodCorrection_671f175f 
struct logevent_ofcWarning_505c0260 {  // @Metadata=(Description="Warning of optical feedback control.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  long	warning; // @Metadata=(Units="unitless",Description="Specific warning type.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_ofcWarning_505c0260 
struct logevent_rejectedCameraHexapodCorrection_4caa4339 {  // @Metadata=(Description="Rejected correction to the camera hexapod.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  double	x; // @Metadata=(Units="micron",Description="X position offset.")
	  double	y; // @Metadata=(Units="micron",Description="Y position offset.")
	  double	z; // @Metadata=(Units="micron",Description="Z position offset.")
	  double	u; // @Metadata=(Units="degree",Description="X rotation offset.")
	  double	v; // @Metadata=(Units="degree",Description="Y rotation offset.")
	  double	w; // @Metadata=(Units="degree",Description="Z rotation offset.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_rejectedCameraHexapodCorrection_4caa4339 
struct logevent_rejectedDegreeOfFreedom_4ff446cc {  // @Metadata=(Description="Rejected degree of freedom.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  double	aggregatedDoF[50]; // @Metadata=(Units="micron",Description="Aggregated degree of freedom in the control algorithm. The unit of angle-related elements is arcsec instead of micron.")
	  double	visitDoF[50]; // @Metadata=(Units="micron",Description="Calculated degree of freedom in the last visit. The unit of angle-related elements is arcsec instead of micron.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_rejectedDegreeOfFreedom_4ff446cc 
struct logevent_rejectedM1M3Correction_df89fb50 {  // @Metadata=(Description="Rejected correction to M1M3.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  float	zForces[156]; // @Metadata=(Units="newton",Description="Actuator force in z direction.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_rejectedM1M3Correction_df89fb50 
struct logevent_rejectedM2Correction_6198a7f2 {  // @Metadata=(Description="Rejected correction to M2.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  float	zForces[72]; // @Metadata=(Units="newton",Description="Actuator force in z direction.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_rejectedM2Correction_6198a7f2 
struct logevent_rejectedM2HexapodCorrection_08686471 {  // @Metadata=(Description="Rejected correction to the M2 hexapod.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  double	x; // @Metadata=(Units="micron",Description="X position offset.")
	  double	y; // @Metadata=(Units="micron",Description="Y position offset.")
	  double	z; // @Metadata=(Units="micron",Description="Z position offset.")
	  double	u; // @Metadata=(Units="degree",Description="X rotation offset.")
	  double	v; // @Metadata=(Units="degree",Description="Y rotation offset.")
	  double	w; // @Metadata=(Units="degree",Description="Z rotation offset.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_rejectedM2HexapodCorrection_08686471 
struct logevent_rejectedWavefrontError_f63c6f8c {  // @Metadata=(Description="Rejected wavefront error.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  short	sensorId; // @Metadata=(Units="unitless",Description="Wavefront sensor ID.")
	  double	annularZernikePoly[19]; // @Metadata=(Units="micron",Description="z4-z22 terms of annular Zernike polynomials.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_rejectedWavefrontError_f63c6f8c 
struct logevent_settingVersions_89ad5728 {  // @Metadata=(Description="Information about settings which can be specified in the start command.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string	recommendedSettingsVersion; // @Metadata=(Units="unitless",Description="List of comma seperated recomended versions of settings sets")
	  string	recommendedSettingsLabels; // @Metadata=(Units="unitless",Description="List of comma seperated names of settings sets")
	  string	settingsUrl; // @Metadata=(Units="unitless",Description="The URL where the settings sets definitions can be found")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_settingVersions_89ad5728 
struct logevent_settingsApplied_68fb9877 {  // @Metadata=(Description="Base settings applied.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string<256>	settingsVersion; // @Metadata=(Units="unitless",Description="The SHA or name corresponding to the published configuration")
	  string	otherSettingsEvents; // @Metadata=(Units="unitless",Description="A comma delimited list of other specific CSC configuration events. This may be blank if no other CSC specific events are necessary")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_settingsApplied_68fb9877 
struct logevent_simulationMode_36caa5bd {  // @Metadata=(Description="Current simulation mode.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	mode; // @Metadata=(Units="unitless",Description="Current simulation mode; 0 for normal operation (no simulation); other supported values are specific to each CSC.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_simulationMode_36caa5bd 
struct logevent_softwareVersions_13cdb27c {  // @Metadata=(Description="Current verions of software in use by CSC.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  string<16>	salVersion; // @Metadata=(Units="unitless",Description="This is the current version of SAL generation")
	  string<16>	xmlVersion; // @Metadata=(Units="unitless",Description="This is the current version of CSC XML")
	  string<16>	openSpliceVersion; // @Metadata=(Units="unitless",Description="This is the current version of OpenSplice")
	  string<16>	cscVersion; // @Metadata=(Units="unitless",Description="This is the top-level version of the CSC")
	  string	subsystemVersions; // @Metadata=(Units="unitless",Description="A comma delimited list of key=value pairs relating subsystem name (key) to its version number (value). This may be left blank if there are no subsystems within a CSC")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_softwareVersions_13cdb27c 
struct logevent_summaryState_2379524d {  // @Metadata=(Description="Current summary state of the CSC")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  long	summaryState; // @Metadata=(Units="unitless",Description="High level state machine state identifier")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_summaryState_2379524d 
struct logevent_wavefrontError_6d417bd4 {  // @Metadata=(Description="Calculated wavefront error.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  short	sensorId; // @Metadata=(Units="unitless",Description="Wavefront sensor ID.")
	  double	annularZernikePoly[19]; // @Metadata=(Units="micron",Description="z4-z22 terms of annular Zernike polynomials.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_wavefrontError_6d417bd4 
	 const long MTAOS_shared_SummaryState_DisabledState=1;
	 const long MTAOS_shared_SummaryState_EnabledState=2;
	 const long MTAOS_shared_SummaryState_FaultState=3;
	 const long MTAOS_shared_SummaryState_OfflineState=4;
	 const long MTAOS_shared_SummaryState_StandbyState=5;
	 const long MTAOS_shared_WEPWarning_NoWarning=1;
	 const long MTAOS_shared_WEPWarning_InvalidSensorId=2;
	 const long MTAOS_shared_WEPWarning_InvalidAnnularZernikePoly=3;
	 const long MTAOS_shared_OFCWarning_NoWarning=1;
	 const long MTAOS_shared_OFCWarning_NoEnoughAnnularZernikePoly=2;
struct logevent_wepWarning_f77c2688 {  // @Metadata=(Description="Warning of wavefront estimation pipeline.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  long	warning; // @Metadata=(Units="unitless",Description="Specific warning type.")
	  long	priority; // @Metadata=(Units="unitless",Description="Priority code")
	};
#pragma keylist logevent_wepWarning_f77c2688 
struct ofcDuration_8f7d57b9 {  // @Metadata=(Description="Duration of time to calculate the degree of freedom.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  double	calcTime; // @Metadata=(Units="second",Description="Average of calculation time.")
	};
#pragma keylist ofcDuration_8f7d57b9 
struct wepDuration_35ba5f79 {  // @Metadata=(Description="Duration of time to process the wavefront image data.")
	  string<8>	private_revCode; //private // @Metadata=(Units="unitless",Description="Revision code of topic")
	  double	private_sndStamp; //private // @Metadata=(Units="second",Description="TAI at sender")
	  double	private_rcvStamp; //private // @Metadata=(Units="second",Description="TAI at receiver")
	  long		private_seqNum; //private // @Metadata=(Units="unitless",Description="Sequence number")
	  long		private_origin; //private // @Metadata=(Units="unitless",Description="PID code of sender")
	  long		private_host; //private // @Metadata=(Units="unitless",Description="IP of sender")
	  double	timestamp; // @Metadata=(Units="second",Description="Time at which an event is recorded.")
	  double	calcTime; // @Metadata=(Units="second",Description="Average of calculation time.")
	};
#pragma keylist wepDuration_35ba5f79 
struct ackcmd_34cd65f4 {  // @Metadata=(Description="")
      string<8>	private_revCode;
      double		private_sndStamp;
      double		private_rcvStamp;
      long		private_origin;
      long 		private_host;
      long		private_seqNum;
      long 		ack;
      long 		error;
      string<256>	result;
      long		host;
      long		origin;
      long		cmdtype;
      double		timeout;
	};
#pragma keylist ackcmd_34cd65f4 
};

