x-cube-azrtos-h7 icon indicating copy to clipboard operation
x-cube-azrtos-h7 copied to clipboard

MQTT_KEEP_ALIVE_TIMER define value too big

Open nicokorn opened this issue 3 years ago • 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. https://github.com/STMicroelectronics/x-cube-azrtos-h7/blob/a455a40ad5213625b66810295789cb268cbc50a3/Projects/STM32H735G-DK/Applications/NetXDuo/Nx_MQTT_Client/NetXDuo/App/app_netxduo.h#L62

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.

nicokorn avatar Jan 04 '22 13:01 nicokorn

Hi @nicokorn,

Thank you for this clear and concise report and the fix proposal. I will let our development teams know about it. We will try to get back to you as soon as possible.

With regards,

ALABSTM avatar Jan 05 '22 09:01 ALABSTM