Skip to content

Commit 13bf82f

Browse files
authored
Merge pull request #1130 from zaquaz/buzzer-feature-pr
Added buzzer config persistance across restart
2 parents 59fc28b + 6c7b539 commit 13bf82f

File tree

5 files changed

+12
-2
lines changed

5 files changed

+12
-2
lines changed

examples/companion_radio/DataStore.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ void DataStore::loadPrefsInt(const char *filename, NodePrefs& _prefs, double& no
221221
file.read((uint8_t *)&_prefs.multi_acks, sizeof(_prefs.multi_acks)); // 77
222222
file.read(pad, 2); // 78
223223
file.read((uint8_t *)&_prefs.ble_pin, sizeof(_prefs.ble_pin)); // 80
224+
file.read((uint8_t *)&_prefs.buzzer_quiet, sizeof(_prefs.buzzer_quiet)); // 84
224225

225226
file.close();
226227
}
@@ -252,6 +253,7 @@ void DataStore::savePrefs(const NodePrefs& _prefs, double node_lat, double node_
252253
file.write((uint8_t *)&_prefs.multi_acks, sizeof(_prefs.multi_acks)); // 77
253254
file.write(pad, 2); // 78
254255
file.write((uint8_t *)&_prefs.ble_pin, sizeof(_prefs.ble_pin)); // 80
256+
file.write((uint8_t *)&_prefs.buzzer_quiet, sizeof(_prefs.buzzer_quiet)); // 84
255257

256258
file.close();
257259
}

examples/companion_radio/MyMesh.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ class MyMesh : public BaseChatMesh, public DataStoreHost {
152152
pending_login = pending_status = pending_telemetry = pending_discovery = pending_req = 0;
153153
}
154154

155+
public:
156+
void savePrefs() { _store->savePrefs(_prefs, sensors.node_lat, sensors.node_lon); }
157+
155158
private:
156159
void writeOKFrame();
157160
void writeErrFrame(uint8_t err_code);
@@ -171,11 +174,9 @@ class MyMesh : public BaseChatMesh, public DataStoreHost {
171174
void checkSerialInterface();
172175

173176
// helpers, short-cuts
174-
void savePrefs() { _store->savePrefs(_prefs, sensors.node_lat, sensors.node_lon); }
175177
void saveChannels() { _store->saveChannels(this); }
176178
void saveContacts() { _store->saveContacts(this); }
177179

178-
private:
179180
DataStore* _store;
180181
NodePrefs _prefs;
181182
uint32_t pending_login;

examples/companion_radio/NodePrefs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ struct NodePrefs { // persisted to file
2424
float rx_delay_base;
2525
uint32_t ble_pin;
2626
uint8_t advert_loc_policy;
27+
uint8_t buzzer_quiet;
2728
};

examples/companion_radio/ui-new/UITask.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ void UITask::begin(DisplayDriver* display, SensorManager* sensors, NodePrefs* no
532532

533533
#ifdef PIN_BUZZER
534534
buzzer.begin();
535+
buzzer.quiet(_node_prefs->buzzer_quiet);
535536
#endif
536537

537538
#ifdef PIN_VIBRATION
@@ -872,6 +873,8 @@ void UITask::toggleBuzzer() {
872873
buzzer.quiet(true);
873874
showAlert("Buzzer: OFF", 800);
874875
}
876+
_node_prefs->buzzer_quiet = buzzer.isQuiet();
877+
the_mesh.savePrefs();
875878
_next_refresh = 0; // trigger refresh
876879
#endif
877880
}

examples/companion_radio/ui-orig/UITask.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ void UITask::begin(DisplayDriver* display, SensorManager* sensors, NodePrefs* no
5656

5757
#ifdef PIN_BUZZER
5858
buzzer.begin();
59+
buzzer.quiet(_node_prefs->buzzer_quiet);
5960
#endif
6061

6162
// Initialize digital button if available
@@ -396,6 +397,8 @@ void UITask::handleButtonTriplePress() {
396397
buzzer.quiet(true);
397398
sprintf(_alert, "Buzzer: OFF");
398399
}
400+
_node_prefs->buzzer_quiet = buzzer.isQuiet();
401+
the_mesh.savePrefs();
399402
_need_refresh = true;
400403
#endif
401404
}

0 commit comments

Comments
 (0)