Hi,
followup on a diff from last month, updated to -current:
- adds SENSOR_VELOCITY, internal unit um/s, display unit m/s
- changes SENSOR_DISTANCE to display as meters, with 3 decimals
which gives:
hw.sensors.nmea0.distance0=335.600 m (Altitude), OK
hw.sensors.nmea0.velocity0=18.337 m/s (Ground speed), OK
should the LAST-UPDATED field in the snmp sensors mib be updated to the
commit date ?
looking for okays so that i can make progress on the nmea changes for
altitude/speed.
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 8 Dec 2018 09:51:00 -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 8 Dec 2018 09:51:00 -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.91
diff -u -r1.91 mib.c
--- usr.sbin/snmpd/mib.c 31 Aug 2018 05:20:36 -0000 1.91
+++ usr.sbin/snmpd/mib.c 8 Dec 2018 09:51:06 -0000
@@ -2658,7 +2658,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 *
@@ -2690,6 +2690,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:
@@ -2699,7 +2701,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 8 Dec 2018 09:51:06 -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, "%.3f 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.238
diff -u -r1.238 sysctl.c
--- sbin/sysctl/sysctl.c 6 Nov 2018 07:55:08 -0000 1.238
+++ sbin/sysctl/sysctl.c 8 Dec 2018 09:51:07 -0000
@@ -2654,13 +2654,16 @@
printf("%3.4f degrees", s->value / 1000000.0);
break;
case SENSOR_DISTANCE:
- printf("%.2f mm", s->value / 1000.0);
+ printf("%.3f 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 8 Dec 2018 09:51:07 -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("%.3f 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);