Download raw body.
upd(4): add more sensors (load, power..)
On 2024/11/19 10:51, Stuart Henderson wrote:
> The unit for apparent power should be VA, not W.
*untested* diff adding this. also adds some printers for SENSOR_ENERGY
which were missed when adding it previously.
Index: sys/sys/sensors.h
===================================================================
RCS file: /cvs/src/sys/sys/sensors.h,v
diff -u -p -r1.37 sensors.h
--- sys/sys/sensors.h 15 Jul 2020 07:13:57 -0000 1.37
+++ sys/sys/sensors.h 21 Nov 2024 13:52:23 -0000
@@ -54,6 +54,7 @@ enum sensor_type {
SENSOR_ACCEL, /* acceleration (u m/s^2) */
SENSOR_VELOCITY, /* velocity (u m/s) */
SENSOR_ENERGY, /* energy (uJ) */
+ SENSOR_VOLTAMPS, /* apparent power (uVA) */
SENSOR_MAX_TYPES
};
@@ -82,6 +83,7 @@ static const char * const sensor_type_s[
"acceleration",
"velocity",
"energy",
+ "voltamp",
"undefined"
};
#endif /* !_KERNEL */
Index: libexec/snmpd/snmpd_metrics/mib.c
===================================================================
RCS file: /cvs/src/libexec/snmpd/snmpd_metrics/mib.c,v
diff -u -p -r1.9 mib.c
--- libexec/snmpd/snmpd_metrics/mib.c 22 May 2024 08:44:02 -0000 1.9
+++ libexec/snmpd/snmpd_metrics/mib.c 21 Nov 2024 13:52:23 -0000
@@ -2145,6 +2145,7 @@ mib_sensorvalue(struct sensor *s)
case SENSOR_VOLTS_AC:
case SENSOR_WATTS:
case SENSOR_AMPS:
+ case SENSOR_VOLTAMPS:
case SENSOR_WATTHOUR:
case SENSOR_AMPHOUR:
case SENSOR_LUX:
@@ -2152,6 +2153,7 @@ mib_sensorvalue(struct sensor *s)
case SENSOR_ACCEL:
case SENSOR_VELOCITY:
case SENSOR_DISTANCE:
+ case SENSOR_ENERGY:
ret = asprintf(&v, "%.2f", s->value / 1000000.0);
break;
case SENSOR_INDICATOR:
Index: sbin/sysctl/sysctl.c
===================================================================
RCS file: /cvs/src/sbin/sysctl/sysctl.c,v
diff -u -p -r1.262 sysctl.c
--- sbin/sysctl/sysctl.c 9 Sep 2024 05:36:17 -0000 1.262
+++ sbin/sysctl/sysctl.c 21 Nov 2024 13:52:23 -0000
@@ -2832,6 +2832,9 @@ print_sensor(struct sensor *s)
case SENSOR_ENERGY:
printf("%.2f J", s->value / 1000000.0);
break;
+ case SENSOR_VOLTAMPS:
+ printf("%.2f VA", s->value / 1000000.0);
+ break;
default:
printf("unknown");
}
Index: usr.bin/systat/sensors.c
===================================================================
RCS file: /cvs/src/usr.bin/systat/sensors.c,v
diff -u -p -r1.33 sensors.c
--- usr.bin/systat/sensors.c 8 Nov 2024 08:45:47 -0000 1.33
+++ usr.bin/systat/sensors.c 21 Nov 2024 13:52:23 -0000
@@ -300,6 +300,9 @@ showsensor(struct sensinfo *s)
case SENSOR_ENERGY:
tbprintf("%.2f J", s->sn_value / 1000000.0);
break;
+ case SENSOR_VOLTAMPS:
+ tbprintf("%10.2f VA", s->sn_value / 1000000.0);
+ break;
default:
tbprintf("%10lld", s->sn_value);
break;
Index: usr.sbin/sensorsd/sensorsd.c
===================================================================
RCS file: /cvs/src/usr.sbin/sensorsd/sensorsd.c,v
diff -u -p -r1.69 sensorsd.c
--- usr.sbin/sensorsd/sensorsd.c 8 Mar 2023 04:43:15 -0000 1.69
+++ usr.sbin/sensorsd/sensorsd.c 21 Nov 2024 13:52:23 -0000
@@ -708,6 +708,12 @@ print_sensor(enum sensor_type type, int6
case SENSOR_VELOCITY:
snprintf(fbuf, RFBUFSIZ, "%4.3f m/s", value / 1000000.0);
break;
+ case SENSOR_ENERGY:
+ snprintf(fbuf, RFBUFSIZ, "%.2f J", value / 1000000.0);
+ break;
+ case SENSOR_VOLTAMPS:
+ snprintf(fbuf, RFBUFSIZ, "%.2f VA", value / 1000000.0);
+ break;
default:
snprintf(fbuf, RFBUFSIZ, "%lld ???", value);
}
upd(4): add more sensors (load, power..)