Просмотр исходного кода

Remove NRF52BoardOTA class and integrate it into NRF52Board

As all NRF52 boards now have OTA support, let's remove the subclass
and integrate it into the base class.

Signed-off-by: Frieder Schrempf <frieder@fris.de>
Frieder Schrempf 7 месяцев назад
Родитель
Сommit
4f46ec75dd

+ 1 - 1
src/helpers/NRF52Board.cpp

@@ -54,7 +54,7 @@ float NRF52Board::getMCUTemperature() {
   return temp * 0.25f; // Convert to *C
 }
 
-bool NRF52BoardOTA::startOTAUpdate(const char *id, char reply[]) {
+bool NRF52Board::startOTAUpdate(const char *id, char reply[]) {
   // Config the peripheral connection with maximum bandwidth
   // more SRAM required by SoftDevice
   // Note: All config***() function must be called before begin()

+ 4 - 9
src/helpers/NRF52Board.h

@@ -8,12 +8,15 @@
 class NRF52Board : public mesh::MainBoard {
 protected:
   uint8_t startup_reason;
+  char *ota_name;
 
 public:
+  NRF52Board(char *otaname) : ota_name(otaname) {}
   virtual void begin();
   virtual uint8_t getStartupReason() const override { return startup_reason; }
   virtual float getMCUTemperature() override;
   virtual void reboot() override { NVIC_SystemReset(); }
+  virtual bool startOTAUpdate(const char *id, char reply[]) override;
 };
 
 /*
@@ -25,15 +28,7 @@ public:
  */
 class NRF52BoardDCDC : virtual public NRF52Board {
 public:
+  NRF52BoardDCDC() {}
   virtual void begin() override;
 };
-
-class NRF52BoardOTA : virtual public NRF52Board {
-private:
-  char *ota_name;
-
-public:
-  NRF52BoardOTA(char *name) : ota_name(name) {}
-  virtual bool startOTAUpdate(const char *id, char reply[]) override;
-};
 #endif

+ 2 - 2
variants/heltec_mesh_solar/MeshSolarBoard.h

@@ -20,9 +20,9 @@
 #define SX126X_DIO2_AS_RF_SWITCH  true
 #define SX126X_DIO3_TCXO_VOLTAGE   1.8
 
-class MeshSolarBoard : public NRF52BoardDCDC, public NRF52BoardOTA {
+class MeshSolarBoard : public NRF52BoardDCDC {
 public:
-  MeshSolarBoard() : NRF52BoardOTA("MESH_SOLAR_OTA") {}
+  MeshSolarBoard() : NRF52Board("MESH_SOLAR_OTA") {}
   void begin();
 
   uint16_t getBattMilliVolts() override {

+ 2 - 2
variants/heltec_t114/T114Board.h

@@ -9,9 +9,9 @@
 #define  PIN_BAT_CTL      6
 #define  MV_LSB   (3000.0F / 4096.0F) // 12-bit ADC with 3.0V input range
 
-class T114Board : public NRF52BoardDCDC, public NRF52BoardOTA {
+class T114Board : public NRF52BoardDCDC {
 public:
-    T114Board() : NRF52BoardOTA("T114_OTA") {}
+  T114Board() : NRF52Board("T114_OTA") {}
   void begin();
 
 #if defined(P_LORA_TX_LED)

+ 2 - 2
variants/ikoka_handheld_nrf/IkokaNrf52Board.h

@@ -6,9 +6,9 @@
 
 #ifdef IKOKA_NRF52
 
-class IkokaNrf52Board : public NRF52BoardDCDC, public NRF52BoardOTA {
+class IkokaNrf52Board : public NRF52BoardDCDC {
 public:
-  IkokaNrf52Board() : NRF52BoardOTA("XIAO_NRF52_OTA") {}
+  IkokaNrf52Board() : NRF52Board("XIAO_NRF52_OTA") {}
   void begin();
 
 #if defined(P_LORA_TX_LED)

+ 2 - 2
variants/ikoka_nano_nrf/IkokaNanoNRFBoard.h

@@ -6,9 +6,9 @@
 
 #ifdef XIAO_NRF52
 
-class IkokaNanoNRFBoard : public NRF52BoardDCDC, public NRF52BoardOTA {
+class IkokaNanoNRFBoard : public NRF52BoardDCDC {
 public:
-  IkokaNanoNRFBoard() : NRF52BoardOTA("XIAO_NRF52_OTA") {}
+  IkokaNanoNRFBoard() : NRF52Board("XIAO_NRF52_OTA") {}
   void begin();
 
 #if defined(P_LORA_TX_LED)

+ 2 - 2
variants/ikoka_stick_nrf/IkokaStickNRFBoard.h

@@ -6,9 +6,9 @@
 
 #ifdef XIAO_NRF52
 
-class IkokaStickNRFBoard : public NRF52BoardDCDC, public NRF52BoardOTA {
+class IkokaStickNRFBoard : public NRF52BoardDCDC {
 public:
-  IkokaStickNRFBoard() : NRF52BoardOTA("XIAO_NRF52_OTA") {}
+  IkokaStickNRFBoard() : NRF52Board("XIAO_NRF52_OTA") {}
   void begin();
 
 #if defined(P_LORA_TX_LED)

+ 2 - 2
variants/keepteen_lt1/KeepteenLT1Board.h

@@ -4,12 +4,12 @@
 #include <Arduino.h>
 #include <helpers/NRF52Board.h>
 
-class KeepteenLT1Board : public NRF52BoardOTA {
+class KeepteenLT1Board : public NRF52Board {
 protected:
   uint8_t btn_prev_state;
 
 public:
-  KeepteenLT1Board() : NRF52BoardOTA("KeepteenLT1_OTA") {}
+  KeepteenLT1Board() : NRF52Board("KeepteenLT1_OTA") {}
   void begin();
 
   #define BATTERY_SAMPLES 8

+ 2 - 2
variants/lilygo_techo/TechoBoard.h

@@ -13,9 +13,9 @@
 #define PIN_VBAT_READ     (4)
 #define REAL_VBAT_MV_PER_LSB (VBAT_DIVIDER_COMP * VBAT_MV_PER_LSB)
 
-class TechoBoard : public NRF52BoardDCDC, public NRF52BoardOTA {
+class TechoBoard : public NRF52BoardDCDC {
 public:
-  TechoBoard() : NRF52BoardOTA("TECHO_OTA") {}
+  TechoBoard() : NRF52Board("TECHO_OTA") {}
   void begin();
   uint16_t getBattMilliVolts() override;
 

+ 2 - 2
variants/lilygo_techo_lite/TechoBoard.h

@@ -13,9 +13,9 @@
 #define PIN_VBAT_READ     (4)
 #define REAL_VBAT_MV_PER_LSB (VBAT_DIVIDER_COMP * VBAT_MV_PER_LSB)
 
-class TechoBoard : public NRF52BoardDCDC, public NRF52BoardOTA {
+class TechoBoard : public NRF52BoardDCDC {
 public:
-  TechoBoard() : NRF52BoardOTA("TECHO_OTA") {}
+  TechoBoard() : NRF52Board("TECHO_OTA") {}
   void begin();
   uint16_t getBattMilliVolts() override;
 

+ 2 - 2
variants/mesh_pocket/MeshPocket.h

@@ -9,9 +9,9 @@
 #define  PIN_BAT_CTL      34
 #define  MV_LSB   (3000.0F / 4096.0F) // 12-bit ADC with 3.0V input range
 
-class HeltecMeshPocket : public NRF52BoardDCDC, public NRF52BoardOTA {
+class HeltecMeshPocket : public NRF52BoardDCDC {
 public:
-  HeltecMeshPocket() : NRF52BoardOTA("MESH_POCKET_OTA") {}
+  HeltecMeshPocket() : NRF52Board("MESH_POCKET_OTA") {}
   void begin();
 
   uint16_t getBattMilliVolts() override {

+ 2 - 2
variants/minewsemi_me25ls01/MinewsemiME25LS01Board.h

@@ -20,12 +20,12 @@
 #define  PIN_VBAT_READ BATTERY_PIN
 #define  ADC_MULTIPLIER   (1.815f) // dependent on voltage divider resistors. TODO: more accurate battery tracking
 
-class MinewsemiME25LS01Board : public NRF52BoardDCDC, public NRF52BoardOTA {
+class MinewsemiME25LS01Board : public NRF52BoardDCDC {
 protected:
   uint8_t btn_prev_state;
 
 public:
-  MinewsemiME25LS01Board() : NRF52BoardOTA("Minewsemi_OTA") {}
+  MinewsemiME25LS01Board() : NRF52Board("Minewsemi_OTA") {}
   void begin();
 
 #define BATTERY_SAMPLES 8

+ 2 - 2
variants/nano_g2_ultra/nano-g2.h

@@ -35,9 +35,9 @@
 #define PIN_VBAT_READ            (0 + 2)
 #define REAL_VBAT_MV_PER_LSB     (VBAT_DIVIDER_COMP * VBAT_MV_PER_LSB)
 
-class NanoG2Ultra : public NRF52BoardOTA {
+class NanoG2Ultra : public NRF52Board {
 public:
-  NanoG2Ultra() : NRF52BoardOTA("NANO_G2_OTA") {}
+  NanoG2Ultra() : NRF52Board("NANO_G2_OTA") {}
   void begin();
   uint16_t getBattMilliVolts() override;
 

+ 2 - 2
variants/promicro/PromicroBoard.h

@@ -20,13 +20,13 @@
 #define  PIN_VBAT_READ 17
 #define  ADC_MULTIPLIER   (1.815f) // dependent on voltage divider resistors. TODO: more accurate battery tracking
 
-class PromicroBoard : public NRF52BoardDCDC, public NRF52BoardOTA {
+class PromicroBoard : public NRF52BoardDCDC {
 protected:
   uint8_t btn_prev_state;
   float adc_mult = ADC_MULTIPLIER;
 
 public:
-  PromicroBoard() : NRF52BoardOTA("ProMicro_OTA") {}
+  PromicroBoard() : NRF52Board("ProMicro_OTA") {}
   void begin();
 
   #define BATTERY_SAMPLES 8

+ 2 - 2
variants/rak4631/RAK4631Board.h

@@ -29,9 +29,9 @@
 #define  PIN_VBAT_READ    5
 #define  ADC_MULTIPLIER   (3 * 1.73 * 1.187 * 1000)
 
-class RAK4631Board : public NRF52BoardDCDC, public NRF52BoardOTA {
+class RAK4631Board : public NRF52BoardDCDC {
 public:
-  RAK4631Board() : NRF52BoardOTA("RAK4631_OTA") {}
+  RAK4631Board() : NRF52Board("RAK4631_OTA") {}
   void begin();
 
   #define BATTERY_SAMPLES 8

+ 2 - 2
variants/rak_wismesh_tag/RAKWismeshTagBoard.h

@@ -8,9 +8,9 @@
 #define  PIN_VBAT_READ    5
 #define  ADC_MULTIPLIER   (3 * 1.73 * 1.187 * 1000)
 
-class RAKWismeshTagBoard : public NRF52BoardDCDC, public NRF52BoardOTA {
+class RAKWismeshTagBoard : public NRF52BoardDCDC {
 public:
-  RAKWismeshTagBoard() : NRF52BoardOTA("WISMESHTAG_OTA") {}
+  RAKWismeshTagBoard() : NRF52Board("WISMESHTAG_OTA") {}
   void begin();
 
 #if defined(P_LORA_TX_LED) && defined(LED_STATE_ON)

+ 2 - 2
variants/sensecap_solar/SenseCapSolarBoard.h

@@ -4,9 +4,9 @@
 #include <Arduino.h>
 #include <helpers/NRF52Board.h>
 
-class SenseCapSolarBoard : public NRF52BoardDCDC, public NRF52BoardOTA {
+class SenseCapSolarBoard : public NRF52BoardDCDC {
 public:
-  SenseCapSolarBoard() : NRF52BoardOTA("SENSECAP_SOLAR_OTA") {}
+  SenseCapSolarBoard() : NRF52Board("SENSECAP_SOLAR_OTA") {}
   void begin();
 
 #if defined(P_LORA_TX_LED)

+ 2 - 2
variants/t1000-e/T1000eBoard.h

@@ -4,12 +4,12 @@
 #include <Arduino.h>
 #include <helpers/NRF52Board.h>
 
-class T1000eBoard : public NRF52BoardDCDC, public NRF52BoardOTA {
+class T1000eBoard : public NRF52BoardDCDC {
 protected:
   uint8_t btn_prev_state;
 
 public:
-  T1000eBoard() : NRF52BoardOTA("T1000E_OTA") {}
+  T1000eBoard() : NRF52Board("T1000E_OTA") {}
   void begin();
 
   uint16_t getBattMilliVolts() override {

+ 2 - 2
variants/thinknode_m1/ThinkNodeM1Board.h

@@ -13,9 +13,9 @@
 #define PIN_VBAT_READ     (4)
 #define REAL_VBAT_MV_PER_LSB (VBAT_DIVIDER_COMP * VBAT_MV_PER_LSB)
 
-class ThinkNodeM1Board : public NRF52BoardOTA {
+class ThinkNodeM1Board : public NRF52Board {
 public:
-  ThinkNodeM1Board() : NRF52BoardOTA("THINKNODE_M1_OTA") {}
+  ThinkNodeM1Board() : NRF52Board("THINKNODE_M1_OTA") {}
   void begin();
   uint16_t getBattMilliVolts() override;
 

+ 2 - 2
variants/wio-tracker-l1/WioTrackerL1Board.h

@@ -4,12 +4,12 @@
 #include <Arduino.h>
 #include <helpers/NRF52Board.h>
 
-class WioTrackerL1Board : public NRF52BoardDCDC, public NRF52BoardOTA {
+class WioTrackerL1Board : public NRF52BoardDCDC {
 protected:
   uint8_t btn_prev_state;
 
 public:
-  WioTrackerL1Board() : NRF52BoardOTA("WioTrackerL1 OTA") {}
+  WioTrackerL1Board() : NRF52Board("WioTrackerL1 OTA") {}
   void begin();
 
 #if defined(P_LORA_TX_LED)

+ 2 - 2
variants/wio_wm1110/WioWM1110Board.h

@@ -11,9 +11,9 @@
 #endif
 #define Serial Serial1
 
-class WioWM1110Board : public NRF52BoardDCDC, public NRF52BoardOTA {
+class WioWM1110Board : public NRF52BoardDCDC {
 public:
-  WioWM1110Board() : NRF52BoardOTA("WM1110_OTA") {}
+  WioWM1110Board() : NRF52Board("WM1110_OTA") {}
   void begin();
 
 #if defined(LED_GREEN)

+ 2 - 2
variants/xiao_nrf52/XiaoNrf52Board.h

@@ -6,9 +6,9 @@
 
 #ifdef XIAO_NRF52
 
-class XiaoNrf52Board : public NRF52BoardDCDC, public NRF52BoardOTA {
+class XiaoNrf52Board : public NRF52BoardDCDC {
 public:
-  XiaoNrf52Board() : NRF52BoardOTA("XIAO_NRF52_OTA") {}
+  XiaoNrf52Board() : NRF52Board("XIAO_NRF52_OTA") {}
   void begin();
 
 #if defined(P_LORA_TX_LED)