From 291b269c4b5eac528441d00c54aa63bbd18df5fb Mon Sep 17 00:00:00 2001 From: Millan Kumar Date: Sat, 22 Feb 2025 15:02:55 -0500 Subject: [PATCH] power is a fixture + cleaning old code --- scripts/node_specific/scripts/test_charger.py | 81 ++++++------------- 1 file changed, 26 insertions(+), 55 deletions(-) diff --git a/scripts/node_specific/scripts/test_charger.py b/scripts/node_specific/scripts/test_charger.py index 6246bae..b8aac7f 100644 --- a/scripts/node_specific/scripts/test_charger.py +++ b/scripts/node_specific/scripts/test_charger.py @@ -18,20 +18,19 @@ AMS_CTRL_OKAY = 1 AMS_CTRL_TRIP = 0 -def reset_ams(ams_stat): - ams_stat.state = AMS_STAT_OKAY - IMD_STAT_OKAY = 1 IMD_STAT_TRIP = 0 -def reset_imd(imd_stat): - imd_stat.state = IMD_STAT_OKAY - -power = None CYCLE_POWER_OFF_DELAY = 2.0 CYCLE_POWER_ON_DELAY = 3.0 -def cycle_power(): +def reset_imd(imd_stat): + imd_stat.state = IMD_STAT_OKAY + +def reset_ams(ams_stat): + ams_stat.state = AMS_STAT_OKAY + +def cycle_power(power): power.state = 1 time.sleep(CYCLE_POWER_OFF_DELAY) power.state = 0 @@ -57,26 +56,24 @@ def hil(): # hil_instance.init_can() - power = hil_instance.dout("RearTester", "RLY1") - yield hil_instance hil_instance.shutdown() + +@pytest.fixture(scope="session") +def power(hil): + power = hil.dout("RearTester", "RLY1") + return power # ---------------------------------------------------------------------------- # # ---------------------------------------------------------------------------- # -def test_imd(hil): - # Begin the test - # hil.start_test(test_imd.__name__) - - # Outputs +def test_imd(hil, power): + # HIL outputs (hil writes) imd_stat = hil.dout("Charger", "IMD_STATUS") + ams_stat = hil.dout("Charger", "BMS_STATUS") # To set SDC status to okay - # Outputs to set SDC status to okay - ams_stat = hil.dout("Charger", "BMS_STATUS") - - # Inputs + # HIL inputs (hil reads) imd_ctrl = hil.din("Main_Module", "SDC_FINAL") # assuming AMS closed # Set other SDC nodes to okay @@ -84,60 +81,43 @@ def test_imd(hil): # IMD Fault reset_imd(imd_stat) - cycle_power() - # hil.check(imd_ctrl.state == IMD_CTRL_OKAY, "Power On") + cycle_power(power) check.equal(imd_ctrl.state, IMD_CTRL_OKAY, "Power On") time.sleep(1) imd_stat.state = IMD_STAT_TRIP t = utils.measure_trip_time(imd_ctrl, R_IMD_MAX_TRIP_TIME_S, is_falling=True) - print(f"Target trip time: [{IMD_RC_MIN_TRIP_TIME_S}, {IMD_RC_MAX_TRIP_TIME_S}]") - # hil.check(IMD_RC_MIN_TRIP_TIME_S < t < IMD_RC_MAX_TRIP_TIME_S, "IMD Trip Time") - # hil.check(imd_ctrl.state == IMD_CTRL_TRIP, "IMD Trip") check.between(t, IMD_RC_MIN_TRIP_TIME_S, IMD_RC_MAX_TRIP_TIME_S, "IMD Trip Time") check.equal(imd_ctrl.state, IMD_CTRL_TRIP, "IMD Trip") imd_stat.state = IMD_STAT_OKAY time.sleep(IMD_RC_MAX_TRIP_TIME_S * 1.1) - # hil.check(imd_ctrl.state == IMD_CTRL_TRIP, "IMD Fault Stays Latched") check.equal(imd_ctrl.state, IMD_CTRL_TRIP, "IMD Fault Stays Latched") - # IMD Fault on Power On reset_imd(imd_stat) imd_stat.state = IMD_STAT_TRIP - cycle_power() + cycle_power(power) time.sleep(IMD_RC_MAX_TRIP_TIME_S) # hil.check(imd_ctrl.state == IMD_CTRL_TRIP, "IMD Fault Power On") check.equal(imd_ctrl.state, IMD_CTRL_TRIP, "IMD Fault Power On") - # IMD Floating reset_imd(imd_stat) imd_stat.hiZ() - cycle_power() + cycle_power(power) t = utils.measure_trip_time(imd_ctrl, R_IMD_MAX_TRIP_TIME_S, is_falling=True) - # hil.check(t < R_IMD_MAX_TRIP_TIME_S, "IMD Floating Trip Time") - # hil.check(imd_ctrl.state == IMD_CTRL_TRIP, "IMD Floating Trip") check.less(t, R_IMD_MAX_TRIP_TIME_S, "IMD Floating Trip Time") check.equal(imd_ctrl.state, IMD_CTRL_TRIP, "IMD Floating Trip") - - # hil.end_test() # ---------------------------------------------------------------------------- # # ---------------------------------------------------------------------------- # -def test_ams(hil): - # Begin the test - hil.start_test(test_ams.__name__) - - # Outputs +def test_ams(hil, power): + # HIL outputs (hil writes) ams_stat = hil.dout("Charger", "BMS_STATUS") + imd_stat = hil.dout("Charger", "IMD_STATUS") # To set SDC status to okay - - # Outputs to set SDC status to okay - imd_stat = hil.dout("Charger", "IMD_STATUS") - - # Inputs + # HIL inputs (hil reads) ams_ctrl = hil.din("Main_Module", "SDC_FINAL") # assuming AMS closed # Set other SDC nodes to okay @@ -145,15 +125,13 @@ def test_ams(hil): # AMS Fault reset_ams(ams_stat) - cycle_power() + cycle_power(power) # hil.check(ams_ctrl.state == AMS_CTRL_OKAY, "Power On") check.equal(ams_ctrl.state, AMS_CTRL_OKAY, "Power On") time.sleep(1) ams_stat.state = AMS_STAT_TRIP t = utils.measure_trip_time(ams_ctrl, AMS_MAX_TRIP_DELAY_S * 2, is_falling=True) - # hil.check(0 < t < AMS_MAX_TRIP_DELAY_S, "AMS Trip Time") - # hil.check(ams_ctrl.state == AMS_CTRL_TRIP, "AMS Trip") check.between(t, 0, AMS_MAX_TRIP_DELAY_S, "AMS Trip Time") check.equal(ams_ctrl.state, AMS_CTRL_TRIP, "AMS Trip") @@ -162,25 +140,18 @@ def test_ams(hil): # hil.check(ams_ctrl.state == AMS_CTRL_TRIP, "AMS Fault Stays Latched") check.equal(ams_ctrl.state, AMS_CTRL_TRIP, "AMS Fault Stays Latched") - # AMS Fault on Power On reset_ams(ams_stat) ams_stat.state = AMS_STAT_TRIP - cycle_power() + cycle_power(power) time.sleep(AMS_MAX_TRIP_DELAY_S) - # hil.check(ams_ctrl.state == AMS_CTRL_TRIP, "AMS Fault Power On") check.equal(ams_ctrl.state, AMS_CTRL_TRIP, "AMS Fault Power On") - # AMS Floating reset_ams(ams_stat) ams_stat.hiZ() - cycle_power() + cycle_power(power) t = utils.measure_trip_time(ams_ctrl, AMS_MAX_TRIP_DELAY_S * 2, is_falling=True) - # hil.check(0 <= t < AMS_MAX_TRIP_DELAY_S, "AMS Floating Trip Time") - # hil.check(ams_ctrl.state == AMS_CTRL_TRIP, "AMS Floating Trip") check.between(t, 0, AMS_MAX_TRIP_DELAY_S, "AMS Floating Trip Time", ge=True) check.equal(ams_ctrl.state, AMS_CTRL_TRIP, "AMS Floating Trip") - - # hil.end_test() # ---------------------------------------------------------------------------- #