RustXMLParseTest/CCO2Family.xml
Kyle Kiteveles b87eb06a11 Finished parsing, multi-threading, and file write.
Message and Object write string creation added but need to be checked.
2023-08-14 12:59:03 -04:00

258 lines
No EOL
18 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<FAMILY name="FmCO2">
<!--====================================-->
<!--Species Key Reference -->
<!-- ====================================-->
<SPECIES_KEY>
<GENUS name="GnDATA">
<SPECIES name="SpDATA" defaultvalue="0"/>
</GENUS>
<GENUS name="GnCONFIG">
<SPECIES name="SpCALIBRATION" defaultvalue="0"/>
<SPECIES name="SpSTANDARD" defaultvalue="1"/>
</GENUS>
<GENUS name="GnPARAMETER">
<SPECIES name="SpMSG_ARGUMENTS" defaultvalue="0" />
</GENUS>
</SPECIES_KEY>
<!--====================================-->
<!--GnDATA-->
<!--====================================-->
<DEFINITION class="CCO2DData" abrv="CCO2DDTA" version="205" family="FmCO2" genus="GnDATA" species="SpDATA">
<MEMBERS>
<MEMBER type="uint16" name="Status" minversion="200" maxversion="CURRENT_VERSION" comment="Overall Status of the object"/>
<MEMBER type="uint32" name="ExtStatus" minversion="200" maxversion="CURRENT_VERSION" comment="Bitwise value of the Extended Status of the object" format="BITMASK"/>
<MEMBER type="uint16" name="Source" minversion="200" maxversion="CURRENT_VERSION" comment="Source of data. Sensor Specified."/>
<MEMBER type="uint8" name="Mode" minversion="200" maxversion="CURRENT_VERSION" comment="Mode of operation"/>
<MEMBER type="uint8" name="Method" minversion="200" maxversion="CURRENT_VERSION" comment="Method used"/>
<MEMBER type="OBJECT" name="EtCO2" class="CNumDStd" minversion="200" maxversion="CURRENT_VERSION" comment="End Tidal CO2. In mmHg. 100 for overrange. In case of extended CO2 range configuration, 151 for overrange."/>
<MEMBER type="OBJECT" name="FiCO2" class="CNumDStd" minversion="200" maxversion="CURRENT_VERSION" comment="Fraction of inspired CO2. In mmHg. 100 for overrange. In case of extended CO2 range configuration, 151 for overrange."/>
<MEMBER type="OBJECT" name="RR" class="CNumDStd" minversion="200" maxversion="CURRENT_VERSION" comment="Respiration Rate per minute"/>
<MEMBER type="OBJECT" name="IPI" class="CNumDStd" minversion="200" maxversion="CURRENT_VERSION" comment="Integrated pulmonary index. Valid range: 0-10"/>
<MEMBER type="OBJECT" name="S_EtCO2" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Spontaneous End Tidal CO2. Valid range: 0-10"/>
<MEMBER type="OBJECT" name="S_FiCO2" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Spontaneous Fraction of inspired CO2"/>
<MEMBER type="OBJECT" name="ContCO2" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Continuous CO2. "/>
<MEMBER type="OBJECT" name="S_Density_5" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Continuous CO2 Spontaneous breath density (%) over the last 5 minutes"/>
<MEMBER type="OBJECT" name="S_Density_10" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Continuous CO2 Spontaneous breath density (%) over the last 10 minutes "/>
<MEMBER type="OBJECT" name="S_Density_30" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Continuous CO2 Spontaneous breath density (%) over the last 30 minutes"/>
<MEMBER type="OBJECT" name="ApneaIndex_Total" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Apnea index total"/>
<MEMBER type="OBJECT" name="ApneaIndex_10_19" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Apnea index of 10-19 seconds"/>
<MEMBER type="OBJECT" name="ApneaIndex_20_29" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Apnea index of 20-29 seconds"/>
<MEMBER type="OBJECT" name="ApneaIndex_30" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Apnea index of greater than or equal to 30 seconds"/>
<MEMBER type="OBJECT" name="DesatCount" class="CNumDStd" minversion="201" maxversion="CURRENT_VERSION" comment="Desaturation count"/>
<MEMBER type="TIME" name="STime" minversion="205" maxversion="CURRENT_VERSION" comment="Time reading was taken. Host specified. Not Sensor."/>
</MEMBERS>
<ENUMERATION name="Status">
<!-- ====== -->
<!-- Status -->
<!-- ====== -->
<!-- Generic Status codes -->
<ENUM name="DATA_NOT_AVAIL" defaultvalue="0"/>
<ENUM name="DATA_COMPLETE"/>
<ENUM name="DATA_FAILURE"/>
<ENUM name="DATA_EXCEPTION"/>
<ENUM name="DATA_PROCESSING"/>
<!-- No Class Status codes -->
</ENUMERATION>
<ENUMERATION name="ExtStatus">
<!-- =============== -->
<!-- Extended Status -->
<!-- =============== -->
<!--Data failures: Bitwise value-->
<ENUM name="INITIALIZATION" defaultvalue="0" comment="Initialization"/>
<ENUM name="SFM_REQUIRED" defaultvalue="1" comment="Self Maitenance(SFM)is required"/>
<ENUM name="SFM_IN_PROGRESS" defaultvalue="2" comment="Self Maintenance is in progress"/>
<ENUM name="PURGING_IN_PROGRESS" defaultvalue="3" comment="Purging in progress"/>
<ENUM name="FILTER_LINE_NO_CONNECT" defaultvalue="4" comment="FilterLine not connected"/>
<ENUM name="CHECK_CALIBRATION" defaultvalue="5" comment="Check calibration."/>
<ENUM name="CHECK_FLOW" defaultvalue="6" comment="Check flow."/>
<ENUM name="OCCLUSION_IN_GAS_LINE" defaultvalue="7" comment="Occlusion in the gas input line"/>
<ENUM name="TEMPERATURE_OUT_OF_RANGE" defaultvalue="8" comment="Temperature out of range"/>
<ENUM name="PUMP_OFF" defaultvalue="9" comment="Pump off"/>
</ENUMERATION>
<ENUMERATION name="Source">
<!-- ====== -->
<!-- Source -->
<!-- ====== -->
<!-- Generic Source codes -->
<ENUM name="NONE" defaultvalue="0"/>
<ENUM name="UNKNOWN"/>
<ENUM name="BREATH_DETECTED" comment="Breath detected"/>
<ENUM name="INTERVAL" comment="Breath interval attained"/>
</ENUMERATION>
<ENUMERATION name="Method">
<!-- ====== -->
<!-- Method -->
<!-- ====== -->
<!-- Generic Method codes -->
<ENUM name="NONE" defaultvalue="0"/>
<ENUM name="UNKNOWN"/>
<ENUM name="MANUAL"/>
<ENUM name="DEVICE"/>
<ENUM name="REMOTE"/>
<!-- Class Method codes begin at 10 -->
</ENUMERATION>
<ENUMERATION name="Mode">
<!-- ==== -->
<!-- Mode -->
<!-- ==== -->
<!-- Generic Mode codes -->
<ENUM name="NONE" defaultvalue="0"/>
<ENUM name="UNKNOWN"/>
<!-- Class Mode codes begin at 10 -->
</ENUMERATION>
<SPECIES_TABLE>
<SPECIES name="SpDATA" defaultvalue="1" comment="Default species."/>
</SPECIES_TABLE>
</DEFINITION>
<!--====================================-->
<!--GnPARAMETER-->
<!--====================================-->
<DEFINITION class="CCO2PMsgArg" abrv="CCO2PMSA" version="204" family="FmCO2" genus="GnPARAMETER" species="SpMSG_ARGUMENTS">
<MEMBERS>
<MEMBER type="uint16" name="IOParameterA" minversion="200" maxversion="CURRENT_VERSION" comment="Generic parameter used for configuration selector (CONFIG_ITEM) to retrieve a configuration module."/>
<MEMBER type="uint16" name="IOParameterB" minversion="200" maxversion="CURRENT_VERSION" comment="Generic parameter to contain an enumerated value or numeric value based on configuration module in IOParameterA"/>
</MEMBERS>
<ENUMERATION name="BTPS">
<ENUM name="NONE" defaultvalue="0" comment="None specified"/>
<ENUM name="NO_BTPS" defaultvalue="1" comment="No BTPS"/>
<ENUM name="BTPS" defaultvalue="2" comment="BTPS"/>
</ENUMERATION>
<ENUMERATION name="PICK_MODE">
<ENUM name="NONE" defaultvalue="0" comment="None specified"/>
<ENUM name="BREATH_TO_BREATH" defaultvalue="1" comment="Breath to breath"/>
<ENUM name="TEN_SECONDS" defaultvalue="2" comment="10 Seconds"/>
<ENUM name="TWENTY_SECONDS" defaultvalue="3" comment="20 Seconds"/>
<ENUM name="THIRTY_SECONDS" defaultvalue="4" comment="30 Seconds"/>
</ENUMERATION>
<ENUMERATION name="PUMP_CONTROL">
<ENUM name="NONE" defaultvalue="0" comment="None specified"/>
<ENUM name="DISABLED" defaultvalue="1" comment="Pump Disabled"/>
<ENUM name="ENABLED" defaultvalue="2" comment="Pump enabled"/>
</ENUMERATION>
<ENUMERATION name="PATIENT_MODE">
<ENUM name="NONE" defaultvalue="0" comment="None specified"/>
<ENUM name="ADULT" defaultvalue="1" comment="Adult"/>
<ENUM name="NEONATE" defaultvalue="2" comment="Neonate"/>
<ENUM name="PEDIATRIC_1" defaultvalue="3" comment="Pediatric 1-3 years"/>
<ENUM name="PEDIATRIC_2" defaultvalue="4" comment="Pediatric 3-6 years"/>
<ENUM name="PEDIATRIC_3" defaultvalue="5" comment="Pediatric 6-12 years"/>
</ENUMERATION>
<ENUMERATION name="CO2_RANGE">
<ENUM name="NONE" defaultvalue="0" comment="None specified"/>
<ENUM name="NINETY_NINE_MAX" defaultvalue="1" comment="0-99 mmHg"/>
<ENUM name="ONE_HUNDRED_FIFTY_MAX" defaultvalue="2" comment="0-150 mmHg"/>
</ENUMERATION>
<ENUMERATION name="MEASUREMENT_MODE">
<ENUM name="NONE" defaultvalue="0" comment="None specified"/>
<ENUM name="EtCO2" defaultvalue="1" comment="End Tidal CO2"/>
<ENUM name="CONTCO2" defaultvalue="2" comment="Continuous CO2"/>
</ENUMERATION>
<ENUMERATION name="CONFIG_ITEM">
<ENUM name="NONE" defaultvalue="0" comment="None specified"/>
<ENUM name="BTPS" defaultvalue="1" comment="Configuration for the BTPS setting. The BTPS enumeration is used in the IOParameterB member."/>
<ENUM name="PICK_MODE" defaultvalue="2" comment="Configuration for the Pick Mode."/>
<ENUM name="STANDBY" defaultvalue="7" comment="Configuration for the standby mode."/>
<ENUM name="PATIENT_MODE" defaultvalue="8" comment="Configuration for the patient mode. The PATIENT_MODE enumeration is used in the IOParameterB member."/>
<ENUM name="CO2_RANGE" defaultvalue="9" comment="Configuration for the CO2 range. The CO2_RANGE enumeration is used in the IOParameterB member."/>
<ENUM name="RESET_PARAMETER" defaultvalue="10" comment="Configuration for the Reseting AI and ODI, ContCO2 Breath Density. IOParameterB member contains a bitwise value (xxxx xxxd - reset AI and ODI, xxxx xdxx reset ContCO2 Breath Density)."/>
<ENUM name="MEASUREMENT_MODE" defaultvalue="11" comment="Configuration for the CO2 measurement mode. The MEASUREMENT_MODE enumeration is used in the IOParameterB member."/>
</ENUMERATION>
<SPECIES_TABLE>
<SPECIES name="SpMSG_ARGUMENTS" defaultvalue="1" comment="Default species. Generic Message Argument"/>
</SPECIES_TABLE>
</DEFINITION>
<!--====================================-->
<!--GnCONFIG-->
<!--====================================-->
<DEFINITION class="CCO2CCal" abrv="CCO2CCAL" version="201" family="FmCO2" genus="GnCONFIG" species="SpCALIBRATION">
<MEMBERS>
<MEMBER type="uint32" name="Status" minversion="200" maxversion="CURRENT_VERSION" comment="Bitwise value to indicate the calibration status." format="BITMASK"/>
<MEMBER type="uint8" name="Method" minversion="200" maxversion="CURRENT_VERSION" comment="Enumerated value to indicate the calibration method"/>
<MEMBER type="uint8" name="GasConcentration" minversion="200" maxversion="CURRENT_VERSION" comment="In 0.1% units (This value should be set to 50 decimal (=32h) for 5 Vol% gas. Valid range is 40 to 60"/>
</MEMBERS>
<ENUMERATION name="Method">
<ENUM name="NONE" defaultvalue="0" comment="None Specified"/>
<ENUM name="REGULAR_CALIBRATION" defaultvalue="1" comment="Regular Calibration"/>
<ENUM name="SPECIAL_FACTORY_CALIBRATION" defaultvalue="2" comment="Special Factory Calibration"/>
<ENUM name="CALIBRATION_CHECK" defaultvalue="3" comment="Calibration check"/>
</ENUMERATION>
<ENUMERATION name="Status">
<ENUM name="IN_PROGRESS" defaultvalue="0" comment="Calibration in progress"/>
<ENUM name="NOT_READY" defaultvalue="1" comment="Module not ready for Calibration"/>
<ENUM name="CALCULATING" defaultvalue="2" comment="Calculating - calibration gas can be removed"/>
<ENUM name="COMPLETE_ERROR" defaultvalue="3" comment="Calibration complete with error"/>
<ENUM name="COMPLETE_SUCCESS" defaultvalue="4" comment="Calibration complete successfully"/>
<ENUM name="USER_ABORT" defaultvalue="5" comment="Calibration aborted by user"/>
<!--Errors-->
<ENUM name="MEASUREMENT_ERROR" defaultvalue="6" comment="Measurement error (Purging, FilterLine) - Check wave message"/>
<ENUM name="AZ_FAIL" defaultvalue="7" comment="AZ Fail"/>
<ENUM name="GAS_CONCENTRATION_CHECK" defaultvalue="8" comment="No gas or wrong gas concentration"/>
<ENUM name="GAS_FLOW_UNSTABLE" defaultvalue="9" comment="No stable gas flow"/>
<ENUM name="CALIBRATION_FAILURE" defaultvalue="10" comment="Calibration Failure"/>
</ENUMERATION>
<SPECIES_TABLE>
<SPECIES name="SpCALIBRATION" defaultvalue="11" comment="Default Species."/>
</SPECIES_TABLE>
</DEFINITION>
<!--====================================-->
<!--GnCONFIG-->
<!--==================================== -->
<DEFINITION class="CCO2CStd" abrv="CCO2CSTD" version="100" family="FmCO2" genus="GnCONFIG" species="SpSTANDARD">
<MEMBERS>
<MEMBER type="uint16" name="DisplayUnits" minversion="100" maxversion="CURRENT_VERSION" comment="Display units for CO2 (EtCO2 and FiCO2)"/>
</MEMBERS>
<ENUMERATION name="DisplayUnits">
<ENUM name="UNITS_MMHG" comment="units in mmHG" defaultvalue="0"/>
<ENUM name="UNITS_KPA" comment="units in kpa"/>
</ENUMERATION>
<SPECIES_TABLE>
<SPECIES name="SpSTANDARD" defaultvalue="0"/>
</SPECIES_TABLE>
</DEFINITION>
<MESSAGES>
<!--Adresses section 14.5.4 and 14.6.3-->
<MSG type="Request" name="GET_BREATH" comment="A request to get the breath measurement. No object required in payload"/>
<MSG type="Response" name="PUT_BREATH" comment="A response to the GET_BREATH message. Returns the breath measurement. Requires a CCO2DData object."/>
<MSG type="Stream" name="STREAM_CO2" comment="A periodic message that contains the CO2 measurment. Requires a CCO2DData object."/>
<MSG type="Command" name="RESTART_BREATH_ALG" comment="Sent when the host determines that there is a 'no breath detected' condition in order to ensure correct EtCO2, FiCO2, and RR calculations upon resumption of breathing."/>
<MSG type="Request" name="GET_AMBIENT_PRESSURE" comment="A request to get the ambient pressure. No object required in the payload."/>
<MSG type="Response" name="PUT_AMBIENT_PRESSURE" comment="A response to the GET_AMBIENT_PRESSURE message. Requires a CCO2PMsgArg object."/>
<MSG type="Request" name="GET_MODULE_CONFIG" comment="A request to get a module configuration. Requires a CCO2PMsgArg object with IOParameterA set to CONFIG_ITEM to return"/>
<MSG type="Response" name="PUT_MODULE_CONFIG" comment="A response to the GET_MODULE_CONFIG message. Requires a CCO2PMsgArg object with IOParameterA set to the CONFIG_ITEM and IOParameterB set to the CONFIG_ITEM value."/>
<MSG type="Command" name="START_CALIBRATION" comment="A message to start the calibration. Requires a CCO2Cal object."/>
<MSG type="Command" name="STOP_CALIBRATION" comment="A message to stop the calibration. No object required in payload."/>
<MSG type="Request" name="GET_CALIBRATION" comment="A message to request the calibration status. No object required in payload."/>
<MSG type="Response" name="PUT_CALIBRATION" comment="A response to the PUT_CALIBRATION message. Requires a CCO2CCal"/>
<MSG type="Request" name="GET_SERVICE_TIME" comment="A message to request the remaining hours for calibration. No object required in payload."/>
<MSG type="Response" name="PUT_SERVICE_TIME" comment="A response to the GET_SERVICE_TIME message. Requires a CCO2PMsgArg object. IOParameterA contains the service time."/>
<MSG type="Command" name="FORCE_SFM" comment="A command to force SFM (self maintenance). No object required in payload"/>
<MSG type="Command" name="PUMP_CONTROL" comment="A command to enable or disable the pump. Requires a CCO2PMsgArg object"/>
<MSG type="Command" name="START_SFM" comment="A command to start SFM (self maintenance). This is only sent when a request to begin SFM. No object required in payload"/>
<MSG type="Command" name="SET_MODULE_CONFIG" comment="Set the module configuration. Requires a CCO2PMsgArg object with IOParameterA set to the CONFIG_ITEM and IOParameterB set to the CONFIG_ITEM value."/>
<MSG type="Request" name="GET_CAL_TIME" comment="A message to request the remaining hours for calibration. No object required in payload."/>
<MSG type="Response" name="PUT_CAL_TIME" comment="A response to the GET_CAL_TIME message. Requires a CCO2PMsgArg object. IOParameterA contains the remaining hours to calibration."/>
<MSG type="Command" name="START_ACQUIRE" comment="Command to start sending CO2 periodic readings."/>
<MSG type="Command" name="STOP_ACQUIRE" comment="Command to stop sending CO2 periodic readings."/>
<MSG type="Request" name="GET_CONFIG" comment="Requests the CO2 confguration."/>
<MSG type="Response" name="PUT_CONFIG" comment="Returns the CO2 confguration. Requires a CCO2CStd object."/>
<MSG type="Command" name="WRITE_CONFIG" comment="Command to write the CO2 configuration. Requires a CCO2CStd object."/>
</MESSAGES>
</FAMILY>