Hi,

complementary to the previous diff, adds altitude sensor type (in
meters) and speed (in m/s, as it seems that's the common denominator and
most accepted unit, even if it doesnt 'mean' anything to humans...)
i still have to ponder about the decimals & intervals..

builds, not used yet.

Landry
Index: share/snmp/OPENBSD-SENSORS-MIB.txt
===================================================================
RCS file: /cvs/src/share/snmp/OPENBSD-SENSORS-MIB.txt,v
retrieving revision 1.6
diff -u -r1.6 OPENBSD-SENSORS-MIB.txt
--- share/snmp/OPENBSD-SENSORS-MIB.txt  2 Sep 2016 12:17:33 -0000       1.6
+++ share/snmp/OPENBSD-SENSORS-MIB.txt  3 Nov 2018 16:23:57 -0000
@@ -39,6 +39,9 @@
        DESCRIPTION
            "The MIB module for gathering information from
            OpenBSD's kernel sensor framework."
+       REVISION "201811030000Z"
+       DESCRIPTION
+           "Add new sensor types."
        REVISION "201209200000Z"
        DESCRIPTION
            "Add new sensor types."
@@ -136,7 +139,9 @@
                                angle(17),
                                distance(18),
                                pressure(19),
-                               accel(20)
+                               accel(20),
+                               altitude(21),
+                               speed(22)
                        }
        MAX-ACCESS      read-only
        STATUS          current
Index: usr.sbin/snmpd/mib.c
===================================================================
RCS file: /cvs/src/usr.sbin/snmpd/mib.c,v
retrieving revision 1.85
diff -u -r1.85 mib.c
--- usr.sbin/snmpd/mib.c        18 Dec 2017 05:51:53 -0000      1.85
+++ usr.sbin/snmpd/mib.c        3 Nov 2018 16:23:59 -0000
@@ -2617,7 +2617,7 @@
 static const char * const sensor_unit_s[SENSOR_MAX_TYPES + 1] = {
        "degC", "RPM", "V DC", "V AC", "Ohm", "W", "A", "Wh", "Ah",
        "", "", "%", "lx", "", "sec", "%RH", "Hz", "degree", 
-       "mm", "Pa", "m/s^2", ""
+       "mm", "Pa", "m/s^2", "m", "m/s", ""
 };
 
 const char *
@@ -2659,6 +2659,8 @@
                ret = asprintf(&v, "%.2f", s->value / 1000.0);
                break;
        case SENSOR_DISTANCE:
+       case SENSOR_ALTITUDE:
+       case SENSOR_SPEED:
        case SENSOR_PRESSURE:
                ret = asprintf(&v, "%.2f", s->value / 1000.0);
                break;
Index: usr.sbin/sensorsd/sensorsd.c
===================================================================
RCS file: /cvs/src/usr.sbin/sensorsd/sensorsd.c,v
retrieving revision 1.62
diff -u -r1.62 sensorsd.c
--- usr.sbin/sensorsd/sensorsd.c        22 Oct 2018 16:20:09 -0000      1.62
+++ usr.sbin/sensorsd/sensorsd.c        3 Nov 2018 16:24:01 -0000
@@ -700,6 +700,12 @@
        case SENSOR_ACCEL:
                snprintf(fbuf, RFBUFSIZ, "%2.4f m/s^2", value / 1000000.0);
                break;
+       case SENSOR_ALTITUDE:
+               snprintf(fbuf, RFBUFSIZ, "%4.3f m", value / 1000.0);
+               break;
+       case SENSOR_SPEED:
+               snprintf(fbuf, RFBUFSIZ, "%4.3f m/s", value / 1000.0);
+               break;
        default:
                snprintf(fbuf, RFBUFSIZ, "%lld ???", value);
        }
@@ -821,6 +827,8 @@
        case SENSOR_HUMIDITY:
        case SENSOR_DISTANCE:
        case SENSOR_PRESSURE:
+       case SENSOR_ALTITUDE:
+       case SENSOR_SPEED:
                rval = val * 1000.0;
                break;
        default:
Index: sbin/sysctl/sysctl.c
===================================================================
RCS file: /cvs/src/sbin/sysctl/sysctl.c,v
retrieving revision 1.237
diff -u -r1.237 sysctl.c
--- sbin/sysctl/sysctl.c        29 Sep 2018 04:29:48 -0000      1.237
+++ sbin/sysctl/sysctl.c        3 Nov 2018 16:24:02 -0000
@@ -2661,6 +2661,12 @@
                case SENSOR_ACCEL:
                        printf("%2.4f m/s^2", s->value / 1000000.0);
                        break;
+               case SENSOR_ALTITUDE:
+                       printf("%4.3f m", s->value / 1000.0);
+                       break;
+               case SENSOR_SPEED:
+                       printf("%4.3f m/s", s->value / 1000.0);
+                       break;
                default:
                        printf("unknown");
                }
Index: usr.bin/systat/sensors.c
===================================================================
RCS file: /cvs/src/usr.bin/systat/sensors.c,v
retrieving revision 1.30
diff -u -r1.30 sensors.c
--- usr.bin/systat/sensors.c    16 Jan 2015 00:03:38 -0000      1.30
+++ usr.bin/systat/sensors.c    3 Nov 2018 16:24:02 -0000
@@ -288,6 +288,12 @@
        case SENSOR_ACCEL:
                tbprintf("%2.4f m/s^2", s->sn_value / 1000000.0);
                break;
+       case SENSOR_ALTITUDE:
+               tbprintf("%4.3f m", s->sn_value / 1000.0);
+               break;
+       case SENSOR_SPEED:
+               tbprintf("%4.3f m/s", s->sn_value / 1000.0);
+               break;
        default:
                tbprintf("%10lld", s->sn_value);
                break;

Reply via email to