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. Пожалуйста, сообщите, если будет один.