diff --git a/src/mesh/PhoneAPI.cpp b/src/mesh/PhoneAPI.cpp index fa10e20fa..f9c9b6175 100644 --- a/src/mesh/PhoneAPI.cpp +++ b/src/mesh/PhoneAPI.cpp @@ -87,6 +87,10 @@ void PhoneAPI::handleToRadio(const uint8_t *buf, size_t bufLength) handleSetRadio(toRadioScratch.set_radio); break; + case ToRadio_set_channel_tag: + DEBUG_MSG("Client is setting channel\n"); + handleSetChannel(toRadioScratch.set_channel); + break; default: DEBUG_MSG("Error: unexpected ToRadio variant\n"); break; @@ -275,6 +279,17 @@ void PhoneAPI::handleSetOwner(const User &o) service.reloadOwner(); } +void PhoneAPI::handleSetChannel(const ChannelSettings &cc) +{ + radioConfig.channel_settings = cc; + + bool didReset = service.reloadConfig(); + if (didReset) { + state = STATE_SEND_MY_INFO; // Squirt a completely new set of configs to the client + } + +} + void PhoneAPI::handleSetRadio(const RadioConfig &r) { radioConfig = r; diff --git a/src/mesh/PhoneAPI.h b/src/mesh/PhoneAPI.h index 3cfd97441..663d6824c 100644 --- a/src/mesh/PhoneAPI.h +++ b/src/mesh/PhoneAPI.h @@ -88,6 +88,7 @@ class PhoneAPI // void handleSetOwner(const User &o); + void handleSetChannel(const ChannelSettings &cc); void handleSetRadio(const RadioConfig &r); protected: