mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-07-27 18:41:15 +08:00
44 lines
828 B
Bash
44 lines
828 B
Bash
#!/bin/sh
|
|
set -e
|
|
I2C=$1
|
|
[ -z "$I2C" ] && exit 1
|
|
|
|
ROTATE=180
|
|
# clear display every round for broken displays
|
|
CLEAR=false
|
|
|
|
LINELEN=21 # 128/6
|
|
MAX=42 # 2 lines
|
|
TEXT="Hello world!"
|
|
|
|
|
|
len=`echo "$TEXT" | wc -c`
|
|
if [ $len -gt $MAX ]; then
|
|
echo "Text too long (max $MAX chars)" >&2
|
|
exit 1
|
|
fi
|
|
fillround=$(( ($MAX + $len) / $len )).
|
|
offset=0
|
|
|
|
ssd1306 -n $I2C -I 128x32
|
|
# rotate display
|
|
ssd1306 -n $I2C -r $ROTATE
|
|
if $CLEAR; then
|
|
sleep 1
|
|
else
|
|
ssd1306 -n $I2C -c
|
|
fi
|
|
while :; do
|
|
halfstart=$(($offset + $LINELEN))
|
|
text=""
|
|
for i in $(seq 0 $fillround); do
|
|
text="$text ${TEXT}"
|
|
done
|
|
$CLEAR && ssd1306 -n $I2C -c
|
|
msg="`date '+%Y-%m-%d %H:%M:%S'`"' \n'"${text:$offset:$LINELEN}"'\n'"${text:$halfstart:$LINELEN}"'\n'"`date '+%Y-%m-%d %H:%M:%S'` "
|
|
ssd1306 -n $I2C -m "$msg"
|
|
sleep 1
|
|
offset=$(( ($offset + 1) % $len ))
|
|
done
|
|
exit 0
|