55 lines
2.2 KiB
Python
55 lines
2.2 KiB
Python
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
DASHBOARD = ROOT / "firmware" / "esp32-s3-dashboard" / "esp32-s3-dashboard.ino"
|
|
SENSOR_NODE_RECEIVER = ROOT / "firmware" / "esp32-s3-dashboard" / "sensor_node_receiver.cpp"
|
|
|
|
|
|
def test_setup_done_button_event_is_handled():
|
|
source = DASHBOARD.read_text()
|
|
|
|
callback_start = source.index("static void setup_keyboard_event_cb")
|
|
callback_end = source.index("static void setup_textarea_event_cb", callback_start)
|
|
callback = source[callback_start:callback_end]
|
|
|
|
assert "LV_EVENT_CLICKED" in callback
|
|
assert "lv_obj_add_flag(setup_keyboard, LV_OBJ_FLAG_HIDDEN);" in callback
|
|
assert "lv_obj_add_event_cb(done_button, setup_keyboard_event_cb, LV_EVENT_CLICKED" in source
|
|
|
|
|
|
def test_dashboard_can_is_passive_and_logs_changed_frames():
|
|
source = DASHBOARD.read_text()
|
|
|
|
assert "TWAI_MODE_LISTEN_ONLY" in source
|
|
assert "twai_transmit(" not in source
|
|
assert "log_changed_can_frame(message);" in source
|
|
assert 'Serial.print("CAN,");' in source
|
|
assert 'can_serial_command.startsWith("TEMP,")' in source
|
|
assert 'can_serial_command.startsWith("MARK,")' in source
|
|
assert 'Serial.print("MARK,");' in source
|
|
|
|
|
|
def test_dashboard_receives_sensor_node_rs485_for_diagnostics():
|
|
dashboard = DASHBOARD.read_text()
|
|
receiver = SENSOR_NODE_RECEIVER.read_text()
|
|
|
|
assert "initSensorNodeRs485();" in dashboard
|
|
assert "processSensorNodeRs485();" in dashboard
|
|
assert "Sensor Node RS485" in dashboard
|
|
assert "sensorNodeRs485Connected()" in dashboard
|
|
assert "SENSOR_NODE_RS485_RX_PIN = 43" in receiver
|
|
assert "SENSOR_NODE_RS485_TX_PIN = 44" in receiver
|
|
assert "SENSOR_NODE_RS485_BAUD = 115200" in receiver
|
|
assert 'strcmp(type, "sensor_status")' in receiver
|
|
assert 'doc["frame_sequence"]' in receiver
|
|
assert "framesDropped" in receiver
|
|
assert "bytesReceived++" in receiver
|
|
assert r'text += "\n Raw bytes/age: "' in dashboard
|
|
assert 'imu["yaw_degrees"]' in receiver
|
|
assert 'gps["altitude_meters"]' in receiver
|
|
assert 'JsonObject utc = gps["utc"]' in receiver
|
|
assert r'text += "\n Yaw: "' in dashboard
|
|
assert r'text += "\n Altitude: "' in dashboard
|
|
assert r'text += "\n UTC: "' in dashboard
|