]> git.tnoah.ca Git - lora-radio.git/commitdiff
Added battery state reporting over USB/Serial/Bluetooth. Implements #39.
authorMark Qvist <mark@unsigned.io>
Sat, 7 Oct 2023 17:45:55 +0000 (19:45 +0200)
committerMark Qvist <mark@unsigned.io>
Sat, 7 Oct 2023 17:46:32 +0000 (19:46 +0200)
Config.h
Framing.h
Power.h
Utilities.h

index dd3c8b3dbbb8bd10b61688d6346c46d9256c60ab..448a1ca864fe224885184cd483c794e4ebc5d858 100644 (file)
--- a/Config.h
+++ b/Config.h
@@ -19,7 +19,7 @@
        #define CONFIG_H
 
        #define MAJ_VERS  0x01
-       #define MIN_VERS  0x40
+       #define MIN_VERS  0x41
 
        #define PLATFORM_AVR   0x90
   #define PLATFORM_ESP32 0x80
index d95bf9308eca4f0df77d8ccf03b183c5960c86ec..0236aa96fb9e26ede8f4c31a1aa83302bd0debc9 100644 (file)
--- a/Framing.h
+++ b/Framing.h
@@ -44,6 +44,7 @@
   #define CMD_STAT_SNR    0x24
   #define CMD_STAT_CHTM   0x25
   #define CMD_STAT_PHYPRM 0x26
+  #define CMD_STAT_BAT    0x27
   #define CMD_BLINK       0x30
   #define CMD_RANDOM      0x40
 
diff --git a/Power.h b/Power.h
index 0822aaf5018ac3fea8540ab3607c8b6f540bb13b..3fda5aff4a5f6decd519e4605a2fcfbd3658bae1 100644 (file)
--- a/Power.h
+++ b/Power.h
@@ -32,6 +32,9 @@
 uint32_t last_pmu_update = 0;
 uint8_t pmu_target_pps = 1;
 int pmu_update_interval = 1000/pmu_target_pps;
+uint8_t pmu_rc = 0;
+#define PMU_R_INTERVAL 5
+void kiss_indicate_battery();
 
 void measure_battery() {
   #if BOARD_MODEL == BOARD_RNODE_NG_21 || BOARD_MODEL == BOARD_LORA32_V2_1
@@ -82,6 +85,8 @@ void measure_battery() {
         #endif
       }
 
+
+
       // if (bt_state == BT_STATE_CONNECTED) {
       //   SerialBT.printf("Bus voltage %.3fv. Unfiltered %.3fv.", battery_voltage, bat_v_samples[BAT_SAMPLES-1]);
       //   if (bat_voltage_dropping) {
@@ -154,6 +159,13 @@ void measure_battery() {
     //   SerialBT.println("");
     // }
   #endif
+
+  if (battery_ready) {
+    pmu_rc++;
+    if (pmu_rc%PMU_R_INTERVAL == 0) {
+      kiss_indicate_battery();
+    }
+  }
 }
 
 void update_pmu() {
index 0c7f741fd921fed7da36a0aa45a1a1428dbe4d50..e76f91c1ce897e14e76e9bbefad64a4bdf1b5341 100644 (file)
@@ -755,6 +755,16 @@ void kiss_indicate_phy_stats() {
        #endif
 }
 
+void kiss_indicate_battery() {
+       #if MCU_VARIANT == MCU_ESP32
+               serial_write(FEND);
+               serial_write(CMD_STAT_BAT);
+               escaped_serial_write(battery_state);
+               escaped_serial_write((uint8_t)int(battery_percent));
+               serial_write(FEND);
+       #endif
+}
+
 void kiss_indicate_btpin() {
        #if HAS_BLUETOOTH
                serial_write(FEND);