fix mqtt send knob change
This commit is contained in:
parent
edff630fb9
commit
8387291255
|
@ -28,7 +28,8 @@ void setSelectionChannel(uint8_t i, boolean state);
|
||||||
void setMuteChannel(uint8_t i, boolean state);
|
void setMuteChannel(uint8_t i, boolean state);
|
||||||
void publishCurrentSetVolume();
|
void publishCurrentSetVolume();
|
||||||
void publishAllStates(int pn, String pTopicname, boolean (*pgetBit) (uint8_t));
|
void publishAllStates(int pn, String pTopicname, boolean (*pgetBit) (uint8_t));
|
||||||
void changeRelaisByNumber(uint8_t pn, String pTopicPrefix, String pTopic, String pspayload, void (*psetXChannel) (uint8_t, boolean));
|
void changeRelaisByNumberTopic(uint8_t pn, String pTopicPrefix, String pTopic, String pspayload, void (*psetXChannel) (uint8_t, boolean));
|
||||||
|
void setRelaisByNumber(uint8_t pn, String pTopicPrefix, uint8_t pnumber, bool pstate, void (*psetXChannel) (uint8_t, boolean));
|
||||||
float getSetVolume();
|
float getSetVolume();
|
||||||
|
|
||||||
#define LEDPIN 9 //PB1 = D9 = Pin15
|
#define LEDPIN 9 //PB1 = D9 = Pin15
|
||||||
|
@ -304,7 +305,7 @@ void loop() {
|
||||||
case 1: //mute
|
case 1: //mute
|
||||||
if (menu_selectedChannel<=MENU_MAXCHANNEL) { //inside valid range
|
if (menu_selectedChannel<=MENU_MAXCHANNEL) { //inside valid range
|
||||||
//setMuteChannel(menu_selectedChannel,!getMute(menu_selectedChannel)); // mute/unmute menu_selectedChannel
|
//setMuteChannel(menu_selectedChannel,!getMute(menu_selectedChannel)); // mute/unmute menu_selectedChannel
|
||||||
changeRelaisByNumber(NUMMUTECHANNELS,"audiomixer/mute_", ""+menu_selectedChannel, ""+!getMute(menu_selectedChannel), &setMuteChannel); //toggle
|
setRelaisByNumber(NUMMUTECHANNELS,"audiomixer/mute_", menu_selectedChannel, !getMute(menu_selectedChannel), &setMuteChannel); //toggle
|
||||||
}else{ //nothing selected
|
}else{ //nothing selected
|
||||||
menu_mode = 0; //return to volume mode
|
menu_mode = 0; //return to volume mode
|
||||||
}
|
}
|
||||||
|
@ -313,7 +314,7 @@ void loop() {
|
||||||
case 2: //group selection
|
case 2: //group selection
|
||||||
if (menu_selectedChannel<=MENU_MAXCHANNEL) { //inside valid range
|
if (menu_selectedChannel<=MENU_MAXCHANNEL) { //inside valid range
|
||||||
//setSelectionChannel(menu_selectedChannel,!getSelection(menu_selectedChannel)); // toggle selection menu_selectedChannel
|
//setSelectionChannel(menu_selectedChannel,!getSelection(menu_selectedChannel)); // toggle selection menu_selectedChannel
|
||||||
changeRelaisByNumber(NUMSELECTCHANNELS,"audiomixer/select_", ""+menu_selectedChannel, ""+!getSelection(menu_selectedChannel), &setSelectionChannel); //toggle
|
setRelaisByNumber(NUMSELECTCHANNELS,"audiomixer/select_", menu_selectedChannel, !getSelection(menu_selectedChannel), &setSelectionChannel); //toggle
|
||||||
}else{ //nothing selected
|
}else{ //nothing selected
|
||||||
menu_mode = 0; //return to volume mode
|
menu_mode = 0; //return to volume mode
|
||||||
}
|
}
|
||||||
|
@ -615,10 +616,10 @@ void callback(char* topic, byte* payload, unsigned int length) {
|
||||||
publishAllStates(NUMSELECTCHANNELS,"select_", &getSelection);
|
publishAllStates(NUMSELECTCHANNELS,"select_", &getSelection);
|
||||||
|
|
||||||
}else if (String(topic).startsWith("audiomixer/mute_")) { //with range
|
}else if (String(topic).startsWith("audiomixer/mute_")) { //with range
|
||||||
changeRelaisByNumber(NUMMUTECHANNELS,"audiomixer/mute_", topic, spayload, &setMuteChannel);
|
changeRelaisByNumberTopic(NUMMUTECHANNELS,"audiomixer/mute_", topic, spayload, &setMuteChannel);
|
||||||
|
|
||||||
}else if (String(topic).startsWith("audiomixer/select_")) {
|
}else if (String(topic).startsWith("audiomixer/select_")) {
|
||||||
changeRelaisByNumber(NUMSELECTCHANNELS,"audiomixer/select_", topic, spayload, &setSelectionChannel);
|
changeRelaisByNumberTopic(NUMSELECTCHANNELS,"audiomixer/select_", topic, spayload, &setSelectionChannel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -709,7 +710,7 @@ void publishAllStates(int pn, String pTopicname, boolean (*pgetBit) (uint8_t)){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void changeRelaisByNumber(uint8_t pn, String pTopicPrefix, String pTopic, String pspayload, void (*psetXChannel) (uint8_t, boolean))
|
void changeRelaisByNumberTopic(uint8_t pn, String pTopicPrefix, String pTopic, String pspayload, void (*psetXChannel) (uint8_t, boolean))
|
||||||
{
|
{
|
||||||
uint8_t _index=255;
|
uint8_t _index=255;
|
||||||
for (uint8_t i=0; i<pn && _index==255; i++) {
|
for (uint8_t i=0; i<pn && _index==255; i++) {
|
||||||
|
@ -720,17 +721,26 @@ void changeRelaisByNumber(uint8_t pn, String pTopicPrefix, String pTopic, String
|
||||||
if (_index==255) {
|
if (_index==255) {
|
||||||
Serial.println("Index OOR");
|
Serial.println("Index OOR");
|
||||||
}else{ //index ok
|
}else{ //index ok
|
||||||
String pub_topic = pTopicPrefix+String(_index);
|
bool _state=false;
|
||||||
if (pspayload.equalsIgnoreCase("false")) {
|
if (pspayload.equalsIgnoreCase("true")) {
|
||||||
psetXChannel(_index,false);
|
_state=true;
|
||||||
mqttClient.publish((char*) pub_topic.c_str(), "false");
|
|
||||||
}else if (pspayload.equalsIgnoreCase("true")) {
|
|
||||||
psetXChannel(_index,true);
|
|
||||||
mqttClient.publish((char*) pub_topic.c_str(), "true");
|
|
||||||
}
|
}
|
||||||
|
setRelaisByNumber(pn, pTopicPrefix, _index, _state, psetXChannel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setRelaisByNumber(uint8_t pn, String pTopicPrefix, uint8_t pnumber, bool pstate, void (*psetXChannel) (uint8_t, boolean))
|
||||||
|
{
|
||||||
|
String pub_topic = pTopicPrefix+String(pnumber);
|
||||||
|
psetXChannel(pnumber,pstate);
|
||||||
|
String _mqttpayload="false";
|
||||||
|
if (pstate) { //True
|
||||||
|
_mqttpayload="true";
|
||||||
|
}
|
||||||
|
mqttClient.publish((char*) pub_topic.c_str(), (char*) _mqttpayload.c_str()); //Publish
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
float getSetVolume() {
|
float getSetVolume() {
|
||||||
return map(poti_set,POT_MIN,POT_MAX, 0.0,100.0); //get percentage from set poti value
|
return map(poti_set,POT_MIN,POT_MAX, 0.0,100.0); //get percentage from set poti value
|
||||||
}
|
}
|
Loading…
Reference in New Issue