try and fix mqtt panic

This commit is contained in:
Travis Shears 2025-09-14 09:25:21 +02:00
parent dc206625bf
commit 1a25129495
3 changed files with 19 additions and 10 deletions

View file

@ -8,6 +8,7 @@
#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"
#include "lwip/apps/mqtt.h"
#include "hardware/watchdog.h"
// #include <cstdio>
#include <string.h>
#include <stdio.h>
@ -65,9 +66,15 @@ static void start_client(MQTT_CLIENT_DATA_T *state) {
}
void mqtt_client_pub_message(mqtt_client_config *config, const char *message) {
if (mqtt_publish(config->state.mqtt_client_inst, config->topic, message, strlen(message), MQTT_PUBLISH_QOS, MQTT_PUBLISH_RETAIN, pub_request_cb, NULL) != ERR_OK) {
panic("MQTT publish error");
}
if (config->state.connect_done || !mqtt_client_is_connected(config->state.mqtt_client_inst)) {
printf("Can't send MQTT message because client is not connected\n");
}
cyw43_arch_lwip_begin();
if (mqtt_publish(config->state.mqtt_client_inst, config->topic, message, strlen(message), MQTT_PUBLISH_QOS, MQTT_PUBLISH_RETAIN, pub_request_cb, NULL) != ERR_OK) {
panic("MQTT publish error");
}
cyw43_arch_lwip_end();
}
void mqtt_client_init(mqtt_client_config *config, const char *topic, const char *device_name) {