unit lookup helpers
This commit is contained in:
parent
e1f0836a55
commit
41b51f7aa9
|
@ -411,65 +411,440 @@ std::string NackReasonDescription(const uint16_t NR)
|
|||
/**
|
||||
* @brief StatusMessageDescription
|
||||
* @param status
|
||||
* @param data1
|
||||
* @param data2
|
||||
* @param label
|
||||
* @return
|
||||
*
|
||||
* %d Decimal Number -- as decimal number
|
||||
* %x Hexadecimal Number -- as hexadecimal number
|
||||
* %L Slot Label Code -- as text description of Slot Label Code
|
||||
*/
|
||||
std::string StatusMessageDescription(uint16_t status)
|
||||
std::string StatusMessageDescription(uint16_t status, std::string label, int data1, int data2)
|
||||
{
|
||||
switch (status) {
|
||||
case STS_CAL_FAIL:
|
||||
return "%L failed calibration";
|
||||
return label+" failed calibration";
|
||||
case STS_SENS_NOT_FOUND:
|
||||
return "%L sensor not found";
|
||||
return label+" sensor not found";
|
||||
case STS_SENS_ALWAYS_ON:
|
||||
return "%L sensor always on";
|
||||
return label+" sensor always on";
|
||||
case STS_LAMP_DOUSED:
|
||||
return "Lamp doused";
|
||||
case STS_LAMP_STRIKE:
|
||||
return "Lamp failed to strike";
|
||||
case STS_OVERTEMP:
|
||||
return "Sensor %d over temp at %d degrees C";
|
||||
return "Sensor "+std::to_string(data1)+" over temp at "+std::to_string(data2)+" °C";
|
||||
case STS_UNDERTEMP:
|
||||
return "Sensor %d under temp at %d degrees C";
|
||||
return "Sensor "+std::to_string(data1)+" under temp at "+std::to_string(data2)+" °C";
|
||||
case STS_SENS_OUT_RANGE:
|
||||
return "Sensor %d out of range";
|
||||
return "Sensor "+std::to_string(data1)+" out of range";
|
||||
case STS_OVERVOLTAGE_PHASE:
|
||||
return "Phase %d over voltage at %d V.";
|
||||
return "Phase "+std::to_string(data1)+" over voltage at "+std::to_string(data2)+" V.";
|
||||
case STS_UNDERVOLTAGE_PHASE:
|
||||
return "Phase %d under voltage at %d V.";
|
||||
return "Phase "+std::to_string(data1)+" under voltage at "+std::to_string(data2)+" V.";
|
||||
case STS_OVERCURRENT:
|
||||
return "Phase %d over current at %d A.";
|
||||
return "Phase "+std::to_string(data1)+" over current at "+std::to_string(data2)+" A.";
|
||||
case STS_UNDERCURRENT:
|
||||
return "Phase %d under current at %d A.";
|
||||
return "Phase "+std::to_string(data1)+" under current at "+std::to_string(data2)+" A.";
|
||||
case STS_PHASE:
|
||||
return "Phase %d is at %d degrees";
|
||||
return "Phase "+std::to_string(data1)+" is at "+std::to_string(data2)+"°";
|
||||
case STS_PHASE_ERROR:
|
||||
return "Phase %d Error.";
|
||||
return "Phase "+std::to_string(data1)+" Error.";
|
||||
case STS_AMPS:
|
||||
return "%d Amps";
|
||||
return std::to_string(data1)+" Amps";
|
||||
case STS_VOLTS:
|
||||
return "%d Volts";
|
||||
return std::to_string(data1)+" Volts";
|
||||
case STS_DIMSLOT_OCCUPIED:
|
||||
return "No Dimmer";
|
||||
case STS_BREAKER_TRIP:
|
||||
return "Tripped Breaker";
|
||||
case STS_WATTS:
|
||||
return "%d Watts";
|
||||
return std::to_string(data1)+" Watts";
|
||||
case STS_DIM_FAILURE:
|
||||
return "Dimmer Failure";
|
||||
case STS_DIM_PANIC:
|
||||
return "Panic Mode";
|
||||
case STS_READY:
|
||||
return "%L ready";
|
||||
return label+" ready";
|
||||
case STS_NOT_READY:
|
||||
return "%L not ready";
|
||||
return label+" not ready";
|
||||
case STS_LOW_FLUID:
|
||||
return "%L low fluid";
|
||||
return label+" low fluid";
|
||||
default:
|
||||
return std::string();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief SiUnitName
|
||||
* @param unit
|
||||
* @return
|
||||
*/
|
||||
std::string SiUnitName(const uint8_t unit)
|
||||
{
|
||||
switch (unit) {
|
||||
case UNITS_CENTIGRADE:
|
||||
return "Centigrade";
|
||||
case UNITS_VOLTS_DC:
|
||||
return "DC Volts";
|
||||
case UNITS_VOLTS_AC_PEAK:
|
||||
return "Peak AC Volts";
|
||||
case UNITS_VOLTS_AC_RMS:
|
||||
return "RMS AC Volts";
|
||||
case UNITS_AMPERE_DC:
|
||||
return "DC Amps";
|
||||
case UNITS_AMPERE_AC_PEAK:
|
||||
return "Peak AC Amps";
|
||||
case UNITS_AMPERE_AC_RMS:
|
||||
return "RMS AC Amps";
|
||||
case UNITS_HERTZ:
|
||||
return "Hertz";
|
||||
case UNITS_OHM:
|
||||
return "Ohms";
|
||||
case UNITS_WATT:
|
||||
return "Watts";
|
||||
case UNITS_KILOGRAM:
|
||||
return "kilograms";
|
||||
case UNITS_METERS:
|
||||
return "meters";
|
||||
case UNITS_METERS_SQUARED:
|
||||
return "square meters";
|
||||
case UNITS_METERS_CUBED:
|
||||
return "cubic meters";
|
||||
case UNITS_KILOGRAMES_PER_METER_CUBED:
|
||||
return "kilograms per cubic meter";
|
||||
case UNITS_METERS_PER_SECOND:
|
||||
return "meters per second";
|
||||
case UNITS_METERS_PER_SECOND_SQUARED:
|
||||
return "meters per second sqared";
|
||||
case UNITS_NEWTON:
|
||||
return "Newtons";
|
||||
case UNITS_JOULE:
|
||||
return "Joules";
|
||||
case UNITS_PASCAL:
|
||||
return "Pascals";
|
||||
case UNITS_SECOND:
|
||||
return "seconds";
|
||||
case UNITS_DEGREE:
|
||||
return "degrees";
|
||||
case UNITS_STERADIAN:
|
||||
return "streradians";
|
||||
case UNITS_CANDELA:
|
||||
return "candelas";
|
||||
case UNITS_LUMEN:
|
||||
return "lumen";
|
||||
case UNITS_LUX:
|
||||
return "lux";
|
||||
case UNITS_IRE:
|
||||
return "IRE";
|
||||
case UNITS_BYTE:
|
||||
return "byte";
|
||||
default:
|
||||
return std::string();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief SiUnitSymbol
|
||||
* @param unit
|
||||
* @return
|
||||
*/
|
||||
std::string SiUnitSymbol(const uint8_t unit)
|
||||
{
|
||||
switch (unit) {
|
||||
case UNITS_CENTIGRADE:
|
||||
return "°C";
|
||||
case UNITS_VOLTS_DC:
|
||||
return "Vᵈᶜ";
|
||||
case UNITS_VOLTS_AC_PEAK:
|
||||
return "Vᵖᵉᵃᵏ";
|
||||
case UNITS_VOLTS_AC_RMS:
|
||||
return "Vʳᵐˢ";
|
||||
case UNITS_AMPERE_DC:
|
||||
return "Aᵈᶜ";
|
||||
case UNITS_AMPERE_AC_PEAK:
|
||||
return "Aᵖᵉᵃᵏ";
|
||||
case UNITS_AMPERE_AC_RMS:
|
||||
return "Aʳᵐˢ";
|
||||
case UNITS_HERTZ:
|
||||
return "Hz";
|
||||
case UNITS_OHM:
|
||||
return "Ω";
|
||||
case UNITS_WATT:
|
||||
return "W";
|
||||
case UNITS_KILOGRAM:
|
||||
return "kg";
|
||||
case UNITS_METERS:
|
||||
return "m";
|
||||
case UNITS_METERS_SQUARED:
|
||||
return "m²";
|
||||
case UNITS_METERS_CUBED:
|
||||
return "m³";
|
||||
case UNITS_KILOGRAMES_PER_METER_CUBED:
|
||||
return "kg/m³";
|
||||
case UNITS_METERS_PER_SECOND:
|
||||
return "m/s";
|
||||
case UNITS_METERS_PER_SECOND_SQUARED:
|
||||
return "m/s²";
|
||||
case UNITS_NEWTON:
|
||||
return "N";
|
||||
case UNITS_JOULE:
|
||||
return "J";
|
||||
case UNITS_PASCAL:
|
||||
return "σ";
|
||||
case UNITS_SECOND:
|
||||
return "s";
|
||||
case UNITS_DEGREE:
|
||||
return "°";
|
||||
case UNITS_STERADIAN:
|
||||
return "Ω";
|
||||
case UNITS_CANDELA:
|
||||
return "Ιᵥ";
|
||||
case UNITS_LUMEN:
|
||||
return "Φᵥ";
|
||||
case UNITS_LUX:
|
||||
return "lx";
|
||||
case UNITS_IRE:
|
||||
return "IRE";
|
||||
case UNITS_BYTE:
|
||||
return "B";
|
||||
default:
|
||||
return std::string();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief SiUnitSymbolASCII
|
||||
* @param unit
|
||||
* @return
|
||||
*/
|
||||
std::string SiUnitSymbolASCII(const uint8_t unit)
|
||||
{
|
||||
switch (unit) {
|
||||
case UNITS_CENTIGRADE:
|
||||
return "deg(C)";
|
||||
case UNITS_VOLTS_DC:
|
||||
return "V(dc)";
|
||||
case UNITS_VOLTS_AC_PEAK:
|
||||
return "V(peak)";
|
||||
case UNITS_VOLTS_AC_RMS:
|
||||
return "V(rms)";
|
||||
case UNITS_AMPERE_DC:
|
||||
return "A(dc)";
|
||||
case UNITS_AMPERE_AC_PEAK:
|
||||
return "A(peak)";
|
||||
case UNITS_AMPERE_AC_RMS:
|
||||
return "A(rms)";
|
||||
case UNITS_OHM:
|
||||
return "Ohm";
|
||||
case UNITS_METERS_SQUARED:
|
||||
return "m^2";
|
||||
case UNITS_METERS_CUBED:
|
||||
return "m^3";
|
||||
case UNITS_KILOGRAMES_PER_METER_CUBED:
|
||||
return "kg/m^3";
|
||||
case UNITS_METERS_PER_SECOND_SQUARED:
|
||||
return "m/s^2";
|
||||
case UNITS_PASCAL:
|
||||
return "Pa";
|
||||
case UNITS_DEGREE:
|
||||
return "deg";
|
||||
case UNITS_STERADIAN:
|
||||
return "sr";
|
||||
case UNITS_CANDELA:
|
||||
return "cd";
|
||||
case UNITS_LUMEN:
|
||||
return "lm";
|
||||
default:
|
||||
return SiUnitSymbol(unit);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief SiPrefixName
|
||||
* @param prefix
|
||||
* @return
|
||||
*/
|
||||
std::string SiPrefixName(const uint8_t prefix)
|
||||
{
|
||||
switch (prefix) {
|
||||
case PREFIX_DECI:
|
||||
return "deci";
|
||||
case PREFIX_CENTI:
|
||||
return "centi";
|
||||
case PREFIX_MILLI:
|
||||
return "milli";
|
||||
case PREFIX_MICRO:
|
||||
return "micro";
|
||||
case PREFIX_NANO:
|
||||
return "nano";
|
||||
case PREFIX_PICO:
|
||||
return "pico";
|
||||
case PREFIX_FEMPTO:
|
||||
return "fempto";
|
||||
case PREFIX_ATTO:
|
||||
return "atto";
|
||||
case PREFIX_ZEPTO:
|
||||
return "zepto";
|
||||
case PREFIX_YOCTO:
|
||||
return "yocto";
|
||||
case PREFIX_DECA:
|
||||
return "deca";
|
||||
case PREFIX_HECTO:
|
||||
return "hecto";
|
||||
case PREFIX_KILO:
|
||||
return "kilo";
|
||||
case PREFIX_MEGA:
|
||||
return "mega";
|
||||
case PREFIX_GIGA:
|
||||
return "giga";
|
||||
case PREFIX_TERA:
|
||||
return "tera";
|
||||
case PREFIX_PETA:
|
||||
return "peta";
|
||||
case PREFIX_EXA:
|
||||
return "exa";
|
||||
case PREFIX_ZETTA:
|
||||
return "zetta";
|
||||
case PREFIX_YOTTA:
|
||||
return "yotta";
|
||||
default:
|
||||
return std::string();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief SiPrefixSymbol
|
||||
* @param prefix
|
||||
* @return
|
||||
*/
|
||||
std::string SiPrefixSymbol(const uint8_t prefix)
|
||||
{
|
||||
switch (prefix) {
|
||||
case PREFIX_DECI:
|
||||
return "d";
|
||||
case PREFIX_CENTI:
|
||||
return "c";
|
||||
case PREFIX_MILLI:
|
||||
return "m";
|
||||
case PREFIX_MICRO:
|
||||
return "μ";
|
||||
case PREFIX_NANO:
|
||||
return "n";
|
||||
case PREFIX_PICO:
|
||||
return "p";
|
||||
case PREFIX_FEMPTO:
|
||||
return "f";
|
||||
case PREFIX_ATTO:
|
||||
return "a";
|
||||
case PREFIX_ZEPTO:
|
||||
return "z";
|
||||
case PREFIX_YOCTO:
|
||||
return "y";
|
||||
case PREFIX_DECA:
|
||||
return "da";
|
||||
case PREFIX_HECTO:
|
||||
return "h";
|
||||
case PREFIX_KILO:
|
||||
return "k";
|
||||
case PREFIX_MEGA:
|
||||
return "M";
|
||||
case PREFIX_GIGA:
|
||||
return "G";
|
||||
case PREFIX_TERA:
|
||||
return "T";
|
||||
case PREFIX_PETA:
|
||||
return "P";
|
||||
case PREFIX_EXA:
|
||||
return "E";
|
||||
case PREFIX_ZETTA:
|
||||
return "Z";
|
||||
case PREFIX_YOTTA:
|
||||
return "Y";
|
||||
default:
|
||||
return std::string();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief SiPrefixSymbolASCII
|
||||
* @param prefix
|
||||
* @return
|
||||
*/
|
||||
std::string SiPrefixSymbolASCII(const uint8_t prefix)
|
||||
{
|
||||
switch (prefix) {
|
||||
case PREFIX_MICRO:
|
||||
return "u";
|
||||
default:
|
||||
return SiPrefixSymbol(prefix);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief SiPrefixBase10Exponent
|
||||
* @param prefix
|
||||
* @return
|
||||
*/
|
||||
int SiPrefixBase10Exponent(const uint8_t prefix)
|
||||
{
|
||||
switch (prefix) {
|
||||
case PREFIX_NONE:
|
||||
return 0;
|
||||
case PREFIX_DECI:
|
||||
return -1;
|
||||
case PREFIX_CENTI:
|
||||
return -2;
|
||||
case PREFIX_MILLI:
|
||||
return -3;
|
||||
case PREFIX_MICRO:
|
||||
return -6;
|
||||
case PREFIX_NANO:
|
||||
return -9;
|
||||
case PREFIX_PICO:
|
||||
return -12;
|
||||
case PREFIX_FEMPTO:
|
||||
return -15;
|
||||
case PREFIX_ATTO:
|
||||
return -18;
|
||||
case PREFIX_ZEPTO:
|
||||
return -21;
|
||||
case PREFIX_YOCTO:
|
||||
return -24;
|
||||
case PREFIX_DECA:
|
||||
return 1;
|
||||
case PREFIX_HECTO:
|
||||
return 2;
|
||||
case PREFIX_KILO:
|
||||
return 3;
|
||||
case PREFIX_MEGA:
|
||||
return 6;
|
||||
case PREFIX_GIGA:
|
||||
return 9;
|
||||
case PREFIX_TERA:
|
||||
return 12;
|
||||
case PREFIX_PETA:
|
||||
return 15;
|
||||
case PREFIX_EXA:
|
||||
return 18;
|
||||
case PREFIX_ZETTA:
|
||||
return 21;
|
||||
case PREFIX_YOTTA:
|
||||
return 24;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief StandardDescription
|
||||
* @param pid
|
||||
|
|
|
@ -892,6 +892,13 @@ namespace RDM {
|
|||
static const uint8_t SENS_OTHER = 0x7f;
|
||||
|
||||
// Tables A-13 thru A-16 are in parameterdescription.h
|
||||
std::string SiUnitName(const uint8_t unit);
|
||||
std::string SiUnitSymbol(const uint8_t unit);
|
||||
std::string SiUnitSymbolASCII(const uint8_t unit);
|
||||
std::string SiPrefixName(const uint8_t prefix);
|
||||
std::string SiPrefixSymbol(const uint8_t prefix);
|
||||
std::string SiPrefixSymbolASCII(const uint8_t prefix);
|
||||
int SiPrefixBase10Exponent(const uint8_t prefix);
|
||||
|
||||
std::string NackReasonDescription(const uint16_t NR);
|
||||
// Table A-17: Response NACK Reason Code
|
||||
|
|
Loading…
Reference in New Issue