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);