mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-08-05 16:25:41 +08:00
update logic
This commit is contained in:
+26
-11
@@ -145,6 +145,9 @@ def thermald_thread():
|
|||||||
health_sock.RCVTIMEO = int(1000 * 2 * DT_TRML) # 2x the expected health frequency
|
health_sock.RCVTIMEO = int(1000 * 2 * DT_TRML) # 2x the expected health frequency
|
||||||
current_filter = FirstOrderFilter(0., CURRENT_TAU, DT_TRML)
|
current_filter = FirstOrderFilter(0., CURRENT_TAU, DT_TRML)
|
||||||
health_prev = None
|
health_prev = None
|
||||||
|
last_charging_disabled = False
|
||||||
|
last_charging_ctrl = False
|
||||||
|
charging_ctrl = False
|
||||||
|
|
||||||
# Make sure charging is enabled
|
# Make sure charging is enabled
|
||||||
charging_disabled = False
|
charging_disabled = False
|
||||||
@@ -257,10 +260,11 @@ def thermald_thread():
|
|||||||
os.system('LD_LIBRARY_PATH="" svc power shutdown')
|
os.system('LD_LIBRARY_PATH="" svc power shutdown')
|
||||||
|
|
||||||
#charging_disabled = check_car_battery_voltage(should_start, health, charging_disabled)
|
#charging_disabled = check_car_battery_voltage(should_start, health, charging_disabled)
|
||||||
print("before logic: %s" % charging_disabled)
|
if count % 3 == 0:
|
||||||
if count % 3 == 0 and params.get('DragonChargingCtrl') == "1":
|
charging_ctrl = params.get('DragonChargingCtrl') == "1"
|
||||||
charging_disabled = charging_ctrl(msg.thermal.batteryPercent, charging_disabled)
|
charging_disabled = charging_ctrl(msg.thermal.batteryPercent, charging_disabled, last_charging_disabled, charging_ctrl, last_charging_ctrl)
|
||||||
print("in logic: %s" % charging_disabled)
|
last_charging_disabled = charging_disabled
|
||||||
|
last_charging_ctrl = charging_ctrl
|
||||||
|
|
||||||
msg.thermal.chargingDisabled = charging_disabled
|
msg.thermal.chargingDisabled = charging_disabled
|
||||||
msg.thermal.chargingError = current_filter.x > 0. and msg.thermal.batteryPercent < 90 # if current is positive, then battery is being discharged
|
msg.thermal.chargingError = current_filter.x > 0. and msg.thermal.batteryPercent < 90 # if current is positive, then battery is being discharged
|
||||||
@@ -281,13 +285,24 @@ def thermald_thread():
|
|||||||
|
|
||||||
count += 1
|
count += 1
|
||||||
|
|
||||||
def charging_ctrl(battery_percent, charging_disabled):
|
def charging_ctrl(battery_percent, charging_disabled, last_charging_disabled, charging_ctrl, last_charging_ctrl):
|
||||||
if not charging_disabled and battery_percent >= 80:
|
if charging_ctrl:
|
||||||
os.system('echo "0" > /sys/class/power_supply/battery/charging_enabled')
|
if not charging_disabled and battery_percent >= 80:
|
||||||
charging_disabled = True
|
os.system('echo "0" > /sys/class/power_supply/battery/charging_enabled')
|
||||||
elif charging_disabled and battery_percent <= 60:
|
charging_disabled = True
|
||||||
os.system('echo "1" > /sys/class/power_supply/battery/charging_enabled')
|
elif charging_disabled and battery_percent <= 60:
|
||||||
charging_disabled = False
|
os.system('echo "1" > /sys/class/power_supply/battery/charging_enabled')
|
||||||
|
charging_disabled = False
|
||||||
|
else:
|
||||||
|
if not last_charging_ctrl == charging_ctrl:
|
||||||
|
os.system('echo "1" > /sys/class/power_supply/battery/charging_enabled')
|
||||||
|
charging_disabled = False
|
||||||
|
elif not last_charging_disabled == charging_disabled:
|
||||||
|
if charging_disabled:
|
||||||
|
os.system('echo "0" > /sys/class/power_supply/battery/charging_enabled')
|
||||||
|
else:
|
||||||
|
os.system('echo "1" > /sys/class/power_supply/battery/charging_enabled')
|
||||||
|
|
||||||
return charging_disabled
|
return charging_disabled
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user