diff --git a/protobufs b/protobufs index 19d49ec52..e3e22cdee 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit 19d49ec5280b6904f8c4cd1182ba4250d4122dbe +Subproject commit e3e22cdee6024663031fa2d87afd98a88adc2685 diff --git a/src/mesh/generated/meshtastic/telemetry.pb.h b/src/mesh/generated/meshtastic/telemetry.pb.h index 0e04ccf6e..31646693e 100644 --- a/src/mesh/generated/meshtastic/telemetry.pb.h +++ b/src/mesh/generated/meshtastic/telemetry.pb.h @@ -45,7 +45,7 @@ typedef enum _meshtastic_TelemetrySensorType { /* Struct definitions */ /* Key native device metrics such as battery level */ typedef struct _meshtastic_DeviceMetrics { - /* 1-100 (0 means powered) */ + /* 0-100 (>100 means powered) */ uint32_t battery_level; /* Voltage measured */ float voltage; diff --git a/src/modules/Telemetry/DeviceTelemetry.cpp b/src/modules/Telemetry/DeviceTelemetry.cpp index 43c25b6a7..69de4bf1b 100644 --- a/src/modules/Telemetry/DeviceTelemetry.cpp +++ b/src/modules/Telemetry/DeviceTelemetry.cpp @@ -10,6 +10,8 @@ #include #include +#define MAGIC_USB_BATTERY_LEVEL 111 + int32_t DeviceTelemetryModule::runOnce() { uint32_t now = millis(); @@ -48,7 +50,12 @@ bool DeviceTelemetryModule::sendTelemetry(NodeNum dest, bool phoneOnly) t.which_variant = meshtastic_Telemetry_device_metrics_tag; t.variant.device_metrics.air_util_tx = myNodeInfo.air_util_tx; - t.variant.device_metrics.battery_level = powerStatus->getBatteryChargePercent(); + if (powerStatus->getIsCharging()) { + t.variant.device_metrics.battery_level = MAGIC_USB_BATTERY_LEVEL; + } else { + t.variant.device_metrics.battery_level = powerStatus->getBatteryChargePercent(); + } + t.variant.device_metrics.channel_utilization = myNodeInfo.channel_utilization; t.variant.device_metrics.voltage = powerStatus->getBatteryVoltageMv() / 1000.0;