как использовать MQTT в Arduino заранее - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть этот код ниже.Я использую соединение Ethernet и протокол mqtt.Когда я выполняю обратный вызов для получения данных от посредника, он переходит к методу, который вызывает этот метод. Я хочу снова вызвать обратный вызов и обновить данные из посредника, не начиная с начала.

void slidercallback(double x) 
{
      function(x);
}

void setup()
{
  Serial.print(F("\nInit the Client..."));
  Ethernet.begin(mac);
  delay(1000); //give the ethernet a second to initialize
  slider.setCallback(slidercallback);
  mqtt.subscribe(&slider);
}

void loop() {
  MQTT_connect();
  // under loop something to do here then check if any data come from the broker 
  mqtt.processPackets(1000);
}

Здесь после получения данных (номер) Я хочу еще раз проверить, получает ли брокер новые данные.

void function(double Time_To_Arrival)
{
    if(y>72000)                      
    {
        for(time=Time_To_Arrival;time>=90000;time=time-90000)          
        {
            green_light3();
            delay(delay_g);
            yellow_light3();
            delay(delay_y);
            mqtt.processPackets(1000);
            // if I run it like this it will not come back here again it will start from the begin of the function 
            green_light2();
            delay(delay_g);
            yellow_light2();
            delay(delay_y);

как я могу обновить номер, который я точно сохранил на том же месте?

...