如何自定义不带+号的AT命令
Moderator: ESP_XCGuang
Re: 如何自定义不带+号的AT命令
好像注册的时候不带+是可以注册成功的。
进一步的问题是:
1. 官方文档查询命令的模板是 AT+CMD?,那查询的时候如何带参数呢(目前mcu侧写死了,发出的AT查询是带参数的)?
2. 官方文档AT带参数的模板是 AT+TEST=1,"espressif", 一定要带这个 = 号么? mcu侧发出的带参数的命令是不带 = 好的, 命令后面直接是逗号
进一步的问题是:
1. 官方文档查询命令的模板是 AT+CMD?,那查询的时候如何带参数呢(目前mcu侧写死了,发出的AT查询是带参数的)?
2. 官方文档AT带参数的模板是 AT+TEST=1,"espressif", 一定要带这个 = 号么? mcu侧发出的带参数的命令是不带 = 好的, 命令后面直接是逗号
Re: 如何自定义不带+号的AT命令
下面是一个可能的 workaround:
1. MCU 还是通过 UART 发送 "ATSI," 此类不符合通用用法的命令格式
2. 修改从 UART 那边读取到的数据,https://github.com/espressif/esp-at/blo ... ask.c#L176。
比如将 "ATSI," 开头的字符串替换为 "ATSI="
3. 这样传递到 AT 内部解析时,AT 内部还是认为是 "ATSI=" 这类命令
tips:
通常不建议这样修改。一方面是:未经过测试,风险无法评估;另外一方面,后续你们维护命令也比较困难,也不够专业。
~
1. MCU 还是通过 UART 发送 "ATSI," 此类不符合通用用法的命令格式
2. 修改从 UART 那边读取到的数据,https://github.com/espressif/esp-at/blo ... ask.c#L176。
比如将 "ATSI," 开头的字符串替换为 "ATSI="
3. 这样传递到 AT 内部解析时,AT 内部还是认为是 "ATSI=" 这类命令
tips:
通常不建议这样修改。一方面是:未经过测试,风险无法评估;另外一方面,后续你们维护命令也比较困难,也不够专业。
~
Re: 如何自定义不带+号的AT命令
按照提示的思路插入了 = , 是可行的。
接下来要实现的是在自定义命令中 触发 多个已有的ESP32 AT命令。 根据之前的帖子,是建议在自定义命令处理时发消息给esp_at_uart_queue, 例如:
xQueueSend(esp_at_uart_queue,(void *)&user_event,10/portTICK_PERIOD_MS);
Uart_Task是可以收到发的消息的并用 xQueueReceive(esp_at_uart_queue, (void * )&event, (TickType_t)portMAX_DELAY)来解析消息,event参数(uart_event_t的定义是?)有type和size可用。 在此之后Uart_Task还是会从uart底层驱动去读数据,但这时候显然底层没有到达的数据。 何时将自调用的ESP32 命令加入进去还是搞不清楚。 可能的话按这个方向进一步提示一下? 谢谢。
接下来要实现的是在自定义命令中 触发 多个已有的ESP32 AT命令。 根据之前的帖子,是建议在自定义命令处理时发消息给esp_at_uart_queue, 例如:
xQueueSend(esp_at_uart_queue,(void *)&user_event,10/portTICK_PERIOD_MS);
Uart_Task是可以收到发的消息的并用 xQueueReceive(esp_at_uart_queue, (void * )&event, (TickType_t)portMAX_DELAY)来解析消息,event参数(uart_event_t的定义是?)有type和size可用。 在此之后Uart_Task还是会从uart底层驱动去读数据,但这时候显然底层没有到达的数据。 何时将自调用的ESP32 命令加入进去还是搞不清楚。 可能的话按这个方向进一步提示一下? 谢谢。
Who is online
Users browsing this forum: No registered users and 26 guests