#!/bin/sh
-#Serial line tester, should work in busybox ash
+#
+#Serial line tester v0.3
#(c) Tomas Mudrunka 2022-2024
+#
+#Tested in: busybox ash, bash
+
+function serial_loopback_test() {
trylimit=0
seconds=0
unset line
read -rst 1 -u 6 line
#echo "LINE: $line"
- [ "$line" != "$testdata" ] && {
+ [ "$line" != "$testdata" ] && errcnt=$((errcnt+1)) &&
echo -e "$(date +'%D %T')\t$errcnt\tError receiving data $port_tx -> $port_rx"
- } && errcnt=$((errcnt+1))
trycnt=$((trycnt+1))
#echo "try $trycnt err $errcnt lim $trylimit"
[ $trylimit -gt 0 -a $trycnt -gt $trylimit ] && break
echo TRANSMITTED: $trycnt, ERRORS: $errcnt, SECONDS: $(($(date +%s)-$datestart))
[ "$errcnt" = "0" -a "$trycnt" -gt 0 ] && exit 0
exit 255
+
+}
+
+serial_loopback_test "$@"