2026-09-09 host verification COMMAND: C:\bachelorthesis_micrOBU\.venv\Scripts\python.exe -W ignore::DeprecationWarning -m unittest discover -s C:\bachelorthesis_micrOBU\implementation\v2x2map-0.3.0\bridge -p test_vam.py -v test_all_truncations_and_trailing_data (test_vam.VamTests.test_all_truncations_and_trailing_data) ... ok test_independent_asn1c_vectors (test_vam.VamTests.test_independent_asn1c_vectors) ... ok test_malformed_never_falls_back_to_gn_position (test_vam.VamTests.test_malformed_never_falls_back_to_gn_position) ... ok test_optional_containers_and_json (test_vam.VamTests.test_optional_containers_and_json) ... ok test_secured_header_is_not_guessed (test_vam.VamTests.test_secured_header_is_not_guessed) ... ok test_transport_and_map_fields (test_vam.VamTests.test_transport_and_map_fields) ... ok test_unavailable_coordinates_and_real_zero (test_vam.VamTests.test_unavailable_coordinates_and_real_zero) ... ok ---------------------------------------------------------------------- Ran 7 tests in 0.709s OK COMMAND: node C:\bachelorthesis_micrOBU\implementation\v2x2map-0.3.0\bridge\tests\dashboard-vam.cjs PASS: VAM map updates, popups, unavailable fields, escaping, filters and log COMMAND: C:\bachelorthesis_micrOBU\.venv\Scripts\python.exe C:\bachelorthesis_micrOBU\implementation\v2x2map-0.3.0\bridge\its_g5_bridge.py --help usage: its_g5_bridge.py [-h] [--port PORT] [--list-ports] [--baud BAUD] [--node-id NODE_ID] [--broker URL] [--no-mqtt] [--reset-on-start] [--reconnect-delay RECONNECT_DELAY] [--exit-after EXIT_AFTER] [--dashboard-port DASHBOARD_PORT] [--open-browser] [--no-browser] [--pcap-out PCAP_OUT] [--verbose] ITS-G5 USB->MQTT bridge (V2X2MAP) Config: C:\bachelorthesis_micrOBU\implementation\v2x2map-0.3.0\bridge\config\v2x2map.cfg options: -h, --help show this help message and exit --port PORT serial port (e.g. COM7); omit to auto-detect or use config --list-ports print available serial ports with VID/PID and exit --baud BAUD --node-id NODE_ID device ID, e.g. V2X2MAP:d2cf13ed6293 (read from config if omitted) --broker URL MQTT broker URL (mqtts://host:port or mqtt://host:port). Can be specified multiple times. Default from config or mqtts://cits1.opentrafficmap.org:8883 --no-mqtt parse only, don't publish (for testing) --reset-on-start pulse RTS to reboot the device on first connect --reconnect-delay RECONNECT_DELAY seconds to wait before reconnecting after USB disconnect (0 = exit) --exit-after EXIT_AFTER exit after N seconds (0 = run forever) --dashboard-port DASHBOARD_PORT local HTTP port for the live dashboard (0 to disable) --open-browser open the dashboard URL in the default browser on start (default: on when running as .exe) --no-browser suppress automatic browser opening --pcap-out PCAP_OUT write all captured frames to a .pcap file (DLT_IEEE802_11) --verbose, -v PASS: Python/spec syntax, bridge CLI, Debian archive includes decoder, schemas, requirements and notices. Debian install and Windows EXE build not run. 2026-09-14 host verification (signed VAMs) Change: bridge/secured.py unwraps TS 103 097 signed GeoNetworking packets (no signature verification); its_g5_bridge.decode_itsg5_full continues on the unsecured payload and reports security = {psid, hash, signer, signer_id, generation_time_ms, verified: false}. COMMAND: C:\bachelorthesis_micrOBU\.venv\Scripts\python.exe -W ignore::DeprecationWarning -m unittest -v test_vam Ran 8 tests ... OK (new: test_signed_vam_is_unwrapped_but_not_verified, vector = frame 1 of recordings/its5_20260914_202525.pcap, signer HashedId8 ba1862d0e89fe341 = the micrOBU's ticket) COMMAND: node tests/dashboard-vam.cjs PASS Live: bridge on COM20 (V2X2MAP receiver firmware) with the micrOBU transmitting signed VAMs on COM11: /events carries msg_type VAM, vam_status decoded, security.signer certificate/digest.