优化无线/有线CAN,以及控制指令解析
This commit is contained in:
@@ -47,6 +47,45 @@ class NativeCanFeedbackTests(unittest.TestCase):
|
||||
self.assertTrue(feedback_matches("window_position:front_left:50", feedback))
|
||||
self.assertFalse(feedback_matches("window_position:front_left:80", feedback))
|
||||
|
||||
def test_individual_outlet_switch_matches_observed_4bb_signatures(self) -> None:
|
||||
data = bytearray(64)
|
||||
data[41:45] = bytes((0x26, 0x80, 0x80, 0x26))
|
||||
data[45:49] = bytes((0x2D, 0x85, 0x9E, 0xD3))
|
||||
feedback = CanFrame(0x4BB, bytes(data), channel=1, is_fd=True)
|
||||
switches = decode_feedback(feedback)["domain_state"]["outlet"][
|
||||
"switches"
|
||||
]
|
||||
|
||||
self.assertEqual(switches["driver_left"]["state"], "close")
|
||||
self.assertEqual(switches["driver_right"]["state"], "open")
|
||||
self.assertEqual(switches["passenger_right"]["state"], "close")
|
||||
self.assertTrue(
|
||||
feedback_matches("outlet_switch:driver_left:close", feedback)
|
||||
)
|
||||
self.assertFalse(
|
||||
feedback_matches("outlet_switch:driver_left:open", feedback)
|
||||
)
|
||||
|
||||
def test_individual_outlet_switch_supports_direct_37b_feedback(self) -> None:
|
||||
data = bytearray(64)
|
||||
data[0] = 0x50
|
||||
data[8] = 0b00001001 # driver-left open, driver-right close
|
||||
data[14] = 0b10010000 # passenger-left open, passenger-right close
|
||||
feedback = CanFrame(0x37B, bytes(data), channel=1, is_fd=True)
|
||||
|
||||
self.assertTrue(
|
||||
feedback_matches("outlet_switch:driver_left:open", feedback)
|
||||
)
|
||||
self.assertTrue(
|
||||
feedback_matches("outlet_switch:driver_right:close", feedback)
|
||||
)
|
||||
self.assertTrue(
|
||||
feedback_matches("outlet_switch:passenger_left:open", feedback)
|
||||
)
|
||||
self.assertTrue(
|
||||
feedback_matches("outlet_switch:passenger_right:close", feedback)
|
||||
)
|
||||
|
||||
def test_light_feedback_requires_target_value_not_only_frame_id(self) -> None:
|
||||
passive_feedback = self.frame(0x42E, "11140a03880200c6")
|
||||
self.assertEqual(
|
||||
|
||||
Reference in New Issue
Block a user