Bash читать с ttyUSB0 и отправлять на URL

Я новичок в Bash и пытаюсь собрать все это вместе.

То, что я пытаюсь сделать, это:

1) Установить порт (STTY)
2) Чтение из dev/ttyUSB0 - данные должны выглядеть как 000118110000101 (кошка или Gawk?)
3) Установите прочитанные данные в переменную, например, DATA, и создайте URL, например, http://domain.com/get_data.php?data=$ DATA.
4) загрузить URL с помощью wget?
5) Подождите больше данных от ttyUSB0 (опрос или цикл?)

Я пробовал расширение php DIO, которое работает, но не является надежным, потому что оно останавливается / запускается по какой-то причине.

ЛЮБЫЕ предложения будут высоко оценены, я буду очень рад, если кто-нибудь может посоветовать лучший способ сделать это

Спасибо

казарка

2 ответа

Решение

Это то, что я использовал.

#Set permisions
sudo chmod o+rwx /dev/ttyUSB0


#!/bin/bash

# Port setting
stty -F /dev/ttyUSB0 cs7 cstopb -ixon raw speed 1200

# Loop
while [ 1 ]; 
do
    echo 'LOADING...'
    READ=`dd if=/dev/ttyUSB0 count=22 | sed 's/ //g'`
    echo $READ
    wget http://localhost/BASHtest/test.php?signal=$READ
    echo '[PRESS Ctrl + C TO EXIT]'
done

Для первого шага я бы посоветовал прочитать в файл, а затем использовать od для получения восьмеричного (насколько я могу видеть) двоичного представления, потому что стандартный awk не справляется с NUL (я тоже думаю, что gawk). Таким образом, после того, как вы получите байты, вы передадите его через скрипт sed, чтобы сменить восьмеричные числа на двоичные и получить результат с помощью $() (или апострофы) и создайте URL, на который вы кормите wget,

Единственная проблема, которую я вижу, это заблокированное / неблокированное чтение с usb. Пожалуйста, сообщите, если будет один.

Другие вопросы по тегам