From fcc6e9c503079cedf280c325fa32006bce1567a6 Mon Sep 17 00:00:00 2001 From: Jonas Arnold Date: Fri, 16 Dec 2022 17:35:52 +0100 Subject: [PATCH] mqtt publish shell command fixed --- ADIS_ESP32_Eclipse/main/myMqtt.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/ADIS_ESP32_Eclipse/main/myMqtt.c b/ADIS_ESP32_Eclipse/main/myMqtt.c index 5bd2e88..34132c2 100644 --- a/ADIS_ESP32_Eclipse/main/myMqtt.c +++ b/ADIS_ESP32_Eclipse/main/myMqtt.c @@ -177,18 +177,33 @@ uint8_t MyMqtt_ParseShellCommand(const unsigned char* cmd, bool *handled, const MyMqtt_SetBrokerIP(ip); // set ip }else if (McuUtility_strncmp((char*)cmd,"mqtt publish ",sizeof("mqtt publish ")-1) == 0){ *handled = TRUE; - cmd += sizeof("mqtt publish ")-1; + cmd += sizeof("mqtt publish")-1; + // skip until double quotes (topic) + while(*cmd!='\"'){ + cmd++; + } uint8_t topic[128] = ""; uint8_t data[128] = ""; - McuShell_SendStr(cmd, McuShell_GetStdio()->stdOut); + //McuShell_SendStr(cmd, McuShell_GetStdio()->stdOut); McuUtility_ScanDoubleQuotedString(&cmd, topic, sizeof(topic)); - McuShell_SendStr(topic, McuShell_GetStdio()->stdOut); + ESP_LOGI(TAG, "Parsed topic=%s", topic); + //McuShell_SendStr(topic, McuShell_GetStdio()->stdOut); // McuUtility_strcpy(topic, sizeof(topic), cmd); - cmd += strlen((const char*)topic)-1; + //cmd += strlen((char*)topic); + // skip to data + cmd++; +// while(true){ +// cmd++; // next char +// if(*cmd == ' '){ +// cmd++; // skip last space +// break; +// } +// } McuUtility_ScanDoubleQuotedString(&cmd, data, sizeof(data)); // McuUtility_strcpy(data,sizeof(data),cmd); - McuShell_SendStr(data, McuShell_GetStdio()->stdOut); - MyMqtt_Publish((const char*)topic, (const char*)data); + ESP_LOGI(TAG, "Parsed data=%s", data); + //McuShell_SendStr(data, McuShell_GetStdio()->stdOut); + MyMqtt_Publish((char*)topic, (char*)data); } return ERR_OK; }