2016-11-21 8 views
1

Мне нужно связаться со специальным устройством на uart. Устройство запрашивается каждые 500 мсек, и его ответ хранится в локальной переменной.Как отключить lua-интерфейс для uart? (Nodemcu)

Вот минимальный рабочий пример:

my_data = "no data yet" 

function devReq() 
    uart.write(0, "value?\n\r") -- request next value from device 
end 

function devStart() 
    uart.alt(0) 
    uart.setup(0, 2400, 7, uart.PARITY_NONE, uart.STOPBITS_2, 0) 
    uart.on("data", "\r", 
     function(data) 
      my_data=data    -- store value 
      tmr.alarm(1, 500, tmr.ALARM_SINGLE, devReq, 0) -- request next value 
     end 
    ) 
    devReq() -- request first value 
end 

Этот код работает. Я могу подключить порт uart с шпатлевкой. Моя проблема заключается в том, что ответ, посланный устройством также интерпретируется Lua:

> value? 

423 
stdin:1: unexpected symbol near '423' 

> value? 

2345 
stdin:1: unexpected symbol near '2345' 

> value? 

Таким образом, в дополнение хранения значения в my_data, данные также интерпретируются Lua. Как я могу отключить это?

ответ

2

См. uart.on(). Это четвертый параметр. Вы опустили это, поэтому по умолчанию используется значение 1 - это передача ввода интерпретатору.