185 lines
7.3 KiB
Dart
185 lines
7.3 KiB
Dart
/// A utility class that translates YSI instrument hex codes into human-readable descriptions.
|
|
/// This replaces the `ParameterHelper.java` class using a more efficient Map data structure.
|
|
class ParameterHelper {
|
|
/// A private, static, and constant map for maximum performance.
|
|
/// The map is created only once when the app starts.
|
|
static const Map<String, String> _parameterMap = {
|
|
'000100010001': 'Combo Probe for PH and ORP, original HW',
|
|
'000100010002': 'PH only, Original HW',
|
|
'000100010003': 'ammonium',
|
|
'000100010004': 'Potasium',
|
|
'000100010005': 'Nitrate',
|
|
'000100010006': 'Chloride',
|
|
'000100010007': 'Combo Probe for PH and ORP, hybrid HW for PH drift',
|
|
'000100010008': 'PH only, hybrid HW for PH drift',
|
|
'000100010009': 'Combo Probe for PH and ORP, VREF offset HW for PH drift',
|
|
'00010001000A': 'PH only, VREF offset HW for PH drift',
|
|
'00010001000B': 'Combo Probe for PH and ORP, Floating Reference is at 1.5V',
|
|
'00010001000C': 'PH only, Floating Reference is at 1.5V',
|
|
'000100020001': 'Probe for ODO',
|
|
'000100030001': 'Combo Probe for Conductivity and Temperature',
|
|
'000100030002': 'Combo Probe for Wet Cal Conductivity and Temperature',
|
|
'000100030003': 'Combo Probe for High accuracy Conductivity and Temperature',
|
|
'000100030004': 'Combo Probe for Conductivity and Temperature, Wiped',
|
|
'00010003FFFF': 'Mfg tester for Conductivity for CT probe',
|
|
'000100040001': 'Probe for Turbidity',
|
|
'000100050001': 'EXO1 - 4 port Sonde',
|
|
'000100050002': 'EXO2 - 6 port Sonde',
|
|
'000100050003': 'EXO3 - 8 port Sonde',
|
|
'000100060001': 'Combo of Chlorophyll and BGA-PC',
|
|
'000100060002': 'Combo of Chlorophyll and BGA-PE',
|
|
'000100070001': 'depth probe, Non-Vented, Standard 0-250m',
|
|
'000100070002': 'depth probe, Non-Vented, Medium 0-100m',
|
|
'000100070003': 'depth probe, Non-Vented, Shallow 0-10m',
|
|
'000100070004': 'depth probe, Vented, 0-10m',
|
|
'000100080001': 'Wiper probe',
|
|
'000100090001': 'Signal Output Adapter - DCP',
|
|
'0001000A0001': 'Original Handheld (used primarily during manufacturing Testing)',
|
|
'0001000A0002': 'New Handheld (ProDSS Style) with GPS',
|
|
'0001000A0003': 'New Handheld (ProDSS Style) w/out GPS',
|
|
'0001000B0001': 'fDOM',
|
|
'0001000C0001': 'metal',
|
|
'0001000E0001': 'EXO Test Board (reserved for R&D)',
|
|
'0001000E0002': 'High Accuracy CT Test board',
|
|
'0001000E0003': 'Phloptode',
|
|
'0001000F0001': 'Deep UV A Channel T Channel wastewater sensor',
|
|
'0001000F0002': 'Deep UV NOx Nitrate+Nitrite sensor',
|
|
'000100100001': 'Signal Output Adapter - DCP Gen 2',
|
|
'000100100002': 'Signal Output Adapter - DCP Gen 2 - Modbus',
|
|
'000100110001': 'Used on both EXO and DSS platforms.',
|
|
'000200010001': 'Variable Flourometer Sensor',
|
|
'000300010001': 'Combo ODO/Conductivity/Temperature',
|
|
'0000': 'Common Message',
|
|
'0001': 'Sonde',
|
|
'0002': 'PH',
|
|
'0003': 'PH: PH units',
|
|
'0004': 'PH: mV',
|
|
'0005': 'ORP',
|
|
'0006': 'ORP: mV',
|
|
'0007': 'ORP: mV UnAdjusted',
|
|
'0008': 'Optical Dissolved Oxygen',
|
|
'0009': 'Optical Dissolved Oxygen: Compensated % Saturation',
|
|
'000A': 'Optical Dissolved Oxygen: Compensated mg/L',
|
|
'000B': 'Internal uP Temp',
|
|
'000C': 'Internal uP Temp: Degrees Celcius',
|
|
'000D': 'External Temp',
|
|
'000E': 'External Temp: Degrees Celcius',
|
|
'000F': 'Barometer',
|
|
'0010': 'Barometer: mmHg',
|
|
'0011': 'Conductivity',
|
|
'0012': 'Conductivity: us/cm',
|
|
'0013': 'Conductivity: Salinity',
|
|
'0014': 'Turbidity',
|
|
'0015': 'Turbidity: FNU',
|
|
'0016': 'Turbidity: TSS',
|
|
'0017': 'Turbidity: RAW',
|
|
'0018': 'Conductivity: Specific Conductivity',
|
|
'0019': 'Chlorophyll',
|
|
'001A': 'Chlorophyll: ug/L',
|
|
'001B': 'BGA-PE',
|
|
'001C': 'BGA-PE: cells/mL - replaced with ug/L (0x003B)',
|
|
'001D': 'BGA-PC',
|
|
'001E': 'BGA-PC: cells/mL - replaced with ug/L (0x003A)',
|
|
'001F': 'Chlorophyll: RFU',
|
|
'0020': 'BGA-PE: RFU',
|
|
'0021': 'BGA-PC: RFU',
|
|
'0022': 'Pressure:',
|
|
'0023': 'Pressure: psi a',
|
|
'0024': 'Pressure: depth',
|
|
'0025': 'Etime',
|
|
'0026': 'Wiper:',
|
|
'0027': 'Wiper: Position Volts',
|
|
'0028': 'Sonde: Date and Time',
|
|
'0029': 'Sonde: Battery Voltage',
|
|
'002A': 'Sonde: External Voltage',
|
|
'002B': 'Sonde: Internal Pressure Voltage',
|
|
'002C': 'fDOM:',
|
|
'002D': 'fDOM: RAW',
|
|
'002E': 'fDOM: RFU',
|
|
'002F': 'Chlorophyll: RAW',
|
|
'0030': 'BGA-PE: RAW',
|
|
'0031': 'BGA-PC: RAW',
|
|
'0032': 'Wiper: Current(mA)',
|
|
'0033': 'Wiper: Profile Time(s)',
|
|
'0034': 'Pressure: RAW',
|
|
'0035': 'ODO: RAW %Sat',
|
|
'0036': 'ODO: RAW mg/L',
|
|
'0037': 'fDOM: QSU',
|
|
'0038': 'Wiper: Peak Current (mA)',
|
|
'0039': 'Wiper: Parking Retries',
|
|
'003A': 'BGA-PC: ug/L',
|
|
'003B': 'BGA-PE: ug/L',
|
|
'003C': 'GPS Latitude',
|
|
'003D': 'GPS Longitude',
|
|
'003E': 'Conductivity: RAW us/cm',
|
|
'003F': 'Pressure: psi g',
|
|
'0040': 'Reference Temp',
|
|
'0041': 'ODO: % EU',
|
|
'0042': 'Ammonium',
|
|
'0043': 'Ammonium (NH4+) mV',
|
|
'0044': 'Ammonium (NH4+) mg/L',
|
|
'0048': 'Nitrate',
|
|
'0049': 'Nitrate (NO-3) mV',
|
|
'004A': 'Nitrate (NO-3) mg/L',
|
|
'004B': 'Chloride',
|
|
'004C': 'Chloride (Cl-) mV',
|
|
'004D': 'Chloride (Cl-) mg/L',
|
|
'004E': 'Ammonia (NH3)',
|
|
'004F': 'ODO: % Local',
|
|
'0050': 'Conductivity: nLF us/cm',
|
|
'0051': 'Sonde: Sensor Power mW',
|
|
'0052': 'Sonde: RTC Battery Voltage',
|
|
'0053': 'Variable Flourescent (VF) meter',
|
|
'0054': 'VF: Units TBD',
|
|
'0055': 'Conductivity:TDS mg/L',
|
|
'0056': 'Pressure: vert pos',
|
|
'0057': 'GPS Date',
|
|
'0058': 'GPS Time',
|
|
'0059': 'GPS Altitude',
|
|
'005A': 'GPS Speed Over Ground (SOG)',
|
|
'005B': 'GPS Course Over Ground (COG)',
|
|
'005C': 'Barometer Temperature',
|
|
'005D': 'Conductivity Resistance (ohms)',
|
|
'005E': 'ODO ppm',
|
|
'005F': 'Turbidity NTU',
|
|
'0060': 'Temprorary Calibration Value',
|
|
'0061': 'Sigma',
|
|
'0062': 'Sigma-T',
|
|
'0063': 'Deep UV Wastewater: Channel A',
|
|
'0064': 'Deep UV Wastewater: Channel A Raw',
|
|
'0065': 'Deep UV Wastewater: Channel A RFU',
|
|
'0066': 'Deep UV Wastewater: Channel A Concentration',
|
|
'0067': 'Deep UV Wastewater: Channel T',
|
|
'0068': 'Deep UV Wastewater: Channel T Raw',
|
|
'0069': 'Deep UV Wastewater: Channel T RFU',
|
|
'006A': 'Deep UV Wastewater: Channel T Concentration',
|
|
'006B': 'Deep UV Wastewater: Ratio',
|
|
'006C': 'Deep UV NOx Ch238',
|
|
'006D': 'Deep UV NOx Ch238 Raw',
|
|
'006E': 'Deep UV NOx Ch238Ref',
|
|
'006F': 'Deep UV NOx Ch238Ref Raw',
|
|
'0070': 'Deep UV NOx Ch238 Absorbance',
|
|
'0071': 'Deep UV NOx Ch238 Absorbance Turb Corrected',
|
|
'0072': 'Deep UV NOx Ch275',
|
|
'0073': 'Deep UV NOx Ch275 Raw',
|
|
'0074': 'Deep UV NOx Ch275Ref',
|
|
'0075': 'Deep UV NOx Ch275Ref Raw',
|
|
'0076': 'Deep UV NOx Ch275 Absorbance',
|
|
'0077': 'Deep UV NOx Ch275 Absorbance Turb Corrected',
|
|
'0078': 'Deep UV NOx',
|
|
'0079': 'Deep UV NOx RAW',
|
|
'007A': 'Deep UV NOx mg/L',
|
|
'007B': 'fDOM ppb',
|
|
'9900': 'SOA/DCP',
|
|
'FF00': 'Handheld',
|
|
'FF01': 'Hipster',
|
|
'FF11': 'Conductivity Manufacturing Tester',
|
|
};
|
|
|
|
/// Takes a hex code string and returns its human-readable description.
|
|
/// If the code is not found, it returns 'UNKNOWN'.
|
|
static String getDescription(String hexCode) {
|
|
// The '??' operator provides a default value if the key is not in the map.
|
|
return _parameterMap[hexCode.toUpperCase()] ?? 'UNKNOWN';
|
|
}
|
|
} |