Skip to content

Commit bc2fd96

Browse files
committed
Metrics: added unit "feet", fixed acceleration conversions
1 parent 8c61cad commit bc2fd96

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

vehicle/OVMS.V3/main/ovms_metrics.cpp

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1405,6 +1405,7 @@ const char* OvmsMetricUnitLabel(metric_unit_t units)
14051405
case Kilometers: return "km";
14061406
case Miles: return "M";
14071407
case Meters: return "m";
1408+
case Feet: return "ft";
14081409
case Celcius: return "°C";
14091410
case Fahrenheit: return "°F";
14101411
case kPa: return "kPa";
@@ -1449,13 +1450,23 @@ int UnitConvert(metric_unit_t from, metric_unit_t to, int value)
14491450
if (to == Kilometers) return (value*8)/5;
14501451
else if (to == Meters) return (value*8000)/5;
14511452
break;
1453+
case Meters:
1454+
if (to == Feet) return (int)(value * 3.28084);
1455+
break;
1456+
case Feet:
1457+
if (to == Meters) return (int)(value * 0.3048);
1458+
break;
14521459
case KphPS:
14531460
if (to == MphPS) return (value*5)/8;
1454-
else if (to == MetersPSS) return value/1000;
1461+
else if (to == MetersPSS) return (value*1000)/3600;
14551462
break;
14561463
case MphPS:
14571464
if (to == KphPS) return (value*8)/5;
1458-
else if (to == MetersPSS) return (value*8000)/5;
1465+
else if (to == MetersPSS) return (value*8000)/(5*3600);
1466+
break;
1467+
case MetersPSS:
1468+
if (to == KphPS) return (int) (value*3.6);
1469+
else if (to == MphPS) return (int) (value*3.6/1.60934);
14591470
break;
14601471
case kW:
14611472
if (to == Watts) return (value*1000);
@@ -1548,13 +1559,23 @@ float UnitConvert(metric_unit_t from, metric_unit_t to, float value)
15481559
if (to == Kilometers) return (value*1.60934);
15491560
else if (to == Meters) return (value*1609.34);
15501561
break;
1562+
case Meters:
1563+
if (to == Feet) return (value * 3.28084);
1564+
break;
1565+
case Feet:
1566+
if (to == Meters) return (value * 0.3048);
1567+
break;
15511568
case KphPS:
15521569
if (to == MphPS) return (value/1.60934);
1553-
else if (to == MetersPSS) return value/1000;
1570+
else if (to == MetersPSS) return value/3.6;
15541571
break;
15551572
case MphPS:
15561573
if (to == KphPS) return (value*8)/5;
1557-
else if (to == MetersPSS) return (value*1.60934);
1574+
else if (to == MetersPSS) return (value*1.60934/3.6);
1575+
break;
1576+
case MetersPSS:
1577+
if (to == KphPS) return (value*3.6);
1578+
else if (to == MphPS) return (value*3.6/1.60934);
15581579
break;
15591580
case kW:
15601581
if (to == Watts) return (value*1000);

vehicle/OVMS.V3/main/ovms_metrics.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ typedef enum : uint8_t
6363
Kilometers = 10,
6464
Miles = 11,
6565
Meters = 12,
66+
Feet = 13,
6667

6768
Celcius = 20,
6869
Fahrenheit = 21,

0 commit comments

Comments
 (0)