Timestamp de vinculação com o Hexdump?

0

Estou executando um script que é fornecido abaixo

sudo  hexdump -v -e '1/1 "%02x\n"' /dev/ttyUSB0  | Many Pipes | gawk '{ print strftime(":: %s"), $0 }'

Aqui os dados estão sendo descartados com o registro de data e hora e são fornecidos abaixo

:: 1461680718 ::ED.DATA

:: 1461680718 ::ED.DATA

:: 1461680718 ::ED.DATA

:: 1461680718 ::ED.DATA

:: 1461680718 ::ED.DATA

:: 1461680718 ::ED.DATA

:: 1461680719 ::ED.DATA

Como você pode ver, o tempo não muda para todos os pacotes. Eu acho que é porque eu estou despejando os dados em vez de fazer a linha de leitura. Existe alguma maneira de script e certifique-se de obter valor diferente para cada pacote (em segundos)

    
por RajuBhai 26.04.2016 / 16:29

2 respostas

0

O mesmo tempo vem do buffering. Tente encontrar o comando que armazena na fila e experimente o comando unbuffer .

    
por 26.04.2016 / 16:34
0

Eu tentei o seguinte em um jessie pi e não tive nenhum problema com stdbuf -oL na frente do hexdump trabalhando como pretendido.

while sleep .5;do echo -n x;done |
stdbuf -oL hexdump -v -e '1/1 "%02x\n"' |
ts %.s |
cat

O while é para simular entrada lenta, ts marca o tempo de cada linha e o cat é apenas para fornecer outro canal. A saída é regular e os timestamps diferem em cerca de 0,5 segundos, após as primeiras 2 linhas. O comando ts é do pacote moreutils .

Tente usar stdbuf -oL em cada um dos seus comandos no canal.

    
por 27.04.2016 / 17:42