[Fedora-users-br] Como acessar remotamente via modo texto um nobreak inteligente em linux?

Sthenley Macedo contato em sthenley.com
Domingo Agosto 1 15:13:15 UTC 2010


Salve!

Em 1 de agosto de 2010 10:40, Geraldo <jrfontes.listas em yahoo.com.br>escreveu:

> Em 29/07/10 11:20, Mr. Adilson Bonan escreveu:
> > Cara, olha so, de SP para STO eu chego via SSH, isso nao eh p[roblema...
> > Meu problema comeca em STO qdo chego.. pq nao tenho nenhum software para
> > falar com o nobreak de la, saca....
>
>        Isso eu entendi.
>        A questão que fica: é possível acessar o nobreak com outro software
> que
> não aquele desenvolvido pelo fabricante? Essas coisas são padronizadas
> ou cada fabricante escolhe como acessar seu equipamento?
>        Ao que parece existem padrões a esse respeito. D~e uma olhada em
> http://www.mcsi.re/client-projects.
>
>
Primeiro mail que recebo da lista... Olá, pessoal! :)

Sem ter acompanhado a discussão, pode ser que fale alguma besteira, mas...
Vejamos.

Se a comunicação com o equipamento é feita via porta serial, *é possível
desenvolver um cliente*. Em verdade, *nem é preciso ter um software
específico para trocar mensagens*. O que é preciso, necessariamente, é
*conhecer
o protocolo de comunicação*. Se não tiver acesso ao protocolo, você pode
fazer a engenharia reversa. O que pode complicar é se o protocolo trabalhar
com caracteres em hexadecimal e máscaras para checksum.

Para fazer alguns testes, é preciso pelo menos conhecer as configurações
para a porta. O linux te oferece tudo para a brincadeira. Para essas coisas
eu uso o *stty*.

Digamos que o equipamento funcione com 9600 bps 8N1 e sua porta serial seja
/dev/ttyS0. Eis a linha de comando para configurar sua porta na sessão (pode
colocar no rc.local, por exemplo):
*
stty -F /dev/ttyS0 speed 9600 raw cs8 -parity*

Se estiver configurando um shell script, por exemplo, pode controlar o fluxo
desta forma:
*stty -F /dev/ttyS0 speed 9600 raw cs8 -parity >/dev/null 2>&1 || ERRO
"porta serial não disponível ($?)"*

Isso vai configurar a porta ou retornar um código de erro.

E como comunicar-se com a porta?

Basta usar *echo* e *cat* :)

*cat /dev/ttyS0* para "escutar" a porta. Pode usar um loop indefinidamente,
para criar um daemon. No mais, como já citei, é preciso conhecer o protocolo
para entender as strings de retorno do equipamento. Com sorte, é tudo ASCII,
mas se o protocolo falar em hexadecimal, pode fazer um pipe com o *hexdump*.
No seu caso, provavelmente você não vai precisar escrever nada pra ele, pois
o interessante é apenas o monitoramento.

**


Virtualmente,
Sthenley
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://lists.fedoraproject.org/pipermail/br-users/attachments/20100801/d3bdf13f/attachment.html 


Mais detalhes sobre a lista de discussão br-users