mirror of
				https://git.openwrt.org/project/luci.git
				synced 2025-10-31 10:49:03 +08:00 
			
		
		
		
	luci-mod-battstatus: preparing for other devices
For standard devices, we can read from `/sys/class/power_supply` Add board checks to implement different solutions for different boards Signed-off-by: Coia Prant <coiaprant@gmail.com> Signed-off-by: Paul Donald <newtwen+github@gmail.com>
This commit is contained in:
		| @ -7,9 +7,9 @@ | ||||
| include $(TOPDIR)/rules.mk | ||||
|  | ||||
| LUCI_TITLE:=LuCI Battery Status | ||||
| LUCI_DESCRIPTION:=Provides a battery charge indicator in LuCI. Currently only supports the HooToo HT-TM05 travel router. | ||||
| LUCI_DESCRIPTION:=Provides a battery charge indicator in LuCI. | ||||
|  | ||||
| LUCI_DEPENDS:=+luci-base +libiwinfo-lua +rpcd-mod-iwinfo +libi2c +i2c-tools | ||||
| LUCI_DEPENDS:=+luci-base +libi2c +i2c-tools | ||||
|  | ||||
| PKG_LICENSE:=Apache-2.0 | ||||
|  | ||||
|  | ||||
| @ -2,6 +2,9 @@ | ||||
|  | ||||
| . /usr/share/libubox/jshn.sh | ||||
|  | ||||
| board=$(cat /tmp/sysinfo/board_name) | ||||
| model=$(cat /tmp/sysinfo/model) | ||||
|  | ||||
| case "$1" in | ||||
| 	list) | ||||
| 		printf '{ "getBatteryStatus": {} }' | ||||
| @ -10,26 +13,32 @@ case "$1" in | ||||
| 		case "$2" in | ||||
| 			getBatteryStatus) | ||||
| 				json_init | ||||
| 				json_add_object "$model" | ||||
|  | ||||
| 				eval $(/bin/ubus call system board 2>/dev/null | /usr/bin/jsonfilter -e 'MODEL=@.model') | ||||
| 				json_add_object "$MODEL" | ||||
|  | ||||
| 				if [ -f /usr/sbin/i2cset ] && [ -f /usr/sbin/i2cget ]; then | ||||
| 					json_add_boolean valid 1 | ||||
| 					if [ $(i2cset -y 0 0x0a 0x0a 0x01 && i2cget -y 0 0x0a 0x0a) = 0x40 ]; then | ||||
| 						json_add_boolean charging 1 | ||||
| 					else | ||||
| 						json_add_boolean charging 0 | ||||
| 					fi | ||||
| 					json_add_int percentage $(i2cset -y 0 0x0a 0x0a 0x10 && i2cget -y 0 0x0a 0x0a | xargs printf %d) | ||||
| 				else | ||||
| 				case "$board" in | ||||
| 					hootoo,ht-tm05) | ||||
| 						if [ -f /usr/sbin/i2cset ] && [ -f /usr/sbin/i2cget ]; then | ||||
| 							json_add_boolean valid 1 | ||||
| 							if [ $(i2cset -y 0 0x0a 0x0a 0x01 && i2cget -y 0 0x0a 0x0a) = 0x40 ]; then | ||||
| 								json_add_boolean charging 1 | ||||
| 							else | ||||
| 								json_add_boolean charging 0 | ||||
| 							fi | ||||
| 							json_add_int percentage $(i2cset -y 0 0x0a 0x0a 0x10 && i2cget -y 0 0x0a 0x0a | xargs printf %d) | ||||
| 						else | ||||
| 							json_add_boolean valid 0 | ||||
| 							if [ ! -f /usr/sbin/i2cset ]; then | ||||
| 								json_add_string message "Need i2cset" | ||||
| 							else | ||||
| 								json_add_string message "Need i2cget" | ||||
| 							fi | ||||
| 						fi | ||||
| 					;; | ||||
| 				*) | ||||
| 					json_add_boolean valid 0 | ||||
| 					if [ ! -f /usr/sbin/i2cset ]; then | ||||
| 						json_add_string message "Need i2cset" | ||||
| 					else | ||||
| 						json_add_string message "Need i2cget" | ||||
| 					fi | ||||
| 				fi | ||||
| 					json_add_string message "Unsupported" | ||||
| 					;; | ||||
| 				esac | ||||
|  | ||||
| 				json_close_object | ||||
| 				json_dump | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Coia Prant
					Coia Prant