Documentation
[liquid-crystal-terminal.git] / terminal.sh
1 #!/bin/bash
2 PGM="$0"
3 PORT="$1"
4 CMD="$2"
5
6 BAUD=115200
7
8 chr () {
9 printf \\$(printf '%03o' $1)
10 }
11
12 led () {
13 LED="$1"
14 OPT="$2"
15
16 case "$LED" in
17 1|a|A) LED=0;;
18 2|b|B) LED=16;;
19 3|c|C) LED=32;;
20 4|d|D) LED=48;;
21 *)
22 echo "Unknown LED '$LED'"
23 echo "Usage: $PGM $PORT led [1aA2bB3cC4dD] {off|green|red|green+blink|red+blink}"
24 exit 1
25 esac
26
27 case "$OPT" in
28 off) OPT=0;;
29 green) OPT=1;;
30 red) OPT=2;;
31 green+blink) OPT=5;;
32 red+blink) OPT=6;;
33 *)
34 echo "Unknown option '$OPT'"
35 echo "Usage: $PGM $PORT led [1aA2bB3cC4dD] {off|green|red|green+blink|red+blink}"
36 exit 1
37 esac
38
39 OPT=$(($LED+$OPT))
40
41 (echo -ne '\x11'; chr $OPT) > "$PORT"
42 }
43
44 backlight () {
45 OPT="$1"
46
47 case "$OPT" in
48 off)
49 echo -ne '\x12\x00' > "$PORT"
50 ;;
51 on)
52 echo -ne '\x12\x01' > "$PORT"
53 ;;
54 flash)
55 echo -ne '\x12\x02' > "$PORT"
56 ;;
57 *)
58 echo "Unknown option '$OPT'"
59 echo "Usage: $PGM $PORT $CMD {on|off|flash}"
60 exit 1
61 esac
62 }
63
64 write () {
65 echo -ne "${@:1}" > "$PORT"
66 }
67
68 stty -F "$PORT" -crtscts -hupcl "$BAUD"
69
70 case "$CMD" in
71 backlight|bl)
72 backlight "$3"
73 ;;
74 led)
75 led "$3" "$4"
76 ;;
77 write)
78 write "${@:3}"
79 ;;
80 *)
81 echo "Usage: $PGM PORT {backlight|bl|led|write}"
82 exit 1
83 esac