def test_reset_watchdog_both(self): ev_a = TestEvent() ev_b = TestEvent() self.system.eps.controller_a.on_reset_watchdog = ev_a.set self.system.eps.controller_b.on_reset_watchdog = ev_b.set self.system.obc.eps_reset_watchdog(ResetWatchdogOn.Both) self.assertTrue(ev_a.wait_for_change(1), "Watchdog should be reseted (controller A)") self.assertTrue(ev_b.wait_for_change(1), "Watchdog should be reseted (controller B)")
def test_reset_watchdog_b(self): ev = TestEvent() self.system.eps.controller_b.on_reset_watchdog = ev.set self.system.obc.eps_reset_watchdog(ResetWatchdogOn.B) self.assertTrue(ev.wait_for_change(1), "Watchdog should be reseted (controller A)")
def test_enable_lcl(self): ev = TestEvent() self.system.eps.TKmain.on_enable = ev.set self.system.obc.enable_lcl(0x01) self.assertTrue(ev.wait_for_change(1), "Should enable TKmain LCL (controller A)") ev = TestEvent() self.system.eps.TKred.on_enable = ev.set self.system.obc.enable_lcl(0x11) self.assertTrue(ev.wait_for_change(1), "Should enable TKred LCL (controller B)")
def test_enable_burn_switch(self): ev = TestEvent() self.system.eps.SAILmain.on_enable = ev.set self.system.obc.enable_burn_switch(True, 1) self.assertTrue(ev.wait_for_change(1), "Burn switch should be enabled (controller A)") ev = TestEvent() self.system.eps.SAILred.on_enable = ev.set self.system.obc.enable_burn_switch(False, 1) self.assertTrue(ev.wait_for_change(1), "Burn switch should be enabled (controller B)")
def test_disable_overheat_mode(self): ev = TestEvent() self.system.eps.controller_a.on_disable_overheat_submode = ev.set self.assertTrue(self.system.obc.disable_overheat_submode('A')) self.assertTrue(ev.wait_for_change(1), "Should disable overheat mode (controller A)") ev = TestEvent() self.system.eps.controller_b.on_disable_overheat_submode = ev.set self.assertTrue(self.system.obc.disable_overheat_submode('B')) self.assertTrue(ev.wait_for_change(1), "Should disable overheat mode (controller B)")
def test_should_trigger_power_cycle_after_reaching_error_limit(self): self.system.i2c.enable_bus_devices([self.system.comm.receiver.address], False) power_cycle_requested = TestEvent() self.system.eps.controller_a.on_power_cycle = power_cycle_requested.set limit = 128 increment = 5 errors = ceil(limit / increment) requested = power_cycle_requested.wait_for_change(errors * 1.5) self.assertTrue(requested, "Power cycle should be requested")
def test_should_trigger_power_cycle(self): self._start() power_cycle_requested = TestEvent() self.system.eps.controller_a.on_power_cycle = power_cycle_requested.set self.system.comm.put_frame(PowerCycleTelecommand(0x21)) ack = self.system.comm.get_frame(5, filter_type=PowerSuccessFrame) self.assertIsInstance(ack, PowerSuccessFrame) power_cycle_requested.wait_for_change(1) self.system.restart()