Hi,

i'd like to have the functionality given by the diff below, before
cleaning up another diff making use of it.

with "# envstat -Td bmx280temp0 -i 1" i get output like:

               Current      Max      Min      Avg   Unit
               temperature:    25.070   25.070   25.060   25.067    degC
                  pressure:   100.860  100.867  100.856  100.861     kPa

and with "# envstat -d bmx280temp0":

               Current  CritMax  WarnMax  WarnMin  CritMin  Unit
               temperature:    25.080                                      degC
                  pressure:   100.865                                       kPa

my sensor does fill ->value_cur with mPa, so pressure does fit into the
"everything else"-else{} with ->cur_value / 1000000.0 for printout in kPa.

did i miss anything?

-Artturi


diff --git a/sys/dev/sysmon/sysmon_envsys_tables.c 
b/sys/dev/sysmon/sysmon_envsys_tables.c
index 75fed669892a..ceec07b8e93a 100644
--- a/sys/dev/sysmon/sysmon_envsys_tables.c
+++ b/sys/dev/sysmon/sysmon_envsys_tables.c
@@ -53,6 +53,7 @@ static const struct sme_descr_entry sme_units_description[] = 
{
        { ENVSYS_BATTERY_CHARGE, -1,                    "Battery charge" },
        { ENVSYS_SRELHUMIDITY,  -1,                     "relative Humidity" },
        { ENVSYS_LUX,           -1,                     "Illuminance" },
+       { ENVSYS_SPRESSURE,     -1,                     "Pressure" },
        { -1,                   -1,                     "unknown" }
 };
 
diff --git a/sys/sys/envsys.h b/sys/sys/envsys.h
index b3f2e7662b2b..2bd8df824990 100644
--- a/sys/sys/envsys.h
+++ b/sys/sys/envsys.h
@@ -65,6 +65,7 @@ enum envsys_units {
        ENVSYS_BATTERY_CHARGE,          /* Battery charging/discharging */
        ENVSYS_SRELHUMIDITY,            /* relative humidity */
        ENVSYS_LUX,                     /* illuminance in lux */
+       ENVSYS_SPRESSURE,               /* Pressure in mPa */
        ENVSYS_NSENSORS
 };
 
@@ -163,7 +164,7 @@ typedef struct envsys_tre_data envsys_tre_data_t;
 #ifdef ENVSYSUNITNAMES
 static const char * const envsysunitnames[] = {
     "degC", "RPM", "VAC", "V", "Ohms", "W",
-    "A", "Wh", "Ah", "bool", "integer", "drive", "%rH", "lux", "Unk"
+    "A", "Wh", "Ah", "bool", "integer", "drive", "%rH", "lux", "kPa", "Unk"
 };
 static const char * const envsysdrivestatus[] = {
     "unknown", "empty", "ready", "powering up", "online", "idle", "active",
diff --git a/usr.sbin/envstat/envstat.8 b/usr.sbin/envstat/envstat.8
index b6f5f402ef0a..e023969153eb 100644
--- a/usr.sbin/envstat/envstat.8
+++ b/usr.sbin/envstat/envstat.8
@@ -168,6 +168,8 @@ Watts
 Watt-hours
 .It %rH
 relative Humidity
+.It kPa
+Pressure in kilopascals
 .El
 .Sh EXAMPLES
 To display the
diff --git a/usr.sbin/envstat/envstat.c b/usr.sbin/envstat/envstat.c
index f5a7422917b0..8d33fcc8304f 100644
--- a/usr.sbin/envstat/envstat.c
+++ b/usr.sbin/envstat/envstat.c
@@ -1023,6 +1023,8 @@ do {                                                      
                \
                                stype = "Ah";
                        else if (strcmp(sensor->type, "relative Humidity") == 0)
                                stype = "%rH";
+                       else if (strcmp(sensor->type, "Pressure") == 0)
+                               stype = "kPa";
                        else
                                stype = "?";
 

Reply via email to