from protocan.devboard_v1 import BoardFrame, command_setup, command_transmit, parse_frame_line def test_parse_can_and_rs485_lines(): can = parse_frame_line("[ 12.345] EXT 0x073700A2 DLC=2 DATA=34 12 |4.|") rs = parse_frame_line("[ 12.346] RS485 STD 0x123 RTR DLC=4") assert can and can.can_id == 0x073700A2 and can.data == b"\x34\x12" assert rs and rs.source == "RS485" and rs.rtr and rs.data == b"" def test_commands_are_firmware_compatible_and_lf_terminated(): frame = BoardFrame(0.0, True, 0x073700A2, b"\x34\x12") assert command_transmit(frame) == b"T,E,73700A2,2,3412\n" assert command_setup() == (b"S500\n", b"M0\n", b"B512000\n", b"Q3\n")