Sottoscrizione a topic multipli con libreria pubsubclient.h

Buongiorno a tutti,

sono di nuovo qui a chiedere alcune info riguardo un "problema" che mi si è presentato in questi ultimi giorni, ovvero come gestire la sottoscrizione a diversi topic mqtt sfruttando la libreria PubSubClient.h

A dire il vero una soluzione l'ho già trovata, testata e sembra funzionare ed è questa:

void callback(char* topic, byte* payload, unsigned int length) {

  if(strcmp(topic,inTopicPwmChannel) == 0) {  
    Serial.print("Message arrived [");
    Serial.print(topic);
    Serial.println("] ");
  
    for (int i = 0; i < length; i++) {
      charPwm[i] = (char)payload[i];
    }
    
      sscanf(charPwm, "%d", &pwmValue);

      Serial.print("PWM: ");
      Serial.println(pwmValue);   
  }

  if(strcmp(topic,inTopicCommandChannel) == 0) {
    Serial.print("Message arrived [");
    Serial.print(topic);
    Serial.println("]");

    for (int i = 0; i < length; i++) {
      charPwm[i] = (char)payload[i];
    }

      sscanf(charPwm, "%d", &pwmValue);

      Serial.print("PWM: ");
      Serial.println(pwmValue);
  }
}

La mia domanda in realtà è: questo metodo che sto usando va bene o ci sono altre strade percorribili ? Diciamo che a me piacerebbe che ci siano N "void callback..." diverse per ogni topic diverso in entrata; mentre adesso il riconoscimento del topic viene fatto all'interno della funzione callback e non è che mi piaccia tanto.

Buongiorno,

che sia il caso che ponga la stessa domanda sul forum in lingua inglese ? ::slight_smile:

Chiedo per evitare di generare problemi di cross-posting.

Moce993:
Buongiorno,

che sia il caso che ponga la stessa domanda sul forum in lingua inglese ? ::slight_smile:

Chiedo per evitare di generare problemi di cross-posting.

SI, dato che non hai ricevuto alcuna risposta per più di una settimana, è meglio che provi a porre la stessa domanda nella sezione inglese ... :wink:

Guglielmo