ESP32 NodeMCU uart输入匹配字符串问题

时间:2019-12-29 17:54:54

标签: lua uart nodemcu

我在用nodemcu固件在ESP32上创建了一个小项目,该固件通过uart2与sim808模块通信。我的问题是,在lua和nodemcu中难以多次解释来自uart的响应。 这是我的代码的简短示例:

Son

在上述情况下-RING和NO CARRIER输入正确匹配,并给出了正确的信息。 我也有许多其他这样的搜索有效。但是当我查找电话号码(+ CLIP:...)时,该代码将忽略此输入,但是我在串行控制台输出上看到了它:

uart.on(2, "data", "\r", function(data)
    print("Checking UART: "..data)
    if (string.match(data, "RING")) then
        print("Someone rings")
    elseif (string.match(data, "CLIP:")) then
        print("Phone number: "..data) -- shortened, I know that the whole line will appear
    elseif (string.match(data, 'NO CARRIER')) then
        print("Ring canceled")
    else
        print("Dont understand")
    end
end, 0)

我还看到这个特定的答案后面有换行符,并且循环再次没有字符,这也许就是为什么代码找不到它的原因,但是内置函数uart.on应该检查每行(\ r )。 当我收到一些蓝牙命令时,同样的问题,也无法将其放入变量中。

0 个答案:

没有答案