mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-31 00:35:13 +08:00
🌴 Sync 2026-03-05 23:51:42
This commit is contained in:
1 parent
97c049ed0a
commit
0acff03804
14253 files changed
+3893239
No files matched your search
@@ -0,0 +1,41 @@
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ssd1306
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_DATE:=2024-10-11
|
||||
PKG_SOURCE_VERSION:=7ea348e41accda62c9d5febb74812ac90e5e44cf
|
||||
PKG_SOURCE:=ssd1306_linux-$(PKG_SOURCE_DATE).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/armlabs/ssd1306_linux/tar.gz/$(PKG_SOURCE_VERSION)?
|
||||
PKG_HASH:=skip
|
||||
|
||||
PKG_MAINTAINER:=jjm2473 <jjm2473@gmail.com>
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/ssd1306
|
||||
SECTION:=utils
|
||||
CATEGORY:=Utilities
|
||||
TITLE:=SSD1306 OLED I2C Driver
|
||||
URL:=https://github.com/armlabs/ssd1306_linux
|
||||
endef
|
||||
|
||||
define Package/ssd1306/description
|
||||
SSD1306 oled I2C driver working in linux
|
||||
endef
|
||||
|
||||
TAR_OPTIONS:=--strip-components 1 $(TAR_OPTIONS)
|
||||
TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
|
||||
|
||||
define Package/ssd1306/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ssd1306 $(1)/usr/bin
|
||||
endef
|
||||
|
||||
# Set variables used in the source's Makefile
|
||||
MAKE_FLAGS+= BIN="ssd1306" LDFLAGS=""
|
||||
|
||||
$(eval $(call BuildPackage,ssd1306))
|
||||
@@ -0,0 +1,43 @@
|
||||
#!/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
|
||||
Reference in new issue
Block a user