浏览代码

show absolute battery level

Philippe G 4 年之前
父节点
当前提交
3a2bfe470f

+ 3 - 2
components/services/battery.c

@@ -51,8 +51,9 @@ float battery_value_svc(void) {
  * 
  */
 uint8_t battery_level_svc(void) {
-	// TODO: this is totally incorrect
-	return battery.avg ? (battery.avg - (3.0 * battery.cells)) / ((4.2 - 3.0) * battery.cells) * 100 : 0;
+	// TODO: this is vastly incorrect
+	int level = battery.avg ? (battery.avg - (3.0 * battery.cells)) / ((4.2 - 3.0) * battery.cells) * 100 : 0;
+	return level < 100 ? level : 100;
 }
 
 /****************************************************************************************

+ 1 - 1
components/services/monitor.h

@@ -21,7 +21,7 @@ extern void (*spkfault_handler_svc)(bool inserted);
 extern bool spkfault_svc(void);
 
 extern float battery_value_svc(void);
-extern uint8_t battery_level_svc(void);
+extern uint16_t battery_level_svc(void);
 
 extern monitor_gpio_t * get_spkfault_gpio(); 
 extern monitor_gpio_t * get_jack_insertion_gpio(); 

+ 2 - 2
components/squeezelite/embedded.c

@@ -67,8 +67,8 @@ u16_t get_plugged(void) {
     return jack_inserted_svc() ? PLUG_HEADPHONE : 0;
 }
 
-u8_t get_battery(void) {
-	return (battery_level_svc() * 16) / 100;
+u16_t get_battery(void) {
+	return (u16_t) (battery_value_svc() * 128) & 0x0fff;
 }	 
 
 void set_name(char *name) {

+ 1 - 1
components/squeezelite/embedded.h

@@ -77,7 +77,7 @@ extern mutex_type slimp_mutex;
 #define PLUG_HEADPHONE	0x04
 u16_t	get_RSSI(void);			// must provide or define as 0xffff
 u16_t	get_plugged(void);		// must provide or define as 0x0
-u8_t	get_battery(void);		// must provide 0..15 or define as 0x0
+u16_t	get_battery(void);		// must provide 12 bits data or define as 0x0 (exact meaning is device-dependant)
 
 // set name 
 void set_name(char *name);		// can be defined as an empty macro

+ 1 - 1
plugin/SqueezeESP32/install.xml

@@ -10,6 +10,6 @@
   <name>PLUGIN_SQUEEZEESP32</name>
   <description>PLUGIN_SQUEEZEESP32_DESC</description>
   <module>Plugins::SqueezeESP32::Plugin</module>
-    <version>0.211</version>
+    <version>0.310</version>
   <creator>Philippe</creator>
 </extensions>