update logic

This commit is contained in:
dragonpilot
2019-08-30 14:13:52 +10:00
parent 80e24f2051
commit d45a88d5cd
+26 -11
View File
@@ -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