RustXMLParseTest/CSPO2Family.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

355 lines
No EOL
18 KiB
XML

<FAMILY name="FmSPO2">
<!--====================================-->
<!--Species Key Reference -->
<!-- ====================================-->
<SPECIES_KEY>
<GENUS name="GnDATA">
<SPECIES name="SpSTANDARD" defaultvalue="0"/>
<SPECIES name="SpDATA" defaultvalue="1"/>
<SPECIES name="SpDATAMODIFIED" defaultvalue="2" />
</GENUS>
<GENUS name="GnCONFIG">
<SPECIES name="SpSTANDARD" defaultvalue="0"/>
<SPECIES name="SpDATA" defaultvalue="1"/>
</GENUS>
<GENUS name="GnPARAMETER">
<SPECIES name="SpSELECTOR" defaultvalue="2"/>
</GENUS>
</SPECIES_KEY>
<!--====================================-->
<!--GnDATA-->
<!--==================================== -->
<DEFINITION class="CSpO2DData" abrv="CSP2DDTA" version="213" family="FmSPO2" genus="GnDATA" species="SpDATA">
<MEMBERS>
<MEMBER type="TIME" name="STime" minversion="100" maxversion="CURRENT_VERSION" comment="Time reading was taken. Host specified. Not Sensor."/>
<MEMBER type="uint16" name="ExtStatus" minversion="100" maxversion="CURRENT_VERSION" comment="Sensor Specified."/>
<MEMBER type="uint16" name="Source" minversion="100" maxversion="CURRENT_VERSION" comment="Source of data. Sensor Specified."/>
<MEMBER type="OBJECT" name="Sat" class="CNumDStd" minversion="200" maxversion="CURRENT_VERSION" comment="O2 Saturation {in % units}"/>
<MEMBER type="OBJECT" name="HR" class="CNumDStd" minversion="200" maxversion="CURRENT_VERSION" comment="SpO2 Heart Rate {in BPM (Beats/Minute) units}"/>
<MEMBER type="OBJECT" name="PI" class="CNumDStd" minversion="200" maxversion="CURRENT_VERSION" comment="SpO2 Perfusion Index {in % units}"/>
<MEMBER type="uint16" name="Status" minversion="202" maxversion="CURRENT_VERSION" comment="DATA_NOT_AVAIL, DATA_COMPLETE, etc."/>
<MEMBER type="OBJECT" name="ElapsedSatSeconds" class="CNumDStd" minversion="200" maxversion="CURRENT_VERSION" comment="Elapsed SatSeconds (Nellcor Only)"/>
<MEMBER type="OBJECT" name="TotalSatSeconds" class="CNumDStd" minversion="200" maxversion="CURRENT_VERSION" comment="Total SatSeconds Configured, 0 = SatSeconds disabled (Nellcor Only)"/>
<MEMBER type="OBJECT" name="SatConfidence" class="CNumDStd" minversion="208" maxversion="CURRENT_VERSION" comment="O2 Confidence {in % units}"/>
<MEMBER type="OBJECT" name="HRConfidence" class="CNumDStd" minversion="208" maxversion="CURRENT_VERSION" comment="HR Confidence {in % units}"/>
<MEMBER type="OBJECT" name="PIConfidence" class="CNumDStd" minversion="208" maxversion="CURRENT_VERSION" comment="PI Confidence {in % units}"/>
<MEMBER type="OBJECT" name="PVIConfidence" class="CNumDStd" minversion="208" maxversion="CURRENT_VERSION" comment="PVI Confidence {in % units}"/>
<MEMBER type="OBJECT" name="PVI" class="CNumDStd" minversion="208" maxversion="CURRENT_VERSION" comment="PVI (0 to 100%}"/>
<MEMBER type="uint8" name="Mode" minversion="211" maxversion="CURRENT_VERSION" comment="Mode of operation" />
<MEMBER type="uint8" name="Method" minversion="211" maxversion="CURRENT_VERSION" comment="Method used" />
</MEMBERS>
<ENUMERATION name="Source">
<!-- ====== -->
<!-- Source -->
<!-- ====== -->
<!-- Generic Source codes -->
<ENUM name="NONE" defaultvalue="0"/>
<ENUM name="UNKNOWN"/>
<!-- Class Source codes begin at 10 -->
<ENUM name="NONIN" defaultvalue="10"/>
<ENUM name="NELLCOR_MP205"/>
<ENUM name="NELLCOR_MP506"/>
<ENUM name="MASIMO_MS11"/>
<ENUM name="NELLCOR_NELL3"/>
<ENUM name="NELLCOR_NELL1"/>
<ENUM name="MASIMO_MS2011"/>
<ENUM name="MASIMO_MX"/>
<ENUM name="NELLCOR"/>
<!-- Added in version 213 -->
<ENUM name="NELLCOR_PMB05N"/>
</ENUMERATION>
<ENUMERATION name="ExtStatus">
<ENUM name="PULSE_FOUND" comment="Pulse detected" defaultvalue="0"/>
<ENUM name="SEARCHING_FOR_BOARD" comment="Identifying SpO2 board"/>
<ENUM name="NO_PROBE" comment="Sensor is not attached"/>
<ENUM name="INCORRECT_PROBE" comment="Incorrect sensor is attached"/>
<ENUM name="SEARCHING_FOR_PULSE" comment="Searching for pulse"/>
<ENUM name="BAD_PROBE" comment="Bad sensor is attached"/>
<ENUM name="PROBE_EXPIRED" comment="Probe is expired"/>
<ENUM name="NO_CABLE" comment="Cable is not attached"/>
<ENUM name="INCORRECT_CABLE" comment="Incorrect cable is attached"/>
<ENUM name="BAD_CABLE" comment="Bad cable is attached"/>
<ENUM name="CABLE_EXPIRED" comment="Cable is expired"/>
<ENUM name="VALUE_NOT_ACQUIRED" comment="A value could not be acquired."/>
</ENUMERATION>
<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="Mode">
<!-- ==== -->
<!-- Mode -->
<!-- ==== -->
<!-- Generic Mode codes -->
<ENUM name="NONE" defaultvalue="0"/>
<ENUM name="UNKNOWN"/>
<!-- Class Mode codes begin at 10 -->
</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>
<SPECIES_TABLE>
<SPECIES name="SpDATA" defaultvalue="1"/>
</SPECIES_TABLE>
</DEFINITION>
<!--====================================-->
<!--GnCONFIG-->
<!--==================================== -->
<DEFINITION class="CSpO2CData" abrv="CSP2CDTA" version="205" family="FmSPO2" genus="GnCONFIG" species="SpDATA">
<MEMBERS>
<MEMBER type="int8" name="SatExponent" minversion="200" maxversion="CURRENT_VERSION" comment="Exponent value that indicates the place value for the Sat member within CSpO2DData"/>
<MEMBER type="int8" name="PIExponent" minversion="200" maxversion="CURRENT_VERSION" comment="Exponent value that indicates the place value for the PI member within CSpO2DData"/>
<MEMBER type="OBJECT" name="SatAlarms" class="CNumCStd" minversion="201" maxversion="CURRENT_VERSION" comment="O2 Saturation Alarms {in % units}"/>
<MEMBER type="OBJECT" name="HRAlarms" class="CNumCStd" minversion="201" maxversion="CURRENT_VERSION" comment="SpO2 Heart Rate Alarms {in BPM (Beats/Minute) units}"/>
<MEMBER type="uint8" name="FastSat" minversion="201" maxversion="CURRENT_VERSION" comment="Saturation averaging time is long and short respectively for OFF (default) and ON"/>
<MEMBER type="uint8" name="Sensitivity" minversion="201" maxversion="CURRENT_VERSION" comment="(Masimo only) Algorithm mode NORMAL (default) or MAXIMUM"/>
<MEMBER type="uint8" name="AveragingTime" minversion="201" maxversion="CURRENT_VERSION" comment="(Masimo only) Averaging time of the saturation measurement. Default is 8_SEC"/>
<MEMBER type="uint8" name="SatSecondsLimit" minversion="201" maxversion="CURRENT_VERSION" comment="(Nellcor only) SatSeconds(TM) limit. Default DISABLED"/>
<MEMBER type="uint8" name="SmartTone" minversion="202" maxversion="CURRENT_VERSION" comment="SmartTone for Signal IQ and Beep. Default is OFF"/>
<MEMBER type="int8" name="PVIExponent" minversion="203" maxversion="CURRENT_VERSION" comment="Exponent value that indicates the place value for the PVI member (read only)"/>
</MEMBERS>
<ENUMERATION name="FastSat">
<ENUM name="NONE" defaultvalue="0" />
<ENUM name="OFF" defaultvalue="1" />
<ENUM name="ON" defaultvalue="2" />
</ENUMERATION>
<ENUMERATION name="Sensitivity">
<ENUM name="NONE" defaultvalue="0" />
<ENUM name="NORMAL" defaultvalue="1" />
<ENUM name="MAXIMUM" defaultvalue="2" />
<ENUM name="APOD" defaultvalue="3" />
</ENUMERATION>
<ENUMERATION name="AveragingTime">
<ENUM name="NONE" defaultvalue="0" />
<ENUM name="2_TO_4_SEC" defaultvalue="1" />
<ENUM name="4_TO_6_SEC" defaultvalue="2" />
<ENUM name="8_SEC" defaultvalue="3" />
<ENUM name="10_SEC" defaultvalue="4" />
<ENUM name="12_SEC" defaultvalue="5" />
<ENUM name="14_SEC" defaultvalue="6" />
<ENUM name="16_SEC" defaultvalue="7" />
</ENUMERATION>
<ENUMERATION name="SatSecondsLimit">
<ENUM name="NONE" defaultvalue="0" />
<ENUM name="DISABLED" defaultvalue="1" />
<ENUM name="10_SEC" defaultvalue="2" />
<ENUM name="25_SEC" defaultvalue="3" />
<ENUM name="50_SEC" defaultvalue="4" />
<ENUM name="100_SEC" defaultvalue="5" />
</ENUMERATION>
<ENUMERATION name="SmartTone">
<ENUM name="NONE" defaultvalue="0" />
<ENUM name="OFF" defaultvalue="1" />
<ENUM name="ON" defaultvalue="2" />
</ENUMERATION>
<SPECIES_TABLE>
<SPECIES name="SpDATA" defaultvalue="1"/>
</SPECIES_TABLE>
</DEFINITION>
<!--====================================-->
<!--GnDATA-->
<!--==================================== -->
<DEFINITION class="CSpO2DDataModified" abrv="CSP2DDTAM" version="201" family="FmSPO2" genus="GnDATA" species="SpDATAMODIFIED">
<MEMBERS>
<MEMBER type="OBJECT" name="SpO2Data" class="CSpO2DData" minversion="100" maxversion="CURRENT_VERSION" />
<MEMBER type="uint8" name="O2FlowRate" minversion="100" maxversion="CURRENT_VERSION" comment="User Inputs numeric (1 - 20 liters increment of 1)" />
<MEMBER type="uint8" name="O2Concentration" minversion="100" maxversion="CURRENT_VERSION" comment="User Inputs numeric (21 - 100% increment of 1)" />
<MEMBER type="uint8" name="O2Method" minversion="100" maxversion="CURRENT_VERSION" comment="Selection" />
<MEMBER type="uint8" name="Location" minversion="100" maxversion="CURRENT_VERSION" comment="Where the SpO2 sensor is attached to the patient." />
</MEMBERS>
<ENUMERATION name="O2Method">
<!-- ====== -->
<!-- Method -->
<!-- ====== -->
<!-- Generic O2Method codes -->
<ENUM name="NONE" defaultvalue="0" />
<ENUM name="UNKNOWN" />
<ENUM name="AEROSOL_HUMIDIFIED_MASK" />
<ENUM name="FACE_TENT" />
<ENUM name="MASK" />
<ENUM name="NASAL_CANNULA" />
<ENUM name="NON_REBREATHER" />
<ENUM name="PARTIAL_REBREATHER" />
<ENUM name="T_PIECE" />
<!--v201: Fixed spelling from TRACHEOTOMY to TRACHEOSTOMY -->
<ENUM name="TRACHEOSTOMY_COLLAR" />
<ENUM name="VENTILATOR" />
<ENUM name="VENTURI_MASK" />
<ENUM name="ROOM_AIR" />
<ENUM name="OXYMIZER" />
</ENUMERATION>
<ENUMERATION name="Location">
<!-- ====== -->
<!-- Location -->
<!-- ====== -->
<!-- Generic Location codes -->
<ENUM name="NONE" defaultvalue="0" />
<ENUM name="UNKNOWN" />
<ENUM name="EAR" />
<ENUM name="FINGER" />
<ENUM name="TOE" />
<ENUM name="FOREHEAD" />
</ENUMERATION>
<SPECIES_TABLE>
<SPECIES name="SpDATAMODIFIED" defaultvalue="2" />
</SPECIES_TABLE>
</DEFINITION>
<!--====================================-->
<!--GnDATA-->
<!--==================================== -->
<DEFINITION class="CSpO2DStd" abrv="CSP2DSTD" version="102" family="FmSPO2" genus="GnDATA" species="SpSTANDARD">
<MEMBERS>
<MEMBER type="TIME" name="STime" minversion="100" maxversion="CURRENT_VERSION" comment="Time reading was taken"/>
<MEMBER type="uint16" name="Status" minversion="100" maxversion="CURRENT_VERSION" comment="DATA_NOT_AVAIL, DATA_COMPLETE, etc"/>
<MEMBER type="uint16" name="Sat" minversion="100" maxversion="CURRENT_VERSION" comment="O2 Saturation {in % units}"/>
<MEMBER type="uint16" name="HR" minversion="100" maxversion="CURRENT_VERSION" comment="SpO2 Heart Rate (in BPM (Beats/Minute) units}"/>
<MEMBER type="uint16" name="ExtStatus" minversion="100" maxversion="CURRENT_VERSION" comment="Extended status/error code"/>
<MEMBER type="uint16" name="Source" minversion="100" maxversion="CURRENT_VERSION" comment="Source of data "/>
<MEMBER type="uint8" name="Mode" minversion="100" maxversion="CURRENT_VERSION" comment="Mode of operation"/>
<MEMBER type="uint8" name="Method" minversion="100" maxversion="CURRENT_VERSION" comment="Method used"/>
</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 -->
<!-- =============== -->
<!-- One Generic Extended Status codes -->
<ENUM name="NONE" defaultvalue="0"/>
<!-- Extended Status codes when Status is Data Processing Error -->
<ENUM name="SPO2_NOPROBE"/>
<ENUM name="SPO2_NOTAVAIL"/>
<ENUM name="SPO2_OUT_OF_TRACK"/>
<ENUM name="SPO2_BAD"/>
<ENUM name="SPO2_WAIT"/>
<ENUM name="SPO2_SENSOR_BAD"/>
<ENUM name="SPO2_FROZEN"/>
</ENUMERATION>
<ENUMERATION name="Source">
<!-- ====== -->
<!-- Source -->
<!-- ====== -->
<!-- Generic Source codes -->
<ENUM name="NONE" defaultvalue="0"/>
<ENUM name="UNKNOWN"/>
<!-- Class Source codes begin at 10 -->
<ENUM name="NONIN" defaultvalue="10"/>
<ENUM name="NELLCOR_MP205"/>
<ENUM name="NELLCOR_MP506"/>
<ENUM name="MASIMO_MS11"/>
<ENUM name="NELLCOR_NELL3"/>
<ENUM name="NELLCOR_NELL1"/>
<ENUM name="MASIMO_MS2011"/>
<ENUM name="MASIMO_MX"/>
<ENUM name="NELLCOR"/>
<!-- Added in version 102 -->
<ENUM name="NELLCOR_PMB05N"/>
</ENUMERATION>
<ENUMERATION name="Mode">
<!-- ==== -->
<!-- Mode -->
<!-- ==== -->
<!-- Generic Mode codes -->
<ENUM name="NONE" defaultvalue="0"/>
<ENUM name="UNKNOWN"/>
<!-- Class Mode codes begin at 10 -->
</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>
<SPECIES_TABLE>
<SPECIES name="SpSTANDARD" defaultvalue="0"/>
</SPECIES_TABLE>
</DEFINITION>
<!--====================================-->
<!--GnCONFIG-->
<!--==================================== -->
<DEFINITION class="CSpO2CStd" abrv="CSP2CSTD" version="102" family="FmSPO2" genus="GnCONFIG" species="SpSTANDARD">
<MEMBERS>
<MEMBER type="boolean" name="Enabled" minversion="100" maxversion="CURRENT_VERSION"/>
<MEMBER type="uint16" name="InstalledModule" minversion="100" maxversion="CURRENT_VERSION"/>
</MEMBERS>
<ENUMERATION name="InstalledModule">
<ENUM name="NONE" defaultvalue="0"/>
<ENUM name="UNKNOWN"/>
<ENUM name="NONIN" defaultvalue="10"/>
<ENUM name="NELLCOR_MP205"/>
<ENUM name="NELLCOR_MP506"/>
<ENUM name="MASIMO_MS11"/>
<ENUM name="NELLCOR_NELL3"/>
<ENUM name="NELLCOR_NELL1"/>
<ENUM name="MASIMO_MS2011"/>
<ENUM name="MASIMO_MX"/>
<ENUM name="NELLCOR"/>
<!-- Added in version 102 -->
<ENUM name="NELLCOR_PMB05N"/>
</ENUMERATION>
<SPECIES_TABLE>
<SPECIES name="SpSTANDARD" defaultvalue="0"/>
</SPECIES_TABLE>
</DEFINITION>
<!--====================================-->
<!--GnPARAMETER-->
<!--==================================== -->
<DEFINITION class="CSpO2PSelector" abrv="CSP2PSEL" version="200" family="FmSPO2" genus="GnPARAMETER" species="SpSELECTOR">
<MEMBERS>
<MEMBER type="uint32" name="Value" minversion="200" maxversion="CURRENT_VERSION" comment="Value is used to specify the desired option when needed."/>
</MEMBERS>
<SPECIES_TABLE>
<SPECIES name="SpSELECTOR" defaultvalue="2" comment="Used to indicate that the Value is a selector"/>
</SPECIES_TABLE>
</DEFINITION>
<!--====================================-->
<!--Messages -->
<!-- ====================================-->
<MESSAGES>
<MSG type="Request" name="GET_SPO2" comment="Requests the last SpO2 reading."/>
<MSG type="Request" name="GET_CONFIG" comment="Requests the SpO2 confguration."/>
<MSG type="Response" name="PUT_SPO2" comment="Returns the last SpO2 reading. Requires a CSpO2DData object."/>
<MSG type="Response" name="PUT_CONFIG" comment="Returns the SpO2 confguration. Requires a CSpO2CData object."/>
<MSG type="Command" name="WRITE_CONFIG" comment="Command to write the SpO2 configuration. Requires a CSpO2CData object."/>
<MSG type="Status" name="REPORT_SPO2" comment="Returns the last SpO2 reading. Requires a CSpO2DData object."/>
<MSG type="Command" name="START_ACQUIRE" comment="Command to start sending SpO2 reading."/>
<MSG type="Command" name="STOP_ACQUIRE" comment="Command to stop sending SpO2 reading."/>
<MSG type="Stream" name="STREAM_SPO2" comment="Returns the last SpO2 reading. Requires a CSpO2DData object."/>
</MESSAGES>
</FAMILY>