Added config option for display precision and formatter code improvements
This commit is contained in:
parent
fb3af0bf83
commit
eb51092b23
|
@ -65,6 +65,7 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
String tempFormat = commondata.config->getString(commondata.config->tempFormat); // [K|°C|°F]
|
||||
String dateFormat = commondata.config->getString(commondata.config->dateFormat); // [DE|GB|US]
|
||||
bool usesimudata = commondata.config->getBool(commondata.config->useSimuData); // [on|off]
|
||||
String precision = commondata.config->getString(commondata.config->valueprecision); // [1|2]
|
||||
|
||||
// If boat value not valid
|
||||
if (! value->valid && !usesimudata){
|
||||
|
@ -72,6 +73,19 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
return result;
|
||||
}
|
||||
|
||||
const char* fmt_dec_1;
|
||||
const char* fmt_dec_10;
|
||||
const char* fmt_dec_100;
|
||||
if (precision == "1") {
|
||||
fmt_dec_1 = "%3.1f";
|
||||
fmt_dec_10 = "%3.0f";
|
||||
fmt_dec_100 = "%3.0f";
|
||||
} else {
|
||||
fmt_dec_1 = "%3.2f";
|
||||
fmt_dec_10 = "%3.1f";
|
||||
fmt_dec_100 = "%3.0f";
|
||||
}
|
||||
|
||||
// LOG_DEBUG(GwLog::DEBUG,"formatValue init: getFormat: %s date->value: %f time->value: %f", value->getFormat(), commondata.date->value, commondata.time->value);
|
||||
static const int bsize = 30;
|
||||
char buffer[bsize+1];
|
||||
|
@ -206,13 +220,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
result.unit = "m/s";
|
||||
}
|
||||
if(speed < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",speed);
|
||||
snprintf(buffer, bsize, fmt_dec_1, speed);
|
||||
}
|
||||
if(speed >= 10 && speed < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",speed);
|
||||
else if (speed < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, speed);
|
||||
}
|
||||
if(speed >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",speed);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, speed);
|
||||
}
|
||||
}
|
||||
//########################################################
|
||||
|
@ -238,40 +252,40 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
if (speed < 0.3) {
|
||||
speed = 0;
|
||||
}
|
||||
if(speed >=0.3 && speed < 1.5){
|
||||
else if (speed < 1.5) {
|
||||
speed = 1;
|
||||
}
|
||||
if(speed >=1.5 && speed < 3.3){
|
||||
else if (speed < 3.3) {
|
||||
speed = 2;
|
||||
}
|
||||
if(speed >=3.3 && speed < 5.4){
|
||||
else if (speed < 5.4) {
|
||||
speed = 3;
|
||||
}
|
||||
if(speed >=5.4 && speed < 7.9){
|
||||
else if (speed < 7.9) {
|
||||
speed = 4;
|
||||
}
|
||||
if(speed >=7.9 && speed < 10.7){
|
||||
else if (speed < 10.7) {
|
||||
speed = 5;
|
||||
}
|
||||
if(speed >=10.7 && speed < 13.8){
|
||||
else if (speed < 13.8) {
|
||||
speed = 6;
|
||||
}
|
||||
if(speed >=13.8 && speed < 17.1){
|
||||
else if (speed < 17.1) {
|
||||
speed = 7;
|
||||
}
|
||||
if(speed >=17.1 && speed < 20.7){
|
||||
else if (speed < 20.7) {
|
||||
speed = 8;
|
||||
}
|
||||
if(speed >=20.7 && speed < 24.4){
|
||||
else if (speed < 24.4) {
|
||||
speed = 9;
|
||||
}
|
||||
if(speed >=24.4 && speed < 28.4){
|
||||
else if (speed < 28.4) {
|
||||
speed = 10;
|
||||
}
|
||||
if(speed >=28.4 && speed < 32.6){
|
||||
else if (speed < 32.6) {
|
||||
speed = 11;
|
||||
}
|
||||
if(speed >=32.6){
|
||||
else {
|
||||
speed = 12;
|
||||
}
|
||||
result.unit = "bft";
|
||||
|
@ -285,13 +299,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
}
|
||||
else{
|
||||
if (speed < 10){
|
||||
snprintf(buffer,bsize,"%3.2f",speed);
|
||||
snprintf(buffer, bsize, fmt_dec_1, speed);
|
||||
}
|
||||
if(speed >= 10 && speed < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",speed);
|
||||
else if (speed < 100){
|
||||
snprintf(buffer, bsize, fmt_dec_10, speed);
|
||||
}
|
||||
if(speed >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",speed);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, speed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -337,10 +351,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
dop = 99.9;
|
||||
}
|
||||
if (dop < 10){
|
||||
snprintf(buffer,bsize,"%3.2f",dop);
|
||||
snprintf(buffer, bsize, fmt_dec_1, dop);
|
||||
}
|
||||
if(dop >= 10 && dop < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",dop);
|
||||
else if(dop < 100){
|
||||
snprintf(buffer, bsize, fmt_dec_10, dop);
|
||||
}
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, dop);
|
||||
}
|
||||
}
|
||||
//########################################################
|
||||
|
@ -410,13 +427,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
result.unit = "m";
|
||||
}
|
||||
if (depth < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",depth);
|
||||
snprintf(buffer, bsize, fmt_dec_1, depth);
|
||||
}
|
||||
if(depth >= 10 && depth < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",depth);
|
||||
else if (depth < 100){
|
||||
snprintf(buffer, bsize, fmt_dec_10, depth);
|
||||
}
|
||||
if(depth >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",depth);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, depth);
|
||||
}
|
||||
}
|
||||
//########################################################
|
||||
|
@ -430,11 +447,11 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
xte = rawvalue;
|
||||
}
|
||||
if (xte >= 100) {
|
||||
snprintf(buffer,bsize,"%3.0f",value->value);
|
||||
snprintf(buffer, bsize, fmt_dec_100, value->value);
|
||||
} else if (xte >= 10) {
|
||||
snprintf(buffer,bsize,"%3.1f",value->value);
|
||||
snprintf(buffer, bsize, fmt_dec_10, value->value);
|
||||
} else {
|
||||
snprintf(buffer,bsize,"%3.2f",value->value);
|
||||
snprintf(buffer, bsize, fmt_dec_1, value->value);
|
||||
}
|
||||
result.unit = "nm";
|
||||
}
|
||||
|
@ -461,13 +478,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
result.unit = "K";
|
||||
}
|
||||
if(temp < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",temp);
|
||||
snprintf(buffer, bsize, fmt_dec_1, temp);
|
||||
}
|
||||
if(temp >= 10 && temp < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",temp);
|
||||
else if (temp < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, temp);
|
||||
}
|
||||
if(temp >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",temp);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, temp);
|
||||
}
|
||||
}
|
||||
//########################################################
|
||||
|
@ -489,17 +506,17 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
distance = distance * 0.000539957;
|
||||
result.unit = "nm";
|
||||
}
|
||||
else{;
|
||||
else {
|
||||
result.unit = "m";
|
||||
}
|
||||
if (distance < 10){
|
||||
snprintf(buffer,bsize,"%3.2f",distance);
|
||||
snprintf(buffer, bsize, fmt_dec_1, distance);
|
||||
}
|
||||
if(distance >= 10 && distance < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",distance);
|
||||
else if (distance < 100){
|
||||
snprintf(buffer, bsize, fmt_dec_10, distance);
|
||||
}
|
||||
if(distance >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",distance);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, distance);
|
||||
}
|
||||
}
|
||||
//########################################################
|
||||
|
@ -547,10 +564,10 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
voltage = rawvalue;
|
||||
}
|
||||
if (voltage < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",voltage);
|
||||
snprintf(buffer, bsize, fmt_dec_1, voltage);
|
||||
}
|
||||
else {
|
||||
snprintf(buffer,bsize,"%3.1f",voltage);
|
||||
snprintf(buffer, bsize, fmt_dec_10, voltage);
|
||||
}
|
||||
result.unit = "V";
|
||||
}
|
||||
|
@ -566,13 +583,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
current = rawvalue;
|
||||
}
|
||||
if (current < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",current);
|
||||
snprintf(buffer, bsize, fmt_dec_1, current);
|
||||
}
|
||||
if(current >= 10 && current < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",current);
|
||||
else if(current < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, current);
|
||||
}
|
||||
if(current >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",current);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, current);
|
||||
}
|
||||
result.unit = "A";
|
||||
}
|
||||
|
@ -588,13 +605,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
temperature = rawvalue;
|
||||
}
|
||||
if (temperature < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",temperature);
|
||||
snprintf(buffer, bsize, fmt_dec_1, temperature);
|
||||
}
|
||||
if(temperature >= 10 && temperature < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",temperature);
|
||||
else if (temperature < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, temperature);
|
||||
}
|
||||
if(temperature >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",temperature);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, temperature);
|
||||
}
|
||||
result.unit = "Deg C";
|
||||
}
|
||||
|
@ -610,13 +627,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
temperature = rawvalue;
|
||||
}
|
||||
if (temperature < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",temperature);
|
||||
snprintf(buffer, bsize, fmt_dec_1, temperature);
|
||||
}
|
||||
if(temperature >= 10 && temperature < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",temperature);
|
||||
else if(temperature < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, temperature);
|
||||
}
|
||||
if(temperature >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",temperature);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, temperature);
|
||||
}
|
||||
result.unit = "Deg C";
|
||||
}
|
||||
|
@ -632,13 +649,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
humidity = rawvalue;
|
||||
}
|
||||
if (humidity < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",humidity);
|
||||
snprintf(buffer, bsize, fmt_dec_1, humidity);
|
||||
}
|
||||
if(humidity >= 10 && humidity < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",humidity);
|
||||
else if(humidity < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, humidity);
|
||||
}
|
||||
if(humidity >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",humidity);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, humidity);
|
||||
}
|
||||
result.unit = "%";
|
||||
}
|
||||
|
@ -654,13 +671,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
volume = rawvalue;
|
||||
}
|
||||
if (volume < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",volume);
|
||||
snprintf(buffer, bsize, fmt_dec_1, volume);
|
||||
}
|
||||
if(volume >= 10 && volume < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",volume);
|
||||
else if (volume < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, volume);
|
||||
}
|
||||
if(volume >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",volume);
|
||||
else if (volume >= 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_100, volume);
|
||||
}
|
||||
result.unit = "%";
|
||||
}
|
||||
|
@ -676,13 +693,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
volume = rawvalue;
|
||||
}
|
||||
if (volume < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",volume);
|
||||
snprintf(buffer, bsize, fmt_dec_1, volume);
|
||||
}
|
||||
if(volume >= 10 && volume < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",volume);
|
||||
else if (volume < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, volume);
|
||||
}
|
||||
if(volume >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",volume);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, volume);
|
||||
}
|
||||
result.unit = "l";
|
||||
}
|
||||
|
@ -698,13 +715,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
flow = rawvalue;
|
||||
}
|
||||
if (flow < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",flow);
|
||||
snprintf(buffer, bsize, fmt_dec_1, flow);
|
||||
}
|
||||
if(flow >= 10 && flow < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",flow);
|
||||
else if (flow < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, flow);
|
||||
}
|
||||
if(flow >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",flow);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, flow);
|
||||
}
|
||||
result.unit = "l/min";
|
||||
}
|
||||
|
@ -712,7 +729,7 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
else if (value->getFormat() == "formatXdr:G:"){
|
||||
double generic = 0;
|
||||
if (usesimudata == false) {
|
||||
generic = value->value; // Value in l/min
|
||||
generic = value->value;
|
||||
rawvalue = value->value;
|
||||
}
|
||||
else {
|
||||
|
@ -720,13 +737,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
generic = rawvalue;
|
||||
}
|
||||
if (generic < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",generic);
|
||||
snprintf(buffer, bsize, fmt_dec_1, generic);
|
||||
}
|
||||
if(generic >= 10 && generic < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",generic);
|
||||
else if (generic < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, generic);
|
||||
}
|
||||
if(generic >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",generic);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, generic);
|
||||
}
|
||||
result.unit = "";
|
||||
}
|
||||
|
@ -742,13 +759,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
dplace = rawvalue;
|
||||
}
|
||||
if (dplace < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",dplace);
|
||||
snprintf(buffer, bsize, fmt_dec_1, dplace);
|
||||
}
|
||||
if(dplace >= 10 && dplace < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",dplace);
|
||||
else if (dplace < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, dplace);
|
||||
}
|
||||
if(dplace >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",dplace);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, dplace);
|
||||
}
|
||||
result.unit = "%";
|
||||
}
|
||||
|
@ -784,13 +801,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
rpm = rawvalue;
|
||||
}
|
||||
if (rpm < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",rpm);
|
||||
snprintf(buffer, bsize, fmt_dec_1, rpm);
|
||||
}
|
||||
if(rpm >= 10 && rpm < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",rpm);
|
||||
else if (rpm < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, rpm);
|
||||
}
|
||||
if(rpm >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",rpm);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, rpm);
|
||||
}
|
||||
result.unit = "rpm";
|
||||
}
|
||||
|
@ -799,13 +816,13 @@ FormattedData formatValue(GwApi::BoatValue *value, CommonData &commondata){
|
|||
//########################################################
|
||||
else {
|
||||
if (value->value < 10) {
|
||||
snprintf(buffer,bsize,"%3.2f",value->value);
|
||||
snprintf(buffer, bsize, fmt_dec_1, value->value);
|
||||
}
|
||||
if(value->value >= 10 && value->value < 100){
|
||||
snprintf(buffer,bsize,"%3.1f",value->value);
|
||||
else if (value->value < 100) {
|
||||
snprintf(buffer, bsize, fmt_dec_10, value->value);
|
||||
}
|
||||
if(value->value >= 100){
|
||||
snprintf(buffer,bsize,"%3.0f",value->value);
|
||||
else {
|
||||
snprintf(buffer, bsize, fmt_dec_100, value->value);
|
||||
}
|
||||
result.unit = "";
|
||||
}
|
||||
|
|
|
@ -1117,6 +1117,21 @@
|
|||
"obp60":"true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "valueprecision",
|
||||
"label": "Display value precision",
|
||||
"type": "list",
|
||||
"default": "2",
|
||||
"description": "Maximum number of decimal places to display [1|2]",
|
||||
"list": [
|
||||
"1",
|
||||
"2"
|
||||
],
|
||||
"category": "OBP60 Display",
|
||||
"capabilities": {
|
||||
"obp60":"true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "backlight",
|
||||
"label": "Backlight Mode",
|
||||
|
|
|
@ -1129,6 +1129,21 @@
|
|||
"obp40": "true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "valueprecision",
|
||||
"label": "Display value precision",
|
||||
"type": "list",
|
||||
"default": "2",
|
||||
"description": "Maximum number of decimal places to display [1|2]",
|
||||
"list": [
|
||||
"1",
|
||||
"2"
|
||||
],
|
||||
"category": "OBP40 Display",
|
||||
"capabilities": {
|
||||
"obp40":"true"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "backlight",
|
||||
"label": "Backlight Mode",
|
||||
|
|
Loading…
Reference in New Issue