Enviando dados pela serial

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Enviando dados pela serial

John Madeira

Gostaria de saber se alguém já usou o Lua para enviar dados pela serial. Estou com o problema: só consigo enviar os dados que preciso pela serial quando monto um array e escrevo direto na serial. Atualmente eu consigo fazer isso da seguinte forma:

-- Abro a serial para escrita
serial=io.open("/dev/ttyS0","w+")

-- Gravo o pacote na serial. O função do ‘\’ é para separar cada posicao dos bytes
serial:write("0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\1\0\0\1\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\1\0")

No entanto, minha aplicação precisa montar esse pacote lendo os dados das tags de um XML. Estou tentando fazer da seguinte forma:

 

-- Lendo o arquivo de dados XML atraves do parser XML
pct = ""
for k, p in pairs (xmlhandler.root.Pacote.Byte) do
        pct = (pct .. (p.Valor))
end

-- Gravando o pacote na serial
serial:write(pct)

Dessa forma não funciona. Já verifiquei que os dados são lidos corretamente do XML e que eles são montados da forma que preciso. Já tentei concatenar com barra, espaço e virgula mas não funciona. Acredito que o formato (tipo) esteja diferente. Alguém tem alguma dica?

 

 

--
--
Lua BR - http://groups.google.com/group/lua-br
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Enviando dados pela serial

Vagner nascimento
Talvez você tenha que varrer o string do XML fazendo um string.byte e na hora de enviar pra serial utilizar um string.char.
Testa algo nessa linha.

Abs
Vagner


2013/3/21 John Madeira <[hidden email]>

Gostaria de saber se alguém já usou o Lua para enviar dados pela serial. Estou com o problema: só consigo enviar os dados que preciso pela serial quando monto um array e escrevo direto na serial. Atualmente eu consigo fazer isso da seguinte forma:

-- Abro a serial para escrita
serial=io.open("/dev/ttyS0","w+")

-- Gravo o pacote na serial. O função do ‘\’ é para separar cada posicao dos bytes
serial:write("0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\1\0\0\1\0\0\1\0\0\1\0\0\0\0\0\0\0\0\0\0\0\1\1\0")

No entanto, minha aplicação precisa montar esse pacote lendo os dados das tags de um XML. Estou tentando fazer da seguinte forma:

 

-- Lendo o arquivo de dados XML atraves do parser XML
pct = ""
for k, p in pairs (xmlhandler.root.Pacote.Byte) do
        pct = (pct .. (p.Valor))
end

-- Gravando o pacote na serial
serial:write(pct)

Dessa forma não funciona. Já verifiquei que os dados são lidos corretamente do XML e que eles são montados da forma que preciso. Já tentei concatenar com barra, espaço e virgula mas não funciona. Acredito que o formato (tipo) esteja diferente. Alguém tem alguma dica?

 

 

--
--
Lua BR - http://groups.google.com/group/lua-br
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

--
--
Lua BR - http://groups.google.com/group/lua-br
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.