shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Comandos em eventos recebidos pela USB


From: Julio C. Neves
Subject: Re: [shell-script] Comandos em eventos recebidos pela USB
Date: Fri, 16 Jan 2015 11:49:54 -0200

Vamos entender isso:
» Esqueça o primeiro bloco de 7 algarismos, que é só um sequencial;
» Cada linha tem duas partes, então a linha 0057520 tem uma parte que é 0015 0000 0000 0300 e outra que é 0017 0000 0000 0300
» O od inverte os bytes, assim bloquinho desses de 4 algarismos está invertido, ou seja 0300 no duro é 0003;
Prova disso:
$ echo "$IFS" | od -h
0000000 0920 0a0a
0000004
$ echo "$IFS" | cat -vet
 ^I$
$
No od -h primeiro vinha o <TAB> (09) e depois o espaço (20) mas o cat -vet mostrou que, no duro, a ordem é <BRANCO> <TAB> <ENTER>
» Sabendo disso repare que todos terminam em 0003, que seria NULL e ETX. ETX no protocolo BSC1 é END OF TEXT.

Tirando o sequencial, o fire é sempre o mesmo.

Experimente trocar o od -h por cat -vet, depois por od -c para que vc vá entendendo o que acontece. Pelo que vi, acho que dá para implementar essa solução por bash sim (awk deve ser melhor para interpretar esses caracteres hexa)

Abcs,
Julio
@juliobash
P
róximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 09 a 13/03/15
São Paulo 4Linux 24 a 28/11/14
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 16 de janeiro de 2015 11:24, Alfredo Casanova address@hidden [shell-script] <address@hidden> escreveu:
 

Julio, o tail -f não mostrou nada.
Usei o cat mesmo com od -h, mas só consigo output com o driver que encontrei rodando (http://pastebin.com/sJqAmFVT). Se ele não estiver rodando, nada acontece.


Então: 

$ cat /dev/hidraw3 | od -h
0000000 0015 0000 0000 0300 0015 0000 0000 0300 
*

Ao levantar o LID, apareceu:

0057520 0015 0000 0000 0300 0017 0000 0000 0300
0057540 0017 0000 0000 0300 0017 0000 0000 0300
*

Apertei Fire:

0103240 0017 0000 0000 0300 0016 0000 0000 0300
0103260 0016 0000 0000 0300 0017 0000 0000 0300
0103300 0017 0000 0000 0300 0017 0000 0000 0300
*

Fire Novamente:

0112100 0017 0000 0000 0300 0016 0000 0000 0300
0112120 0016 0000 0000 0300 0017 0000 0000 0300
0112140 0017 0000 0000 0300 0017 0000 0000 0300
*

Lid Fechado:

0131700 0015 0000 0000 0300 0015 0000 0000 0300
*


On Fri Jan 16 2015 at 10:46:33 AM 'Julio C. Neves' address@hidden [shell-script] <address@hidden> wrote:
 

Experimente fazer um tail -f /dev/hidraw3 | od -h | tee /tmp/botao.


Abcs,
Julio
@juliobash
P
róximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 09 a 13/03/15
São Paulo 4Linux 24 a 28/11/14
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 15 de janeiro de 2015 16:03, Alfredo Casanova address@hidden [shell-script] <address@hidden> escreveu:


 

Mr. Bits, o que quero é o inverso: 'escutar' os eventos que o periférico envia via USB e executar comandos de acordo com eles.

No driver que encontrei em C, são 3 eventos: open lid, fire, close lid.

O dispositivo aparece em /dev/hidraw3. Um cat nele não mostra nada, a não ser que o programa em C esteja rodando.


Em qui, 15 de jan de 2015 15:13, MrBiTs address@hidden [shell-script] <address@hidden> escreveu:

 

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256



> Tenho um dispositvo usb aqui (http://dreamcheeky.com/big-red-button) e achei até um driver escrito em C pra ele, que funciona.
> Compilei com os comandos que queria e tá tudo OK. Só queria saber se existe alguma forma de fazer isso usando bash puro!

Bash puro = comandos internos do interpretador. Se você usa um sed, um grep, um cut, já não é mais "bash puro".

O que é "fazer isso"? Compilar os comandos que você queria? Não dá pra fazer em bash puro porque bash não tem compilador C.

Agora, se você quer controlar o dispositivo simplesmente via bash, tenta um echo 0>/dev/ttyUSB1 e veja o que acontece. De repente,
lendo o código C, você descobre quais são as instruções e manda os códigos via echo para o dispositivo. Eu faço echo xx >
/dev/ttyUSB123 (onde por exemplo está minha impressora) e ela faz uns barulhos, moe umas folhas. Se eu souber exatamente os
comandos de impressão, posso até fazê-la imprimir. É um belo exercício, mas nada mais.

- --
echo
920680245503158263821824753325972325831728150312428342077412537729420364909318736253880971145983128276953696631956862757408858710644955909208239222408534030331747172248238293509539472164571738870818862971439246497991147436431430964603600458631758354381402352368220521740203494788796697543569807851284795072334480481413675418412856581412376640379241258356436205061541557366641602992820546646995466P
| dc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBCAAGBQJUt/VDAAoJEG7IGPwrPKWrGogH/3Ju0HhXuTa/mdyVmj+BvqEK
F0nd1849P/Rna9jrIesGvaqOIeaP36B76d89w1mAaYcYCvvZFeyXgFixxKofvuSW
u11uq7FaQDsdYndV173XTZU5aXPwoyCZFebHD/U8p6+iHhbhHBKrcT23KMIY88+a
xph57s4PN5JeBQJKmSdMa3HoltY/e85pelL//dbk/vpIh7tjovX2HT8y92m73DTB
/AI5GcaXYCcAZTqKY+WnSjq1QBQ4cvoQN/uGyenUPzoQoydec2gLJDukaVkR6k83
byZwb1+1v+7UEogrc0Wh5lk41+MRi3qSMg0tL6Hqv2fiRI/ufZC5QmvI7f+v5EY=
=FAG7
-----END PGP SIGNATURE-----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]