2016-11-21 51 views
1

我需要與uart上的特殊設備進行通信。設備每500毫秒查詢一次,其響應存儲在本地變量中。如何關閉lua interpeter for 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 - 即將輸入傳遞給解釋器。