LINUX.ORG.RU

История изменений

Исправление Zmicier, (текущая версия) :

Не верю, что pritnf более всего тормозит.

А ОП его зачем-то в подоболочке запускает.

Весь файл сразу через hexdump записать в массив bash'а.

Массив не нужен:

#!/bin/bash

file="$1"

echo -en "\xFE\xFE\xFE\xFE" > /dev/ttyUSB0

counter=0
while read hBT
do
    (( HR = counter / 256,
       LR = counter % 256 ))
    printf -v hLR "%02X" "$LR"
    printf -v hHR "%02X" "$HR"
    echo -en "\xFF\x$hHR\x$hLR\xFF\x$hBT" > /dev/ttyUSB0
    (( counter++ ))
done < \
     <(od --address-radix=n --format=x1 --width=1 --output-duplicates "$file")

echo -en "\xFE" > /dev/ttyUSB0

Не проверял, могут быть ошибки вплоть до синтаксических.

Исходная версия Zmicier, :

Не верю, что pritnf более всего тормозит.

А ОП его зачем-то в подоболочке запускает.

Весь файл сразу через hexdump записать в массив bash'а.

Массив не нужен:

#!/bin/bash

file="$1"

echo -en "\xFE\xFE\xFE\xFE" > /dev/ttyUSB0

counter=0
while read hBT
do
    (( HR = counter / 256;
       LR = counter % 256 ))
    printf -v hLR "%02X" "$LR"
    printf -v hHR "%02X" "$HR"
    echo -en "\xFF\x$hHR\x$hLR\xFF\x$hBT" > /dev/ttyUSB0
    (( counter++ ))
done < \
     <(od --address-radix=n --format=x1 --width=1 --output-duplicates "$file")

echo -en "\xFE" > /dev/ttyUSB0

Не проверял, могут быть ошибки вплоть до синтаксических.