domingo, 13 de diciembre de 2015

Módulo uart


uart.setup()
Descripción

establece las características del puerto serie (baudios, bits de datos, paridad, bits de stop y eco),
Sintaxis
uart.setup( id, baud, databits, parity, stopbits, echo )
Parámetros
id = 0, solo soporta un puerto serie.
baud = 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 74880, 115200, 230400, 460800, 921600, 1843200, 2686400.
databits = 5, 6, 7, 8.
parity = 0(none).
stopbits = 1(1 stopbit), 2(2 stopbit).
echo = 0(close echo back).
Devuelve
baudios.
uart.on()
Descripción
Ejecuta una función cuando se reciben datos por el puerto serie
Sintaxis
uart.on(method, [number/end_char], [function], [run_input])
Parámetros
method = "data", cuando se espera recibir un datos por el puerto serie.
number/end_char: Este parámetro puede adoptar tres valores distintos:
  • Un número n > 0: se ejecuta la función cuando se reciben n caracteres
  • Un número n = 0; se ejecuta la función cuando se recibe cada carácter
  • Un carácter tipo string "c". Se ejecuta cuando se recibe el carácter "c" o se reciben como máximo 255 caracteres
function: función que se llama cuando recibimos un dato. Ejemplo: function(data)... end
run_input: Puede ser 0 o 1.
  • 0: la entrada del puerto no pasará al intérprete lua (admite datos binarios). Se utiliza cuando se le quiere pasar datos al programa por el puerto serie
  • 1: la entrada del puerto serie pasará al intérprete de Lua y se ejecutará. Se utiliza para enviar comandos al NodeMCU.
 
Devuelve
nada
Ejemplo
-- when 4 chars is received.
uart.on("data", 4,
 function(data)
   print("receive from uart:", data)
   if data=="quit" then
     uart.on("data")
   end        
 end,
0)
-- when '\r' is received.
uart.on("data", "\r",
 function(data)
   print("receive from uart:", data)
   if data=="quit\r" then
     uart.on("data")
   end        
 end,
0)

Notas personales
Si utilizamos este método uart.on hay que asegurarse de poder salir de él. Me explico, cuando invocamos uart.on(“data”,n,function(data) …. end,0) para recibir datos por el puerto serie, este último parámetro run_input a 0 hace que el intérprete lua deje de recibir “órdenes” por el puerto serie por lo que el módulo quedará ingobernable (ver el siguiente artículo). Para evitar esto, hay que salir de alguna forma de este modo y para ello hay que indicarlo en la programación:
uart.on("data", 4,
 function(data)
    print("receive from uart:", data)
    if data=="quit" then
     uart.on("data") -- Hace que el módulo salga del modo 0 (se ve que por defecto el parámetro run_input es 1)
    end       
 end,
0)
uart.write()

Descripción
escribe string en el puerto serie.
Sintaxis
uart.write( id, string1, string2... )
Parámetros
id = 0, solo un puerto serie es soportado.
string1..n: strings a escribir en el puerto serie.
Devuelve
nada
 
 
Fuente:

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.