У меня есть этот код ниже.Я использую соединение 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);
как я могу обновить номер, который я точно сохранил на том же месте?