On Sat, Nov 03, 2018 at 05:27:03PM +0100, Landry Breuil wrote:
> 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..

New diff after feedback from kettenis@, this one:
- adds SENSOR_VELOCITY, internal unit um/s, display unit m/s
- changes SENSOR_DISTANCE to display as meters, i kept 5 decimals

I think my math should be good, but more eyes are always welcome :)

Landry
Index: sys/sys/sensors.h
===================================================================
RCS file: /cvs/src/sys/sys/sensors.h,v
retrieving revision 1.35
diff -u -r1.35 sensors.h
--- sys/sys/sensors.h   8 Apr 2017 04:06:01 -0000       1.35
+++ sys/sys/sensors.h   3 Nov 2018 18:11:53 -0000
@@ -52,6 +52,7 @@
        SENSOR_DISTANCE,                /* distance (uMeter) */
        SENSOR_PRESSURE,                /* pressure (mPa) */
        SENSOR_ACCEL,                   /* acceleration (u m/s^2) */
+       SENSOR_VELOCITY,                /* velocity (u m/s) */
        SENSOR_MAX_TYPES
 };
 
@@ -78,6 +79,7 @@
        "distance",
        "pressure",
        "acceleration",
+       "velocity",
        "undefined"
 };
 #endif /* !_KERNEL */
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 18:11:53 -0000
@@ -26,7 +26,7 @@
            FROM SNMPv2-CONF;
 
 sensorsMIBObjects MODULE-IDENTITY
-       LAST-UPDATED "201209200000Z"
+       LAST-UPDATED "201811030000Z"
        ORGANIZATION "OpenBSD"
        CONTACT-INFO
            "Editor:    Reyk Floeter
@@ -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,8 @@
                                angle(17),
                                distance(18),
                                pressure(19),
-                               accel(20)
+                               accel(20),
+                               velocity(21)
                        }
        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 18:11:54 -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", ""
+       "m", "Pa", "m/s^2", "m/s", ""
 };
 
 const char *
@@ -2649,6 +2649,8 @@
        case SENSOR_LUX:
        case SENSOR_FREQ:
        case SENSOR_ACCEL:
+       case SENSOR_VELOCITY:
+       case SENSOR_DISTANCE:
                ret = asprintf(&v, "%.2f", s->value / 1000000.0);
                break;
        case SENSOR_INDICATOR:
@@ -2658,7 +2660,6 @@
        case SENSOR_HUMIDITY:
                ret = asprintf(&v, "%.2f", s->value / 1000.0);
                break;
-       case SENSOR_DISTANCE:
        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 18:11:55 -0000
@@ -692,7 +692,7 @@
                snprintf(fbuf, RFBUFSIZ, "%lld", value);
                break;
        case SENSOR_DISTANCE:
-               snprintf(fbuf, RFBUFSIZ, "%.2f mm", value / 1000.0);
+               snprintf(fbuf, RFBUFSIZ, "%.5f m", value / 1000000.0);
                break;
        case SENSOR_PRESSURE:
                snprintf(fbuf, RFBUFSIZ, "%.2f Pa", value / 1000.0);
@@ -700,6 +700,9 @@
        case SENSOR_ACCEL:
                snprintf(fbuf, RFBUFSIZ, "%2.4f m/s^2", value / 1000000.0);
                break;
+       case SENSOR_VELOCITY:
+               snprintf(fbuf, RFBUFSIZ, "%4.3f m/s", value / 1000000.0);
+               break;
        default:
                snprintf(fbuf, RFBUFSIZ, "%lld ???", value);
        }
@@ -813,13 +816,14 @@
        case SENSOR_LUX:
        case SENSOR_FREQ:
        case SENSOR_ACCEL:
+       case SENSOR_DISTANCE:
+       case SENSOR_VELOCITY:
                rval = val * 1000 * 1000;
                break;
        case SENSOR_TIMEDELTA:
                rval = val * 1000 * 1000 * 1000;
                break;
        case SENSOR_HUMIDITY:
-       case SENSOR_DISTANCE:
        case SENSOR_PRESSURE:
                rval = val * 1000.0;
                break;
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 18:11:56 -0000
@@ -2653,13 +2653,16 @@
                        printf("%3.4f degrees", s->value / 1000000.0);
                        break;
                case SENSOR_DISTANCE:
-                       printf("%.2f mm", s->value / 1000.0);
+                       printf("%.5f m", s->value / 1000000.0);
                        break;
                case SENSOR_PRESSURE:
                        printf("%.2f Pa", s->value / 1000.0);
                        break;
                case SENSOR_ACCEL:
                        printf("%2.4f m/s^2", s->value / 1000000.0);
+                       break;
+               case SENSOR_VELOCITY:
+                       printf("%4.3f m/s", s->value / 1000000.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 18:11:56 -0000
@@ -280,13 +280,16 @@
                tbprintf("%3.4f degrees", s->sn_value / 1000000.0);
                break;
        case SENSOR_DISTANCE:
-               tbprintf("%.2f mm", s->sn_value / 1000.0);
+               tbprintf("%.5f m", s->sn_value / 1000000.0);
                break;
        case SENSOR_PRESSURE:
                tbprintf("%.2f Pa", s->sn_value / 1000.0);
                break;
        case SENSOR_ACCEL:
                tbprintf("%2.4f m/s^2", s->sn_value / 1000000.0);
+               break;
+       case SENSOR_VELOCITY:
+               tbprintf("%4.3f m/s", s->sn_value / 1000000.0);
                break;
        default:
                tbprintf("%10lld", s->sn_value);

Reply via email to