Lines Matching defs:sensor
89 /* Sensor statistics */
267 /* get sensor description */
270 errx(EXIT_FAILURE, "missing sensor description");
279 /* in case we asked for a single sensor
280 * show only the sensor dictionary
392 * Send our sensor properties dictionary to the kernel then.
409 * If we matched a sensor by its description return it, otherwise
429 add_sensors(prop_dictionary_t ndict, prop_dictionary_t dict, const char *dev, const char *sensor)
478 if (sensor) {
483 if (!prop_string_equals_string(desc, sensor))
517 sensor_t sensor = NULL;
613 while ((sensor = SIMPLEQ_FIRST(&sensors_list))) {
615 free(sensor);
629 sensor_t sensor = NULL;
649 /* new sensor
650 sensor = calloc(1, sizeof(*sensor));
651 if (sensor == NULL) {
657 (void)strlcpy(sensor->dvname, dvname, sizeof(sensor->dvname));
663 (void)strlcpy(sensor->desc,
665 sizeof(sensor->desc));
667 free(sensor);
675 (void)strlcpy(sensor->type,
677 sizeof(sensor->type));
679 free(sensor);
687 (void)strlcpy(sensor->index,
689 sizeof(sensor->index));
691 free(sensor);
695 /* check sensor's state */
701 sensor->invalid = true;
706 (void)strlcpy(sensor->drvstate,
708 sizeof(sensor->drvstate));
714 (void)strlcpy(sensor->battcap,
716 sizeof(sensor->battcap));
722 sensor->cur_value = prop_number_signed_value(obj1);
727 sensor->max_value = prop_number_signed_value(obj1);
732 sensor->min_value = prop_number_signed_value(obj1);
737 sensor->percentage = prop_bool_true(obj1);
742 sensor->critmax_value = prop_number_signed_value(obj1);
747 sensor->critmax_value = prop_number_signed_value(obj1);
752 sensor->critmin_value = prop_number_signed_value(obj1);
757 sensor->critmin_value = prop_number_signed_value(obj1);
762 sensor->warnmax_value = prop_number_signed_value(obj1);
767 sensor->warnmax_value = prop_number_signed_value(obj1);
772 sensor->warnmin_value = prop_number_signed_value(obj1);
777 sensor->warnmin_value = prop_number_signed_value(obj1);
779 /* print sensor names if -l was given */
789 /* Add the sensor into the list */
790 SIMPLEQ_INSERT_TAIL(&sensors_list, sensor, entries);
795 if ((strcmp(sensor->type, "Indicator") == 0) ||
796 (strcmp(sensor->type, "Battery charge") == 0) ||
797 (strcmp(sensor->type, "Drive") == 0))
801 if (sensor->invalid)
804 /* find or allocate a new statistics sensor */
805 stats = find_stats_sensor(sensor->desc);
807 free(sensor);
813 if (sensor->cur_value > stats->max)
814 stats->max = sensor->cur_value;
816 if (sensor->cur_value < stats->min)
817 stats->min = sensor->cur_value;
821 (sensor->cur_value + stats->max + stats->min) / 3;
833 sensor_t sensor = NULL;
841 * Parse device name and sensor description and find out
842 * if the sensor is valid.
853 /* get sensor description */
856 warnx("missing sensor description");
860 SIMPLEQ_FOREACH(sensor, &sensors_list, entries) {
862 if (strcmp(dvstring, sensor->dvname))
864 if (strcmp(sstring, sensor->desc) == 0) {
865 sensor->visible = true;
871 warnx("unknown sensor `%s' for device `%s'",
879 SIMPLEQ_FOREACH(sensor, &sensors_list, entries)
880 if (sensor->visible) {
891 /* When adding a new sensor type, be sure to address both
898 sensor_t sensor;
913 SIMPLEQ_FOREACH(sensor, &sensors_list, entries)
914 if (strlen(sensor->desc) > maxlen)
915 maxlen = strlen(sensor->desc);
971 SIMPLEQ_FOREACH(sensor, &sensors_list, entries) {
973 if (sensors && !sensor->visible)
977 if ((flags & ENVSYS_IFLAG) && sensor->invalid)
982 if (tmpstr == NULL || strcmp(tmpstr, sensor->dvname))
983 printf("[%s]\n", sensor->dvname);
985 tmpstr = sensor->dvname;
988 /* find out the statistics sensor */
990 stats = find_stats_sensor(sensor->desc);
992 /* No statistics for this sensor */
998 /* print sensor description */
1001 (int)maxlen, sensor->desc);
1005 if (sensor->invalid) {
1013 if ((strcmp(sensor->type, "Indicator") == 0) ||
1014 (strcmp(sensor->type, "Battery charge") == 0)) {
1017 sensor->cur_value ? "TRUE" : "FALSE");
1040 } else if (strcmp(sensor->type, "Temperature") == 0) {
1045 PRINTTEMP(sensor->cur_value);
1055 PRINTTEMP(sensor->critmax_value);
1056 PRINTTEMP(sensor->warnmax_value);
1057 PRINTTEMP(sensor->warnmin_value);
1058 PRINTTEMP(sensor->critmin_value);
1065 } else if (strcmp(sensor->type, "Fan") == 0) {
1068 (void)printf("%s%*u", sep, flen, sensor->cur_value);
1077 if (sensor->critmax_value) {
1079 sensor->critmax_value);
1084 if (sensor->warnmax_value) {
1086 sensor->warnmax_value);
1091 if (sensor->warnmin_value) {
1093 sensor->warnmin_value);
1098 if (sensor->critmin_value) {
1100 sensor->critmin_value);
1111 } else if (strcmp(sensor->type, "Integer") == 0) {
1115 (void)printf("%s%*d", sep, flen, sensor->cur_value);
1122 if (sensor->max_value) { \
1124 ((a) * 100.0) / sensor->max_value); \
1130 /* Print an integer sensor value */
1138 if (sensor->percentage) {
1149 if (sensor->percentage) {
1150 PRINTPCT(sensor->critmax_value);
1151 PRINTPCT(sensor->warnmax_value);
1152 PRINTPCT(sensor->warnmin_value);
1153 PRINTPCT(sensor->critmin_value);
1155 PRINTINT(sensor->critmax_value);
1156 PRINTINT(sensor->warnmax_value);
1157 PRINTINT(sensor->warnmin_value);
1158 PRINTINT(sensor->critmin_value);
1169 } else if (strcmp(sensor->type, "Drive") == 0) {
1171 (void)printf("%s%*s", sep, flen, sensor->drvstate);
1174 } else if (strcmp(sensor->type, "Battery capacity") == 0) {
1176 (void)printf("%s%*s", sep, flen, sensor->battcap);
1179 } else if (strcmp(sensor->type, "Illuminance") == 0) {
1183 (void)printf("%s%*u", sep, flen, sensor->cur_value);
1192 if (sensor->critmax_value) {
1194 sensor->critmax_value);
1199 if (sensor->warnmax_value) {
1201 sensor->warnmax_value);
1206 if (sensor->warnmin_value) {
1208 sensor->warnmin_value);
1213 if (sensor->critmin_value) {
1215 sensor->critmin_value);
1226 } else if (strcmp(sensor->type, "pressure") == 0) {
1230 sensor->cur_value / 10000.0);
1239 if (sensor->critmax_value) {
1241 sensor->critmax_value);
1246 if (sensor->warnmax_value) {
1248 sensor->warnmax_value);
1253 if (sensor->warnmin_value) {
1255 sensor->warnmin_value);
1260 if (sensor->critmin_value) {
1262 sensor->critmin_value);
1274 if (strcmp(sensor->type, "Voltage DC") == 0)
1276 else if (strcmp(sensor->type, "Voltage AC") == 0)
1278 else if (strcmp(sensor->type, "Ampere") == 0)
1280 else if (strcmp(sensor->type, "Watts") == 0)
1282 else if (strcmp(sensor->type, "Ohms") == 0)
1284 else if (strcmp(sensor->type, "Watt hour") == 0)
1286 else if (strcmp(sensor->type, "Ampere hour") == 0)
1288 else if (strcmp(sensor->type, "relative Humidity") == 0)
1294 sensor->cur_value / 1000000.0);
1301 if ((a) && sensor->max_value) { \
1303 ((a) * 100.0) / sensor->max_value); \
1309 /* Print a generic sensor value */
1320 if (sensor->percentage) {
1331 if (sensor->percentage) {
1332 PRINTPCT(sensor->critmax_value);
1333 PRINTPCT(sensor
1334 PRINTPCT(sensor->warnmin_value);
1335 PRINTPCT(sensor->critmin_value);
1338 PRINTVAL(sensor->critmax_value);
1339 PRINTVAL(sensor->warnmax_value);
1340 PRINTVAL(sensor->warnmin_value);
1341 PRINTVAL(sensor->critmin_value);
1349 if (sensor->percentage && sensor->max_value) {
1351 (sensor->cur_value * 100.0) /
1352 sensor->max_value);
1363 sensor_t sensor;
1387 SIMPLEQ_FOREACH(sensor, &sensors_list, entries) {
1389 if (sensors && !sensor->visible)
1393 if ((flags & ENVSYS_IFLAG) && sensor->invalid)
1396 /* find out the statistics sensor */
1398 stats = find_stats_sensor(sensor->desc);
1400 /* No statistics for this sensor, completely skip */
1405 if (tmpstr == NULL || strcmp(tmpstr, sensor->dvname)) {
1414 tmpstr = sensor->dvname;
1417 /* Any condition that that causes the sensor to be
1425 sensor->index, strlen(sensor->index));
1427 sensor->desc, strlen(sensor->desc));
1429 sensor->type, strlen(sensor->type));
1431 (int64_t)sensor->invalid);
1433 /* The sensor is invalid, semi-skip it */
1434 if (sensor->invalid) {
1441 if ((strcmp(sensor->type, "Indicator") == 0) ||
1442 (strcmp(sensor->type, "Battery charge") == 0)) {
1445 (int64_t)sensor->cur_value);
1469 } else if (strcmp(sensor->type, "Temperature") == 0) {
1472 PRINTTEMP(sensor->cur_value, "cur-value");
1482 PRINTTEMP(sensor->critmax_value, "critical-max");
1483 PRINTTEMP(sensor->warnmax_value, "warning-max");
1484 PRINTTEMP(sensor->warnmin_value, "warning-min");
1485 PRINTTEMP(sensor->critmin_value, "critical-min");
1492 } else if (strcmp(sensor->type, "Fan") == 0) {
1496 (int64_t)sensor->cur_value);
1508 (int64_t)sensor->critmax_value);
1510 (int64_t)sensor->warnmax_value);
1512 (int64_t)sensor->warnmin_value);
1514 (int64_t)sensor->critmin_value);
1520 } else if (strcmp(sensor->type, "Integer") == 0) {
1525 (int64_t)sensor->cur_value);
1530 if ((a) && sensor->max_value) { \
1532 (int64_t)((a) * 100.0) / sensor->max_value); \
1536 if (sensor->percentage) {
1549 if (sensor->percentage) {
1550 PRINTPCT(sensor->critmax_value, "critical-max");
1551 PRINTPCT(sensor->warnmax_value, "warning-max");
1552 PRINTPCT(sensor->warnmin_value, "warning-min");
1553 PRINTPCT(sensor->critmin_value, "critical-min");
1556 (int64_t)sensor->critmax_value);
1558 (int64_t)sensor->warnmax_value);
1560 (int64_t)sensor->warnmin_value);
1562 (int64_t)sensor->critmin_value);
1568 } else if (strcmp(sensor->type, "Drive") == 0) {
1570 sensor->drvstate, strlen(sensor->drvstate));
1572 } else if (strcmp(sensor->type, "Battery capacity") == 0) {
1574 sensor->battcap, strlen(sensor->battcap));
1576 } else if (strcmp(sensor->type, "Illuminance") == 0) {
1581 (int64_t)sensor->cur_value);
1594 (int64_t)sensor->critmax_value);
1596 (int64_t)sensor->warnmax_value);
1598 (int64_t)sensor->warnmin_value);
1600 (int64_t)sensor->critmin_value);
1605 } else if (strcmp(sensor->type, "pressure") == 0) {
1617 PRINTFLOAT(sensor->cur_value / 10000.0, "cur-value");
1626 PRINTFLOAT(sensor->critmax_value, "critmax_value");
1627 PRINTFLOAT(sensor->warnmax_value, "warning-max");
1628 PRINTFLOAT(sensor->warnmin_value, "warning-min");
1629 PRINTFLOAT(sensor->critmin_value, "critical-min");
1635 if (strcmp(sensor->type, "Voltage DC") == 0)
1637 else if (strcmp(sensor->type, "Voltage AC") == 0)
1639 else if (strcmp(sensor->type, "Ampere") == 0)
1641 else if (strcmp(sensor->type, "Watts") == 0)
1643 else if (strcmp(sensor->type, "Ohms") == 0)
1645 else if (strcmp(sensor->type, "Watt hour") == 0)
1647 else if (strcmp(sensor->type, "Ampere hour") == 0)
1649 else if (strcmp(sensor->type, "relative Humidity") == 0)
1654 PRINTFLOAT(sensor->cur_value / 1000000.0, "cur-value");
1660 /* Print a generic sensor value */
1672 if (sensor->percentage) {
1682 if (sensor->percentage) {
1683 PRINTPCT(sensor->critmax_value, "critmax_value");
1684 PRINTPCT(sensor->warnmax_value, "warning-max");
1685 PRINTPCT(sensor->warnmin_value, "warning-min");
1686 PRINTPCT(sensor->critmin_value, "critical-min");
1689 PRINTVAL(sensor->critmax_value, "critmax_value");
1690 PRINTVAL(sensor->warnmax_value, "warning-max");
1691 PRINTVAL(sensor->warnmin_value, "warning-min");
1692 PRINTVAL(sensor->critmin_value, "critical-min");
1699 if (sensor->percentage && sensor->max_value) {
1702 (sensor->cur_value * 100.0) / sensor->max_value);
1760 (void)fprintf(stderr, "[-s device:sensor,...] [-w width]\n");
1763 (void)fprintf(stderr, "[-s device:sensor,...] ");