瀏覽代碼

gps_cli: gps also restored on sensors and rooms

Florent de Lamotte 10 月之前
父節點
當前提交
9e3c2fc9d9

+ 0 - 6
examples/simple_repeater/MyMesh.cpp

@@ -664,12 +664,6 @@ void MyMesh::begin(FILESYSTEM *fs) {
 #endif
 }
 
-#if ENV_INCLUDE_GPS == 1
-void MyMesh::applyGpsPrefs() {
-  sensors.setSettingByKey("gps", _prefs.gps_enabled?"1":"0");
-}
-#endif
-
 void MyMesh::applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) {
   set_radio_at = futureMillis(2000); // give CLI reply some time to be sent back, before applying temp radio params
   pending_freq = freq;

+ 6 - 4
examples/simple_repeater/MyMesh.h

@@ -135,6 +135,12 @@ protected:
     return _prefs.multi_acks;
   }
 
+#if ENV_INCLUDE_GPS == 1
+  void applyGpsPrefs() {
+    sensors.setSettingByKey("gps", _prefs.gps_enabled?"1":"0");
+  }
+#endif
+
   void onAnonDataRecv(mesh::Packet* packet, const uint8_t* secret, const mesh::Identity& sender, uint8_t* data, size_t len) override;
   int searchPeersByHash(const uint8_t* hash) override;
   void getPeerSharedSecret(uint8_t* dest_secret, int peer_idx) override;
@@ -159,10 +165,6 @@ public:
     _cli.savePrefs(_fs);
   }
 
-#if ENV_INCLUDE_GPS == 1
-  void applyGpsPrefs();
-#endif
-
   void applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) override;
   bool formatFileSystem() override;
   void sendSelfAdvertisement(int delay_millis) override;

+ 4 - 0
examples/simple_room_server/MyMesh.cpp

@@ -632,6 +632,10 @@ void MyMesh::begin(FILESYSTEM *fs) {
 
   updateAdvertTimer();
   updateFloodAdvertTimer();
+
+#if ENV_INCLUDE_GPS == 1
+  applyGpsPrefs();
+#endif
 }
 
 void MyMesh::applyTempRadioParams(float freq, float bw, uint8_t sf, uint8_t cr, int timeout_mins) {

+ 6 - 0
examples/simple_room_server/MyMesh.h

@@ -149,6 +149,12 @@ protected:
   bool onPeerPathRecv(mesh::Packet* packet, int sender_idx, const uint8_t* secret, uint8_t* path, uint8_t path_len, uint8_t extra_type, uint8_t* extra, uint8_t extra_len) override;
   void onAckRecv(mesh::Packet* packet, uint32_t ack_crc) override;
 
+#if ENV_INCLUDE_GPS == 1
+  void applyGpsPrefs() {
+    sensors.setSettingByKey("gps", _prefs.gps_enabled?"1":"0");
+  }
+#endif
+
 public:
   MyMesh(mesh::MainBoard& board, mesh::Radio& radio, mesh::MillisecondClock& ms, mesh::RNG& rng, mesh::RTCClock& rtc, mesh::MeshTables& tables);
 

+ 4 - 0
examples/simple_sensor/SensorMesh.cpp

@@ -697,6 +697,10 @@ void SensorMesh::begin(FILESYSTEM* fs) {
 
   updateAdvertTimer();
   updateFloodAdvertTimer();
+
+#if ENV_INCLUDE_GPS == 1
+  applyGpsPrefs();
+#endif
 }
 
 bool SensorMesh::formatFileSystem() {

+ 5 - 0
examples/simple_sensor/SensorMesh.h

@@ -149,4 +149,9 @@ private:
 
   void sendAlert(const ClientInfo* c, Trigger* t);
 
+  #if ENV_INCLUDE_GPS == 1
+  void applyGpsPrefs() {
+    sensors.setSettingByKey("gps", _prefs.gps_enabled?"1":"0");
+  }
+#endif
 };