#!/bin/bash PORT="/dev/ttyAMA0" SYNC=a0 #BYTE1 ADDR=01 #BYTE2 BYTE3=${1:-0} BYTE4=${2:-0} BYTE5=${3:-0} BYTE6=${4:-0} BYTE7=af SUM=0 #BYTE8 # Count SUM hex='' for i in $* ; do hex+="0x$i "; done a="0x$SYNC 0x$ADDR ${hex}0x$BYTE7 " # $hex contains space as last char SUM=$(eval printf %x $(( ( ${a// /^} 0x0 ) & 0xff )) ) echo "Pelco 'P': $SYNC $ADDR $BYTE3 $BYTE4 $BYTE5 $BYTE6 $BYTE7 $SUM" # Write to port printf "\x$SYNC\x$ADDR\x$BYTE3\x$BYTE4\x$BYTE5\x$BYTE6\x$BYTE7\x$SUM" > "$PORT"