MQTT_KEEP_ALIVE_TIMER define value too big
nicokorn opened this issue · 1 comments
The project in which the issue applies to:
https://github.com/STMicroelectronics/x-cube-azrtos-h7/tree/main/Projects/STM32H735G-DK/Applications/NetXDuo/Nx_MQTT_Client
Issue 1:
Last will message does not get triggered with the MQTT Client Project altough I added the last will registering function before connecting to the broker.
Issue 2:
After a certain time subscribed topics are having a delay of about 8 seconds after I published something somwhere else.
Solution to both issues:
According the Microsoft NetxDuo documentation the keepalive argument for the nxd_mqtt_client_connect function must be in seconds.
https://docs.microsoft.com/en-us/azure/rtos/netx-duo/netx-duo-mqtt/chapter3#nxd_mqtt_client_connect
But in the application example the keep alive define is most probably in ticks. Assuming that 1 tick is 10 ms, the 30000 resulting in 300000 ms which are 300 secconds thus 5 minutes.
I changed the define value to 60 and the last will message gets triggered after 60 seconds and such 8 seconds delay on subscribed topics didn't happen again.