From 1e7b2e7f9654f5c6a6fb5d2493a99372c4e0d9b2 Mon Sep 17 00:00:00 2001 From: shenlefengnai-rgb Date: Sat, 3 Oct 2026 21:52:14 +0800 Subject: [PATCH] feat: add VCU status feedback and map DEBUG safety inputs --- .gitattributes | 3 + AMI.HMI | Bin 12674727 -> 12732432 bytes AMI.dbc | 39 +- AMI_CAN2_250k.dbc | 39 +- README.md | 18 +- docs/AMI_CAN_DBC说明.md | 76 +- docs/AMI自定义显示CAN测试报告.md | 2 +- docs/DEBUG十五路CAN映射测试报告.md | 53 + docs/DEBUG十五路CAN测试报告.md | 46 + docs/DEBUG页面修正测试报告.md | 42 + docs/SDC_BMS协议.md | 28 +- docs/VCU状态反馈测试报告.md | 71 + .../debug-can-retest/current_hmi.png | Bin 0 -> 90953 bytes .../debug-can-retest/gpio-can-results.json | 1399 ++++++ .../debug-can-retest/gpio_PD0_high_ram.log | 32 + .../debug-can-retest/gpio_PD0_low_ram.log | 32 + .../debug-can-retest/gpio_PD10_high_ram.log | 32 + .../debug-can-retest/gpio_PD10_low_ram.log | 32 + .../debug-can-retest/gpio_PD11_high_ram.log | 32 + .../debug-can-retest/gpio_PD11_low_ram.log | 32 + .../debug-can-retest/gpio_PD12_high_ram.log | 32 + .../debug-can-retest/gpio_PD12_low_ram.log | 32 + .../debug-can-retest/gpio_PD13_high_ram.log | 32 + .../debug-can-retest/gpio_PD13_low_ram.log | 32 + .../debug-can-retest/gpio_PD14_high_ram.log | 32 + .../debug-can-retest/gpio_PD14_low_ram.log | 32 + .../debug-can-retest/gpio_PD1_high_ram.log | 32 + .../debug-can-retest/gpio_PD1_low_ram.log | 32 + .../debug-can-retest/gpio_PD2_high_ram.log | 32 + .../debug-can-retest/gpio_PD2_low_ram.log | 32 + .../debug-can-retest/gpio_PD3_high_ram.log | 32 + .../debug-can-retest/gpio_PD3_low_ram.log | 32 + .../debug-can-retest/gpio_PD4_high_ram.log | 32 + .../debug-can-retest/gpio_PD4_low_ram.log | 32 + .../debug-can-retest/gpio_PD5_high_ram.log | 32 + .../debug-can-retest/gpio_PD5_low_ram.log | 32 + .../debug-can-retest/gpio_PD6_high_ram.log | 32 + .../debug-can-retest/gpio_PD6_low_ram.log | 32 + .../debug-can-retest/gpio_PD7_high_ram.log | 32 + .../debug-can-retest/gpio_PD7_low_ram.log | 32 + .../debug-can-retest/gpio_PD8_high_ram.log | 32 + .../debug-can-retest/gpio_PD8_low_ram.log | 32 + .../debug-can-retest/gpio_PD9_high_ram.log | 32 + .../debug-can-retest/gpio_PD9_low_ram.log | 32 + .../debug-can-retest/gpio_all_high_ram.log | 32 + .../debug-can-retest/gpio_extended_ram.log | 32 + .../debug-can-retest/gpio_final_zero_ram.log | 32 + .../debug-can-retest/gpio_truncated_ram.log | 32 + .../gpio_unused_bit15_ram.log | 32 + .../debug-can-retest/gpio_zero_ram.log | 32 + .../debug-can-retest/link-probe.json | 20 + .../mcu-input-ui-counters.json | 18 + .../debug-can-retest/mcu_PD0_high.png | Bin 0 -> 32490 bytes .../debug-can-retest/mcu_PD14_high.png | Bin 0 -> 32490 bytes .../debug-can-retest/mcu_all_high.png | Bin 0 -> 32490 bytes .../debug-can-retest/mcu_final_zero.png | Bin 0 -> 32490 bytes .../debug-can-retest/probe_250000_ram.log | 32 + .../debug-can-retest/probe_500000_ram.log | 32 + .../2026-10-03/debug-can-retest/probe_link.py | 26 + .../debug-can-retest/publish_results.py | 31 + .../debug-can-retest/test_gpio_can.py | 90 + .../debug-gpio-mapped/PD0_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD0_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD10_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD10_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD11_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD11_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD12_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD12_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD13_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD13_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD14_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD14_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD1_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD1_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD2_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD2_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD3_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD3_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD4_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD4_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD5_high_fault.png | Bin 0 -> 32873 bytes .../debug-gpio-mapped/PD5_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD5_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD6_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD6_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD7_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD7_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD8_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD8_low_normal_ram.log | 32 + .../debug-gpio-mapped/PD9_high_fault_ram.log | 32 + .../debug-gpio-mapped/PD9_low_normal_ram.log | 32 + .../debug-gpio-mapped/all_fault.png | Bin 0 -> 33089 bytes .../debug-gpio-mapped/all_fault_ram.log | 32 + .../debug-gpio-mapped/all_normal.png | Bin 0 -> 32026 bytes .../debug-gpio-mapped/all_normal_ram.log | 32 + .../debug-gpio-mapped/can1-nbtp.log | 27 + .../debug-gpio-mapped/can2-nbtp.log | 27 + .../debug-gpio-mapped/final_timeout.png | Bin 0 -> 32490 bytes .../debug-gpio-mapped/final_timeout_ram.log | 32 + .../debug-gpio-mapped/flash-readback.log | 29 + .../debug-gpio-mapped/flash-verified.json | 6 + .../2026-10-03/debug-gpio-mapped/flash.log | 56 + .../fresh_sample_recovery.png | Bin 0 -> 32026 bytes .../fresh_sample_recovery_ram.log | 32 + .../heartbeat_alone_after_loss_ram.log | 32 + .../heartbeat_before_sample_ram.log | 32 + .../heartbeat_holds_sample_ram.log | 32 + .../mapping-connection-recovery-results.json | 3700 ++++++++++++++++ .../mapping-mcu-only-results.json | 3700 ++++++++++++++++ .../debug-gpio-mapped/mapping-results.json | 3704 ++++++++++++++++ .../debug-gpio-mapped/source_timeout.png | Bin 0 -> 32490 bytes .../debug-gpio-mapped/source_timeout_ram.log | 32 + .../2026-10-03/debug-gpio-mapped/symbols.json | 232 + .../debug-gpio-mapped/test_mapping.py | 116 + .../debug-gpio-mapped/truncated_ram.log | 32 + .../debug-gpio-mapped/unused_bit15_ram.log | 32 + .../debug-gpio-mapped/user-input-order.png | Bin 0 -> 56965 bytes .../debug-gpio-mapped/wrong_extended_ram.log | 32 + .../debug-layout/PD0_high_fault_ram.log | 32 + .../debug-layout/PD0_low_normal_ram.log | 32 + .../debug-layout/PD10_high_fault_ram.log | 32 + .../debug-layout/PD10_low_normal_ram.log | 32 + .../debug-layout/PD11_high_fault_ram.log | 32 + .../debug-layout/PD11_low_normal_ram.log | 32 + .../debug-layout/PD12_high_fault_ram.log | 32 + .../debug-layout/PD12_low_normal_ram.log | 32 + .../debug-layout/PD13_high_fault_ram.log | 32 + .../debug-layout/PD13_low_normal_ram.log | 32 + .../debug-layout/PD14_high_fault_ram.log | 32 + .../debug-layout/PD14_low_normal_ram.log | 32 + .../debug-layout/PD1_high_fault_ram.log | 32 + .../debug-layout/PD1_low_normal_ram.log | 32 + .../debug-layout/PD2_high_fault_ram.log | 32 + .../debug-layout/PD2_low_normal_ram.log | 32 + .../debug-layout/PD3_high_fault_ram.log | 32 + .../debug-layout/PD3_low_normal_ram.log | 32 + .../debug-layout/PD4_high_fault_ram.log | 32 + .../debug-layout/PD4_low_normal_ram.log | 32 + .../debug-layout/PD5_high_fault_ram.log | 32 + .../debug-layout/PD5_low_normal_ram.log | 32 + .../debug-layout/PD6_high_fault_ram.log | 32 + .../debug-layout/PD6_low_normal_ram.log | 32 + .../debug-layout/PD7_high_fault_ram.log | 32 + .../debug-layout/PD7_low_normal_ram.log | 32 + .../debug-layout/PD8_high_fault_ram.log | 32 + .../debug-layout/PD8_low_normal_ram.log | 32 + .../debug-layout/PD9_high_fault_ram.log | 32 + .../debug-layout/PD9_low_normal_ram.log | 32 + .../2026-10-03/debug-layout/all_fault_ram.log | 32 + .../debug-layout/all_normal_ram.log | 32 + .../2026-10-03/debug-layout/compile.log | 9 + .../debug-layout/dbc-verification.json | 17 + .../debug-layout/debug-postinit-readback.txt | 316 ++ .../debug-layout/final_timeout_ram.log | 32 + .../fresh_sample_recovery_ram.log | 32 + .../heartbeat_alone_after_loss_ram.log | 32 + .../heartbeat_before_sample_ram.log | 32 + .../heartbeat_holds_sample_ram.log | 32 + .../2026-10-03/debug-layout/inspect_uart.py | 10 + .../debug-layout/mapping-results.json | 3692 ++++++++++++++++ .../debug-layout/saved-postinit-verified.txt | 316 ++ .../debug-layout/saved-project.json | 7 + .../2026-10-03/debug-layout/saved-t6.png | Bin 0 -> 15349 bytes .../2026-10-03/debug-layout/sim_RES_0.png | Bin 0 -> 29121 bytes .../2026-10-03/debug-layout/sim_RES_1.png | Bin 0 -> 29469 bytes .../2026-10-03/debug-layout/sim_RES_2.png | Bin 0 -> 29671 bytes .../2026-10-03/debug-layout/sim_all_fault.png | Bin 0 -> 28946 bytes .../debug-layout/sim_all_normal.png | Bin 0 -> 27845 bytes .../debug-layout/sim_control_box_0.png | Bin 0 -> 29121 bytes .../debug-layout/sim_control_box_1.png | Bin 0 -> 29469 bytes .../debug-layout/sim_control_box_2.png | Bin 0 -> 29672 bytes .../debug-layout/sim_final_unknown.png | Bin 0 -> 29121 bytes .../debug-layout/sim_initial_unknown.png | Bin 0 -> 29121 bytes .../sim_left_motor_interlock_0.png | Bin 0 -> 29121 bytes .../sim_left_motor_interlock_1.png | Bin 0 -> 29500 bytes .../sim_left_motor_interlock_2.png | Bin 0 -> 29703 bytes .../debug-layout/simulator-results.json | 304 ++ .../debug-layout/source_timeout_ram.log | 32 + .../2026-10-03/debug-layout/symbols.json | 232 + .../2026-10-03/debug-layout/test_mapping.py | 116 + .../debug-layout/test_new_simulator.py | 59 + .../2026-10-03/debug-layout/truncated_ram.log | 32 + .../2026-10-03/debug-layout/uart-direct.bin | 0 .../2026-10-03/debug-layout/uart-direct.json | 4 + .../debug-layout/uart-display_dirty.log | 27 + .../debug-layout/uart-hdma_usart2_tx.log | 30 + .../2026-10-03/debug-layout/uart-huart2.log | 32 + .../debug-layout/uart-screen_tx_busy.log | 27 + .../debug-layout/uart-screen_tx_dma.log | 26 + .../2026-10-03/debug-layout/uart-uwTick.log | 27 + .../debug-layout/unused_bit15_ram.log | 32 + .../debug-layout/wrong_extended_ram.log | 32 + .../vcu-status/boot_unknown-ram.log | 79 + .../vcu-status/can-before-EBS-request.png | Bin 0 -> 38236 bytes .../vcu-status/can-request-failure.png | Bin 0 -> 352132 bytes .../2026-10-03/vcu-status/compile.log | 9 + .../vcu-status/counter_wrap-ram.log | 79 + .../vcu-status/dbc-verification.json | 17 + .../vcu-status/drivetrain_regression-ram.log | 79 + .../vcu-status/ebs_range_baseline-ram.log | 79 + .../ebs_range_rejected_and_expired-ram.log | 79 + .../ebs_range_stopped_baseline-ram.log | 79 + .../vcu-status/extended_baseline-ram.log | 79 + .../extended_rejected_and_expired-ram.log | 79 + .../extended_stopped_baseline-ram.log | 79 + .../vcu-status/feedback_recovery-ram.log | 79 + .../vcu-status/final_timeout-ram.log | 79 + .../vcu-status/flag_reserved_baseline-ram.log | 79 + ...flag_reserved_rejected_and_expired-ram.log | 79 + .../flag_reserved_stopped_baseline-ram.log | 79 + .../2026-10-03/vcu-status/flash-readback.log | 29 + .../2026-10-03/vcu-status/flash-verified.json | 6 + docs/evidence/2026-10-03/vcu-status/flash.log | 56 + .../vcu-status/gpio_regression-ram.log | 79 + .../vcu-status/integration-unverified.json | 10 + .../vcu-status/lock_range_baseline-ram.log | 79 + .../lock_range_rejected_and_expired-ram.log | 79 + .../lock_range_stopped_baseline-ram.log | 79 + .../2026-10-03/vcu-status/mcu-results.json | 3866 +++++++++++++++++ .../vcu-status/remote_baseline-ram.log | 79 + .../remote_rejected_and_expired-ram.log | 79 + .../remote_stopped_baseline-ram.log | 79 + .../vcu-status/request_baseline-ram.log | 79 + .../vcu-status/reserved_5_baseline-ram.log | 79 + .../reserved_5_rejected_and_expired-ram.log | 79 + .../reserved_5_stopped_baseline-ram.log | 79 + .../vcu-status/reserved_6_baseline-ram.log | 79 + .../reserved_6_rejected_and_expired-ram.log | 79 + .../reserved_6_stopped_baseline-ram.log | 79 + .../vcu-status/saved-artifacts.json | 10 + .../vcu-status/short_dlc_baseline-ram.log | 79 + .../short_dlc_rejected_and_expired-ram.log | 79 + .../short_dlc_stopped_baseline-ram.log | 79 + ...-after-confirm-request-still-VCU-task2.png | Bin 0 -> 37844 bytes .../vcu-status/sim-boot-unknown.png | Bin 0 -> 37698 bytes .../vcu-status/sim-cancel-still-VCU-task6.png | Bin 0 -> 38088 bytes .../vcu-status/sim-confirm-EBS-request.png | Bin 0 -> 11910 bytes .../vcu-status/sim-current-task-query.png | Bin 0 -> 338747 bytes .../vcu-status/sim-feedback-across-page.png | Bin 0 -> 38088 bytes .../vcu-status/sim-feedback-invalid.png | Bin 0 -> 37698 bytes .../vcu-status/sim-final-unknown.png | Bin 0 -> 37698 bytes .../vcu-status/sim-request-baseline.png | Bin 0 -> 37844 bytes .../vcu-status/sim-task-0-green.png | Bin 0 -> 36649 bytes .../vcu-status/sim-task-1-green.png | Bin 0 -> 37741 bytes .../vcu-status/sim-task-2-green.png | Bin 0 -> 37844 bytes .../vcu-status/sim-task-3-green.png | Bin 0 -> 37913 bytes .../vcu-status/sim-task-4-green.png | Bin 0 -> 37886 bytes .../vcu-status/sim-task-5-green.png | Bin 0 -> 37696 bytes .../vcu-status/sim-task-6-green.png | Bin 0 -> 37719 bytes .../vcu-status/sim-unlocked-ebs-fault.png | Bin 0 -> 38210 bytes .../vcu-status/simulator-results.json | 410 ++ .../2026-10-03/vcu-status/symbols.json | 236 + .../2026-10-03/vcu-status/task_0-ram.log | 79 + .../2026-10-03/vcu-status/task_1-ram.log | 79 + .../2026-10-03/vcu-status/task_2-ram.log | 79 + .../2026-10-03/vcu-status/task_3-ram.log | 79 + .../2026-10-03/vcu-status/task_4-ram.log | 79 + .../2026-10-03/vcu-status/task_5-ram.log | 79 + .../2026-10-03/vcu-status/task_6-ram.log | 79 + .../vcu-status/task_range_baseline-ram.log | 79 + .../vcu-status/task_range_rejected-ram.log | 79 + .../task_range_rejected_and_expired-ram.log | 79 + .../task_range_stopped_baseline-ram.log | 79 + .../task_request_does_not_set_task-ram.log | 79 + .../2026-10-03/vcu-status/test_can_display.py | 89 + .../2026-10-03/vcu-status/test_mcu.py | 111 + .../2026-10-03/vcu-status/test_simulator.py | 45 + .../timeout_despite_other_can-ram.log | 79 + .../2026-10-03/vcu-status/uart-capture.bin | 1 + .../vcu-status/uart-display_dirty.log | 27 + .../vcu-status/uart-hdma_usart2_tx.log | 30 + .../2026-10-03/vcu-status/uart-huart2.log | 32 + .../vcu-status/uart-screen_tx_busy.log | 27 + .../vcu-status/uart-screen_tx_dma.log | 26 + .../2026-10-03/vcu-status/uart-uwTick.log | 27 + .../vcu-status/valid_mask_0-ram.log | 79 + .../vcu-status/valid_mask_1-ram.log | 79 + .../vcu-status/valid_mask_2-ram.log | 79 + .../vcu-status/valid_mask_3-ram.log | 79 + .../vcu-status/valid_mask_4-ram.log | 79 + .../vcu-status/valid_mask_5-ram.log | 79 + .../vcu-status/valid_mask_6-ram.log | 79 + .../vcu-status/valid_mask_7-ram.log | 79 + .../vcu-status/version_baseline-ram.log | 79 + .../version_rejected_and_expired-ram.log | 79 + .../version_stopped_baseline-ram.log | 79 + docs/通讯交接文档.md | 28 +- docs/验证说明.txt | 8 +- firmware/Core/Inc/ami_protocol.h | 2 + firmware/Core/Src/ami_app.c | 106 +- firmware/README.md | 4 +- output/firmware/AMI_Controller.bin | Bin 15880 -> 16428 bytes .../AMI_Controller_v2.2_500k_250k.bin | Bin 0 -> 15880 bytes .../AMI_Controller_v2.3_500k_250k.bin | Bin 0 -> 15988 bytes output/pdf/AMI_CAN报文说明.pdf | Bin 110627 -> 123105 bytes scripts/export_can_pdf.py | 4 +- scripts/export_dbc_docs.py | 61 +- scripts/hmi/Program.s | 11 + scripts/hmi/confirm-send.txt | 29 + scripts/hmi/dash-postinit.txt | 107 + scripts/hmi/dash-status-render.txt | 104 + scripts/hmi/debug-postinit.txt | 316 ++ scripts/send_vcu_status_can.py | 65 + scripts/verify_dbc.py | 31 +- 305 files changed, 32906 insertions(+), 68 deletions(-) create mode 100644 docs/DEBUG十五路CAN映射测试报告.md create mode 100644 docs/DEBUG十五路CAN测试报告.md create mode 100644 docs/DEBUG页面修正测试报告.md create mode 100644 docs/VCU状态反馈测试报告.md create mode 100644 docs/evidence/2026-10-03/debug-can-retest/current_hmi.png create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio-can-results.json create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD0_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD0_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD10_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD10_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD11_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD11_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD12_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD12_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD13_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD13_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD14_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD14_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD1_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD1_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD2_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD2_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD3_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD3_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD4_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD4_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD5_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD5_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD6_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD6_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD7_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD7_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD8_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD8_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD9_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_PD9_low_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_all_high_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_extended_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_final_zero_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_truncated_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_unused_bit15_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/gpio_zero_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/link-probe.json create mode 100644 docs/evidence/2026-10-03/debug-can-retest/mcu-input-ui-counters.json create mode 100644 docs/evidence/2026-10-03/debug-can-retest/mcu_PD0_high.png create mode 100644 docs/evidence/2026-10-03/debug-can-retest/mcu_PD14_high.png create mode 100644 docs/evidence/2026-10-03/debug-can-retest/mcu_all_high.png create mode 100644 docs/evidence/2026-10-03/debug-can-retest/mcu_final_zero.png create mode 100644 docs/evidence/2026-10-03/debug-can-retest/probe_250000_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/probe_500000_ram.log create mode 100644 docs/evidence/2026-10-03/debug-can-retest/probe_link.py create mode 100644 docs/evidence/2026-10-03/debug-can-retest/publish_results.py create mode 100644 docs/evidence/2026-10-03/debug-can-retest/test_gpio_can.py create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD0_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD0_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD10_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD10_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD11_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD11_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD12_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD12_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD13_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD13_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD14_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD14_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD1_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD1_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD2_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD2_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD3_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD3_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD4_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD4_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD5_high_fault.png create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD5_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD5_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD6_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD6_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD7_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD7_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD8_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD8_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD9_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/PD9_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/all_fault.png create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/all_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/all_normal.png create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/all_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/can1-nbtp.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/can2-nbtp.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/final_timeout.png create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/final_timeout_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/flash-readback.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/flash-verified.json create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/flash.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/fresh_sample_recovery.png create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/fresh_sample_recovery_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_alone_after_loss_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_before_sample_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_holds_sample_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/mapping-connection-recovery-results.json create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/mapping-mcu-only-results.json create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/mapping-results.json create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/source_timeout.png create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/source_timeout_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/symbols.json create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/test_mapping.py create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/truncated_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/unused_bit15_ram.log create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/user-input-order.png create mode 100644 docs/evidence/2026-10-03/debug-gpio-mapped/wrong_extended_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD0_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD0_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD10_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD10_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD11_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD11_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD12_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD12_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD13_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD13_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD14_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD14_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD1_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD1_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD2_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD2_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD3_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD3_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD4_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD4_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD5_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD5_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD6_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD6_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD7_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD7_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD8_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD8_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD9_high_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/PD9_low_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/all_fault_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/all_normal_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/compile.log create mode 100644 docs/evidence/2026-10-03/debug-layout/dbc-verification.json create mode 100644 docs/evidence/2026-10-03/debug-layout/debug-postinit-readback.txt create mode 100644 docs/evidence/2026-10-03/debug-layout/final_timeout_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/fresh_sample_recovery_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/heartbeat_alone_after_loss_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/heartbeat_before_sample_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/heartbeat_holds_sample_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/inspect_uart.py create mode 100644 docs/evidence/2026-10-03/debug-layout/mapping-results.json create mode 100644 docs/evidence/2026-10-03/debug-layout/saved-postinit-verified.txt create mode 100644 docs/evidence/2026-10-03/debug-layout/saved-project.json create mode 100644 docs/evidence/2026-10-03/debug-layout/saved-t6.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_RES_0.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_RES_1.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_RES_2.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_all_fault.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_all_normal.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_control_box_0.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_control_box_1.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_control_box_2.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_final_unknown.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_initial_unknown.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_left_motor_interlock_0.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_left_motor_interlock_1.png create mode 100644 docs/evidence/2026-10-03/debug-layout/sim_left_motor_interlock_2.png create mode 100644 docs/evidence/2026-10-03/debug-layout/simulator-results.json create mode 100644 docs/evidence/2026-10-03/debug-layout/source_timeout_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/symbols.json create mode 100644 docs/evidence/2026-10-03/debug-layout/test_mapping.py create mode 100644 docs/evidence/2026-10-03/debug-layout/test_new_simulator.py create mode 100644 docs/evidence/2026-10-03/debug-layout/truncated_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/uart-direct.bin create mode 100644 docs/evidence/2026-10-03/debug-layout/uart-direct.json create mode 100644 docs/evidence/2026-10-03/debug-layout/uart-display_dirty.log create mode 100644 docs/evidence/2026-10-03/debug-layout/uart-hdma_usart2_tx.log create mode 100644 docs/evidence/2026-10-03/debug-layout/uart-huart2.log create mode 100644 docs/evidence/2026-10-03/debug-layout/uart-screen_tx_busy.log create mode 100644 docs/evidence/2026-10-03/debug-layout/uart-screen_tx_dma.log create mode 100644 docs/evidence/2026-10-03/debug-layout/uart-uwTick.log create mode 100644 docs/evidence/2026-10-03/debug-layout/unused_bit15_ram.log create mode 100644 docs/evidence/2026-10-03/debug-layout/wrong_extended_ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/boot_unknown-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/can-before-EBS-request.png create mode 100644 docs/evidence/2026-10-03/vcu-status/can-request-failure.png create mode 100644 docs/evidence/2026-10-03/vcu-status/compile.log create mode 100644 docs/evidence/2026-10-03/vcu-status/counter_wrap-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/dbc-verification.json create mode 100644 docs/evidence/2026-10-03/vcu-status/drivetrain_regression-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/ebs_range_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/ebs_range_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/ebs_range_stopped_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/extended_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/extended_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/extended_stopped_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/feedback_recovery-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/final_timeout-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/flag_reserved_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/flag_reserved_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/flag_reserved_stopped_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/flash-readback.log create mode 100644 docs/evidence/2026-10-03/vcu-status/flash-verified.json create mode 100644 docs/evidence/2026-10-03/vcu-status/flash.log create mode 100644 docs/evidence/2026-10-03/vcu-status/gpio_regression-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/integration-unverified.json create mode 100644 docs/evidence/2026-10-03/vcu-status/lock_range_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/lock_range_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/lock_range_stopped_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/mcu-results.json create mode 100644 docs/evidence/2026-10-03/vcu-status/remote_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/remote_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/remote_stopped_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/request_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/reserved_5_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/reserved_5_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/reserved_5_stopped_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/reserved_6_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/reserved_6_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/reserved_6_stopped_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/saved-artifacts.json create mode 100644 docs/evidence/2026-10-03/vcu-status/short_dlc_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/short_dlc_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/short_dlc_stopped_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-after-confirm-request-still-VCU-task2.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-boot-unknown.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-cancel-still-VCU-task6.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-confirm-EBS-request.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-current-task-query.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-feedback-across-page.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-feedback-invalid.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-final-unknown.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-request-baseline.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-task-0-green.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-task-1-green.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-task-2-green.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-task-3-green.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-task-4-green.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-task-5-green.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-task-6-green.png create mode 100644 docs/evidence/2026-10-03/vcu-status/sim-unlocked-ebs-fault.png create mode 100644 docs/evidence/2026-10-03/vcu-status/simulator-results.json create mode 100644 docs/evidence/2026-10-03/vcu-status/symbols.json create mode 100644 docs/evidence/2026-10-03/vcu-status/task_0-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_1-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_2-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_3-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_4-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_5-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_6-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_range_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_range_rejected-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_range_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_range_stopped_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/task_request_does_not_set_task-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/test_can_display.py create mode 100644 docs/evidence/2026-10-03/vcu-status/test_mcu.py create mode 100644 docs/evidence/2026-10-03/vcu-status/test_simulator.py create mode 100644 docs/evidence/2026-10-03/vcu-status/timeout_despite_other_can-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/uart-capture.bin create mode 100644 docs/evidence/2026-10-03/vcu-status/uart-display_dirty.log create mode 100644 docs/evidence/2026-10-03/vcu-status/uart-hdma_usart2_tx.log create mode 100644 docs/evidence/2026-10-03/vcu-status/uart-huart2.log create mode 100644 docs/evidence/2026-10-03/vcu-status/uart-screen_tx_busy.log create mode 100644 docs/evidence/2026-10-03/vcu-status/uart-screen_tx_dma.log create mode 100644 docs/evidence/2026-10-03/vcu-status/uart-uwTick.log create mode 100644 docs/evidence/2026-10-03/vcu-status/valid_mask_0-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/valid_mask_1-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/valid_mask_2-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/valid_mask_3-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/valid_mask_4-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/valid_mask_5-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/valid_mask_6-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/valid_mask_7-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/version_baseline-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/version_rejected_and_expired-ram.log create mode 100644 docs/evidence/2026-10-03/vcu-status/version_stopped_baseline-ram.log create mode 100644 output/firmware/AMI_Controller_v2.2_500k_250k.bin create mode 100644 output/firmware/AMI_Controller_v2.3_500k_250k.bin create mode 100644 scripts/hmi/Program.s create mode 100644 scripts/hmi/confirm-send.txt create mode 100644 scripts/hmi/dash-postinit.txt create mode 100644 scripts/hmi/dash-status-render.txt create mode 100644 scripts/hmi/debug-postinit.txt create mode 100644 scripts/send_vcu_status_can.py diff --git a/.gitattributes b/.gitattributes index 579fbdc..66f890f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -13,3 +13,6 @@ docs/evidence/**/*.log -whitespace # Byte hashes in this capture manifest refer to the original bytes. docs/evidence/2026-10-03/v2.2-display/* -text docs/evidence/2026-10-03/v2.2-display/*.json whitespace=cr-at-eol +# Preserve the original bytes of the GPIO and VCU bench records as well. +docs/evidence/2026-10-03/debug-*/* -text -whitespace +docs/evidence/2026-10-03/vcu-status/* -text -whitespace diff --git a/AMI.HMI b/AMI.HMI index bb758d6ede12256ba69d00ddc2fc7c5a1b64e469..ccfc7dac318679c246148294752fef55a7301f9d 100644 GIT binary patch delta 9883 zcmeHM32;@_89wikg{2XVfa1h@O(z)0;#-oC7$3n{loY9vrD|ImURIEhoV@oSKnxel zL8=G|WjWNeMTvk5J0y=KsY$Jjk}*gsP&#!PtTXMj(~i?&V5Um@-Syl&LKb}OIL^B> z-+TW(=ltJU{(Jua-2d)=Z%s^N<8v|cO$3*BVO9F{nFWfdU6gb{u#MO;%9T#NdZGH) zK`1$XJ49e{h~A3vnjV23@l{v&yo=NQy7GN@P!h0foJ4R=SF86WP_k<|DuKcf#W`Cw zMU~Wj=P-ptxpI;!X1%kGl8h&y*Ztzgh8j7v&)wynBw6j#KguckRMk%}=p;>L5CKO> z-BaD2>Tn2#^Y1^rcU)D_f2?(Hw-&i9b*mF>YZGh=?7%P}3Wx?`f(f?Rf~%3m{=Y5u zpRcZ#Y-=T0LxMFVSVMv}Bv?a&H6&Z?Ctr&OhcTjPmd$e5eJq#V&pd1j%VSg711z6C z$iB;_v4_~hY&t7o-(xe_BWx!7K6{iEvd7pgHk-|1bJ-8rN%z5&JQl$9}?! z*nH+?#jJ#tvNBfAD%b+HkUhl~u}Zd>Rk3QGY^NR3Ykv3E)Z;v-hE~M2M{7^a%aAYJLP$U_pE;J0WxD(}ypz!;FG0x1?h>;5J3`(&fsp08?u1Ed zxvci~Qko#W-APET-l!pikR`etg+VXXJ{L~6PS<_^5kl^c z(kA(NA^JCN;^zw4{iKlR%p*k76$0?mM*A(;W+QbsxxIprm3jwvE+WLQ%Z*iHK*N26 zl*eiv$KcN!2&B3Alyx*E*cL^n+4=tU^cLCam>h@7UUn4)x@o^V9lS`KP zd}UPu^>Mh{BPb@q#-wgEek93Pn;uve@FaF0Irn;^5|-2=T2k$CyR$PKGR%vj5HgR) zF;SV3Bw%{hKyA+|u^)`>toqaPXAeT%Tzh2!d-Z?nTGN>MQ!t0P|R8|)^zWogE#m6D_p%W%yK^Vu&CHzy+O zsvF4Q&dSVmXByttV7GY4zWOnjtam?pH^)w$J>9FD2bDRf{a8C!W?@}SZRcyxmJ)%? zd8tdu&)h~6f?tfFi>Go&C6#$zGF{E5K2662HV}*1KkN=d`*h)G3 zlqMneWrQ!1UB^516Ub!q`9Y9W*Ws%~GUM6Sxh!V7&d8jy;m5TGA`aY8B!lBMV*MZk znQXes&;i^?BvU-UF@V7ZGTCD~$1p@PYyX1_WODBllx2?!AFG8v!^aw~y01tkB9OTS z1x=rUOb&!Ik_|nO$)VHwN|9{nflPT9P^?xQ2uCCvdLWavBXFOQXXue^=z&aD&gDI4 z!W79&pFHS5rk}lyXrsOl+;}7#dLWa@|@L42UY-ez|%lIuo94gRlqaAPl43{1J(e~0&9Vv0nY)?1M7en zfc3xzpaEzEHUd8fHUXP~Ex=ZQ1KWUK051Yfz%PMc0lx;e11|wD13Q3b;1yseunX7? zyb8Pqybinp>;d)y`+)tx0pK8T2sjKJ0a}1oAP5`dB>hxCNezGbp0myi_XCyX4%4oiMwJn|Dpd7~vi5sUnUQN9xS2}8d0sE{jX6LL~{ zgTm!{JeabMZnfK;S^TZ_^aIn55o(v{Jx zGMKcP?o8tHS+q;oN%Q%hRyr;?e-E8!=Udw78+>#;jo}Zq(^g4b5q7OvUS_6Kc viKMk6X|4Xg7nxZ{ksj;k15G5Yh41}C`aTm$YvDCl`@Rx}4>aGDwAOzCI{EyP delta 2730 zcmdUwdr(wW9LLW^z_6jv)k;iUQ3J;n_wEB067hxkA~B>yGhKPP3d>(%zp3rJ?{Da z?)hCdZ{85w{B2`wAdWGX@2e{JxhvCZpu-nusZmhpvkNQT9&g&zylD|jY7}Qd{pOc> z%$mmCk#+s|57=gU!!}zFo1>buGY^GrvaluSaV&l#XP3)D#w}k}M_))zax}C^O)Zj6 z6zBz_K@5mhTcqBzZf*@q2mimjZwN|FL6jFnc|nvHM0r7!7eskMsrUGs{{@G`L8&s1 zT$D*!^eBy`Y#K*7G@d5VM4CjCDVL_uV>Fef(R7+YGbxWAr&*Lwv*`&cpgB}XPtsE~ zmx^c}&8Men0X;(tX%V?;F%?q@l~Ng%(-QK~Qd&k8R7qZ{QnC{H4Rv3+W|6k>VEn17 zarye0a^Z9&DeVvQQGq2AV;f@hbHmt`SjOsmh4r#NLSKky%x|n0^<}Ki(BJnLJ~MC} zBeBN^37s=U=(c3WRvNLkM?&j?(9;f#6iJ7VW~|n5+G%BMxuFvrjIA*A`V6stJxloe z#)&)^Cx~@-E@P{V*t1g^8yX!h^6!}?;wEXf&^d)dFDhcpYy_-bAlCO{T>I#Qjcb1~ zV{42Dj4WrY#?ZT#>Kjt7c(g2aQxeaOQaXC^zD}p}UIh7S)BJV*?Bwr$O*Y}yQ^n|-xPpJ+a)u)B+`yGuAv+nJdfq#5+wB^i(3@s9Mqo zOT8r?Z+Yl&slEaHp6FPUGEf~mBtF~lr&nISE;2a4VBuSlm}6HiO*eYc3E5wi!93)*_LUMtf`>V8Tk_qpHRd~FmW?4plYdUtQXk0U;$TGCmj$Mb> zZB|FdEzY_TrO3*4t_=*xPVB{{JEF8Pk)6YC2M(-fV#7{r26A<6{OHw_H_Qd@veJbG z$%zOFHA+r*At=LQ*LxL7i0`=3iuBv3RK{0p15)j_aI7Qame{VY*!9kbwxh1D*4jrX z=L&gj)5$gts(}yG06$m`R)AVi2Udc5unIg2R)aMl0M>%%z&g+X2sDEApb0z=Hh_)b z1@Izx32Xu{gUw(Icm-?)+rW0P11R8C@EUj>>;${OZtw=!1KtFC!CPP-cpJO}-UZFz zJ@7vG0PF_`z(MdK_y~LqTEHQ27<>X+!4aT>PeB_v3fe&j_zZjwzEDrL1y3LN2R}I$ AWB>pF diff --git a/AMI.dbc b/AMI.dbc index 96d9440..e18d000 100644 --- a/AMI.dbc +++ b/AMI.dbc @@ -1,4 +1,4 @@ -VERSION "AMI-2.2-2026-10-03" +VERSION "AMI-2.4-2026-10-03" NS_ : NS_DESC_ @@ -21,6 +21,17 @@ BO_ 386 AMI_DrivetrainDisplay: 8 VCU SG_ MCU_Temperature_Valid : 50|1@1+ (1,0) [0|1] "" AMI SG_ Protocol_Version : 56|8@1+ (1,0) [1|1] "" AMI +BO_ 387 AMI_VCUStatus: 8 VCU + SG_ Current_Task : 0|8@1+ (1,0) [0|6] "" AMI + SG_ Locked : 8|8@1+ (1,0) [0|1] "" AMI + SG_ EBS_Normal : 16|8@1+ (1,0) [0|1] "" AMI + SG_ Task_Valid : 24|1@1+ (1,0) [0|1] "" AMI + SG_ Lock_Valid : 25|1@1+ (1,0) [0|1] "" AMI + SG_ EBS_Valid : 26|1@1+ (1,0) [0|1] "" AMI + SG_ Feedback_Sequence : 32|8@1+ (1,0) [0|255] "" AMI + SG_ Reserved : 40|16@1+ (1,0) [0|0] "" AMI + SG_ Protocol_Version : 56|8@1+ (1,0) [1|1] "" AMI + BO_ 768 AMI_TaskRequest: 8 AMI SG_ Protocol_Version : 0|8@1+ (1,0) [1|1] "" VCU SG_ Task_ID : 8|8@1+ (1,0) [1|6] "" VCU @@ -74,9 +85,9 @@ BO_ 2556444915 BMS_Status_Extended: 8 BMS BO_ 2556510451 BMS_Extremes_Extended: 8 BMS SG_ Maximum_Cell_Temperature : 39|8@0+ (1,-40) [-40|215] "degC" AMI -CM_ "AMI CAN interface v2.2. CAN1: 500000 bit/s; CAN2: 250000 bit/s. Both use Classic CAN, identical IDs, parsing and task request capability. This file is CAN1; use AMI_CAN2_250k.dbc for CAN2. Frames are not bridged between buses. SDC fields follow SDC_ACQ_DAC.dbc VERSION 1.1. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. AMI_DrivetrainDisplay is a custom instrument input; native motor-controller protocols are not defined. No calibrated vehicle speed, task execution feedback or AMI heartbeat frame is defined."; +CM_ "AMI CAN interface v2.4. CAN1: 500000 bit/s; CAN2: 250000 bit/s. Both use Classic CAN, identical IDs, parsing and task request capability. This file is CAN1; use AMI_CAN2_250k.dbc for CAN2. Frames are not bridged between buses. SDC fields follow SDC_ACQ_DAC.dbc VERSION 1.1. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. AMI_DrivetrainDisplay and AMI_VCUStatus are custom instrument inputs to be implemented by VCU. Native motor-controller protocols, calibrated vehicle speed and AMI heartbeat are not defined."; CM_ BU_ AMI "Instrument MCU. UART HMI task confirmation produces AMI_TaskRequest. Display values come from SDC, BMS and custom VCU display inputs."; -CM_ BU_ VCU "Logical task receiver and sender/adapter for custom drivetrain display data. Execution and safety interlocks are outside this interface."; +CM_ BU_ VCU "Task request receiver and authoritative sender for actual task, lock and EBS display states plus drivetrain data. Vehicle execution and safety outputs remain VCU responsibilities."; CM_ BU_ SDC_ACQ_DAC "Source of ADC, capture frequencies and raw PD0-PD14 states; both SDC CAN ports carry the same protocol."; CM_ BU_ BMS "Logical BMS source. Source frame periods are not specified here; do not infer them from test traffic."; @@ -84,7 +95,17 @@ CM_ BO_ 386 "Standard ID 0x182, DLC exactly 8, send every 100 ms. Three little-e CM_ SG_ 386 Torque_Permille "Signed -1000..1000 permille relative to sender-defined reference torque. Out-of-range marks only torque invalid; temperatures still update."; CM_ SG_ 386 Motor_Temperature "Signed int16 raw tenths degC. Screen rounds to whole degC, halves away from zero."; CM_ SG_ 386 MCU_Temperature "Sender-supplied motor-controller MCU/inverter temperature, not the AMI STM32 die temperature. Screen rounds to whole degC, halves away from zero."; -CM_ SG_ 386 Protocol_Version "Fixed 1, independent of AMI interface package version 2.2."; +CM_ SG_ 386 Protocol_Version "Fixed 1, independent of AMI interface package version 2.4."; +CM_ BO_ 387 "Custom standard 0x183, DLC exactly 8, 100 ms, expires after 500 ms. Byte 0 actual task 0..6, byte 1 locked 0/1, byte 2 EBS normal 0/1. Byte 3 bits 0/1/2 valid for task/lock/EBS; upper bits zero. Byte 4 sender counter for observation, no deduplication or acknowledgement. Bytes 5/6 zero. Byte 7 fixed 1. Reject whole frame on wrong DLC, version, enums, reserved bits or extended/remote/FD format. Invalid fields and timeout show unknown. HMI confirmation only sends 0x300 request and never changes actual task. This frame controls display only, not safety outputs."; +CM_ SG_ 387 Current_Task "Authoritative VCU actual task, not an echo of the AMI request. 0 is no task (red); 1..6 are named tasks (green). Unknown is encoded by Task_Valid=0, not task value 7. Values above 6 reject the whole frame even if Task_Valid=0."; +CM_ SG_ 387 Locked "0 unlocked (red), 1 locked (green). Lock_Valid=0 shows unknown. No vehicle interlock output is driven by this field."; +CM_ SG_ 387 EBS_Normal "0 fault (red background), 1 normal (green background). EBS_Valid=0 shows unknown. Independent of the raw SDC EBS input channels."; +CM_ SG_ 387 Task_Valid "0 makes the current-task display unknown immediately; 1 uses Current_Task. Every accepted frame is a snapshot of all three validity flags."; +CM_ SG_ 387 Lock_Valid "0 makes lock status unknown immediately; 1 uses Locked."; +CM_ SG_ 387 EBS_Valid "0 makes EBS status unknown immediately; 1 uses EBS_Normal."; +CM_ SG_ 387 Feedback_Sequence "Sender observation counter, normally incremented modulo 256. AMI accepts repeated or wrapped values; this is not Request_Sequence and is not an application ACK."; +CM_ SG_ 387 Reserved "Bytes 5 and 6 must both be zero; nonzero rejects the whole frame without refreshing timeout."; +CM_ SG_ 387 Protocol_Version "Fixed 1, independent of interface package version 2.4. Unsupported versions reject the whole frame."; CM_ BO_ 768 "Standard ID 0x300, DLC 8. Event-driven: one request on valid HMI task confirmation, none on cancel. Counter wraps at 255. Request is not proof of execution and is not SDC ASSI_Lamp_Set (0x6A5). No CAN application-level acknowledgement is defined. Route to ports with valid RX within 500 ms; if none, attempt both."; CM_ SG_ 768 Protocol_Version "Fixed 1."; @@ -98,7 +119,7 @@ CM_ BO_ 1697 "Standard ID 0x6A1, DLC exactly 2, 500 ms. Calibrated input voltage CM_ SG_ 1697 Input_Voltage "On-wire uint16 mV, decoded in V. dash.lvbat uses 0.01 V integer display units: (raw_mV + 5) / 10. Source expires after 1500 ms."; CM_ BO_ 1698 "Standard ID 0x6A2, DLC 8, 20 ms. Preserve Hz; wheel circumference and pulses per revolution are undefined, so AMI does not convert to km/h."; CM_ BO_ 1700 "Standard ID 0x6A4, DLC 4. Response to a DAC command. AMI recognizes the frame but does not update a display value from it."; -CM_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent at startup and on PD0-PD14 changes, not periodically. AMI stores raw state, change mask and timestamp. No mapping to named d0-d15 safety signals or normal polarity is defined."; +CM_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent at startup and on PD0-PD14 changes, not periodically. PD0..PD14 map to HMI d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14. Low is normal (1); high is fault (2). d15 remains unknown. Heartbeat 0x6A0 sustains an existing snapshot; over 500 ms without either GPIO or heartbeat clears all states to unknown (0). A fresh GPIO snapshot is needed after loss."; CM_ SG_ 1702 SDC_Input_State "Bit n maps directly to PDn for n=0..14. Bits 15 and 31 in the payload are unused."; CM_ SG_ 1702 SDC_Changed_Mask "Bit n indicates PDn changed since the preceding GPIO status frame."; @@ -118,6 +139,13 @@ CM_ SG_ 2556444915 Pack_Current "Current = raw_uint16 * 0.1 - 500 A."; CM_ BO_ 2556510451 "Extended arbitration ID 0x186140F3, DLC 8. AMI consumes byte 4 as maximum cell temperature. Raw 0xFF is invalid. Other bytes, including BMS low-voltage bytes 6..7, are not used and cannot override SDC ADC. DBC BO_ numeric ID includes 0x80000000."; VAL_ 768 Protocol_Version 1 "Version_1"; +VAL_ 387 Current_Task 0 "None" 1 "Skidpad" 2 "Acceleration" 3 "Autocross" 4 "Inspection_Test" 5 "EBS_Test" 6 "Manual_Driving"; +VAL_ 387 Locked 0 "Unlocked" 1 "Locked"; +VAL_ 387 EBS_Normal 0 "Fault" 1 "Normal"; +VAL_ 387 Task_Valid 0 "Unknown" 1 "Valid"; +VAL_ 387 Lock_Valid 0 "Unknown" 1 "Valid"; +VAL_ 387 EBS_Valid 0 "Unknown" 1 "Valid"; +VAL_ 387 Protocol_Version 1 "Version_1"; VAL_ 386 Protocol_Version 1 "Version_1"; VAL_ 386 Torque_Valid 0 "Invalid" 1 "Valid"; VAL_ 386 Motor_Temperature_Valid 0 "Invalid" 1 "Valid"; @@ -150,6 +178,7 @@ BA_ "BusType" "CAN"; BA_ "Baudrate" 500000; BA_ "AMIPort" "CAN1"; BA_ "GenMsgCycleTime" BO_ 386 100; +BA_ "GenMsgCycleTime" BO_ 387 100; BA_ "GenMsgCycleTime" BO_ 1696 100; BA_ "GenMsgCycleTime" BO_ 1697 500; BA_ "GenMsgCycleTime" BO_ 1698 20; diff --git a/AMI_CAN2_250k.dbc b/AMI_CAN2_250k.dbc index 28cc031..0381234 100644 --- a/AMI_CAN2_250k.dbc +++ b/AMI_CAN2_250k.dbc @@ -1,4 +1,4 @@ -VERSION "AMI-2.2-2026-10-03" +VERSION "AMI-2.4-2026-10-03" NS_ : NS_DESC_ @@ -21,6 +21,17 @@ BO_ 386 AMI_DrivetrainDisplay: 8 VCU SG_ MCU_Temperature_Valid : 50|1@1+ (1,0) [0|1] "" AMI SG_ Protocol_Version : 56|8@1+ (1,0) [1|1] "" AMI +BO_ 387 AMI_VCUStatus: 8 VCU + SG_ Current_Task : 0|8@1+ (1,0) [0|6] "" AMI + SG_ Locked : 8|8@1+ (1,0) [0|1] "" AMI + SG_ EBS_Normal : 16|8@1+ (1,0) [0|1] "" AMI + SG_ Task_Valid : 24|1@1+ (1,0) [0|1] "" AMI + SG_ Lock_Valid : 25|1@1+ (1,0) [0|1] "" AMI + SG_ EBS_Valid : 26|1@1+ (1,0) [0|1] "" AMI + SG_ Feedback_Sequence : 32|8@1+ (1,0) [0|255] "" AMI + SG_ Reserved : 40|16@1+ (1,0) [0|0] "" AMI + SG_ Protocol_Version : 56|8@1+ (1,0) [1|1] "" AMI + BO_ 768 AMI_TaskRequest: 8 AMI SG_ Protocol_Version : 0|8@1+ (1,0) [1|1] "" VCU SG_ Task_ID : 8|8@1+ (1,0) [1|6] "" VCU @@ -74,9 +85,9 @@ BO_ 2556444915 BMS_Status_Extended: 8 BMS BO_ 2556510451 BMS_Extremes_Extended: 8 BMS SG_ Maximum_Cell_Temperature : 39|8@0+ (1,-40) [-40|215] "degC" AMI -CM_ "AMI CAN interface v2.2. CAN1: 500000 bit/s; CAN2: 250000 bit/s. Both use Classic CAN, identical IDs, parsing and task request capability. This file is CAN2; use AMI.dbc for CAN1. Frames are not bridged between buses. SDC fields follow SDC_ACQ_DAC.dbc VERSION 1.1. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. AMI_DrivetrainDisplay is a custom instrument input; native motor-controller protocols are not defined. No calibrated vehicle speed, task execution feedback or AMI heartbeat frame is defined."; +CM_ "AMI CAN interface v2.4. CAN1: 500000 bit/s; CAN2: 250000 bit/s. Both use Classic CAN, identical IDs, parsing and task request capability. This file is CAN2; use AMI.dbc for CAN1. Frames are not bridged between buses. SDC fields follow SDC_ACQ_DAC.dbc VERSION 1.1. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. AMI_DrivetrainDisplay and AMI_VCUStatus are custom instrument inputs to be implemented by VCU. Native motor-controller protocols, calibrated vehicle speed and AMI heartbeat are not defined."; CM_ BU_ AMI "Instrument MCU. UART HMI task confirmation produces AMI_TaskRequest. Display values come from SDC, BMS and custom VCU display inputs."; -CM_ BU_ VCU "Logical task receiver and sender/adapter for custom drivetrain display data. Execution and safety interlocks are outside this interface."; +CM_ BU_ VCU "Task request receiver and authoritative sender for actual task, lock and EBS display states plus drivetrain data. Vehicle execution and safety outputs remain VCU responsibilities."; CM_ BU_ SDC_ACQ_DAC "Source of ADC, capture frequencies and raw PD0-PD14 states; both SDC CAN ports carry the same protocol."; CM_ BU_ BMS "Logical BMS source. Source frame periods are not specified here; do not infer them from test traffic."; @@ -84,7 +95,17 @@ CM_ BO_ 386 "Standard ID 0x182, DLC exactly 8, send every 100 ms. Three little-e CM_ SG_ 386 Torque_Permille "Signed -1000..1000 permille relative to sender-defined reference torque. Out-of-range marks only torque invalid; temperatures still update."; CM_ SG_ 386 Motor_Temperature "Signed int16 raw tenths degC. Screen rounds to whole degC, halves away from zero."; CM_ SG_ 386 MCU_Temperature "Sender-supplied motor-controller MCU/inverter temperature, not the AMI STM32 die temperature. Screen rounds to whole degC, halves away from zero."; -CM_ SG_ 386 Protocol_Version "Fixed 1, independent of AMI interface package version 2.2."; +CM_ SG_ 386 Protocol_Version "Fixed 1, independent of AMI interface package version 2.4."; +CM_ BO_ 387 "Custom standard 0x183, DLC exactly 8, 100 ms, expires after 500 ms. Byte 0 actual task 0..6, byte 1 locked 0/1, byte 2 EBS normal 0/1. Byte 3 bits 0/1/2 valid for task/lock/EBS; upper bits zero. Byte 4 sender counter for observation, no deduplication or acknowledgement. Bytes 5/6 zero. Byte 7 fixed 1. Reject whole frame on wrong DLC, version, enums, reserved bits or extended/remote/FD format. Invalid fields and timeout show unknown. HMI confirmation only sends 0x300 request and never changes actual task. This frame controls display only, not safety outputs."; +CM_ SG_ 387 Current_Task "Authoritative VCU actual task, not an echo of the AMI request. 0 is no task (red); 1..6 are named tasks (green). Unknown is encoded by Task_Valid=0, not task value 7. Values above 6 reject the whole frame even if Task_Valid=0."; +CM_ SG_ 387 Locked "0 unlocked (red), 1 locked (green). Lock_Valid=0 shows unknown. No vehicle interlock output is driven by this field."; +CM_ SG_ 387 EBS_Normal "0 fault (red background), 1 normal (green background). EBS_Valid=0 shows unknown. Independent of the raw SDC EBS input channels."; +CM_ SG_ 387 Task_Valid "0 makes the current-task display unknown immediately; 1 uses Current_Task. Every accepted frame is a snapshot of all three validity flags."; +CM_ SG_ 387 Lock_Valid "0 makes lock status unknown immediately; 1 uses Locked."; +CM_ SG_ 387 EBS_Valid "0 makes EBS status unknown immediately; 1 uses EBS_Normal."; +CM_ SG_ 387 Feedback_Sequence "Sender observation counter, normally incremented modulo 256. AMI accepts repeated or wrapped values; this is not Request_Sequence and is not an application ACK."; +CM_ SG_ 387 Reserved "Bytes 5 and 6 must both be zero; nonzero rejects the whole frame without refreshing timeout."; +CM_ SG_ 387 Protocol_Version "Fixed 1, independent of interface package version 2.4. Unsupported versions reject the whole frame."; CM_ BO_ 768 "Standard ID 0x300, DLC 8. Event-driven: one request on valid HMI task confirmation, none on cancel. Counter wraps at 255. Request is not proof of execution and is not SDC ASSI_Lamp_Set (0x6A5). No CAN application-level acknowledgement is defined. Route to ports with valid RX within 500 ms; if none, attempt both."; CM_ SG_ 768 Protocol_Version "Fixed 1."; @@ -98,7 +119,7 @@ CM_ BO_ 1697 "Standard ID 0x6A1, DLC exactly 2, 500 ms. Calibrated input voltage CM_ SG_ 1697 Input_Voltage "On-wire uint16 mV, decoded in V. dash.lvbat uses 0.01 V integer display units: (raw_mV + 5) / 10. Source expires after 1500 ms."; CM_ BO_ 1698 "Standard ID 0x6A2, DLC 8, 20 ms. Preserve Hz; wheel circumference and pulses per revolution are undefined, so AMI does not convert to km/h."; CM_ BO_ 1700 "Standard ID 0x6A4, DLC 4. Response to a DAC command. AMI recognizes the frame but does not update a display value from it."; -CM_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent at startup and on PD0-PD14 changes, not periodically. AMI stores raw state, change mask and timestamp. No mapping to named d0-d15 safety signals or normal polarity is defined."; +CM_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent at startup and on PD0-PD14 changes, not periodically. PD0..PD14 map to HMI d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14. Low is normal (1); high is fault (2). d15 remains unknown. Heartbeat 0x6A0 sustains an existing snapshot; over 500 ms without either GPIO or heartbeat clears all states to unknown (0). A fresh GPIO snapshot is needed after loss."; CM_ SG_ 1702 SDC_Input_State "Bit n maps directly to PDn for n=0..14. Bits 15 and 31 in the payload are unused."; CM_ SG_ 1702 SDC_Changed_Mask "Bit n indicates PDn changed since the preceding GPIO status frame."; @@ -118,6 +139,13 @@ CM_ SG_ 2556444915 Pack_Current "Current = raw_uint16 * 0.1 - 500 A."; CM_ BO_ 2556510451 "Extended arbitration ID 0x186140F3, DLC 8. AMI consumes byte 4 as maximum cell temperature. Raw 0xFF is invalid. Other bytes, including BMS low-voltage bytes 6..7, are not used and cannot override SDC ADC. DBC BO_ numeric ID includes 0x80000000."; VAL_ 768 Protocol_Version 1 "Version_1"; +VAL_ 387 Current_Task 0 "None" 1 "Skidpad" 2 "Acceleration" 3 "Autocross" 4 "Inspection_Test" 5 "EBS_Test" 6 "Manual_Driving"; +VAL_ 387 Locked 0 "Unlocked" 1 "Locked"; +VAL_ 387 EBS_Normal 0 "Fault" 1 "Normal"; +VAL_ 387 Task_Valid 0 "Unknown" 1 "Valid"; +VAL_ 387 Lock_Valid 0 "Unknown" 1 "Valid"; +VAL_ 387 EBS_Valid 0 "Unknown" 1 "Valid"; +VAL_ 387 Protocol_Version 1 "Version_1"; VAL_ 386 Protocol_Version 1 "Version_1"; VAL_ 386 Torque_Valid 0 "Invalid" 1 "Valid"; VAL_ 386 Motor_Temperature_Valid 0 "Invalid" 1 "Valid"; @@ -150,6 +178,7 @@ BA_ "BusType" "CAN"; BA_ "Baudrate" 250000; BA_ "AMIPort" "CAN2"; BA_ "GenMsgCycleTime" BO_ 386 100; +BA_ "GenMsgCycleTime" BO_ 387 100; BA_ "GenMsgCycleTime" BO_ 1696 100; BA_ "GenMsgCycleTime" BO_ 1697 500; BA_ "GenMsgCycleTime" BO_ 1698 20; diff --git a/README.md b/README.md index 81e46e5..eaa5e09 100644 --- a/README.md +++ b/README.md @@ -2,23 +2,31 @@ YMR A11 仪表,使用淘晶驰 TJC4827X543_011 串口屏,分辨率 480 × 272。 -当前 MCU CAN 输入为 **v2.2(CAN1 500 kbit/s、CAN2 250 kbit/s,2026-10-03)**,新增标准 `0x182`,设置仪表上的扭矩千分、电机温度和 MCU 温度。两路保留相同解码和任务收发功能;屏幕沿用 debug 数字状态接口。工程使用 USART HMI 1.68.1.3037 编辑、编译。 +当前屏幕接口 **1.4**,MCU CAN 输入 **v2.4(CAN1 500 kbit/s、CAN2 250 kbit/s,2026-10-03)**。新增标准 `0x183`,由 VCU 反馈实际当前任务、锁定状态和 EBS 状态;两路保留相同解码和任务收发功能。工程使用 USART HMI 1.68.1.3037 编辑、编译。 + +任务按钮确认仅发送 `0x300` 请求,当前任务等待 VCU `0x183` 更新。例:标准 ID `183`、DLC `8`、周期 `100 ms`、数据 `02 01 01 07 00 00 00 01` 显示直线加速、已锁定、EBS 正常。任务 1~6、已锁定、EBS 正常使用绿色;无任务、已解锁、EBS 故障使用红色;有效标志为 0 或超过 500 ms 无反馈显示灰色未知。VCU 需实现此新增自定义帧,详见 [反馈协议](docs/AMI_CAN_DBC说明.md#vcu-状态反馈-0x183) 和 [验证报告](docs/VCU状态反馈测试报告.md)。 dash 顶部已加入低压电池电压 `lvbat`(两位小数),来源是 SDC `0x6A1` ADC mV。高压电压、电流来自 BMS `0x140` / 扩展 `0x186040F3`,现有控件显示整数单位;最高单体温度取 `0x156` 的有效实际温度最大值,或扩展 `0x186140F3`。旧 `0x180 / 0x181 / 0x280` 输入不再使用。 CAN 工具设置标准 ID `0x182`、DLC `8`、周期 `100 ms`,发送 `F4 01 C2 01 90 01 07 01` 即设置 **500‰ / 45℃ / 40℃**。三个数值为小端 int16;温度缩放 0.1℃;字节 6 的 bit0/1/2 为有效标志,字节 7 固定 1。停发超过 2 秒后三个数值变灰。该帧只设置显示;实际电机控制器协议由上游转换。详见 [字节布局和发送示例](docs/AMI_CAN_DBC说明.md#自定义动力显示输入-0x182)。 +v2.3 按用户接线表将 `0x6A6` 的 PD0~PD14 映射到 DEBUG:`d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14`。**低电平正常、高电平故障**;d15 没有来源,保持未知。心跳维持已有采样,心跳与 GPIO 均停止超过 500 ms 后未知,恢复后需新的 GPIO 采样。详见 [映射及测试报告](docs/DEBUG十五路CAN映射测试报告.md)。 + +屏幕接口 1.3 的修正已保留:PD1 / Safe_S 的 d5 显示为“左电机互锁”,替换原左后悬项;删除 BSPD/TSMS 与“返回支路”框。布局绘制源码见 [debug 后初始化脚本](scripts/hmi/debug-postinit.txt),主页面反馈渲染见 [状态脚本](scripts/hmi/dash-status-render.txt)。 + ## 工程与交接资料 -- [CAN1 DBC](AMI.dbc):500 kbit/s,11 条报文、40 个信号,含标准/扩展帧。 +- [CAN1 DBC](AMI.dbc):500 kbit/s,12 条报文、49 个信号,含标准/扩展帧。 - [CAN2 DBC](AMI_CAN2_250k.dbc):250 kbit/s,报文布局与 CAN1 相同。 - [DBC 对应说明](docs/AMI_CAN_DBC说明.md):信号布局、枚举、字节序、样例与复现检查。 -- [CAN 报文说明 PDF](output/pdf/AMI_CAN报文说明.pdf):当前 v2.2 协议的中文打印版,包含两路速率和全部 11 条报文。 +- [CAN 报文说明 PDF](output/pdf/AMI_CAN报文说明.pdf):当前 v2.4 协议的中文打印版,包含两路速率和全部 12 条报文。 +- [VCU 状态发送工具](scripts/send_vcu_status_can.py):预览或发送实际任务、锁定和 EBS 显示反馈。 - [CAN 显示发送工具](scripts/send_drivetrain_can.py):通过 python-can 发送扭矩千分和两路温度,支持预览字节、有效标志和适配器参数。 - [v2.2 显示 CAN 测试报告](docs/AMI自定义显示CAN测试报告.md):新帧烧录回读和 CAN2 数据、失效、异常帧测试。 - [联调报告](docs/SDC_BMS联调报告.md):真实 CAN1 / MCU / COM4 到 HMI 调试器的证据。 - [v2.1 双 CAN 测试报告](docs/CAN1_CAN2_v2.1测试报告.md):烧录和完整回读、CAN1 500K / CAN2 250K 数据与六个任务确认/取消测试。 -- [当前固件 BIN](output/firmware/AMI_Controller.bin):STM32G0B1CBT6,v2.2,CAN1 500K / CAN2 250K,已烧录并完整回读比对;本次新帧实测 CAN2。 +- [当前固件 BIN](output/firmware/AMI_Controller.bin):STM32G0B1CBT6,v2.4,CAN1 500K / CAN2 250K,已烧录并完整回读比对;VCU 反馈测试见当前验证报告。 +- [此前 v2.3 BIN](output/firmware/AMI_Controller_v2.3_500k_250k.bin):保留十五路 GPIO 映射版本。 - [此前已联调的 v2.1 BIN](output/firmware/AMI_Controller_v2.1_500k_250k.bin):CAN1 500K / CAN2 250K,保留双 CAN 分别测试的历史版本。 - [此前已联调的 v2.0 BIN](output/firmware/AMI_Controller_v2.0_500k.bin):两路均为 500K,保留历史测试版本。 - [AMI.HMI](AMI.HMI):最新版屏幕工程,打开后编译并下载到对应型号屏幕。 @@ -62,7 +70,7 @@ dash.lvbat.val=1260 上述历史证据对应 v2.0。v2.1 的源码、CubeMX、两份 DBC 与位时序校验及 Release 编译通过;已烧录,15612 字节 Flash 回读与发布 BIN 完全一致。随后按 CAN1 500K(SDC)和 CAN2 250K(BMS)分别完成 MCU / COM4 / 官方 HMI 调试器联调;两路各六个任务确认和六个取消通过。使用 CAN 盒模拟数据源,未同时接两路或连接真实 SDC/BMS 节点、物理串口屏。两路不转发原始 CAN 帧,CAN 盒需分别设置正确速率。 -灰色数值表示未知或失效。现有资料缺少电机/逆变器温度协议、Hz 到 km/h 标定参数、SDC PD0..PD14 到具名安全信号的映射,对应显示保持无效/未知。VCU 任务裁决、执行反馈和 EBS 安全输出仍需车辆控制协议,画面 EBS 文案不能作为安全状态证明。 +灰色数值表示未知或失效。原生电机控制器温度协议、Hz 到 km/h 标定参数尚未定义;电机与 MCU 温度可由自定义 0x182 显示输入设置。实际当前任务、锁定和 EBS 显示取 VCU 自定义 0x183 反馈;任务裁决与 EBS 安全输出由 VCU 实现。 许可证沿用仓库中的 [AGPL-3.0](LICENSE)。 diff --git a/docs/AMI_CAN_DBC说明.md b/docs/AMI_CAN_DBC说明.md index 38b99a9..5e7c672 100644 --- a/docs/AMI_CAN_DBC说明.md +++ b/docs/AMI_CAN_DBC说明.md @@ -1,6 +1,6 @@ # AMI CAN DBC 说明 -版本:`AMI-2.2-2026-10-03`。由 [AMI.dbc](../AMI.dbc) 自动生成,11 条报文、40 个信号。 +版本:`AMI-2.4-2026-10-03`。由 [AMI.dbc](../AMI.dbc) 自动生成,12 条报文、49 个信号。 ## 使用范围 @@ -11,11 +11,11 @@ CAN1 为 500 kbit/s,CAN2 为 250 kbit/s,均为 Classic CAN、87.5% 采样点 | CAN1 | 500 kbit/s | PA11 / PA12 | [AMI.dbc](../AMI.dbc) | | CAN2 | 250 kbit/s | PB0 / PB1 | [AMI_CAN2_250k.dbc](../AMI_CAN2_250k.dbc) | -DBC 的 `Baudrate` / `AMIPort` 分别标注所属总线。每份 DBC 均含 11 条报文、40 个信号;同一份报文表适用于两路。CAN 工具必须按接入端口设置速率,导入 DBC 不一定自动改硬件速率。实际接法:SDC 500 kbit/s 接 CAN1,BMS 250 kbit/s 接 CAN2。 +DBC 的 `Baudrate` / `AMIPort` 分别标注所属总线。每份 DBC 均含 12 条报文、49 个信号;同一份报文表适用于两路。CAN 工具必须按接入端口设置速率,导入 DBC 不一定自动改硬件速率。实际接法:SDC 500 kbit/s 接 CAN1,BMS 250 kbit/s 接 CAN2。 FDCAN 时钟 64 MHz,时钟分频为 1;NominalPrescaler 为 CAN1=8、CAN2=16,两路均使用 Sync=1、TimeSeg1=13、TimeSeg2=2、SJW=1。速率 = 64 MHz / Prescaler / (1+13+2);采样点 = (1+13)/16 = 87.5%。 -本 DBC 包含 AMI 唯一发送的 `0x300` 任务请求,以及 AMI 当前识别的 SDC / BMS 和自定义显示输入。SDC `0x6A3` DAC 控制、`0x6A5` ASSI 控制、BMS 其他电芯/故障字段不属于此接口子集。`0x182` 新增扭矩千分、电机温度和电机控制器 MCU 温度的仪表显示输入;发送者负责转换实际电机控制器协议。未定义标定后的车速、AMI 周期心跳或 VCU 执行反馈。旧 `0x180 / 0x181 / 0x280` 输入已停用。 +本 DBC 包含 AMI 唯一发送的 `0x300` 任务请求,以及 AMI 当前识别的 SDC / BMS 和自定义显示输入。SDC `0x6A3` DAC 控制、`0x6A5` ASSI 控制、BMS 其他电芯/故障字段不属于此接口子集。`0x182` 新增扭矩千分、电机温度和电机控制器 MCU 温度的仪表显示输入;发送者负责转换实际电机控制器协议。`0x183` 为新增 VCU 状态反馈,需 VCU 按此自定义接口发送;未定义标定后的车速或 AMI 周期心跳。旧 `0x180 / 0x181 / 0x280` 输入已停用。 SDC 字段依据 `SDC_ACQ_DAC.dbc` VERSION 1.1,保持其信号名、位布局、缩放和单位;仅将输入接收节点设为 AMI。BMS 字段依据 [BmsMonitor-CANTest](https://git.acetaffy.ltd/acetaffy/BmsMonitor-CANTest) 提交 `e65c95203d1689df05343775982d7e85bd782646` 的 `BmsProtocolParser.cs`。 @@ -26,6 +26,7 @@ DBC 为 ASCII 编码,注释和枚举使用英文,便于导入 CAN 工具; | CAN ID | 类型 | DLC | 报文名 | 方向和作用 | 周期 / 触发 | | --- | --- | --- | --- | --- | --- | | `0x182` | 标准 | 8 | `AMI_DrivetrainDisplay` | VCU / 测试器 -> AMI:扭矩千分、电机温度、MCU 温度 | 100 ms | +| `0x183` | 标准 | 8 | `AMI_VCUStatus` | VCU -> AMI:实际当前任务、锁定状态、EBS 状态 | 100 ms | | `0x300` | 标准 | 8 | `AMI_TaskRequest` | AMI -> VCU:用户确认后的任务选择请求 | 确认任务触发 | | `0x6A0` | 标准 | 8 | `SDC_Heartbeat` | SDC -> AMI:板标识、版本、序号、上电时间 | 100 ms | | `0x6A1` | 标准 | 2 | `SDC_ADC_InputVoltage` | SDC -> AMI:低压电池电压,精确 DLC=2 | 500 ms | @@ -59,6 +60,22 @@ Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起 `Torque_Valid`:0 = Invalid,1 = Valid;`Motor_Temperature_Valid`:0 = Invalid,1 = Valid;`MCU_Temperature_Valid`:0 = Invalid,1 = Valid;`Protocol_Version`:1 = Version_1。 +### 0x183 - AMI_VCUStatus + +| 信号 | Start | 位数 | 字节序 | Factor | Offset | 单位 | 编码范围 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| `Current_Task` | 0 | 8 | Intel | 1 | 0 | - | 0..6 | +| `Locked` | 8 | 8 | Intel | 1 | 0 | - | 0..1 | +| `EBS_Normal` | 16 | 8 | Intel | 1 | 0 | - | 0..1 | +| `Task_Valid` | 24 | 1 | Intel | 1 | 0 | - | 0..1 | +| `Lock_Valid` | 25 | 1 | Intel | 1 | 0 | - | 0..1 | +| `EBS_Valid` | 26 | 1 | Intel | 1 | 0 | - | 0..1 | +| `Feedback_Sequence` | 32 | 8 | Intel | 1 | 0 | - | 0..255 | +| `Reserved` | 40 | 16 | Intel | 1 | 0 | - | 0(固定) | +| `Protocol_Version` | 56 | 8 | Intel | 1 | 0 | - | 1..1 | + +`Current_Task`:0 = None,1 = Skidpad,2 = Acceleration,3 = Autocross,4 = Inspection_Test,5 = EBS_Test,6 = Manual_Driving;`Locked`:0 = Unlocked,1 = Locked;`EBS_Normal`:0 = Fault,1 = Normal;`Task_Valid`:0 = Unknown,1 = Valid;`Lock_Valid`:0 = Unknown,1 = Valid;`EBS_Valid`:0 = Unknown,1 = Valid;`Protocol_Version`:1 = Version_1。 + ### 0x300 - AMI_TaskRequest | 信号 | Start | 位数 | 字节序 | Factor | Offset | 单位 | 编码范围 | @@ -162,7 +179,7 @@ Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起 | 2..3 | 电机温度 | 小端 int16 × 0.1 ℃,仪表四舍五入到整数 ℃ | | 4..5 | MCU 温度 | 小端 int16 × 0.1 ℃,仪表四舍五入到整数 ℃ | | 6 | 有效标志 | bit0 扭矩、bit1 电机温度、bit2 MCU 温度;1 有效,0 无效;bit3..7 必须为 0 | -| 7 | 帧版本 | 固定 1,与整体接口 v2.2 版本号独立 | +| 7 | 帧版本 | 固定 1,与整体接口 v2.4 版本号独立 | 有效值更新并显示白色;标志为 0 时立即变灰并保留历史数字。扭矩超出 -1000..1000 时仅扭矩无效,两个温度仍按各自标志处理。温度的 int16 编码范围为 -3276.8..3276.7 ℃;显示正负半值均向远离零方向取整。扩展帧、错误 DLC、版本非 1 或保留位非 0 均整帧拒绝,不覆盖数值、不刷新超时。连续 2000 ms 未收到合规帧后,三个值同时变灰;BMS / SDC 流量不能续期。 @@ -175,6 +192,50 @@ python scripts/send_drivetrain_can.py --torque 500 --motor-temp 45 --mcu-temp 40 python scripts/send_drivetrain_can.py --interface pcan --channel PCAN_USBBUS1 --bitrate 250000 --torque 500 --motor-temp 45 --mcu-temp 40 --duration 10 ``` +## VCU 状态反馈 0x183 + +新增自定义标准数据帧,DLC 必须为 8,建议周期 100 ms;CAN1 500K 与 CAN2 250K 共用布局。只有该帧更新当前任务、锁定、EBS 主页面显示。AMI 发出任务请求后保留 VCU 上次反馈,等待新的实际状态。 + +| 字节 | 字段 | 编码与规则 | +| --- | --- | --- | +| 0 | 当前任务 | 0 无;1 八字绕环;2 直线加速;3 高速循迹;4 车检测试;5 EBS 测试;6 手动驾驶 | +| 1 | 锁定 | 0 已解锁(红);1 已锁定(绿) | +| 2 | EBS 正常 | 0 故障(红底);1 正常(绿底) | +| 3 | 有效标志 | bit0 当前任务,bit1 锁定,bit2 EBS;1 有效,0 未知;bit3..7 为 0 | +| 4 | 反馈计数 | 0..255,供观察;不去重,不作为请求 ACK | +| 5..6 | 保留 | 必须为 0 | +| 7 | 帧版本 | 固定 1 | + +例:`02 01 01 07 00 00 00 01` 表示当前直线加速、已锁定、EBS 正常。`00 00 00 07 01 00 00 01` 表示无任务、已解锁、EBS 故障。任务 1..6 为绿字,0 无任务为红字。各有效标志为 0 时,对应项立即灰色未知;连续超过 500 ms 无合规帧后三项均未知,其他 CAN 流量不能续期。错误 DLC、版本、枚举值、保留位或扩展/远程/FD 格式整帧拒绝,不改变状态、不续期。该反馈只驱动显示,EBS 安全动作及车辆任务裁决由 VCU 实现。 + +### 当前任务发送对照 + +下表第 1、2 字节均为 01,只用于展示已锁定、EBS 正常;VCU 必须填写实际状态。每条合规帧同时更新三项及其有效性,不能只改任务有效位而期望另外两项继续保留。 + +| 任务号 | 当前任务 | 标准 0x183 / DLC 8 数据 | +| --- | --- | --- | +| 0 | 无(红) | `00 01 01 07 00 00 00 01` | +| 1 | 八字绕环 | `01 01 01 07 00 00 00 01` | +| 2 | 直线加速 | `02 01 01 07 00 00 00 01` | +| 3 | 高速循迹 | `03 01 01 07 00 00 00 01` | +| 4 | 车检测试 | `04 01 01 07 00 00 00 01` | +| 5 | EBS 测试 | `05 01 01 07 00 00 00 01` | +| 6 | 手动驾驶 | `06 01 01 07 00 00 00 01` | + +任务未知通过 byte3 的 bit0=0 编码。例如 `00 01 01 06 00 00 00 01`显示任务未知、已锁定、EBS 正常;不要发送任务号 7,7 是屏内未知状态而不是 CAN 枚举。任务号、锁定、EBS 的数值范围始终校验,有效标志为 0 时也不能发送越界值。 + +发送顺序:AMI 确认按钮 -> UART 任务帧 -> MCU CAN `0x300` 请求 -> VCU 裁决 -> VCU 周期 CAN `0x183` 实际状态 -> AMI 显示。确认发送后可继续显示此前实际任务,直到 VCU 更新或反馈超时。 + +发送工具预览和实发示例: + +```powershell +python scripts/send_vcu_status_can.py --task 2 --locked 1 --ebs-normal 1 --dry-run +python scripts/send_vcu_status_can.py --interface pcan --channel PCAN_USBBUS1 --bitrate 500000 --task 2 --locked 1 --ebs-normal 1 --duration 10 +# CAN2 改为 --bitrate 250000;Windows 适配器需要时添加 --dll-dir 指定 DLL 目录 +``` + +屏内全局变量:`current_task=0..6`(7 未知)、`lock_state=0/1/2`、`ebs_state=0/1/2`(0 未知、1 绿、2 红)。MCU 更新这些变量,dash 后初始化和 100 ms 定时器更新文案、颜色和任务按钮;切页保留反馈。 + ## AMI 任务请求语义 | Task_ID | 任务 | @@ -188,7 +249,7 @@ python scripts/send_drivetrain_can.py --interface pcan --channel PCAN_USBBUS1 -- 用户确认时,屏幕通过串口发送 `AA 55 01 NN 0D 0A`,MCU 才产生 CAN `0x300` 请求;取消不产生请求。Protocol_Version 和 Request_Source 固定为 1;Request_Sequence 从 MCU 启动后的 0 开始,在各目标口完成入队后加一,255 后回到 0。MCU_Uptime 为请求入队时的 `HAL_GetTick()` 毫秒值,小端 uint32,自然回绕。 -优先发送到最近 500 ms 内收到过有效协议报文的 CAN 口;两路活跃则发送两路;没有活跃口时尝试两路。若未连接端口自动重发导致 TX FIFO 填满,现有队列可能等待。该策略沿用当前固件。任务表示操作员请求,VCU 负责裁决和安全互锁;未定义应用层执行确认、运行完成、故障回传,也不把任务号换成 ASSI 灯状态。 +优先发送到最近 500 ms 内收到过有效协议报文的 CAN 口;两路活跃则发送两路;没有活跃口时尝试两路。若未连接端口自动重发导致 TX FIFO 填满,现有队列可能等待。该策略沿用当前固件。任务表示操作员请求,VCU 负责裁决和安全互锁;当前实际任务由 `0x183` 反馈,不按请求立即显示;未定义逐请求 ACK 或运行完成报文,也不把任务号换成 ASSI 灯状态。 ## 显示缩放与失效规则 @@ -204,7 +265,7 @@ python scripts/send_drivetrain_can.py --interface pcan --channel PCAN_USBBUS1 -- 电流字段是带偏置的 uint16,不能按 int16 解码。温度原始 `0xFF` 为无效;DBC 枚举将其标为 Invalid。关闭枚举解码的工具可能显示 215,聚合时必须先排除 原始 255,不能把它当作 215 ℃。有效实际温度范围为 -40..214 ℃。第 9/10 路虚拟温度没有总线字段,最高温度也属于 MCU 派生结果,不新增虚构信号。 -BMS 扩展帧的其他字段没有纳入本 DBC,尤其字节 6..7 的低压电压不覆盖 SDC ADC。两类温度帧共用最高温度显示,后收到的温度帧更新该显示及有效性。SDC GPIO 原始电平尚无具名安全信号映射和正常极性,因此 debug 保持未知;轮频 Hz 尚无周长和每圈脉冲数,不能直接当 km/h。 +BMS 扩展帧的其他字段没有纳入本 DBC,尤其字节 6..7 的低压电压不覆盖 SDC ADC。两类温度帧共用最高温度显示,后收到的温度帧更新该显示及有效性。SDC GPIO PD0..PD14 按顺序映射到 d0、d5、d2、d6、d7、d1、d3、d4、d8..d14;全部低电平正常、高电平故障,d15 无来源保持未知。心跳维持已有采样,用户最新纠正 PD1 / Safe_S 为左电机互锁(d5),屏幕已删除 BSPD/TSMS。心跳和 GPIO 均停止超过 500 ms 后全部未知,恢复需要新的 GPIO 采样;轮频 Hz 尚无周长和每圈脉冲数,不能直接当 km/h。 有效值显示白色;未知、无效、超时显示深灰色,历史数值保留但不作为有效测量。各源独立超时,其他流量不续期。每 5 秒重新同步界面,刚连接需等待首轮同步。 @@ -213,6 +274,7 @@ BMS 扩展帧的其他字段没有纳入本 DBC,尤其字节 6..7 的低压电 | ID / DLC | 数据(十六进制) | 解码及仪表显示 | | --- | --- | --- | | `0x300 / 8` | `01 02 00 01 E8 03 00 00` | 直线加速请求、序号 0、来源 AMI、上电 1000 ms | +| `0x183 / 8` | `02 01 01 07 00 00 00 01` | 当前直线加速、已锁定、EBS 正常,三项有效 | | `0x182 / 8` | `F4 01 C2 01 90 01 07 01` | 500‰、45.0 ℃、40.0 ℃,三个值有效 | | `0x182 / 8` | `0C FE 9B FF 33 FF 07 01` | -500‰、-10.1 ℃、-20.5 ℃;显示 -500 / -10 / -21 | | `0x6A1 / 2` | `0C 30` | ADC 12300 mV;低压 12.30 V | @@ -234,7 +296,7 @@ python scripts/export_dbc_docs.py --check python scripts/verify_dbc.py --sdc-dbc ../SDC_ACQ_DAC/SDC_ACQ_DAC.dbc ``` -校验覆盖严格 DBC 解析(长度、信号越界与重叠)、11 个 ID 与固件宏对应、标准/扩展格式、40 个信号、发送/接收节点、SDC / 自定义帧周期、已知报文解码、六个任务号与计数边界编码、大端偏置电流、无效温度枚举、全负温度和截短 DLC。已安装并验证 cantools 44.1.0,接口参考 [cantools 官方文档](https://cantools.readthedocs.io/en/latest/)。 +校验覆盖严格 DBC 解析(长度、信号越界与重叠)、12 个 ID 与固件宏对应、标准/扩展格式、49 个信号、发送/接收节点、SDC / 自定义帧周期、已知报文解码、六个任务号与计数边界编码、大端偏置电流、无效温度枚举、全负温度和截短 DLC。已安装并验证 cantools 44.1.0,接口参考 [cantools 官方文档](https://cantools.readthedocs.io/en/latest/)。 上述是静态及软件编解码验证,另校验两份 DBC 的速率、相同信号布局及源码 / CubeMX 位时序一致。v2.2 的烧录回读、新帧 CAN2 测试及串口显示核验状态见 [显示 CAN 测试报告](AMI自定义显示CAN测试报告.md)。v2.1 已完成烧录、完整 Flash 回读比对、CAN1 500K 与 CAN2 250K 到官方 HMI 调试器的实物测试,详见 [双 CAN 测试报告](CAN1_CAN2_v2.1测试报告.md)。之前 v2.0 的 CAN 盒 -> 实物 AMI CAN1 / MCU -> USART2 -> COM4 -> 官方 HMI 调试器的实际更新和六个任务回传见 [联调报告](SDC_BMS联调报告.md)。物理串口屏、真实 SDC/BMS 节点、两路同时接入和车辆执行动作尚未实测;文档生成和 DBC 解析不替代这些测试。 diff --git a/docs/AMI自定义显示CAN测试报告.md b/docs/AMI自定义显示CAN测试报告.md index f28c906..5b74cac 100644 --- a/docs/AMI自定义显示CAN测试报告.md +++ b/docs/AMI自定义显示CAN测试报告.md @@ -6,7 +6,7 @@ - STM32G0B1CBT6,ST-LINK SN `37FF71064E573436188C1543`,目标 ID `0x467`,供电 3.28 V。 - Release 编译通过,Flash 15880 字节,RAM 2632 字节。 -- [当前 BIN](../output/firmware/AMI_Controller.bin) SHA256:`E73994418D346ADEF7E2ED5EE3C018C4CD3B74C4E4A2884CD8628218153BEA7F`。 +- [本次测试 v2.2 BIN](../output/firmware/AMI_Controller_v2.2_500k_250k.bin) SHA256:`E73994418D346ADEF7E2ED5EE3C018C4CD3B74C4E4A2884CD8628218153BEA7F`。通用 BIN 后续已更新为 v2.4,见 [VCU 反馈报告](VCU状态反馈测试报告.md);v2.3 的映射实测见 [DEBUG 映射报告](DEBUG十五路CAN映射测试报告.md)。 - 烧录返回 `Download verified successfully`,另完整回读 15880 字节,逐字节一致。 - CAN1 / CAN2 NBTP 分别为 `0x00070C01` / `0x000F0C01`;64 MHz 时钟下为 500K / 250K,采样点 87.5%。 - 两份 DBC 各 11 条报文、40 个信号,严格解析和 28 个已知报文校验通过;五条 SDC 布局与源 DBC 一致。 diff --git a/docs/DEBUG十五路CAN映射测试报告.md b/docs/DEBUG十五路CAN映射测试报告.md new file mode 100644 index 0000000..d8a3f9e --- /dev/null +++ b/docs/DEBUG十五路CAN映射测试报告.md @@ -0,0 +1,53 @@ +# DEBUG 十五路 CAN 映射与显示测试 + +本报告记录屏幕接口 1.2 的历史画面。用户随后纠正 PD1 / Safe_S 为左电机互锁,屏幕接口 1.3 将 d5 移至顶行第二格并删除 BSPD/TSMS,CAN 映射不变;后续布局验证见 [屏幕修正报告](DEBUG页面修正测试报告.md)。 + +2026-10-03,固件 v2.3。按用户提供的十五行接线表从上到下对应 PD0~PD14,最终确认极性为 **低电平正常、高电平故障**。此前高电平正常的版本仅编译,未烧录。 + +## 映射和界面范围 + +PD0~PD14 对应 `d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14`。具名信号表见 [SDC / BMS 协议](SDC_BMS协议.md)。d1 同时更新“左急停”与“行程/惯性”;d15(主控盒 12V)没有输入来源,保持未知。 + +**“电机互锁 / 无检测项”和“BSPD/TSMS / 返回支路”是现有页面的说明区域,没有独立采样映射,不随本次十五路输入变化。** 用户表也不包含这两项;本轮没有修改屏幕布局或为其派生状态。原图接线名称与当前屏幕部分显示名称的差异保留。 + +## 固件与验证链路 + +Release 编译通过,Flash 15988 B、RAM 2632 B。已通过 ST-LINK 烧录并完整回读 15988 字节,与发布 BIN 逐字节一致。SHA256:`17D1165C6894E0EBBF78B2C998A3D2F268D9E0D89446C5C978AC4FEB1329911E`。 + +链路:PCAN-USB → CAN1 500 kbit/s → 实物 STM32G0B1 MCU → USART2 → CH340 COM4 9600 8N1 → 官方 HMI 调试器的“用户 MCU 输入”。CAN2 250K 保持配置,共用解码与映射,但本次未重新接线测试。 + +重开 HMI 后最初停在 dash,导致早期页面颜色核对不匹配。停止串口输入后仅执行 `page debug` 导航命令,再切回用户 MCU 输入并连接 COM4;没有执行 dN 赋值。完整复测的所有状态变化均来自真实 CAN 注入及 MCU UART。 + +## 41 项完整复测:全部通过 + +| 检查 | 结果 | +| --- | --- | +| 仅心跳、尚未采样 | 全部未知,不误判正常 | +| 全低 | d0~d14 全正常,d15 未知 | +| 十五路逐项高、低,共 30 项 | 对应映射位置分别故障、正常;其他项保持正常 | +| PD5 高、低 | d1 两个位置同步红故障、绿正常 | +| 全高 | d0~d14 全故障,d15 未知 | +| 保留 bit15 | 屏蔽,不改变映射范围 | +| DLC 7、错误扩展格式 | 原电平、变化掩码、源时间戳和状态不被覆盖 | +| 仅心跳持续超过 500 ms | 已接收的 GPIO 状态继续有效,符合变化触发的源协议 | +| 心跳和 GPIO 均停止 | 超过 500 ms 后所有状态未知 | +| 丢失后只恢复心跳 | 仍未知,需新 GPIO 快照 | +| 新 GPIO 恢复 | 状态恢复正常 | +| 最终停止注入 | 状态再次全部未知 | + +每项核对真实 MCU 原始字段、源时间戳、16 个 DEBUG 状态及画面 17 个状态位置的颜色。PCAN 状态均为 `0x0`,MCU CAN / UART 接收错误计数均为 0;HMI 结束时接收计数 T:6973 / L:597。人工另检查全正常、全故障和 PD5 故障截图的文字与位置。 + +两份 DBC 的 11 条报文、40 个信号、28 个已知报文、位时序和 SDC 源布局校验通过。报文布局没有改变,仅更新映射说明和接口版本。软件仍使用 CAN 中断、UART DMA、变化项刷新和最新值合并。 + +## 证据 + +- [完整 CAN 报文、MCU 状态与画面核对](evidence/2026-10-03/debug-gpio-mapped/mapping-results.json) +- [烧录回读结果](evidence/2026-10-03/debug-gpio-mapped/flash-verified.json) +- [测试脚本](evidence/2026-10-03/debug-gpio-mapped/test_mapping.py) +- [用户输入顺序图](evidence/2026-10-03/debug-gpio-mapped/user-input-order.png) + +![全低正常](evidence/2026-10-03/debug-gpio-mapped/all_normal.png) + +![PD5 高电平使 d1 两个位置同步故障](evidence/2026-10-03/debug-gpio-mapped/PD5_high_fault.png) + +测试完成后停止 CAN 注入,HMI 保留 DEBUG 页和用户 MCU 输入模式,页面全部未知。未接物理串口屏、真实 SDC 节点或车辆执行器。本次证明显示输入与呈现链路,不能证明车辆安全动作。 diff --git a/docs/DEBUG十五路CAN测试报告.md b/docs/DEBUG十五路CAN测试报告.md new file mode 100644 index 0000000..be22976 --- /dev/null +++ b/docs/DEBUG十五路CAN测试报告.md @@ -0,0 +1,46 @@ +# DEBUG 十五路 CAN 测试 + +本报告记录未定义映射的 v2.2 历史结果。随后按用户表和最终“低正常、高故障”极性完成 v2.3 固件与页面测试,见 [映射测试报告](DEBUG十五路CAN映射测试报告.md)。 + +2026-10-03。本次保持 AMI.HMI 与固件不变,使用 PCAN-USB 模拟标准 `0x6A6 / DLC 8`,在实物 MCU 上核对原始采样和 DEBUG 状态。官方 HMI 调试器保持“用户 MCU 输入”、COM4、9600 8N1;没有执行键盘状态赋值。 + +## 测试结果 + +**CAN 原始十五路接收通过,DEBUG 页面状态变化未通过。** + +| 检查 | 结果 | +| --- | --- | +| PD0~PD14 每路置高、置低 | 30 项原始电平、变化掩码、源时间戳均符合预期 | +| 全零、全高、最终恢复全零 | 通过 | +| 保留 bit15 | MCU 屏蔽该位 | +| DLC 7、错误扩展 ID 0x6A6 | 被拒绝,原状态和源时间戳不被覆盖 | +| MCU `debug_state[0..15]` | 36 次快照始终全 0(未知) | +| 官方 HMI DEBUG 页面 | 全高和逐位注入后仍显示灰色“未知” | +| 串口接收计数 | 测试结束仍为 T:0 / L:0,MCU 到电脑的串口回传未得到验证 | + +36 个测试阶段 PCAN 状态均为 `0x0`,MCU CAN / UART 软件接收错误计数均为 0。接收正确由每次发送的独特源时间戳和 SWD 快照共同确认;不能仅凭 CAN 发送成功判断 MCU 已接收。 + +## 当前接线与固件 + +初次沿用历史 CAN2 250K 设置,报文没有更新 MCU;持续探测产生 PCAN bus-off(`0x10`)。500K 探测的独特时间戳被 CAN1 接收,确认当前 CAN 盒实际接在 CAN1。随后重开并复位 PCAN 接口,完整 36 项测试均在 **CAN1 500 kbit/s** 进行。 + +从实物 Flash 完整回读 15880 字节,与 `output/firmware/AMI_Controller.bin` 逐字节一致。SHA256:`E73994418D346ADEF7E2ED5EE3C018C4CD3B74C4E4A2884CD8628218153BEA7F`,对应 v2.2。 + +## 页面无法转换状态的原因 + +当前 `ami_app.c` 收到 `0x6A6` 后仅保存 `sdc_gpio_state`、`sdc_gpio_changed`、`sdc_gpio_timestamp_ms`,没有写入 `display_state.debug_state[]`。没有定义 PD0~PD14 到 d0~d15 的对应关系,以及每路正常电平;旧 `0x280` 显示输入在当前固件中已停用。 + +屏幕接口实际为 16 个变量 d0~d15,其中 d1 同时驱动两个显示位置。十五路物理输入与十六个具名状态之间的关系不能按编号直接推定。 + +后续可提供真实输入映射及正常极性,或另设只更新显示的 CAN 测试报文。串口 PA2(MCU TX)到转串口 RXD 的回传链路还需单独核实。物理串口屏、真实 SDC 节点和车辆安全动作没有在本次验证。 + +## 证据 + +- [报文、源时间戳和 MCU 快照](evidence/2026-10-03/debug-can-retest/gpio-can-results.json) +- [串口界面计数](evidence/2026-10-03/debug-can-retest/mcu-input-ui-counters.json) +- [接线探测](evidence/2026-10-03/debug-can-retest/link-probe.json) +- [本次测试脚本](evidence/2026-10-03/debug-can-retest/test_gpio_can.py) + +![全高采样后 DEBUG 仍未知](evidence/2026-10-03/debug-can-retest/mcu_all_high.png) + +测试结束后停止 CAN 注入,原始采样恢复全零,保持 DEBUG 页面和用户 MCU 输入模式。 diff --git a/docs/DEBUG页面修正测试报告.md b/docs/DEBUG页面修正测试报告.md new file mode 100644 index 0000000..a95d79f --- /dev/null +++ b/docs/DEBUG页面修正测试报告.md @@ -0,0 +1,42 @@ +# DEBUG 页面修正测试报告 + +2026-10-03,屏幕接口 1.3,MCU 固件 v2.3。用户最新确认 **PD1 / Safe_S 是左电机互锁,替换原左后悬项**;极性仍为低电平正常、高电平故障。最新确认优先于此前接线图片的第二行名称。 + +## 已保存的页面修改 + +- 顶行第二格显示“左电机互锁”,状态控件 t6 绑定 d5;对应 0x6A6 的 PD1。 +- 删除 BSPD/TSMS 卡片及“返回支路”、相关箭头。 +- 删除原“后悬 Safe_S”卡片及“无检测项”说明;RES 和主控盒改为第三行左右两格,分别保持 t7/d6、t8/d7。 +- 其他采样映射保持不变。d1 仍对应两处显示,d15(主控盒 12V)仍无采样来源、保持未知。 + +修改已写入根目录 AMI.HMI,并关闭、重新打开工程确认保存的事件内容与修改一致;t6 的位置为 x=160、y=57。DEBUG 后初始化事件的文本副本见 [debug-postinit.txt](../scripts/hmi/debug-postinit.txt)。不需要重烧 MCU,本次仅调整显示名称和位置。 + +## 验证结果及边界 + +| 验证 | 本轮结果 | +| --- | --- | +| 官方 HMI 编辑器编译 | 0 错误、0 警告,编译输出 6,238,816 字节 | +| 新页面键盘模拟 | 13 项通过;核对 16 个状态变量的 17 处显示颜色 | +| 左电机互锁 d5 | 正常、故障、未知三种显示均正确,其他项保持未知 | +| 移动后的 RES d6、主控盒 d7 | 各自正常、故障、未知三种显示均正确 | +| 全部正常、全部故障、初始及最终未知 | 均正确;d15 始终未知 | +| 实物 CAN1 500 kbit/s → MCU | 41 项 RAM 状态核对通过,含逐路高/低、无效帧、超时及恢复 | +| 新页面实物 MCU → COM4 → HMI 调试器 | 未通过;调试器接收计数为 0,直接打开 COM4、9600 8N1 读取 6 秒也为 0 字节 | + +本轮直接串口读取为空时,SWD 检查显示 screen_tx_busy=0、display_dirty=0,UART/DMA 未处于发送忙状态;这不足以确定串口接线或适配器的具体原因。未用键盘模拟结果冒充 CAN 到新页面的串口验证,也未验证实际 TJC 屏幕下载后的显示。 + +历史屏幕接口 1.2 的 CAN → MCU → COM4 → 官方模拟器完整测试曾通过,见 [十五路映射历史报告](DEBUG十五路CAN映射测试报告.md)。该历史结果不能替代本轮修改后页面的串口复测。 + +## 可复核证据 + +- [编译记录](evidence/2026-10-03/debug-layout/compile.log) +- [已保存工程的 SHA256 和重开核对](evidence/2026-10-03/debug-layout/saved-project.json) +- [13 项页面模拟记录](evidence/2026-10-03/debug-layout/simulator-results.json) +- [左电机互锁故障画面](evidence/2026-10-03/debug-layout/sim_left_motor_interlock_2.png) +- [全正常画面](evidence/2026-10-03/debug-layout/sim_all_normal.png) +- [41 项 CAN / MCU 核对和串口页面不匹配记录](evidence/2026-10-03/debug-layout/mapping-results.json) +- [COM4 直接读取结果](evidence/2026-10-03/debug-layout/uart-direct.json) +- [页面模拟检查脚本](evidence/2026-10-03/debug-layout/test_new_simulator.py) +- [CAN 注入及 MCU 检查脚本](evidence/2026-10-03/debug-layout/test_mapping.py) + +![左电机互锁故障,其他状态未知](evidence/2026-10-03/debug-layout/sim_left_motor_interlock_2.png) diff --git a/docs/SDC_BMS协议.md b/docs/SDC_BMS协议.md index 57a9be2..e62e802 100644 --- a/docs/SDC_BMS协议.md +++ b/docs/SDC_BMS协议.md @@ -1,6 +1,8 @@ # AMI 接入 SDC / BMS 协议 -版本 2.2,2026-10-03。CAN1 为 500 kbit/s,CAN2 为 250 kbit/s;两路均为 Classic CAN、87.5% 采样点,接收 ID、解码和任务发送功能相同,不转发原始帧。CAN1 使用 [AMI.dbc](../AMI.dbc),CAN2 使用 [AMI_CAN2_250k.dbc](../AMI_CAN2_250k.dbc)。当前固件不再接收旧 `0x180 / 0x181 / 0x280` 数据接口。 +版本 2.4,2026-10-03。CAN1 为 500 kbit/s,CAN2 为 250 kbit/s;两路均为 Classic CAN、87.5% 采样点,接收 ID、解码和任务发送功能相同,不转发原始帧。CAN1 使用 [AMI.dbc](../AMI.dbc),CAN2 使用 [AMI_CAN2_250k.dbc](../AMI_CAN2_250k.dbc)。当前固件不再接收旧 `0x180 / 0x181 / 0x280` 数据接口。 + +VCU 实际当前任务、锁定和 EBS 汇总显示由新增标准 `0x183 / DLC 8` 输入,独立超时 500 ms。任务按钮仅发送 0x300 请求,不更新实际任务;完整布局和颜色见 [VCU 反馈协议](AMI_CAN_DBC说明.md#vcu-状态反馈-0x183),验证边界见 [反馈报告](VCU状态反馈测试报告.md)。本页 SDC / BMS 采样与该 VCU 反馈独立。 v2.1 已通过源码 / CubeMX 位时序一致性检查及 Release 编译,已烧录并完整回读比对;CAN1 500K(SDC)与 CAN2 250K(BMS)分别通过数据更新、失效恢复和六个任务确认/取消测试,见 [双 CAN 测试报告](CAN1_CAN2_v2.1测试报告.md)。本文后面旧的实物联调引用属于两路均为 500K 的 v2.0。 @@ -14,11 +16,31 @@ v2.1 已通过源码 / CubeMX 位时序一致性检查及 Release 编译,已 | `0x6A1 / 2` | 小端 uint16 mV | **低压电池电压**,`dash.lvbat.val=(mV+5)/10`,虚拟浮点显示两位小数 | | `0x6A2 / 8` | 四个小端 uint16 Hz,PA0 / PA2 / PA6 / PB14 | 保存原始频率;没有周长和每圈脉冲数,不直接当 km/h | | `0x6A4 / 4` | 结果、DAC 选择、小端 uint16 mV | 接收应答,不作为仪表电压 | -| `0x6A6 / 8` | 小端 uint16 PD0..PD14 电平 + uint16 变化掩码 + uint32 ms | 保存原始电平、变化和时间 | +| `0x6A6 / 8` | 小端 uint16 PD0..PD14 电平 + uint16 变化掩码 + uint32 ms | 保存原始电平、变化和时间,并按下表更新 DEBUG | `0x6A3` DAC 设置和 `0x6A5` ASSI 设置是发给 SDC 的控制,不属于本次显示输入。ADC 已由 SDC 校准为分压前物理输入电压,AMI 不再乘分压倍数。`08 20` = 8200 mV = 8.20 V;`0C 30` = 12300 mV = 12.30 V。DLC 必须为 2。 -GPIO 帧仅在启动和电平变化时发送,持续心跳表示源仍在线。DBC 没有 PD0..PD14 对应 `d0..d15` 安全信号的名称及正常极性;当前具名 debug 保持未知,不把高/低电平直接判为正常/故障。 +GPIO 帧仅在启动和电平变化时发送,持续心跳维持已有采样。用户已确认按接线表从上到下对应 PD0~PD14,且全部低电平正常、高电平故障。映射如下(这是输入位序,屏幕变量编号保持原定义): + +| 输入 | 信号 | 屏幕变量 | +| --- | --- | --- | +| PD0 | Safe_DBBox_OUT | d0 | +| PD1 | Safe_S(用户纠正为左电机互锁) | d5 | +| PD2 | Safe_Ba_BOX | d2 | +| PD3 | Safe_RES1 | d6 | +| PD4 | Safe_Control | d7 | +| PD5 | Safe_L&BOTS&IW | d1(两个位置同步) | +| PD6 | Safe_RSTOP | d3 | +| PD7 | Safe_LAST | d4 | +| PD8 | EBS_BE | d8 | +| PD9 | EBS_12V | d9 | +| PD10 | EBS_AIR | d10 | +| PD11 | EBS_Oil | d11 | +| PD12 | Driverless_INS | d12 | +| PD13 | Driverless_WSS | d13 | +| PD14 | Driverless_Camera | d14 | + +没有 GPIO 采样时保持未知;d15(12V_Control)无来源,始终未知。心跳和 GPIO 都超过 500 ms 未接收后全部状态清为未知;仅恢复心跳不会恢复旧状态,需新 GPIO 采样。变化掩码仅记录,不限制整帧电平的更新,bit15 屏蔽。CAN1/CAN2 共用映射;实测范围见 [映射测试报告](DEBUG十五路CAN映射测试报告.md)。 ## BMS 输入 diff --git a/docs/VCU状态反馈测试报告.md b/docs/VCU状态反馈测试报告.md new file mode 100644 index 0000000..99e751f --- /dev/null +++ b/docs/VCU状态反馈测试报告.md @@ -0,0 +1,71 @@ +# VCU 状态反馈测试报告 + +2026-10-03,屏幕接口 1.4,MCU CAN 接口 v2.4。按用户要求,当前任务、锁定、EBS 状态由 VCU CAN 反馈决定;确认发送只发任务请求,不直接显示为已执行任务。 + +## 接口与页面行为 + +新增自定义标准帧 **0x183 / DLC 8 / 建议 100 ms**。该帧需要 VCU 实现;它不是从已有 VCU 文档确认的现成协议。两路使用相同布局,CAN1 500 kbit/s,CAN2 250 kbit/s。 + +| 字节 | 含义 | +| --- | --- | +| 0 | 实际当前任务,0 无,1~6 沿用任务编号 | +| 1 | 锁定:0 已解锁,1 已锁定 | +| 2 | EBS:0 故障,1 正常 | +| 3 | 有效标志:bit0 任务、bit1 锁定、bit2 EBS;其余位为 0 | +| 4 | 反馈计数 0~255,仅供观察,不作为请求 ACK | +| 5~6 | 保留,必须为 0 | +| 7 | 帧版本,固定 1 | + +例如 `02 01 01 07 00 00 00 01`:直线加速、已锁定、EBS 正常,三项均有效。各有效标志为 0 时对应项立即未知;超过 500 ms 未收到合规反馈后三项均未知。其他 CAN 流量不能续期。错误枚举、DLC、版本、保留位或扩展/远程/FD 格式不更新状态、不刷新超时。 + +| 显示项 | 绿色 | 红色 | 灰色 | +| --- | --- | --- | --- | +| 当前任务 | VCU 反馈的任务 1~6 | VCU 反馈无任务 0 | 无反馈、无效或超时 | +| 锁定 | 已锁定 | 已解锁 | 锁定未知 | +| EBS | 正常,绿底白字 | 故障,红底白字 | EBS 未知,黑底灰字 | + +屏内保留 current_task,新增 lock_state、ebs_state 和渲染缓存。任务状态 7 表示未知;锁定/EBS 屏内编码为 0 未知、1 绿、2 红。dash 后初始化和 100 ms 定时器渲染文字、颜色及任务按钮;离开页面时仍可更新全局状态,返回后重新渲染。CONFIRM 的确认事件已删除 `current_task=pending_task`,仍发送原六字节串口任务帧并清除待选任务。DEBUG 的 EBS 各路检测不自行决定主页面 EBS 汇总状态。 + +源码副本:[Program.s](../scripts/hmi/Program.s)、[dash 状态渲染](../scripts/hmi/dash-status-render.txt)、[dash 后初始化](../scripts/hmi/dash-postinit.txt)、[确认发送](../scripts/hmi/confirm-send.txt)。实际修改已保存到根目录 AMI.HMI。 + +## 已通过的验证 + +| 验证 | 结果 | +| --- | --- | +| 官方 HMI 编译 | 0 错误、0 警告,编译输出 6,241,148 字节 | +| MCU Release 编译 | Flash 16,428 字节,RAM 2,640 字节 | +| ST-LINK 烧录及全量回读 | 16,428 字节逐字节一致 | +| 两份 DBC 校验 | 12 条报文、49 个信号、84 个已知报文编解码检查通过;两路布局、源码/CubeMX 位时序、SDC 源布局一致 | +| CAN1 → 实物 MCU | 43 项检查通过,CAN/UART 接收错误计数均为 0 | +| MCU → COM4 9600 8N1 捕获 | 收到 4,898 字节,含 current_task、lock_state、ebs_state 的完整赋值指令及真实 FF FF FF | +| COM4 注入任务请求 → CAN1 | 收到 `0x300: 01 05 00 01 A8 08 08 00`;实际任务保持 VCU 反馈的 2,不被请求的 5 覆盖 | +| 官方模拟器键盘状态输入及事件模拟 | 15 项检查通过;该结果不等于物理串口屏测试 | + +43 项 MCU 检查覆盖:上电未知、任务 0~6、全部 8 种有效标志、反馈计数 255→0、7 类非法字段、截短 DLC、错误扩展帧、远程帧、其他 CAN 心跳持续时 VCU 独立超时、反馈恢复、请求不改变实际任务、GPIO 与 0x182 回归、最终超时。非法帧测试持续发送超过 500 ms,确认其不能阻止状态过期,且反馈时间戳不被刷新。 + +15 项页面检查覆盖:上电未知、任务 0~6、解锁/EBS 故障、无效反馈、确认请求前后、跨页反馈、取消请求、最终未知。确认测试先设置 VCU 实际任务 2,选择 EBS 测试 5,执行真实确认事件后,画面仍为直线加速;`get current_task` 返回 `71 02 00 00 00 FF FF FF`。模拟点击使用按下及弹起两次事件,避免仅按下却没有执行确认脚本。 + +固件 SHA256:`A772BD9D1A278ED061B659E7996D276EBFA59FCC65260D0C7FC8A34F67BF0293`。已保存 HMI SHA256:`2F59E1E3D757A06BBD882CD92BB78ED4BFD0336EB14872E5B33A15EA6F69F65B`。此前 v2.3 BIN 保留为 AMI_Controller_v2.3_500k_250k.bin。 + +## 尚未通过的整链路复测 + +CAN1 → 实物 MCU → USART2 → COM4 → 官方 HMI 模拟器首轮观察到 13 项画面颜色检查通过,包括七个任务编号、锁定/EBS 两种颜色和各项无效反馈。但尝试在用户 MCU 输入模式下通过鼠标确认请求时,未进入预期确认画面、未捕获对应 0x300,模拟器出现 `23 FF FF FF`。官方返回码对应“变量名称太长”;这里保留现象,尚未确定触发原因。 + +后续完整复测没有通过,PCAN 独立发送工具随后报 `Bus error: the CAN controller is in bus-off state`。未确认总线故障原因,不能将此前通过的局部检查写成稳定的整链路全部通过。实际 TJC 屏幕下载、触摸及车辆 VCU 实际发送仍待验证。当前页面逻辑与 CAN/UART 编解码分别有已通过证据。 + +## 证据 + +- [43 项 MCU 检查及 UART 指令](evidence/2026-10-03/vcu-status/mcu-results.json) +- [原始 UART 字节](evidence/2026-10-03/vcu-status/uart-capture.bin) +- [15 项页面检查](evidence/2026-10-03/vcu-status/simulator-results.json) +- [确认请求后仍显示 VCU 任务 2 的查询截图](evidence/2026-10-03/vcu-status/sim-current-task-query.png) +- [编译记录](evidence/2026-10-03/vcu-status/compile.log) +- [烧录回读](evidence/2026-10-03/vcu-status/flash-verified.json) +- [DBC 校验](evidence/2026-10-03/vcu-status/dbc-verification.json) +- [整链路复测未通过记录](evidence/2026-10-03/vcu-status/integration-unverified.json) + +![绿色状态示例](evidence/2026-10-03/vcu-status/sim-task-2-green.png) + +![解锁及 EBS 故障示例](evidence/2026-10-03/vcu-status/sim-unlocked-ebs-fault.png) + +发送预览:`python scripts/send_vcu_status_can.py --task 2 --locked 1 --ebs-normal 1 --dry-run`。完整帧规则和样例同步到 [DBC 说明](AMI_CAN_DBC说明.md#vcu-状态反馈-0x183) 与 [CAN 报文 PDF](../output/pdf/AMI_CAN报文说明.pdf)。 diff --git a/docs/evidence/2026-10-03/debug-can-retest/current_hmi.png b/docs/evidence/2026-10-03/debug-can-retest/current_hmi.png new file mode 100644 index 0000000000000000000000000000000000000000..1964147ea97860598fa60d9a807a1552e41359b7 GIT binary patch literal 90953 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%0Dl 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 Wq3?HG7_I+Yl@ybES0rli`Tqfd{C*Pv literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio-can-results.json b/docs/evidence/2026-10-03/debug-can-retest/gpio-can-results.json new file mode 100644 index 0000000..86e04da --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio-can-results.json @@ -0,0 +1,1399 @@ +{ + "result": "Raw GPIO reception passed; DEBUG page state changes FAILED", + "HMI_input_mode": "User MCU input, COM4 9600 8N1; no keyboard commands executed in this run", + "HMI_rx_counters": [ + { + "id": "datalabelText0", + "text": "T:0" + }, + { + "id": "datalabelList0", + "text": "L:0" + }, + { + "id": "datalabelText1", + "text": "T:0" + }, + { + "id": "datalabelList1", + "text": "L:0" + } + ], + "bitrate": 500000, + "physical_port": "CAN1", + "source": "CAN-box simulation of SDC 0x6A6 format on CAN1 500K", + "checked_inputs": 15, + "checks": [ + { + "name": "zero", + "id": "0x6A6", + "data": "00 00 ff 7f e8 03 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 1000, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4590380, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_zero.png" + }, + { + "name": "PD0_high", + "id": "0x6A6", + "data": "01 00 01 00 d0 07 00 00", + "extended": false, + "snapshot": { + "state": 1, + "changed": 1, + "timestamp": 2000, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4591167, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD0_high.png" + }, + { + "name": "PD0_low", + "id": "0x6A6", + "data": "00 00 01 00 d1 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 1, + "timestamp": 2001, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4591962, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD0_low.png" + }, + { + "name": "PD1_high", + "id": "0x6A6", + "data": "02 00 02 00 d2 07 00 00", + "extended": false, + "snapshot": { + "state": 2, + "changed": 2, + "timestamp": 2002, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4592727, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD1_high.png" + }, + { + "name": "PD1_low", + "id": "0x6A6", + "data": "00 00 02 00 d3 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 2, + "timestamp": 2003, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4593493, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD1_low.png" + }, + { + "name": "PD2_high", + "id": "0x6A6", + "data": "04 00 04 00 d4 07 00 00", + "extended": false, + "snapshot": { + "state": 4, + "changed": 4, + "timestamp": 2004, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4594264, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD2_high.png" + }, + { + "name": "PD2_low", + "id": "0x6A6", + "data": "00 00 04 00 d5 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 4, + "timestamp": 2005, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4595027, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD2_low.png" + }, + { + "name": "PD3_high", + "id": "0x6A6", + "data": "08 00 08 00 d6 07 00 00", + "extended": false, + "snapshot": { + "state": 8, + "changed": 8, + "timestamp": 2006, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4595796, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD3_high.png" + }, + { + "name": "PD3_low", + "id": "0x6A6", + "data": "00 00 08 00 d7 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 8, + "timestamp": 2007, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4596561, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD3_low.png" + }, + { + "name": "PD4_high", + "id": "0x6A6", + "data": "10 00 10 00 d8 07 00 00", + "extended": false, + "snapshot": { + "state": 16, + "changed": 16, + "timestamp": 2008, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4597326, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD4_high.png" + }, + { + "name": "PD4_low", + "id": "0x6A6", + "data": "00 00 10 00 d9 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 16, + "timestamp": 2009, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4598090, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD4_low.png" + }, + { + "name": "PD5_high", + "id": "0x6A6", + "data": "20 00 20 00 da 07 00 00", + "extended": false, + "snapshot": { + "state": 32, + "changed": 32, + "timestamp": 2010, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4598849, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD5_high.png" + }, + { + "name": "PD5_low", + "id": "0x6A6", + "data": "00 00 20 00 db 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 32, + "timestamp": 2011, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4599614, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD5_low.png" + }, + { + "name": "PD6_high", + "id": "0x6A6", + "data": "40 00 40 00 dc 07 00 00", + "extended": false, + "snapshot": { + "state": 64, + "changed": 64, + "timestamp": 2012, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4600374, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD6_high.png" + }, + { + "name": "PD6_low", + "id": "0x6A6", + "data": "00 00 40 00 dd 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 64, + "timestamp": 2013, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4601142, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD6_low.png" + }, + { + "name": "PD7_high", + "id": "0x6A6", + "data": "80 00 80 00 de 07 00 00", + "extended": false, + "snapshot": { + "state": 128, + "changed": 128, + "timestamp": 2014, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4601909, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD7_high.png" + }, + { + "name": "PD7_low", + "id": "0x6A6", + "data": "00 00 80 00 df 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 128, + "timestamp": 2015, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4602680, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD7_low.png" + }, + { + "name": "PD8_high", + "id": "0x6A6", + "data": "00 01 00 01 e0 07 00 00", + "extended": false, + "snapshot": { + "state": 256, + "changed": 256, + "timestamp": 2016, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4603441, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD8_high.png" + }, + { + "name": "PD8_low", + "id": "0x6A6", + "data": "00 00 00 01 e1 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 256, + "timestamp": 2017, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4604207, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD8_low.png" + }, + { + "name": "PD9_high", + "id": "0x6A6", + "data": "00 02 00 02 e2 07 00 00", + "extended": false, + "snapshot": { + "state": 512, + "changed": 512, + "timestamp": 2018, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4604970, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD9_high.png" + }, + { + "name": "PD9_low", + "id": "0x6A6", + "data": "00 00 00 02 e3 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 512, + "timestamp": 2019, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4605732, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD9_low.png" + }, + { + "name": "PD10_high", + "id": "0x6A6", + "data": "00 04 00 04 e4 07 00 00", + "extended": false, + "snapshot": { + "state": 1024, + "changed": 1024, + "timestamp": 2020, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4606496, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD10_high.png" + }, + { + "name": "PD10_low", + "id": "0x6A6", + "data": "00 00 00 04 e5 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 1024, + "timestamp": 2021, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4607258, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD10_low.png" + }, + { + "name": "PD11_high", + "id": "0x6A6", + "data": "00 08 00 08 e6 07 00 00", + "extended": false, + "snapshot": { + "state": 2048, + "changed": 2048, + "timestamp": 2022, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4608014, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD11_high.png" + }, + { + "name": "PD11_low", + "id": "0x6A6", + "data": "00 00 00 08 e7 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 2048, + "timestamp": 2023, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4608785, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD11_low.png" + }, + { + "name": "PD12_high", + "id": "0x6A6", + "data": "00 10 00 10 e8 07 00 00", + "extended": false, + "snapshot": { + "state": 4096, + "changed": 4096, + "timestamp": 2024, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4609543, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD12_high.png" + }, + { + "name": "PD12_low", + "id": "0x6A6", + "data": "00 00 00 10 e9 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 4096, + "timestamp": 2025, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4610301, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD12_low.png" + }, + { + "name": "PD13_high", + "id": "0x6A6", + "data": "00 20 00 20 ea 07 00 00", + "extended": false, + "snapshot": { + "state": 8192, + "changed": 8192, + "timestamp": 2026, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4611068, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD13_high.png" + }, + { + "name": "PD13_low", + "id": "0x6A6", + "data": "00 00 00 20 eb 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 8192, + "timestamp": 2027, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4611840, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD13_low.png" + }, + { + "name": "PD14_high", + "id": "0x6A6", + "data": "00 40 00 40 ec 07 00 00", + "extended": false, + "snapshot": { + "state": 16384, + "changed": 16384, + "timestamp": 2028, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4612595, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD14_high.png" + }, + { + "name": "PD14_low", + "id": "0x6A6", + "data": "00 00 00 40 ed 07 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 16384, + "timestamp": 2029, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4613360, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_PD14_low.png" + }, + { + "name": "all_high", + "id": "0x6A6", + "data": "ff 7f ff 7f ff ff ff ff", + "extended": false, + "snapshot": { + "state": 32767, + "changed": 32767, + "timestamp": 4294967295, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4614121, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_all_high.png" + }, + { + "name": "unused_bit15", + "id": "0x6A6", + "data": "01 80 02 80 88 13 00 00", + "extended": false, + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4614880, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_unused_bit15.png" + }, + { + "name": "truncated", + "id": "0x6A6", + "data": "ff ff ff ff 70 17 00", + "extended": false, + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4614880, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_truncated.png" + }, + { + "name": "extended", + "id": "0x6A6", + "data": "ff ff ff ff 58 1b 00 00", + "extended": true, + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4614880, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_extended.png" + }, + { + "name": "final_zero", + "id": "0x6A6", + "data": "00 00 ff 7f 40 1f 00 00", + "extended": false, + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "received": true, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 4617159, + 4301966 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0", + "screenshot": "mcu_final_zero.png" + } + ], + "firmware_mapping_present": false, + "pcan_status": "0x0", + "firmware_sha256": "E73994418D346ADEF7E2ED5EE3C018C4CD3B74C4E4A2884CD8628218153BEA7F" +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD0_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD0_high_ram.log new file mode 100644 index 0000000..3ebea2f --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD0_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00460E3F 0041A48E +0x200002DC : 00000000 00010FA0 000007D0 00010001 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00460E3F +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD0_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD0_low_ram.log new file mode 100644 index 0000000..e15bbba --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD0_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0046115A 0041A48E +0x200002DC : 00000000 00010FA0 000007D1 00000001 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 0046115A +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD10_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD10_high_ram.log new file mode 100644 index 0000000..1024ea6 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD10_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00464A20 0041A48E +0x200002DC : 00000000 00010FA0 000007E4 04000400 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00464A20 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD10_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD10_low_ram.log new file mode 100644 index 0000000..f23d621 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD10_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00464D1A 0041A48E +0x200002DC : 00000000 00010FA0 000007E5 00000400 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00464D1A +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD11_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD11_high_ram.log new file mode 100644 index 0000000..9e62eca --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD11_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0046500E 0041A48E +0x200002DC : 00000000 00010FA0 000007E6 08000800 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 0046500E +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD11_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD11_low_ram.log new file mode 100644 index 0000000..51161e6 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD11_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00465311 0041A48E +0x200002DC : 00000000 00010FA0 000007E7 00000800 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00465311 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD12_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD12_high_ram.log new file mode 100644 index 0000000..c7d2d16 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD12_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00465607 0041A48E +0x200002DC : 00000000 00010FA0 000007E8 10001000 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00465607 +0x2000030C : 0000A236 00FFFFFC 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD12_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD12_low_ram.log new file mode 100644 index 0000000..7d4734b --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD12_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 004658FD 0041A48E +0x200002DC : 00000000 00010FA0 000007E9 00001000 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 004658FD +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD13_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD13_high_ram.log new file mode 100644 index 0000000..4efbf36 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD13_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00465BFC 0041A48E +0x200002DC : 00000000 00010FA0 000007EA 20002000 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00465BFC +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD13_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD13_low_ram.log new file mode 100644 index 0000000..db3fdcc --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD13_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00465F00 0041A48E +0x200002DC : 00000000 00010FA0 000007EB 00002000 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00465F00 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD14_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD14_high_ram.log new file mode 100644 index 0000000..ded39fb --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD14_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 004661F3 0041A48E +0x200002DC : 00000000 00010FA0 000007EC 40004000 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 004661F3 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD14_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD14_low_ram.log new file mode 100644 index 0000000..397ca0c --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD14_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 004664F0 0041A48E +0x200002DC : 00000000 00010FA0 000007ED 00004000 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 004664F0 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD1_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD1_high_ram.log new file mode 100644 index 0000000..14f07ec --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD1_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00461457 0041A48E +0x200002DC : 00000000 00010FA0 000007D2 00020002 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00461457 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD1_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD1_low_ram.log new file mode 100644 index 0000000..9152c9b --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD1_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00461755 0041A48E +0x200002DC : 00000000 00010FA0 000007D3 00000002 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00461755 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD2_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD2_high_ram.log new file mode 100644 index 0000000..55c132a --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD2_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00461A58 0041A48E +0x200002DC : 00000000 00010FA0 000007D4 00040004 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00461A58 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD2_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD2_low_ram.log new file mode 100644 index 0000000..b6e149d --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD2_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00461D53 0041A48E +0x200002DC : 00000000 00010FA0 000007D5 00000004 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00461D53 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD3_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD3_high_ram.log new file mode 100644 index 0000000..a6aeb6a --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD3_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00462054 0041A48E +0x200002DC : 00000000 00010FA0 000007D6 00080008 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00462054 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD3_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD3_low_ram.log new file mode 100644 index 0000000..25081dd --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD3_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00462351 0041A48E +0x200002DC : 00000000 00010FA0 000007D7 00000008 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00462351 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD4_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD4_high_ram.log new file mode 100644 index 0000000..114f37d --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD4_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0046264E 0041A48E +0x200002DC : 00000000 00010FA0 000007D8 00100010 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 0046264E +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD4_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD4_low_ram.log new file mode 100644 index 0000000..fdbb795 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD4_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0046294A 0041A48E +0x200002DC : 00000000 00010FA0 000007D9 00000010 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 0046294A +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD5_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD5_high_ram.log new file mode 100644 index 0000000..82039e1 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD5_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00462C41 0041A48E +0x200002DC : 00000000 00010FA0 000007DA 00200020 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00462C41 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD5_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD5_low_ram.log new file mode 100644 index 0000000..064fdd5 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD5_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00462F3E 0041A48E +0x200002DC : 00000000 00010FA0 000007DB 00000020 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00462F3E +0x2000030C : 0000A236 00FFFFC0 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD6_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD6_high_ram.log new file mode 100644 index 0000000..ca02ea7 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD6_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00463236 0041A48E +0x200002DC : 00000000 00010FA0 000007DC 00400040 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00463236 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD6_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD6_low_ram.log new file mode 100644 index 0000000..53a4172 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD6_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00463536 0041A48E +0x200002DC : 00000000 00010FA0 000007DD 00000040 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00463536 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD7_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD7_high_ram.log new file mode 100644 index 0000000..9694d37 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD7_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00463835 0041A48E +0x200002DC : 00000000 00010FA0 000007DE 00800080 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00463835 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD7_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD7_low_ram.log new file mode 100644 index 0000000..2e6349a --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD7_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00463B38 0041A48E +0x200002DC : 00000000 00010FA0 000007DF 00000080 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00463B38 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD8_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD8_high_ram.log new file mode 100644 index 0000000..2151104 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD8_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00463E31 0041A48E +0x200002DC : 00000000 00010FA0 000007E0 01000100 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00463E31 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD8_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD8_low_ram.log new file mode 100644 index 0000000..8dbc48d --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD8_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0046412F 0041A48E +0x200002DC : 00000000 00010FA0 000007E1 00000100 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 0046412F +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD9_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD9_high_ram.log new file mode 100644 index 0000000..d82d9cd --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD9_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0046442A 0041A48E +0x200002DC : 00000000 00010FA0 000007E2 02000200 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 0046442A +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_PD9_low_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD9_low_ram.log new file mode 100644 index 0000000..ee49d0a --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_PD9_low_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00464724 0041A48E +0x200002DC : 00000000 00010FA0 000007E3 00000200 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00464724 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_all_high_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_all_high_ram.log new file mode 100644 index 0000000..33d9815 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_all_high_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 004667E9 0041A48E +0x200002DC : 00000000 00010FA0 FFFFFFFF 7FFF7FFF +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 004667E9 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_extended_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_extended_ram.log new file mode 100644 index 0000000..c89d736 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_extended_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00466AE0 0041A48E +0x200002DC : 00000000 00010FA0 00001388 00010002 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00466AE0 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_final_zero_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_final_zero_ram.log new file mode 100644 index 0000000..e2045cc --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_final_zero_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 004673C7 0041A48E +0x200002DC : 00000000 00010FA0 00001F40 00007FFF +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 004673C7 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_truncated_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_truncated_ram.log new file mode 100644 index 0000000..c89d736 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_truncated_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00466AE0 0041A48E +0x200002DC : 00000000 00010FA0 00001388 00010002 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00466AE0 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_unused_bit15_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_unused_bit15_ram.log new file mode 100644 index 0000000..c89d736 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_unused_bit15_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00466AE0 0041A48E +0x200002DC : 00000000 00010FA0 00001388 00010002 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00466AE0 +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/gpio_zero_ram.log b/docs/evidence/2026-10-03/debug-can-retest/gpio_zero_ram.log new file mode 100644 index 0000000..d0a048b --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/gpio_zero_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00460B2C 0041A48E +0x200002DC : 00000000 00010FA0 000003E8 00007FFF +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 00460B2C +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/link-probe.json b/docs/evidence/2026-10-03/debug-can-retest/link-probe.json new file mode 100644 index 0000000..263a23a --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/link-probe.json @@ -0,0 +1,20 @@ +[ + { + "bitrate": 250000, + "tag": 250123, + "pcan_status": "0x10", + "send_errors": [ + "Failed to send: Bus error: the CAN controller is in bus-off state" + ], + "ram": " -------------------------------------------------------------------\r\n STM32CubeProgrammer v2.20.0 \r\n -------------------------------------------------------------------\r\n\r\nST-LINK SN : 37FF71064E573436188C1543\r\nST-LINK FW : V2J47S7\r\nBoard : --\r\nVoltage : 3.28V\r\nSWD freq : 950 KHz\r\nConnect mode: Hot Plug\r\nReset mode : Software reset\r\nDevice ID : 0x467\r\nRevision ID : Rev Z\r\nDevice name : STM32G0B0xx/B1xx/C1xx\r\nFlash size : 128 KBytes\r\nDevice type : MCU\r\nDevice CPU : Cortex-M0+\r\nBL Version : 0x92\r\n\r\n\r\nReading 32-bit memory content\r\n Size : 128 Bytes\r\n Address: : 0x200002CC\r\n\r\n0x200002CC : 00000000 00000000 00000000 0041A48E\r\n0x200002DC : 00000000 00010FA0 00001F40 00007FFF\r\n0x200002EC : 00000000 00000000 00000000 0000A236\r\n0x200002FC : 00006586 00006585 00000000 0041A48E\r\n0x2000030C : 0000A236 00000000 00000000 00000190\r\n0x2000031C : 000001F4 00000000 0000002D 00000028\r\n0x2000032C : 0000001B 00000000 00000000 00000000\r\n0x2000033C : 00000000 00000000 00000000 1C6D559A\r\n" + }, + { + "bitrate": 500000, + "tag": 500123, + "pcan_status": "0x10", + "send_errors": [ + "Failed to send: Bus error: the CAN controller is in bus-off state" + ], + "ram": " -------------------------------------------------------------------\r\n STM32CubeProgrammer v2.20.0 \r\n -------------------------------------------------------------------\r\n\r\nST-LINK SN : 37FF71064E573436188C1543\r\nST-LINK FW : V2J47S7\r\nBoard : --\r\nVoltage : 3.28V\r\nSWD freq : 950 KHz\r\nConnect mode: Hot Plug\r\nReset mode : Software reset\r\nDevice ID : 0x467\r\nRevision ID : Rev Z\r\nDevice name : STM32G0B0xx/B1xx/C1xx\r\nFlash size : 128 KBytes\r\nDevice type : MCU\r\nDevice CPU : Cortex-M0+\r\nBL Version : 0x92\r\n\r\n\r\nReading 32-bit memory content\r\n Size : 128 Bytes\r\n Address: : 0x200002CC\r\n\r\n0x200002CC : 00000000 00000000 0045AF8D 0041A48E\r\n0x200002DC : 00000000 00010FA0 0007A19B 00010001\r\n0x200002EC : 00000000 00000000 00000000 0000A236\r\n0x200002FC : 00006586 00006585 00000000 0045AF8D\r\n0x2000030C : 0000A236 00000000 00000000 00000190\r\n0x2000031C : 000001F4 00000000 0000002D 00000028\r\n0x2000032C : 0000001B 00000000 00000000 00000000\r\n0x2000033C : 00000000 00000000 00000000 1C6D559A\r\n" + } +] \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-can-retest/mcu-input-ui-counters.json b/docs/evidence/2026-10-03/debug-can-retest/mcu-input-ui-counters.json new file mode 100644 index 0000000..88c2e0d --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/mcu-input-ui-counters.json @@ -0,0 +1,18 @@ +[ + { + "id": "datalabelText0", + "text": "T:0" + }, + { + "id": "datalabelList0", + "text": "L:0" + }, + { + "id": "datalabelText1", + "text": "T:0" + }, + { + "id": "datalabelList1", + "text": "L:0" + } +] \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-can-retest/mcu_PD0_high.png b/docs/evidence/2026-10-03/debug-can-retest/mcu_PD0_high.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6210ce631e415f1a2e3ab1b800fedbcefd1cb7 GIT binary patch literal 32490 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

0f{P8cd;AMLb|i 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 BP{IHJ literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-can-retest/mcu_PD14_high.png b/docs/evidence/2026-10-03/debug-can-retest/mcu_PD14_high.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6210ce631e415f1a2e3ab1b800fedbcefd1cb7 GIT binary patch literal 32490 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

0f{P8cd;AMLb|i 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 BP{IHJ literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-can-retest/mcu_all_high.png b/docs/evidence/2026-10-03/debug-can-retest/mcu_all_high.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6210ce631e415f1a2e3ab1b800fedbcefd1cb7 GIT binary patch literal 32490 zcma&NWmp_tx2~Ju+9W`bUiLYOj-7^kb4Xg>&lD4%hX-ua#DH%k{cBvJTF2=ALsmT;sst@wV6=7y=*C<-~ zHLN0+K?rtkwHV)90?1K~aL^%N3ad%pv%aB3X0BcdJ;GQ>Uk>?5#;SfFsks+S#xSpt zU&dfYUvijYwI|X*S*%E|#9%q}Rg*s<+R??wPNiBLN2KQFS*Gw~e79EP-jm1vNru-* zx!2`iHM^Cza-gWMUL}Mqf!$_ANMq;b<}fo~{__jo^WYd!zrrB-h_QUdYH@{e70|1^eN_Y z)_FGLea1%v0hfOhFg|x}>OCauC4h0?^;WD_?2w4Is~*|D-240a-)DU859oLeocqVY z2Ex8vpg@ce9gHlb@$r!)&HWMOIi@KWJuzK~2BHngRmOg|P(2{5^7rcT@XpMWHj&mS zFv~4ZoVHvraa!1JlsHnfOOxwUW}h)jR`$=c(3)^_OG}=+%siP$nTyeWjNxY`+IM(_ zo0NFUAQIJ1gUu}&6I{QCE0*TwNFm?mcr{!Z zZ=?Eq6F_#obeNHK$9CB=!zc)1BT8cwoKu`g*UWE_s(4o}K2Ivi@h3`CYHWb6o0I0M zje0rTP9qZ&6T7=bo)U?8U8{_Mb34At^C3>+2ZTo_2MYxbE~s4dS_D(u&Bdf#`^`FP zH?O{ZLV7dz<{#wEZrsFx*XPm3j#{J3^OjkhID^MZ{rR&h%|y3&uON9oe)jMjxTwPu1w)-v}X){Kj;yd@tV6Y)y+aE8t9*l5K zrHe{H_=&?r9hbK?w+L2lda@sT1;Hl^sO@)uD{s_@J)m!0hl-wWcA0!nBjf}h6Q25| zv6_jVlx%OH@p4alOwW7qasmnvScG1ViAkfUvBrF`R#Lh9{$Rci+fpZ#|Swt(Yi$w3*54c2@bT z-)$WiA9;fRB2KBblhn(@RK{d&df#P?%dRt0NS0|-9@6sT9ppi zwR>R$B!Ctwx7(7{^3m1T#f9CgcYZgeHNMsNk>_!z5fVDJeS7O6%+#zF-7ZM4pS$0( z$^4G*$kzOqow;WYO?>~@@Qxw1gOSxubzH2hMiyqwP`OQLKdhX*vMu05lIPhgr50P8DD$-2BqwH}$%I}KwJa}L zZZ}zcVvbDo@Hnv_rq0T@{c>kbZ)&VF77TjF$~Tx|T44f(6=1Fr4Xg2|bPT6|kc&#EaYslk}AQx#E= zG`5ckeZHuaHDgIFL_h*c%Q*sHycHsndLu~VH^Tjh3-guRe z;^5-?U6$%So`ecMJheYPg_8L8m4#za33}fjHlEusRLVWd->!`x6RJQ8JJCSA7|;Fj zTYe+GC$!7nw=#iiU#rXVso`P z*$W5-+ioT48!Rwii)hF)VW6WU%gH4Bx_h|FN>im^{FVv4ppVtEU0HdWQj+7oZ!M~n zu0`0zmfW>iSs{+-{zXu8oi)c_Ak0-+^$EcU`2R+_KEWMEfRlEO`5L~h)jYIhf!oGs2*jU8**TP7f# z6s|oo25;ZE?)P=Da+!-p@$e+LEq@|_3$JM~mEAeW9yh<}KqP^9-=0}psxE?LyHwoIG`sq$ReV$~qxf^h%jDNe1DinB7y~lw4;rmfoNy)rR z6e$tDW@v7~A88>?$LL4nNCg&U-RnU(<~WRxUQ>YD3H&(3*E9Ehbg*@Mg6o z^yi{1vU?LJixMNz_l@Yaj*e7$ctz|2bksX;_u?cz^}GeqF|}I@gdGxZCuPTx(R{14 zcAi2jh7xF1qun({`jAG66FJq@q zQ8&)d&%F(!GC9;GQJ1K7W{7OLYLp3Y?9YTdkeJC#WVE9A1>OZmxmn68fcQLCSDy8r zb^AU$JUfu!6S|^-(nd?vbQMOjmQb9KWbb3&Zf*;5W*ZOUFs>VRy{3{)iC!bcCuHMI zwc`b4uanW}ZnpP*A-R4V)7B<~D8U8URWZyoBfIH9Twauxf8SRxASfuv#%7FfGiM5I z`h9=g-kzcByB?h#b1t*kv=cEznES*m7wt5UiYkhfO{*hbv9F&Dv7Duo_@Rdd#m?+=CkPgQ+9=)?UJF4hsL;{{f@tHYd&s&Y<#|23$1v-((^v;rpoq?gIqUn+4Q4Jm3aKN-d>`zgr8KL6F3CSHfR6&CELG*g_Xv~*UIze1W~Jgt}FvXnA{ukWd>wx^1RGq7DF z%f6VBp7bIey7!&c%sKMdxaNQtAl%sN<8?9wu}dB}TDh_~diz66Rq8$K+Ywg#R`hYC zBv@ghnwpwH^sw9u!TJKv=4|ux^Oign1>HE_4N@HGK&jC$(XkU(Yu|mh86nG&+F}); zmJ*q{yr{YLv$C=hN(*aVJ$?Gz#^}k}kDFwCoZ=?kK&8FK;q|Sggn@w}`pD~I{;w5w zCv_8%Vnj@Vg~DTJo8qY~Q

0f{P8cd;AMLb|i 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 BP{IHJ literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-can-retest/mcu_final_zero.png b/docs/evidence/2026-10-03/debug-can-retest/mcu_final_zero.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6210ce631e415f1a2e3ab1b800fedbcefd1cb7 GIT binary patch literal 32490 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

0f{P8cd;AMLb|i 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 BP{IHJ literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-can-retest/probe_250000_ram.log b/docs/evidence/2026-10-03/debug-can-retest/probe_250000_ram.log new file mode 100644 index 0000000..6595717 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/probe_250000_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00000000 0041A48E +0x200002DC : 00000000 00010FA0 00001F40 00007FFF +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 0041A48E +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/probe_500000_ram.log b/docs/evidence/2026-10-03/debug-can-retest/probe_500000_ram.log new file mode 100644 index 0000000..c3b3685 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/probe_500000_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0045AF8D 0041A48E +0x200002DC : 00000000 00010FA0 0007A19B 00010001 +0x200002EC : 00000000 00000000 00000000 0000A236 +0x200002FC : 00006586 00006585 00000000 0045AF8D +0x2000030C : 0000A236 00000000 00000000 00000190 +0x2000031C : 000001F4 00000000 0000002D 00000028 +0x2000032C : 0000001B 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-can-retest/probe_link.py b/docs/evidence/2026-10-03/debug-can-retest/probe_link.py new file mode 100644 index 0000000..1f54623 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-can-retest/probe_link.py @@ -0,0 +1,26 @@ +import os, json, time, struct, subprocess, re +from pathlib import Path +root=Path(__file__).resolve().parent +project=root.parents[1] +dll=project/'tmp/can1-test-20261002/pcan-basic/x64' +os.environ['PATH']=str(dll)+os.pathsep+os.environ['PATH'] +handle=os.add_dll_directory(str(dll)) +import can +cli=r'D:\STM32CubeCLT_1.19.0\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe' +results=[] +for rate in (250000,500000): + with can.Bus(interface='pcan',channel='PCAN_USBBUS1',bitrate=rate) as bus: + tag=rate+123 + data=struct.pack('0,(name,values) + record={'name':name,'id':'0x6A6','data':data.hex(' '),'extended':extended,'snapshot':values,'pcan_status':hex(bus.status())} + shot=ROOT/f'mcu_{name}.png' + pyautogui.screenshot(region=(canvas.left,canvas.top,canvas.width(),canvas.height())).save(str(shot)) + record['screenshot']=shot.name + rows.append(record) + (ROOT/'gpio-can-results.json').write_text(json.dumps({'checks':rows},indent=2),encoding='utf-8') + print(json.dumps({'name':name,'state':hex(values['state']),'changed':hex(values['changed']),'debug_mapped':False,'pcan_status':hex(bus.status())}),flush=True) + return values + check('zero',0,0x7fff,1000) + for bit in range(15): + check(f'PD{bit}_high',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 literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD5_high_fault_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD5_high_fault_ram.log new file mode 100644 index 0000000..4d18634 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD5_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0006656A 00000000 +0x200002DC : 00000000 00010000 000007DA 00200020 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0006656A +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01020100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD5_low_normal_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD5_low_normal_ram.log new file mode 100644 index 0000000..34fc6fe --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD5_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 000668A0 00000000 +0x200002DC : 00000000 00010000 000007DB 00000020 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 000668A0 +0x2000030C : 00000000 FFFFC3FF 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD6_high_fault_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD6_high_fault_ram.log new file mode 100644 index 0000000..870959a --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD6_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00066BC8 00000000 +0x200002DC : 00000000 00010000 000007DC 00400040 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00066BC8 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010102 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD6_low_normal_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD6_low_normal_ram.log new file mode 100644 index 0000000..24dd321 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD6_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00066EFD 00000000 +0x200002DC : 00000000 00010000 000007DD 00000040 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00066EFD +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD7_high_fault_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD7_high_fault_ram.log new file mode 100644 index 0000000..8eb654d --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD7_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0006721F 00000000 +0x200002DC : 00000000 00010000 000007DE 00800080 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0006721F +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010201 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD7_low_normal_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD7_low_normal_ram.log new file mode 100644 index 0000000..378b1c9 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD7_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00067544 00000000 +0x200002DC : 00000000 00010000 000007DF 00000080 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00067544 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD8_high_fault_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD8_high_fault_ram.log new file mode 100644 index 0000000..379efed --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD8_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00067867 00000000 +0x200002DC : 00000000 00010000 000007E0 01000100 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00067867 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010201 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD8_low_normal_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD8_low_normal_ram.log new file mode 100644 index 0000000..ee2f869 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD8_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00067BEE 00000000 +0x200002DC : 00000000 00010000 000007E1 00000100 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00067BEE +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD9_high_fault_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD9_high_fault_ram.log new file mode 100644 index 0000000..e6e81ae --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD9_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00067F12 00000000 +0x200002DC : 00000000 00010000 000007E2 02000200 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00067F12 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01020101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/PD9_low_normal_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/PD9_low_normal_ram.log new file mode 100644 index 0000000..b3820e6 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/PD9_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00068236 00000000 +0x200002DC : 00000000 00010000 000007E3 00000200 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00068236 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/all_fault.png b/docs/evidence/2026-10-03/debug-gpio-mapped/all_fault.png new file mode 100644 index 0000000000000000000000000000000000000000..bc53c106a3712a7c560b9f733c001c82ae857955 GIT binary patch literal 33089 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/all_fault_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/all_fault_ram.log new file mode 100644 index 0000000..21ee71d --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/all_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0006A5C3 00000000 +0x200002DC : 00000000 00010000 00000FA0 7FFF7FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0006A5C3 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 02020200 02020202 +0x2000033C : 02020202 02020202 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/all_normal.png b/docs/evidence/2026-10-03/debug-gpio-mapped/all_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..3cda1d511a7c091abee1a3c0e593e5444048a11a GIT binary patch literal 32026 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 u5e*>M5w{gPoY+wPk8U;)pZ*WPv%{PK literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/all_normal_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/all_normal_ram.log new file mode 100644 index 0000000..f4b2b2e --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/all_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 000641DC 00000000 +0x200002DC : 00000000 00010000 000003E8 00007FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 000641DC +0x2000030C : 00000000 F007FFFF 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/can1-nbtp.log b/docs/evidence/2026-10-03/debug-gpio-mapped/can1-nbtp.log new file mode 100644 index 0000000..0eb533f --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/can1-nbtp.log @@ -0,0 +1,27 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 4 Bytes + Address: : 0x4000641C + +0x4000641C : 00070C01 + + diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/can2-nbtp.log b/docs/evidence/2026-10-03/debug-gpio-mapped/can2-nbtp.log new file mode 100644 index 0000000..74923c2 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/can2-nbtp.log @@ -0,0 +1,27 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 4 Bytes + Address: : 0x4000681C + +0x4000681C : 000F0C01 + + diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/final_timeout.png b/docs/evidence/2026-10-03/debug-gpio-mapped/final_timeout.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6210ce631e415f1a2e3ab1b800fedbcefd1cb7 GIT binary patch literal 32490 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

0f{P8cd;AMLb|i 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 BP{IHJ literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/final_timeout_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/final_timeout_ram.log new file mode 100644 index 0000000..2c14e2e --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/final_timeout_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0006C13B 00000000 +0x200002DC : 00000000 00010000 00001F40 00007FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0006C13B +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/flash-readback.log b/docs/evidence/2026-10-03/debug-gpio-mapped/flash-readback.log new file mode 100644 index 0000000..585aacb --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/flash-readback.log @@ -0,0 +1,29 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +UPLOADING ... + File : D:\YMR\AMI\tmp\debug-gpio-mapped-20261003\flash-readback.bin + Size : 15988 Bytes + Address: : 0x8000000 +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Data read successfully +Time elapsed during read operation is: 00:00:00.254 diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/flash-verified.json b/docs/evidence/2026-10-03/debug-gpio-mapped/flash-verified.json new file mode 100644 index 0000000..c9d92e6 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/flash-verified.json @@ -0,0 +1,6 @@ +{ + "bytes": 15988, + "sha256": "17D1165C6894E0EBBF78B2C998A3D2F268D9E0D89446C5C978AC4FEB1329911E", + "flash_verified": true, + "full_readback_identical": true +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/flash.log b/docs/evidence/2026-10-03/debug-gpio-mapped/flash.log new file mode 100644 index 0000000..9cdf3b5 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/flash.log @@ -0,0 +1,56 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Under Reset +Reset mode : Hardware reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + + +Opening and parsing file: AMI_Controller.bin + + +Memory Programming ... + File : AMI_Controller.bin + Size : 15.61 KB + Address : 0x08000000 + + +Erasing memory corresponding to segment 0: +Erasing internal memory sectors [0 7] +Download in Progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +File download complete +Time elapsed during download operation: 00:00:00.764 + + + +Verifying... + + +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 50% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Time elapsed during verifying operation: 00:00:00.254 + + +Download verified successfully + + + +MCU Reset + +Software reset is performed diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/fresh_sample_recovery.png b/docs/evidence/2026-10-03/debug-gpio-mapped/fresh_sample_recovery.png new file mode 100644 index 0000000000000000000000000000000000000000..3cda1d511a7c091abee1a3c0e593e5444048a11a GIT binary patch literal 32026 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 u5e*>M5w{gPoY+wPk8U;)pZ*WPv%{PK literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/fresh_sample_recovery_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/fresh_sample_recovery_ram.log new file mode 100644 index 0000000..b6eb978 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/fresh_sample_recovery_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0006C0D6 00000000 +0x200002DC : 00000000 00010000 00001F40 00007FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0006C0D6 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_alone_after_loss_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_alone_after_loss_ram.log new file mode 100644 index 0000000..471a869 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_alone_after_loss_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0006BD4E 00000000 +0x200002DC : 00000000 00010000 00001388 00010002 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0006BD4E +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_before_sample_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_before_sample_ram.log new file mode 100644 index 0000000..378f58c --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_before_sample_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00063EB3 00000000 +0x200002DC : 00000000 00010000 00001F40 00007FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00063EB3 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_holds_sample_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_holds_sample_ram.log new file mode 100644 index 0000000..08853b4 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/heartbeat_holds_sample_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0006B4F3 00000000 +0x200002DC : 00000000 00010000 00001388 00010002 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0006B4F3 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010200 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/mapping-connection-recovery-results.json b/docs/evidence/2026-10-03/debug-gpio-mapped/mapping-connection-recovery-results.json new file mode 100644 index 0000000..3ec8d83 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/mapping-connection-recovery-results.json @@ -0,0 +1,3700 @@ +{ + "map": [ + 0, + 5, + 2, + 6, + 7, + 1, + 3, + 4, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "normal_level": 0, + "checks": [ + { + "name": "heartbeat_before_sample", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 362844, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "heartbeat_before_sample.png", + "pcan_status": "0x0" + }, + { + "name": "all_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 1000, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 363660, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "all_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD0_high_fault", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 1, + "timestamp": 2000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 364464, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD0_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD0_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 1, + "timestamp": 2001, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 365267, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD0_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD1_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 2, + "changed": 2, + "timestamp": 2002, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 366171, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD1_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD1_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 2, + "timestamp": 2003, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 366977, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD1_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD2_high_fault", + "expected": [ + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 4, + "changed": 4, + "timestamp": 2004, + "debug_state": [ + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 367797, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD2_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD2_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 4, + "timestamp": 2005, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 368619, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD2_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD3_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 8, + "changed": 8, + "timestamp": 2006, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 369450, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD3_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD3_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 8, + "timestamp": 2007, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 370282, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD3_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD4_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 16, + "changed": 16, + "timestamp": 2008, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 371099, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD4_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD4_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 16, + "timestamp": 2009, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 371922, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD4_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD5_high_fault", + "expected": [ + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 32, + "changed": 32, + "timestamp": 2010, + "debug_state": [ + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 372742, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD5_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD5_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32, + "timestamp": 2011, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 373557, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD5_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD6_high_fault", + "expected": [ + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 64, + "changed": 64, + "timestamp": 2012, + "debug_state": [ + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 374377, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD6_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD6_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 64, + "timestamp": 2013, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 375192, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD6_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD7_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 128, + "changed": 128, + "timestamp": 2014, + "debug_state": [ + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 376011, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD7_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD7_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 128, + "timestamp": 2015, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 376821, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD7_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD8_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 256, + "changed": 256, + "timestamp": 2016, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 377643, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD8_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD8_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 256, + "timestamp": 2017, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 378446, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD8_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD9_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 512, + "changed": 512, + "timestamp": 2018, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 379250, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD9_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD9_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 512, + "timestamp": 2019, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 380154, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD9_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD10_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1024, + "changed": 1024, + "timestamp": 2020, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 380960, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD10_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD10_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 1024, + "timestamp": 2021, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 381781, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD10_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD11_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 2048, + "changed": 2048, + "timestamp": 2022, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 382604, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD11_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD11_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 2048, + "timestamp": 2023, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 383430, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD11_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD12_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 0 + ], + "snapshot": { + "state": 4096, + "changed": 4096, + "timestamp": 2024, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 384255, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD12_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD12_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 4096, + "timestamp": 2025, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 385077, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD12_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD13_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0 + ], + "snapshot": { + "state": 8192, + "changed": 8192, + "timestamp": 2026, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0 + ], + "port_rx_ms": [ + 385896, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD13_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD13_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 8192, + "timestamp": 2027, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 386712, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD13_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD14_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0 + ], + "snapshot": { + "state": 16384, + "changed": 16384, + "timestamp": 2028, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0 + ], + "port_rx_ms": [ + 387540, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD14_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD14_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 16384, + "timestamp": 2029, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 388364, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD14_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "all_fault", + "expected": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "snapshot": { + "state": 32767, + "changed": 32767, + "timestamp": 4000, + "debug_state": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "port_rx_ms": [ + 389166, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "all_fault.png", + "pcan_status": "0x0" + }, + { + "name": "unused_bit15", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 389970, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "unused_bit15.png", + "pcan_status": "0x0" + }, + { + "name": "truncated", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 390773, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "truncated.png", + "pcan_status": "0x0" + }, + { + "name": "wrong_extended", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 391676, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "wrong_extended.png", + "pcan_status": "0x0" + }, + { + "name": "heartbeat_holds_sample", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 393080, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "heartbeat_holds_sample.png", + "pcan_status": "0x0" + }, + { + "name": "source_timeout", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 393180, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "source_timeout.png", + "pcan_status": "0x0" + }, + { + "name": "heartbeat_alone_after_loss", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 395214, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "heartbeat_alone_after_loss.png", + "pcan_status": "0x0" + }, + { + "name": "fresh_sample_recovery", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 396116, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "fresh_sample_recovery.png", + "pcan_status": "0x0" + }, + { + "name": "final_timeout", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 396228, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "final_timeout.png", + "pcan_status": "0x0" + } + ], + "tx": [ + { + "id": "0x6A0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 01 00 64 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 02 00 c8 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 03 00 2c 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 04 00 90 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 05 00 f4 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 06 00 58 02 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 07 00 bc 02 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 08 00 20 03 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 ff 7f e8 03 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 09 00 84 03 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0a 00 e8 03 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0b 00 4c 04 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0c 00 b0 04 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0d 00 14 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0e 00 78 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0f 00 dc 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 10 00 40 06 00 00" + }, + { + "id": "0x6A6", + "data": "01 00 01 00 d0 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 11 00 a4 06 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 12 00 08 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 13 00 6c 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 14 00 d0 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 15 00 34 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 16 00 98 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 17 00 fc 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 18 00 60 09 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 01 00 d1 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 19 00 c4 09 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1a 00 28 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1b 00 8c 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1c 00 f0 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1d 00 54 0b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1e 00 b8 0b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1f 00 1c 0c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 20 00 80 0c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 21 00 e4 0c 00 00" + }, + { + "id": "0x6A6", + "data": "02 00 02 00 d2 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 22 00 48 0d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 23 00 ac 0d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 24 00 10 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 25 00 74 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 26 00 d8 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 27 00 3c 0f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 28 00 a0 0f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 29 00 04 10 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 02 00 d3 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 2a 00 68 10 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2b 00 cc 10 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2c 00 30 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2d 00 94 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2e 00 f8 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2f 00 5c 12 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 30 00 c0 12 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 31 00 24 13 00 00" + }, + { + "id": "0x6A6", + "data": "04 00 04 00 d4 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 32 00 88 13 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 33 00 ec 13 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 34 00 50 14 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 35 00 b4 14 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 36 00 18 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 37 00 7c 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 38 00 e0 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 39 00 44 16 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 04 00 d5 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 3a 00 a8 16 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3b 00 0c 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3c 00 70 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3d 00 d4 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3e 00 38 18 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3f 00 9c 18 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 40 00 00 19 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 41 00 64 19 00 00" + }, + { + "id": "0x6A6", + "data": "08 00 08 00 d6 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 42 00 c8 19 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 43 00 2c 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 44 00 90 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 45 00 f4 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 46 00 58 1b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 47 00 bc 1b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 48 00 20 1c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 49 00 84 1c 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 08 00 d7 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 4a 00 e8 1c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4b 00 4c 1d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4c 00 b0 1d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4d 00 14 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4e 00 78 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4f 00 dc 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 50 00 40 1f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 51 00 a4 1f 00 00" + }, + { + "id": "0x6A6", + "data": "10 00 10 00 d8 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 52 00 08 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 53 00 6c 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 54 00 d0 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 55 00 34 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 56 00 98 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 57 00 fc 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 58 00 60 22 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 59 00 c4 22 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 10 00 d9 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 5a 00 28 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5b 00 8c 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5c 00 f0 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5d 00 54 24 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5e 00 b8 24 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5f 00 1c 25 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 60 00 80 25 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 61 00 e4 25 00 00" + }, + { + "id": "0x6A6", + "data": "20 00 20 00 da 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 62 00 48 26 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 63 00 ac 26 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 64 00 10 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 65 00 74 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 66 00 d8 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 67 00 3c 28 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 68 00 a0 28 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 69 00 04 29 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 20 00 db 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 6a 00 68 29 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6b 00 cc 29 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6c 00 30 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6d 00 94 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6e 00 f8 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6f 00 5c 2b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 70 00 c0 2b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 71 00 24 2c 00 00" + }, + { + "id": "0x6A6", + "data": "40 00 40 00 dc 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 72 00 88 2c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 73 00 ec 2c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 74 00 50 2d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 75 00 b4 2d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 76 00 18 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 77 00 7c 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 78 00 e0 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 79 00 44 2f 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 40 00 dd 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 7a 00 a8 2f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7b 00 0c 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7c 00 70 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7d 00 d4 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7e 00 38 31 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7f 00 9c 31 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 80 00 00 32 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 81 00 64 32 00 00" + }, + { + "id": "0x6A6", + "data": "80 00 80 00 de 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 82 00 c8 32 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 83 00 2c 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 84 00 90 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 85 00 f4 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 86 00 58 34 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 87 00 bc 34 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 88 00 20 35 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 89 00 84 35 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 80 00 df 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 8a 00 e8 35 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8b 00 4c 36 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8c 00 b0 36 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8d 00 14 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8e 00 78 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8f 00 dc 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 90 00 40 38 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 91 00 a4 38 00 00" + }, + { + "id": "0x6A6", + "data": "00 01 00 01 e0 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 92 00 08 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 93 00 6c 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 94 00 d0 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 95 00 34 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 96 00 98 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 97 00 fc 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 98 00 60 3b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 99 00 c4 3b 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 01 e1 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 9a 00 28 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9b 00 8c 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9c 00 f0 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9d 00 54 3d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9e 00 b8 3d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9f 00 1c 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a0 00 80 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a1 00 e4 3e 00 00" + }, + { + "id": "0x6A6", + "data": "00 02 00 02 e2 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 a2 00 48 3f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a3 00 ac 3f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a4 00 10 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a5 00 74 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a6 00 d8 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a7 00 3c 41 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a8 00 a0 41 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a9 00 04 42 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 02 e3 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 aa 00 68 42 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ab 00 cc 42 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ac 00 30 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ad 00 94 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ae 00 f8 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 af 00 5c 44 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b0 00 c0 44 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b1 00 24 45 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b2 00 88 45 00 00" + }, + { + "id": "0x6A6", + "data": "00 04 00 04 e4 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 b3 00 ec 45 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b4 00 50 46 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b5 00 b4 46 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b6 00 18 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b7 00 7c 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b8 00 e0 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b9 00 44 48 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ba 00 a8 48 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 04 e5 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 bb 00 0c 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bc 00 70 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bd 00 d4 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 be 00 38 4a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bf 00 9c 4a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c0 00 00 4b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c1 00 64 4b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c2 00 c8 4b 00 00" + }, + { + "id": "0x6A6", + "data": "00 08 00 08 e6 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 c3 00 2c 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c4 00 90 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c5 00 f4 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c6 00 58 4d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c7 00 bc 4d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c8 00 20 4e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c9 00 84 4e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ca 00 e8 4e 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 08 e7 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 cb 00 4c 4f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cc 00 b0 4f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cd 00 14 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ce 00 78 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cf 00 dc 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d0 00 40 51 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d1 00 a4 51 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d2 00 08 52 00 00" + }, + { + "id": "0x6A6", + "data": "00 10 00 10 e8 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 d3 00 6c 52 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d4 00 d0 52 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d5 00 34 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d6 00 98 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d7 00 fc 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d8 00 60 54 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d9 00 c4 54 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 da 00 28 55 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 10 e9 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 db 00 8c 55 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 dc 00 f0 55 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 dd 00 54 56 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 de 00 b8 56 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 df 00 1c 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e0 00 80 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e1 00 e4 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e2 00 48 58 00 00" + }, + { + "id": "0x6A6", + "data": "00 20 00 20 ea 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 e3 00 ac 58 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e4 00 10 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e5 00 74 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e6 00 d8 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e7 00 3c 5a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e8 00 a0 5a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e9 00 04 5b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ea 00 68 5b 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 20 eb 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 eb 00 cc 5b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ec 00 30 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ed 00 94 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ee 00 f8 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ef 00 5c 5d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f0 00 c0 5d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f1 00 24 5e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f2 00 88 5e 00 00" + }, + { + "id": "0x6A6", + "data": "00 40 00 40 ec 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 f3 00 ec 5e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f4 00 50 5f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f5 00 b4 5f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f6 00 18 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f7 00 7c 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f8 00 e0 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f9 00 44 61 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fa 00 a8 61 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 40 ed 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 fb 00 0c 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fc 00 70 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fd 00 d4 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fe 00 38 63 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ff 00 9c 63 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 00 01 00 64 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 01 01 64 64 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 02 01 c8 64 00 00" + }, + { + "id": "0x6A6", + "data": "ff 7f ff 7f a0 0f 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 03 01 2c 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 04 01 90 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 05 01 f4 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 06 01 58 66 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 07 01 bc 66 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 08 01 20 67 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 09 01 84 67 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0a 01 e8 67 00 00" + }, + { + "id": "0x6A6", + "data": "01 80 02 80 88 13 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 0b 01 4c 68 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0c 01 b0 68 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0d 01 14 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0e 01 78 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0f 01 dc 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 10 01 40 6a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 11 01 a4 6a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 12 01 08 6b 00 00" + }, + { + "id": "0x6A6", + "data": "ff ff ff ff 70 17 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 13 01 6c 6b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 14 01 d0 6b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 15 01 34 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 16 01 98 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 17 01 fc 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 18 01 60 6d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 19 01 c4 6d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1a 01 28 6e 00 00" + }, + { + "id": "0x6A6", + "data": "ff ff ff ff 58 1b 00 00", + "extended": true + }, + { + "id": "0x6A0", + "data": "a1 01 1b 01 8c 6e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1c 01 f0 6e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1d 01 54 6f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1e 01 b8 6f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1f 01 1c 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 20 01 80 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 21 01 e4 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 22 01 48 71 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 23 01 ac 71 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 24 01 10 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 25 01 74 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 26 01 d8 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 27 01 3c 73 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 28 01 a0 73 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 29 01 04 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2a 01 68 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2b 01 cc 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2c 01 30 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2d 01 94 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2e 01 f8 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2f 01 5c 76 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 30 01 c0 76 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 31 01 24 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 32 01 88 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 33 01 ec 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 34 01 50 78 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 35 01 b4 78 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 36 01 18 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 37 01 7c 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 38 01 e0 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 39 01 44 7a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3a 01 a8 7a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3b 01 0c 7b 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 ff 7f 40 1f 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 3c 01 70 7b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3d 01 d4 7b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3e 01 38 7c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3f 01 9c 7c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 40 01 00 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 41 01 64 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 42 01 c8 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 43 01 2c 7e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 44 01 90 7e 00 00" + } + ], + "counters": [ + { + "id": "datalabelText0", + "text": "T:0" + }, + { + "id": "datalabelList0", + "text": "L:0" + }, + { + "id": "datalabelText1", + "text": "T:1861" + }, + { + "id": "datalabelList1", + "text": "L:172" + } + ], + "sender_errors": [], + "bitrate": 500000, + "port": "CAN1", + "mcu_passed": true, + "hmi_transitions_passed": false +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/mapping-mcu-only-results.json b/docs/evidence/2026-10-03/debug-gpio-mapped/mapping-mcu-only-results.json new file mode 100644 index 0000000..4f06edc --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/mapping-mcu-only-results.json @@ -0,0 +1,3700 @@ +{ + "map": [ + 0, + 5, + 2, + 6, + 7, + 1, + 3, + 4, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "normal_level": 0, + "checks": [ + { + "name": "heartbeat_before_sample", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 0, + "changed": 0, + "timestamp": 0, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 111821, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "heartbeat_before_sample.png", + "pcan_status": "0x0" + }, + { + "name": "all_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 1000, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 112642, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "all_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD0_high_fault", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 1, + "timestamp": 2000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 113476, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD0_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD0_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 1, + "timestamp": 2001, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 114296, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD0_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD1_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 2, + "changed": 2, + "timestamp": 2002, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 115099, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD1_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD1_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 2, + "timestamp": 2003, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 115901, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD1_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD2_high_fault", + "expected": [ + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 4, + "changed": 4, + "timestamp": 2004, + "debug_state": [ + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 116804, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD2_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD2_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 4, + "timestamp": 2005, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 117607, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD2_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD3_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 8, + "changed": 8, + "timestamp": 2006, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 118428, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD3_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD3_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 8, + "timestamp": 2007, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 119254, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD3_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD4_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 16, + "changed": 16, + "timestamp": 2008, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 120083, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD4_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD4_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 16, + "timestamp": 2009, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 120898, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD4_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD5_high_fault", + "expected": [ + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 32, + "changed": 32, + "timestamp": 2010, + "debug_state": [ + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 121719, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD5_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD5_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32, + "timestamp": 2011, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 122533, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD5_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD6_high_fault", + "expected": [ + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 64, + "changed": 64, + "timestamp": 2012, + "debug_state": [ + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 123362, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD6_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD6_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 64, + "timestamp": 2013, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 124178, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD6_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD7_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 128, + "changed": 128, + "timestamp": 2014, + "debug_state": [ + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 124982, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD7_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD7_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 128, + "timestamp": 2015, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 125785, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD7_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD8_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 256, + "changed": 256, + "timestamp": 2016, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 126689, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD8_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD8_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 256, + "timestamp": 2017, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 127494, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD8_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD9_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 512, + "changed": 512, + "timestamp": 2018, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 128304, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD9_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD9_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 512, + "timestamp": 2019, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 129119, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD9_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD10_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1024, + "changed": 1024, + "timestamp": 2020, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 129943, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD10_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD10_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 1024, + "timestamp": 2021, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 130768, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD10_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD11_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 2048, + "changed": 2048, + "timestamp": 2022, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 131581, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD11_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD11_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 2048, + "timestamp": 2023, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 132399, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD11_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD12_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 0 + ], + "snapshot": { + "state": 4096, + "changed": 4096, + "timestamp": 2024, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 133223, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD12_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD12_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 4096, + "timestamp": 2025, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 134044, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD12_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD13_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0 + ], + "snapshot": { + "state": 8192, + "changed": 8192, + "timestamp": 2026, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0 + ], + "port_rx_ms": [ + 134857, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD13_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD13_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 8192, + "timestamp": 2027, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 135675, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD13_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD14_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0 + ], + "snapshot": { + "state": 16384, + "changed": 16384, + "timestamp": 2028, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0 + ], + "port_rx_ms": [ + 136491, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD14_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD14_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 16384, + "timestamp": 2029, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 137315, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD14_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "all_fault", + "expected": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "snapshot": { + "state": 32767, + "changed": 32767, + "timestamp": 4000, + "debug_state": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "port_rx_ms": [ + 138118, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "all_fault.png", + "pcan_status": "0x0" + }, + { + "name": "unused_bit15", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 138921, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "unused_bit15.png", + "pcan_status": "0x0" + }, + { + "name": "truncated", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 139826, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "truncated.png", + "pcan_status": "0x0" + }, + { + "name": "wrong_extended", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 140631, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "wrong_extended.png", + "pcan_status": "0x0" + }, + { + "name": "heartbeat_holds_sample", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 142059, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "heartbeat_holds_sample.png", + "pcan_status": "0x0" + }, + { + "name": "source_timeout", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 142159, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "source_timeout.png", + "pcan_status": "0x0" + }, + { + "name": "heartbeat_alone_after_loss", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 144267, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "heartbeat_alone_after_loss.png", + "pcan_status": "0x0" + }, + { + "name": "fresh_sample_recovery", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 145084, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "fresh_sample_recovery.png", + "pcan_status": "0x0" + }, + { + "name": "final_timeout", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 145214, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "final_timeout.png", + "pcan_status": "0x0" + } + ], + "tx": [ + { + "id": "0x6A0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 01 00 64 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 02 00 c8 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 03 00 2c 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 04 00 90 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 05 00 f4 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 06 00 58 02 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 07 00 bc 02 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 08 00 20 03 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 ff 7f e8 03 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 09 00 84 03 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0a 00 e8 03 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0b 00 4c 04 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0c 00 b0 04 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0d 00 14 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0e 00 78 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0f 00 dc 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 10 00 40 06 00 00" + }, + { + "id": "0x6A6", + "data": "01 00 01 00 d0 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 11 00 a4 06 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 12 00 08 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 13 00 6c 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 14 00 d0 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 15 00 34 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 16 00 98 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 17 00 fc 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 18 00 60 09 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 01 00 d1 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 19 00 c4 09 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1a 00 28 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1b 00 8c 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1c 00 f0 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1d 00 54 0b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1e 00 b8 0b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1f 00 1c 0c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 20 00 80 0c 00 00" + }, + { + "id": "0x6A6", + "data": "02 00 02 00 d2 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 21 00 e4 0c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 22 00 48 0d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 23 00 ac 0d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 24 00 10 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 25 00 74 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 26 00 d8 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 27 00 3c 0f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 28 00 a0 0f 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 02 00 d3 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 29 00 04 10 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2a 00 68 10 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2b 00 cc 10 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2c 00 30 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2d 00 94 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2e 00 f8 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2f 00 5c 12 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 30 00 c0 12 00 00" + }, + { + "id": "0x6A6", + "data": "04 00 04 00 d4 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 31 00 24 13 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 32 00 88 13 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 33 00 ec 13 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 34 00 50 14 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 35 00 b4 14 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 36 00 18 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 37 00 7c 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 38 00 e0 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 39 00 44 16 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 04 00 d5 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 3a 00 a8 16 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3b 00 0c 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3c 00 70 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3d 00 d4 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3e 00 38 18 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3f 00 9c 18 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 40 00 00 19 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 41 00 64 19 00 00" + }, + { + "id": "0x6A6", + "data": "08 00 08 00 d6 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 42 00 c8 19 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 43 00 2c 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 44 00 90 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 45 00 f4 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 46 00 58 1b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 47 00 bc 1b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 48 00 20 1c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 49 00 84 1c 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 08 00 d7 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 4a 00 e8 1c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4b 00 4c 1d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4c 00 b0 1d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4d 00 14 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4e 00 78 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4f 00 dc 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 50 00 40 1f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 51 00 a4 1f 00 00" + }, + { + "id": "0x6A6", + "data": "10 00 10 00 d8 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 52 00 08 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 53 00 6c 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 54 00 d0 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 55 00 34 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 56 00 98 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 57 00 fc 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 58 00 60 22 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 59 00 c4 22 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 10 00 d9 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 5a 00 28 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5b 00 8c 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5c 00 f0 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5d 00 54 24 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5e 00 b8 24 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5f 00 1c 25 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 60 00 80 25 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 61 00 e4 25 00 00" + }, + { + "id": "0x6A6", + "data": "20 00 20 00 da 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 62 00 48 26 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 63 00 ac 26 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 64 00 10 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 65 00 74 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 66 00 d8 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 67 00 3c 28 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 68 00 a0 28 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 69 00 04 29 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 20 00 db 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 6a 00 68 29 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6b 00 cc 29 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6c 00 30 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6d 00 94 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6e 00 f8 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6f 00 5c 2b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 70 00 c0 2b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 71 00 24 2c 00 00" + }, + { + "id": "0x6A6", + "data": "40 00 40 00 dc 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 72 00 88 2c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 73 00 ec 2c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 74 00 50 2d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 75 00 b4 2d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 76 00 18 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 77 00 7c 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 78 00 e0 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 79 00 44 2f 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 40 00 dd 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 7a 00 a8 2f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7b 00 0c 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7c 00 70 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7d 00 d4 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7e 00 38 31 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7f 00 9c 31 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 80 00 00 32 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 81 00 64 32 00 00" + }, + { + "id": "0x6A6", + "data": "80 00 80 00 de 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 82 00 c8 32 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 83 00 2c 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 84 00 90 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 85 00 f4 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 86 00 58 34 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 87 00 bc 34 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 88 00 20 35 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 89 00 84 35 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 80 00 df 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 8a 00 e8 35 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8b 00 4c 36 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8c 00 b0 36 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8d 00 14 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8e 00 78 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8f 00 dc 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 90 00 40 38 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 91 00 a4 38 00 00" + }, + { + "id": "0x6A6", + "data": "00 01 00 01 e0 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 92 00 08 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 93 00 6c 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 94 00 d0 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 95 00 34 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 96 00 98 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 97 00 fc 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 98 00 60 3b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 99 00 c4 3b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9a 00 28 3c 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 01 e1 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 9b 00 8c 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9c 00 f0 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9d 00 54 3d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9e 00 b8 3d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9f 00 1c 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a0 00 80 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a1 00 e4 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a2 00 48 3f 00 00" + }, + { + "id": "0x6A6", + "data": "00 02 00 02 e2 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 a3 00 ac 3f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a4 00 10 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a5 00 74 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a6 00 d8 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a7 00 3c 41 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a8 00 a0 41 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a9 00 04 42 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 aa 00 68 42 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 02 e3 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 ab 00 cc 42 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ac 00 30 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ad 00 94 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ae 00 f8 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 af 00 5c 44 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b0 00 c0 44 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b1 00 24 45 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b2 00 88 45 00 00" + }, + { + "id": "0x6A6", + "data": "00 04 00 04 e4 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 b3 00 ec 45 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b4 00 50 46 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b5 00 b4 46 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b6 00 18 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b7 00 7c 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b8 00 e0 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b9 00 44 48 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ba 00 a8 48 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 04 e5 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 bb 00 0c 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bc 00 70 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bd 00 d4 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 be 00 38 4a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bf 00 9c 4a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c0 00 00 4b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c1 00 64 4b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c2 00 c8 4b 00 00" + }, + { + "id": "0x6A6", + "data": "00 08 00 08 e6 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 c3 00 2c 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c4 00 90 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c5 00 f4 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c6 00 58 4d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c7 00 bc 4d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c8 00 20 4e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c9 00 84 4e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ca 00 e8 4e 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 08 e7 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 cb 00 4c 4f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cc 00 b0 4f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cd 00 14 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ce 00 78 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cf 00 dc 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d0 00 40 51 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d1 00 a4 51 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d2 00 08 52 00 00" + }, + { + "id": "0x6A6", + "data": "00 10 00 10 e8 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 d3 00 6c 52 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d4 00 d0 52 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d5 00 34 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d6 00 98 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d7 00 fc 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d8 00 60 54 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d9 00 c4 54 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 da 00 28 55 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 10 e9 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 db 00 8c 55 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 dc 00 f0 55 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 dd 00 54 56 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 de 00 b8 56 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 df 00 1c 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e0 00 80 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e1 00 e4 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e2 00 48 58 00 00" + }, + { + "id": "0x6A6", + "data": "00 20 00 20 ea 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 e3 00 ac 58 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e4 00 10 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e5 00 74 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e6 00 d8 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e7 00 3c 5a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e8 00 a0 5a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e9 00 04 5b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ea 00 68 5b 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 20 eb 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 eb 00 cc 5b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ec 00 30 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ed 00 94 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ee 00 f8 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ef 00 5c 5d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f0 00 c0 5d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f1 00 24 5e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f2 00 88 5e 00 00" + }, + { + "id": "0x6A6", + "data": "00 40 00 40 ec 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 f3 00 ec 5e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f4 00 50 5f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f5 00 b4 5f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f6 00 18 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f7 00 7c 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f8 00 e0 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f9 00 44 61 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fa 00 a8 61 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 40 ed 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 fb 00 0c 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fc 00 70 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fd 00 d4 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fe 00 38 63 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ff 00 9c 63 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 00 01 00 64 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 01 01 64 64 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 02 01 c8 64 00 00" + }, + { + "id": "0x6A6", + "data": "ff 7f ff 7f a0 0f 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 03 01 2c 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 04 01 90 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 05 01 f4 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 06 01 58 66 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 07 01 bc 66 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 08 01 20 67 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 09 01 84 67 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0a 01 e8 67 00 00" + }, + { + "id": "0x6A6", + "data": "01 80 02 80 88 13 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 0b 01 4c 68 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0c 01 b0 68 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0d 01 14 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0e 01 78 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0f 01 dc 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 10 01 40 6a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 11 01 a4 6a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 12 01 08 6b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 13 01 6c 6b 00 00" + }, + { + "id": "0x6A6", + "data": "ff ff ff ff 70 17 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 14 01 d0 6b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 15 01 34 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 16 01 98 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 17 01 fc 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 18 01 60 6d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 19 01 c4 6d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1a 01 28 6e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1b 01 8c 6e 00 00" + }, + { + "id": "0x6A6", + "data": "ff ff ff ff 58 1b 00 00", + "extended": true + }, + { + "id": "0x6A0", + "data": "a1 01 1c 01 f0 6e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1d 01 54 6f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1e 01 b8 6f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1f 01 1c 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 20 01 80 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 21 01 e4 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 22 01 48 71 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 23 01 ac 71 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 24 01 10 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 25 01 74 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 26 01 d8 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 27 01 3c 73 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 28 01 a0 73 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 29 01 04 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2a 01 68 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2b 01 cc 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2c 01 30 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2d 01 94 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2e 01 f8 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2f 01 5c 76 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 30 01 c0 76 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 31 01 24 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 32 01 88 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 33 01 ec 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 34 01 50 78 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 35 01 b4 78 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 36 01 18 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 37 01 7c 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 38 01 e0 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 39 01 44 7a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3a 01 a8 7a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3b 01 0c 7b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3c 01 70 7b 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 ff 7f 40 1f 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 3d 01 d4 7b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3e 01 38 7c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3f 01 9c 7c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 40 01 00 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 41 01 64 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 42 01 c8 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 43 01 2c 7e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 44 01 90 7e 00 00" + } + ], + "counters": [ + { + "id": "datalabelText0", + "text": "T:4" + }, + { + "id": "datalabelList0", + "text": "L:1" + }, + { + "id": "datalabelText1", + "text": "T:4338" + }, + { + "id": "datalabelList1", + "text": "L:374" + } + ], + "sender_errors": [], + "bitrate": 500000, + "port": "CAN1", + "mcu_passed": true, + "hmi_transitions_passed": false +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/mapping-results.json b/docs/evidence/2026-10-03/debug-gpio-mapped/mapping-results.json new file mode 100644 index 0000000..091a241 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/mapping-results.json @@ -0,0 +1,3704 @@ +{ + "map": [ + 0, + 5, + 2, + 6, + 7, + 1, + 3, + 4, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "normal_level": 0, + "checks": [ + { + "name": "heartbeat_before_sample", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 409267, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "heartbeat_before_sample.png", + "pcan_status": "0x0" + }, + { + "name": "all_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 1000, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 410076, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "all_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD0_high_fault", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 1, + "timestamp": 2000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 410881, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD0_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD0_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 1, + "timestamp": 2001, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 411683, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD0_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD1_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 2, + "changed": 2, + "timestamp": 2002, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 412587, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD1_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD1_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 2, + "timestamp": 2003, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 413391, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD1_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD2_high_fault", + "expected": [ + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 4, + "changed": 4, + "timestamp": 2004, + "debug_state": [ + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 414195, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD2_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD2_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 4, + "timestamp": 2005, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 415014, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD2_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD3_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 8, + "changed": 8, + "timestamp": 2006, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 415840, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD3_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD3_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 8, + "timestamp": 2007, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 416643, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD3_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD4_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 16, + "changed": 16, + "timestamp": 2008, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 417547, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD4_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD4_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 16, + "timestamp": 2009, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 418352, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD4_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD5_high_fault", + "expected": [ + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 32, + "changed": 32, + "timestamp": 2010, + "debug_state": [ + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 419178, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD5_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD5_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32, + "timestamp": 2011, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 420000, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD5_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD6_high_fault", + "expected": [ + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 64, + "changed": 64, + "timestamp": 2012, + "debug_state": [ + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 420808, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD6_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD6_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 64, + "timestamp": 2013, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 421629, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD6_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD7_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 128, + "changed": 128, + "timestamp": 2014, + "debug_state": [ + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 422431, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD7_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD7_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 128, + "timestamp": 2015, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 423236, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD7_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD8_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 256, + "changed": 256, + "timestamp": 2016, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 424039, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD8_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD8_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 256, + "timestamp": 2017, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 424942, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD8_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD9_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 512, + "changed": 512, + "timestamp": 2018, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 425746, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD9_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD9_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 512, + "timestamp": 2019, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 426550, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD9_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD10_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1024, + "changed": 1024, + "timestamp": 2020, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 427455, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD10_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD10_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 1024, + "timestamp": 2021, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 428258, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD10_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD11_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 2048, + "changed": 2048, + "timestamp": 2022, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 429082, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD11_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD11_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 2048, + "timestamp": 2023, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 429903, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD11_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD12_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 0 + ], + "snapshot": { + "state": 4096, + "changed": 4096, + "timestamp": 2024, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 430726, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD12_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD12_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 4096, + "timestamp": 2025, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 431552, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD12_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD13_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0 + ], + "snapshot": { + "state": 8192, + "changed": 8192, + "timestamp": 2026, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0 + ], + "port_rx_ms": [ + 432373, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD13_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD13_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 8192, + "timestamp": 2027, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 433188, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD13_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD14_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0 + ], + "snapshot": { + "state": 16384, + "changed": 16384, + "timestamp": 2028, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0 + ], + "port_rx_ms": [ + 434009, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD14_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD14_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 16384, + "timestamp": 2029, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 434824, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "PD14_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "all_fault", + "expected": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "snapshot": { + "state": 32767, + "changed": 32767, + "timestamp": 4000, + "debug_state": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "port_rx_ms": [ + 435651, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "all_fault.png", + "pcan_status": "0x0" + }, + { + "name": "unused_bit15", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 436479, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "unused_bit15.png", + "pcan_status": "0x0" + }, + { + "name": "truncated", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 437296, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "truncated.png", + "pcan_status": "0x0" + }, + { + "name": "wrong_extended", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 438121, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "wrong_extended.png", + "pcan_status": "0x0" + }, + { + "name": "heartbeat_holds_sample", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 439539, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "heartbeat_holds_sample.png", + "pcan_status": "0x0" + }, + { + "name": "source_timeout", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 439639, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "source_timeout.png", + "pcan_status": "0x0" + }, + { + "name": "heartbeat_alone_after_loss", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 441678, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "heartbeat_alone_after_loss.png", + "pcan_status": "0x0" + }, + { + "name": "fresh_sample_recovery", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 442582, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "fresh_sample_recovery.png", + "pcan_status": "0x0" + }, + { + "name": "final_timeout", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 442683, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "final_timeout.png", + "pcan_status": "0x0" + } + ], + "tx": [ + { + "id": "0x6A0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 01 00 64 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 02 00 c8 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 03 00 2c 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 04 00 90 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 05 00 f4 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 06 00 58 02 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 07 00 bc 02 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 08 00 20 03 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 ff 7f e8 03 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 09 00 84 03 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0a 00 e8 03 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0b 00 4c 04 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0c 00 b0 04 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0d 00 14 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0e 00 78 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0f 00 dc 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 10 00 40 06 00 00" + }, + { + "id": "0x6A6", + "data": "01 00 01 00 d0 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 11 00 a4 06 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 12 00 08 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 13 00 6c 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 14 00 d0 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 15 00 34 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 16 00 98 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 17 00 fc 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 18 00 60 09 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 01 00 d1 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 19 00 c4 09 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1a 00 28 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1b 00 8c 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1c 00 f0 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1d 00 54 0b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1e 00 b8 0b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1f 00 1c 0c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 20 00 80 0c 00 00" + }, + { + "id": "0x6A6", + "data": "02 00 02 00 d2 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 21 00 e4 0c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 22 00 48 0d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 23 00 ac 0d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 24 00 10 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 25 00 74 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 26 00 d8 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 27 00 3c 0f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 28 00 a0 0f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 29 00 04 10 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 02 00 d3 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 2a 00 68 10 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2b 00 cc 10 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2c 00 30 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2d 00 94 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2e 00 f8 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2f 00 5c 12 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 30 00 c0 12 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 31 00 24 13 00 00" + }, + { + "id": "0x6A6", + "data": "04 00 04 00 d4 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 32 00 88 13 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 33 00 ec 13 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 34 00 50 14 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 35 00 b4 14 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 36 00 18 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 37 00 7c 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 38 00 e0 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 39 00 44 16 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 04 00 d5 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 3a 00 a8 16 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3b 00 0c 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3c 00 70 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3d 00 d4 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3e 00 38 18 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3f 00 9c 18 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 40 00 00 19 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 41 00 64 19 00 00" + }, + { + "id": "0x6A6", + "data": "08 00 08 00 d6 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 42 00 c8 19 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 43 00 2c 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 44 00 90 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 45 00 f4 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 46 00 58 1b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 47 00 bc 1b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 48 00 20 1c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 49 00 84 1c 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 08 00 d7 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 4a 00 e8 1c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4b 00 4c 1d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4c 00 b0 1d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4d 00 14 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4e 00 78 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4f 00 dc 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 50 00 40 1f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 51 00 a4 1f 00 00" + }, + { + "id": "0x6A6", + "data": "10 00 10 00 d8 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 52 00 08 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 53 00 6c 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 54 00 d0 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 55 00 34 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 56 00 98 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 57 00 fc 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 58 00 60 22 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 59 00 c4 22 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5a 00 28 23 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 10 00 d9 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 5b 00 8c 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5c 00 f0 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5d 00 54 24 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5e 00 b8 24 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5f 00 1c 25 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 60 00 80 25 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 61 00 e4 25 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 62 00 48 26 00 00" + }, + { + "id": "0x6A6", + "data": "20 00 20 00 da 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 63 00 ac 26 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 64 00 10 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 65 00 74 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 66 00 d8 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 67 00 3c 28 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 68 00 a0 28 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 69 00 04 29 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6a 00 68 29 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 20 00 db 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 6b 00 cc 29 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6c 00 30 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6d 00 94 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6e 00 f8 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6f 00 5c 2b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 70 00 c0 2b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 71 00 24 2c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 72 00 88 2c 00 00" + }, + { + "id": "0x6A6", + "data": "40 00 40 00 dc 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 73 00 ec 2c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 74 00 50 2d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 75 00 b4 2d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 76 00 18 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 77 00 7c 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 78 00 e0 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 79 00 44 2f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7a 00 a8 2f 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 40 00 dd 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 7b 00 0c 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7c 00 70 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7d 00 d4 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7e 00 38 31 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7f 00 9c 31 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 80 00 00 32 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 81 00 64 32 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 82 00 c8 32 00 00" + }, + { + "id": "0x6A6", + "data": "80 00 80 00 de 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 83 00 2c 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 84 00 90 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 85 00 f4 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 86 00 58 34 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 87 00 bc 34 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 88 00 20 35 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 89 00 84 35 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8a 00 e8 35 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 80 00 df 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 8b 00 4c 36 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8c 00 b0 36 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8d 00 14 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8e 00 78 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8f 00 dc 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 90 00 40 38 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 91 00 a4 38 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 92 00 08 39 00 00" + }, + { + "id": "0x6A6", + "data": "00 01 00 01 e0 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 93 00 6c 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 94 00 d0 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 95 00 34 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 96 00 98 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 97 00 fc 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 98 00 60 3b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 99 00 c4 3b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9a 00 28 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9b 00 8c 3c 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 01 e1 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 9c 00 f0 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9d 00 54 3d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9e 00 b8 3d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9f 00 1c 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a0 00 80 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a1 00 e4 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a2 00 48 3f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a3 00 ac 3f 00 00" + }, + { + "id": "0x6A6", + "data": "00 02 00 02 e2 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 a4 00 10 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a5 00 74 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a6 00 d8 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a7 00 3c 41 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a8 00 a0 41 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a9 00 04 42 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 aa 00 68 42 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ab 00 cc 42 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 02 e3 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 ac 00 30 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ad 00 94 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ae 00 f8 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 af 00 5c 44 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b0 00 c0 44 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b1 00 24 45 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b2 00 88 45 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b3 00 ec 45 00 00" + }, + { + "id": "0x6A6", + "data": "00 04 00 04 e4 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 b4 00 50 46 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b5 00 b4 46 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b6 00 18 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b7 00 7c 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b8 00 e0 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b9 00 44 48 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ba 00 a8 48 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bb 00 0c 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bc 00 70 49 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 04 e5 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 bd 00 d4 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 be 00 38 4a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bf 00 9c 4a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c0 00 00 4b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c1 00 64 4b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c2 00 c8 4b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c3 00 2c 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c4 00 90 4c 00 00" + }, + { + "id": "0x6A6", + "data": "00 08 00 08 e6 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 c5 00 f4 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c6 00 58 4d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c7 00 bc 4d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c8 00 20 4e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c9 00 84 4e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ca 00 e8 4e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cb 00 4c 4f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cc 00 b0 4f 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 08 e7 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 cd 00 14 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ce 00 78 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cf 00 dc 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d0 00 40 51 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d1 00 a4 51 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d2 00 08 52 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d3 00 6c 52 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d4 00 d0 52 00 00" + }, + { + "id": "0x6A6", + "data": "00 10 00 10 e8 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 d5 00 34 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d6 00 98 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d7 00 fc 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d8 00 60 54 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d9 00 c4 54 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 da 00 28 55 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 db 00 8c 55 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 dc 00 f0 55 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 10 e9 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 dd 00 54 56 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 de 00 b8 56 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 df 00 1c 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e0 00 80 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e1 00 e4 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e2 00 48 58 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e3 00 ac 58 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e4 00 10 59 00 00" + }, + { + "id": "0x6A6", + "data": "00 20 00 20 ea 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 e5 00 74 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e6 00 d8 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e7 00 3c 5a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e8 00 a0 5a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e9 00 04 5b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ea 00 68 5b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 eb 00 cc 5b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ec 00 30 5c 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 20 eb 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 ed 00 94 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ee 00 f8 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ef 00 5c 5d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f0 00 c0 5d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f1 00 24 5e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f2 00 88 5e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f3 00 ec 5e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f4 00 50 5f 00 00" + }, + { + "id": "0x6A6", + "data": "00 40 00 40 ec 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 f5 00 b4 5f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f6 00 18 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f7 00 7c 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f8 00 e0 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f9 00 44 61 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fa 00 a8 61 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fb 00 0c 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fc 00 70 62 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 40 ed 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 fd 00 d4 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fe 00 38 63 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ff 00 9c 63 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 00 01 00 64 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 01 01 64 64 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 02 01 c8 64 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 03 01 2c 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 04 01 90 65 00 00" + }, + { + "id": "0x6A6", + "data": "ff 7f ff 7f a0 0f 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 05 01 f4 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 06 01 58 66 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 07 01 bc 66 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 08 01 20 67 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 09 01 84 67 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0a 01 e8 67 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0b 01 4c 68 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0c 01 b0 68 00 00" + }, + { + "id": "0x6A6", + "data": "01 80 02 80 88 13 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 0d 01 14 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0e 01 78 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0f 01 dc 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 10 01 40 6a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 11 01 a4 6a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 12 01 08 6b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 13 01 6c 6b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 14 01 d0 6b 00 00" + }, + { + "id": "0x6A6", + "data": "ff ff ff ff 70 17 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 15 01 34 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 16 01 98 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 17 01 fc 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 18 01 60 6d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 19 01 c4 6d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1a 01 28 6e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1b 01 8c 6e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1c 01 f0 6e 00 00" + }, + { + "id": "0x6A6", + "data": "ff ff ff ff 58 1b 00 00", + "extended": true + }, + { + "id": "0x6A0", + "data": "a1 01 1d 01 54 6f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1e 01 b8 6f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1f 01 1c 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 20 01 80 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 21 01 e4 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 22 01 48 71 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 23 01 ac 71 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 24 01 10 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 25 01 74 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 26 01 d8 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 27 01 3c 73 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 28 01 a0 73 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 29 01 04 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2a 01 68 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2b 01 cc 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2c 01 30 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2d 01 94 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2e 01 f8 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2f 01 5c 76 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 30 01 c0 76 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 31 01 24 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 32 01 88 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 33 01 ec 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 34 01 50 78 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 35 01 b4 78 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 36 01 18 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 37 01 7c 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 38 01 e0 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 39 01 44 7a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3a 01 a8 7a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3b 01 0c 7b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3c 01 70 7b 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 ff 7f 40 1f 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 3d 01 d4 7b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3e 01 38 7c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3f 01 9c 7c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 40 01 00 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 41 01 64 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 42 01 c8 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 43 01 2c 7e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 44 01 90 7e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 45 01 f4 7e 00 00" + } + ], + "counters": [ + { + "id": "datalabelText0", + "text": "T:0" + }, + { + "id": "datalabelList0", + "text": "L:0" + }, + { + "id": "datalabelText1", + "text": "T:6973" + }, + { + "id": "datalabelList1", + "text": "L:597" + } + ], + "sender_errors": [], + "bitrate": 500000, + "port": "CAN1", + "mcu_passed": true, + "hmi_transitions_passed": true +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/source_timeout.png b/docs/evidence/2026-10-03/debug-gpio-mapped/source_timeout.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6210ce631e415f1a2e3ab1b800fedbcefd1cb7 GIT binary patch literal 32490 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

0f{P8cd;AMLb|i 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 BP{IHJ literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/source_timeout_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/source_timeout_ram.log new file mode 100644 index 0000000..06f15e2 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/source_timeout_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0006B557 00000000 +0x200002DC : 00000000 00010000 00001388 00010002 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0006B557 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/symbols.json b/docs/evidence/2026-10-03/debug-gpio-mapped/symbols.json new file mode 100644 index 0000000..767e628 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/symbols.json @@ -0,0 +1,232 @@ +{ + "_Min_Heap_Size": 512, + "_Min_Stack_Size": 1280, + "g_pfnVectors": 134217728, + "__do_global_dtors_aux": 134217916, + "frame_dummy": 134217956, + "__gnu_thumb1_case_sqi": 134217988, + "__gnu_thumb1_case_uqi": 134218008, + "__aeabi_uidiv": 134218028, + "__udivsi3": 134218028, + "__aeabi_uidivmod": 134218296, + "__aeabi_idiv": 134218304, + "__divsi3": 134218304, + "__aeabi_idivmod": 134218764, + "__aeabi_idiv0": 134218772, + "__aeabi_ldiv0": 134218772, + "__aeabi_uldivmod": 134218776, + "__udivmoddi4": 134218840, + "__clzdi2": 134219248, + "__clzsi2": 134219272, + "strlen": 134219332, + "SystemInit": 134219346, + "HAL_FDCAN_Init": 134219348, + "HAL_FDCAN_ConfigFilter": 134219888, + "HAL_FDCAN_ConfigGlobalFilter": 134219970, + "HAL_FDCAN_Start": 134220026, + "HAL_FDCAN_AddMessageToTxFifoQ": 134220072, + "HAL_FDCAN_GetRxMessage": 134220272, + "HAL_FDCAN_GetRxFifoFillLevel": 134220556, + "HAL_FDCAN_GetTxFifoFreeLevel": 134220576, + "HAL_FDCAN_ActivateNotification": 134220588, + "HAL_FDCAN_TxEventFifoCallback": 134220836, + "HAL_FDCAN_RxFifo1Callback": 134220838, + "HAL_FDCAN_TxFifoEmptyCallback": 134220840, + "HAL_FDCAN_TxBufferCompleteCallback": 134220842, + "HAL_FDCAN_TxBufferAbortCallback": 134220844, + "HAL_FDCAN_TimestampWraparoundCallback": 134220846, + "HAL_FDCAN_TimeoutOccurredCallback": 134220848, + "HAL_FDCAN_HighPriorityMessageCallback": 134220850, + "HAL_FDCAN_ErrorStatusCallback": 134220852, + "HAL_FDCAN_IRQHandler": 134220854, + "HAL_RCC_OscConfig": 134221212, + "HAL_RCC_GetSysClockFreq": 134222404, + "HAL_RCC_ClockConfig": 134222540, + "HAL_RCC_GetPCLK1Freq": 134222880, + "HAL_RCCEx_PeriphCLKConfig": 134222920, + "HAL_GPIO_Init": 134223596, + "HAL_GPIO_WritePin": 134223964, + "HAL_GPIO_TogglePin": 134223976, + "DMA_SetConfig": 134223992, + "DMA_CalcDMAMUXChannelBaseAndMask": 134224048, + "HAL_DMA_Init": 134224124, + "HAL_DMA_Start_IT": 134224344, + "HAL_DMA_Abort": 134224488, + "HAL_DMA_Abort_IT": 134224596, + "HAL_DMA_IRQHandler": 134224704, + "HAL_DMA_GetError": 134224880, + "HAL_PWREx_ControlVoltageScaling": 134224884, + "HAL_NVIC_SetPriority": 134224972, + "HAL_NVIC_EnableIRQ": 134225056, + "HAL_SYSTICK_Config": 134225080, + "HAL_InitTick": 134225132, + "HAL_Init": 134225212, + "HAL_IncTick": 134225252, + "HAL_GetTick": 134225276, + "HAL_SYSCFG_StrobeDBattpinsConfig": 134225288, + "UART_EndTxTransfer": 134225312, + "UART_EndRxTransfer": 134225372, + "HAL_UART_Transmit_DMA": 134225472, + "HAL_UART_AbortReceive": 134225636, + "UART_DMATransmitCplt": 134225828, + "HAL_UART_TxHalfCpltCallback": 134225908, + "UART_DMATxHalfCplt": 134225910, + "HAL_UART_RxCpltCallback": 134225920, + "HAL_UART_RxHalfCpltCallback": 134225922, + "UART_DMAError": 134225924, + "UART_DMAAbortOnError": 134226008, + "HAL_UART_IRQHandler": 134226032, + "UART_DMARxHalfCplt": 134226860, + "UART_DMAReceiveCplt": 134226896, + "UART_SetConfig": 134227056, + "UART_AdvFeatureConfig": 134227708, + "UART_WaitOnFlagUntilTimeout": 134227916, + "UART_CheckIdleState": 134228064, + "HAL_UART_Init": 134228264, + "UART_Start_Receive_DMA": 134228368, + "UARTEx_SetNbDataToProcess": 134228540, + "HAL_UARTEx_WakeupCallback": 134228620, + "HAL_UARTEx_RxFifoFullCallback": 134228622, + "HAL_UARTEx_TxFifoEmptyCallback": 134228624, + "HAL_UARTEx_DisableFifoMode": 134228628, + "HAL_UARTEx_SetTxFifoThreshold": 134228688, + "HAL_UARTEx_SetRxFifoThreshold": 134228752, + "HAL_UARTEx_ReceiveToIdle_DMA": 134228820, + "SystemClock_Config": 134228920, + "main": 134229042, + "Error_Handler": 134229084, + "MX_GPIO_Init": 134229088, + "MX_DMA_Init": 134229180, + "MX_FDCAN1_Init": 134229240, + "MX_FDCAN2_Init": 134229316, + "HAL_FDCAN_MspInit": 134229392, + "MX_USART2_UART_Init": 134229676, + "HAL_UART_MspInit": 134229784, + "NMI_Handler": 134230044, + "HardFault_Handler": 134230046, + "SVC_Handler": 134230048, + "PendSV_Handler": 134230050, + "SysTick_Handler": 134230052, + "DMA1_Channel1_IRQHandler": 134230060, + "DMA1_Channel2_3_IRQHandler": 134230076, + "TIM16_FDCAN_IT0_IRQHandler": 134230092, + "TIM17_FDCAN_IT1_IRQHandler": 134230116, + "USART2_LPUART2_IRQHandler": 134230124, + "HAL_MspInit": 134230140, + "Reset_Handler": 134230216, + "CopyDataInit": 134230234, + "LoopCopyDataInit": 134230240, + "FillZerobss": 134230254, + "LoopFillZerobss": 134230258, + "LoopForever": 134230270, + "ADC1_COMP_IRQHandler": 134230296, + "CEC_IRQHandler": 134230296, + "Default_Handler": 134230296, + "DMA1_Ch4_7_DMA2_Ch1_5_DMAMUX1_OVR_IRQHandler": 134230296, + "EXTI0_1_IRQHandler": 134230296, + "EXTI2_3_IRQHandler": 134230296, + "EXTI4_15_IRQHandler": 134230296, + "FLASH_IRQHandler": 134230296, + "I2C1_IRQHandler": 134230296, + "I2C2_3_IRQHandler": 134230296, + "Infinite_Loop": 134230296, + "PVD_VDDIO2_IRQHandler": 134230296, + "RCC_CRS_IRQHandler": 134230296, + "RTC_TAMP_IRQHandler": 134230296, + "SPI1_IRQHandler": 134230296, + "SPI2_3_IRQHandler": 134230296, + "TIM1_BRK_UP_TRG_COM_IRQHandler": 134230296, + "TIM1_CC_IRQHandler": 134230296, + "TIM14_IRQHandler": 134230296, + "TIM15_IRQHandler": 134230296, + "TIM2_IRQHandler": 134230296, + "TIM3_TIM4_IRQHandler": 134230296, + "TIM6_DAC_LPTIM1_IRQHandler": 134230296, + "TIM7_LPTIM2_IRQHandler": 134230296, + "USART1_IRQHandler": 134230296, + "USART3_4_5_6_LPUART1_IRQHandler": 134230296, + "USB_UCPD1_2_IRQHandler": 134230296, + "WWDG_IRQHandler": 134230296, + "RoundTenths": 134230298, + "ReadLeS16": 134230320, + "ConfigureCanPort": 134230344, + "SetDashValid": 134230532, + "SetDashValue": 134230592, + "RestartScreenRx": 134230644, + "AMI_App_Init": 134230700, + "AMI_App_Service": 134230856, + "HAL_FDCAN_RxFifo0Callback": 134232028, + "HAL_FDCAN_ErrorCallback": 134232816, + "HAL_UARTEx_RxEventCallback": 134232832, + "HAL_UART_TxCpltCallback": 134233028, + "HAL_UART_ErrorCallback": 134233052, + "memset": 134233088, + "__libc_init_array": 134233104, + "memcpy": 134233176, + "__EH_FRAME_BEGIN__": 134233196, + "_init": 134233196, + "_fini": 134233208, + "_etext": 134233220, + "APBPrescTable": 134233220, + "AHBPrescTable": 134233252, + "DLCtoBytes": 134233316, + "UARTPrescTable": 134233332, + "__exidx_start": 134233688, + "__exidx_end": 134233696, + "__frame_dummy_init_array_entry": 134233696, + "__init_array_start": 134233696, + "__preinit_array_end": 134233696, + "__preinit_array_start": 134233696, + "__do_global_dtors_aux_fini_array_entry": 134233700, + "__init_array_end": 134233700, + "_sidata": 134233704, + "_sdata": 536870912, + "SystemCoreClock": 536870912, + "uwTickFreq": 536870916, + "uwTickPrio": 536870920, + "__bss_start__": 536870924, + "_edata": 536870924, + "_sbss": 536870924, + "uwTick": 536870952, + "HAL_RCC_FDCAN_CLK_ENABLED": 536870956, + "hfdcan2": 536870960, + "hfdcan1": 536871060, + "hdma_usart2_rx": 536871160, + "hdma_usart2_tx": 536871256, + "huart2": 536871352, + "task_drop_count": 536871516, + "task_target_mask": 536871520, + "task_tx_mask": 536871521, + "task_sequence": 536871522, + "task_tail": 536871523, + "task_head": 536871524, + "task_queue": 536871525, + "parser_task_id": 536871529, + "parser_pos": 536871530, + "screen_tx_busy": 536871531, + "screen_tx_dma": 536871532, + "screen_rx_dma": 536871564, + "uart_rx_error_count": 536871628, + "can_rx_error_count": 536871632, + "can_port_last_rx_ms": 536871636, + "bms_current_tenths": 536871644, + "bms_voltage_tenths": 536871648, + "sdc_gpio_received": 536871650, + "sdc_gpio_timestamp_ms": 536871652, + "sdc_gpio_changed": 536871656, + "sdc_gpio_state": 536871658, + "sdc_frequency_hz": 536871660, + "sdc_adc_mv": 536871668, + "drivetrain_last_rx_ms": 536871672, + "bms_temperature_last_rx_ms": 536871676, + "bms_status_last_rx_ms": 536871680, + "adc_last_rx_ms": 536871684, + "debug_last_rx_ms": 536871688, + "dash_last_rx_ms": 536871692, + "display_dirty": 536871696, + "display_state": 536871700, + "__bss_end__": 536871752, + "_ebss": 536871752, + "_end": 536871752, + "_estack": 537018368 +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/test_mapping.py b/docs/evidence/2026-10-03/debug-gpio-mapped/test_mapping.py new file mode 100644 index 0000000..ad42e46 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/test_mapping.py @@ -0,0 +1,116 @@ +import json, os, re, struct, subprocess, threading, time +from pathlib import Path +import numpy as np +import pyautogui +from pywinauto import Desktop + +ROOT=Path(__file__).resolve().parent +PROJECT=ROOT.parents[1] +DLL=PROJECT/'tmp/can1-test-20261002/pcan-basic/x64' +os.environ['PATH']=str(DLL)+os.pathsep+os.environ['PATH'] +handle=os.add_dll_directory(str(DLL)) +import can +CLI=r'D:\STM32CubeCLT_1.19.0\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe' +NM=r'D:\STM32CubeCLT_1.19.0\GNU-tools-for-STM32\bin\arm-none-eabi-nm.exe' +nm=subprocess.check_output([NM,'-n',str(PROJECT/'firmware/build/Release/AMI_Controller.elf')]).decode().replace('\r','') +symbols={n:int(a,16) for a,k,n in re.findall(r'^(\w+)\s+(\w)\s+(\w+)$',nm,re.M)} +(ROOT/'symbols.json').write_text(json.dumps(symbols,indent=2),encoding='utf-8') +names=['sdc_gpio_state','sdc_gpio_changed','sdc_gpio_timestamp_ms','display_state','can_port_last_rx_ms','can_rx_error_count','uart_rx_error_count'] +base=min(symbols[n] for n in names)&~3 +length=((symbols['display_state']+56-base+3)//4)*4 +MAP=[0,5,2,6,7,1,3,4,8,9,10,11,12,13,14] +ROIS={0:[(15,82,165,118)],1:[(374,82,525,118),(555,146,706,185)],2:[(555,82,706,118)],3:[(374,146,525,185)],4:[(195,146,345,185)],5:[(15,241,225,272)],6:[(255,241,465,272)],7:[(495,241,705,272)],8:[(15,311,165,341)],9:[(195,311,345,341)],10:[(375,311,525,341)],11:[(555,311,705,341)],12:[(15,375,165,405)],13:[(195,375,345,405)],14:[(375,375,525,405)],15:[(555,375,705,405)]} +window=Desktop(backend='win32').window(handle=2034542) +window.set_focus() +canvas=next(c.rectangle() for c in window.children() if c.rectangle().width()==720 and c.rectangle().height()==408) +rows=[] +tx=[] +errors=[] +heartbeat=True +stop=threading.Event() + +def memory(name): + result=subprocess.run([CLI,'-c','port=SWD','mode=HOTPLUG','freq=1000','-r32',hex(base),str(length)],capture_output=True,timeout=15) + (ROOT/f'{name}_ram.log').write_bytes(result.stdout+result.stderr) + assert result.returncode==0 + mem={} + for address,words in re.findall(r'0x([0-9A-Fa-f]+)\s*:\s*((?:[0-9A-Fa-f]{8}\s*)+)',result.stdout.decode(errors='replace')): + addr=int(address,16) + for word in words.split(): + for i,b in enumerate(struct.pack('75)&(r<180)&(abs(r-g)<8)&(abs(r-b)<8)).sum()),int(((g>180)&(r<80)&(b<80)).sum()),int(((r>180)&(g<80)&(b<80)).sum())] + matching.append(counts[state]>20 and (state==1 or counts[1]==0) and (state==2 or counts[2]==0)) + rows.append({'name':name,'expected':target,'snapshot':values,'hmi_color_match':all(matching),'screenshot':f'{name}.png','pcan_status':hex(bus.status())}) + (ROOT/'mapping-results.json').write_text(json.dumps({'map':MAP,'normal_level':0,'checks':rows,'tx':tx},indent=2),encoding='utf-8') + print(json.dumps({'name':name,'mcu_passed':True,'hmi_color_match':all(matching)}),flush=True) + try: + check('heartbeat_before_sample',None,0,0,[0]*16) + check('all_normal',0,0x7fff,1000) + for bit in range(15): + check(f'PD{bit}_high_fault',1<K$Kn$C`c~>=`A2#x=2xa5s)su6F>n40qH$} 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-gpio-mapped/wrong_extended_ram.log b/docs/evidence/2026-10-03/debug-gpio-mapped/wrong_extended_ram.log new file mode 100644 index 0000000..1119dce --- /dev/null +++ b/docs/evidence/2026-10-03/debug-gpio-mapped/wrong_extended_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0006AF69 00000000 +0x200002DC : 00000000 00010000 00001388 00010002 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0006AF69 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010200 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD0_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD0_high_fault_ram.log new file mode 100644 index 0000000..c9a9dc8 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD0_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00178CE8 00000000 +0x200002DC : 00000000 00010000 000007D0 00010001 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00178CE8 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010200 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD0_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD0_low_normal_ram.log new file mode 100644 index 0000000..bed8ff8 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD0_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017900B 00000000 +0x200002DC : 00000000 00010000 000007D1 00000001 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017900B +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD10_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD10_high_fault_ram.log new file mode 100644 index 0000000..eb24ff1 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD10_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017CD53 00000000 +0x200002DC : 00000000 00010000 000007E4 04000400 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017CD53 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 02010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD10_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD10_low_normal_ram.log new file mode 100644 index 0000000..88a1d14 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD10_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017D089 00000000 +0x200002DC : 00000000 00010000 000007E5 00000400 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017D089 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD11_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD11_high_fault_ram.log new file mode 100644 index 0000000..1f73141 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD11_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017D3BF 00000000 +0x200002DC : 00000000 00010000 000007E6 08000800 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017D3BF +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010102 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD11_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD11_low_normal_ram.log new file mode 100644 index 0000000..a576350 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD11_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017D6F7 00000000 +0x200002DC : 00000000 00010000 000007E7 00000800 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017D6F7 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD12_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD12_high_fault_ram.log new file mode 100644 index 0000000..331b527 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD12_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017DA29 00000000 +0x200002DC : 00000000 00010000 000007E8 10001000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017DA29 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010201 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD12_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD12_low_normal_ram.log new file mode 100644 index 0000000..5d2909a --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD12_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017DD5E 00000000 +0x200002DC : 00000000 00010000 000007E9 00001000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017DD5E +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD13_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD13_high_fault_ram.log new file mode 100644 index 0000000..3fc6601 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD13_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017E094 00000000 +0x200002DC : 00000000 00010000 000007EA 20002000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017E094 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01020101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD13_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD13_low_normal_ram.log new file mode 100644 index 0000000..9994333 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD13_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017E3C9 00000000 +0x200002DC : 00000000 00010000 000007EB 00002000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017E3C9 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD14_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD14_high_fault_ram.log new file mode 100644 index 0000000..f7e420f --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD14_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017E6F9 00000000 +0x200002DC : 00000000 00010000 000007EC 40004000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017E6F9 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 02010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD14_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD14_low_normal_ram.log new file mode 100644 index 0000000..fe6de1f --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD14_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017EA35 00000000 +0x200002DC : 00000000 00010000 000007ED 00004000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017EA35 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD1_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD1_high_fault_ram.log new file mode 100644 index 0000000..6e8836d --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD1_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00179392 00000000 +0x200002DC : 00000000 00010000 000007D2 00020002 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00179392 +0x2000030C : 00000000 F8003FFF 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01020101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD1_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD1_low_normal_ram.log new file mode 100644 index 0000000..9c7e7ca --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD1_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 001796B9 00000000 +0x200002DC : 00000000 00010000 000007D3 00000002 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 001796B9 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD2_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD2_high_fault_ram.log new file mode 100644 index 0000000..2dbbfeb --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD2_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 001799EA 00000000 +0x200002DC : 00000000 00010000 000007D4 00040004 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 001799EA +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 02010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD2_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD2_low_normal_ram.log new file mode 100644 index 0000000..8e3d3a8 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD2_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00179D26 00000000 +0x200002DC : 00000000 00010000 000007D5 00000004 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00179D26 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD3_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD3_high_fault_ram.log new file mode 100644 index 0000000..9e1f014 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD3_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017A05E 00000000 +0x200002DC : 00000000 00010000 000007D6 00080008 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017A05E +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 02010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD3_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD3_low_normal_ram.log new file mode 100644 index 0000000..fff068c --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD3_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017A39A 00000000 +0x200002DC : 00000000 00010000 000007D7 00000008 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017A39A +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD4_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD4_high_fault_ram.log new file mode 100644 index 0000000..4f76b8e --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD4_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017A6D0 00000000 +0x200002DC : 00000000 00010000 000007D8 00100010 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017A6D0 +0x2000030C : 00000000 FE00FFFF 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010102 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD4_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD4_low_normal_ram.log new file mode 100644 index 0000000..bd86dfa --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD4_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017AA06 00000000 +0x200002DC : 00000000 00010000 000007D9 00000010 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017AA06 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD5_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD5_high_fault_ram.log new file mode 100644 index 0000000..5bf5c41 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD5_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017AD48 00000000 +0x200002DC : 00000000 00010000 000007DA 00200020 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017AD48 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01020100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD5_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD5_low_normal_ram.log new file mode 100644 index 0000000..ba284b7 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD5_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017B07C 00000000 +0x200002DC : 00000000 00010000 000007DB 00000020 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017B07C +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD6_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD6_high_fault_ram.log new file mode 100644 index 0000000..b719cd3 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD6_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017B3B3 00000000 +0x200002DC : 00000000 00010000 000007DC 00400040 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017B3B3 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010102 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD6_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD6_low_normal_ram.log new file mode 100644 index 0000000..57df48d --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD6_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017B6EC 00000000 +0x200002DC : 00000000 00010000 000007DD 00000040 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017B6EC +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD7_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD7_high_fault_ram.log new file mode 100644 index 0000000..ff21f3d --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD7_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017BA1B 00000000 +0x200002DC : 00000000 00010000 000007DE 00800080 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017BA1B +0x2000030C : 00000000 FFFFDFFF 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010201 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD7_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD7_low_normal_ram.log new file mode 100644 index 0000000..2a18767 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD7_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017BD4F 00000000 +0x200002DC : 00000000 00010000 000007DF 00000080 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017BD4F +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD8_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD8_high_fault_ram.log new file mode 100644 index 0000000..582388b --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD8_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017C085 00000000 +0x200002DC : 00000000 00010000 000007E0 01000100 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017C085 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010201 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD8_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD8_low_normal_ram.log new file mode 100644 index 0000000..2eecd81 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD8_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017C3B6 00000000 +0x200002DC : 00000000 00010000 000007E1 00000100 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017C3B6 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD9_high_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/PD9_high_fault_ram.log new file mode 100644 index 0000000..305daa8 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD9_high_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017C6ED 00000000 +0x200002DC : 00000000 00010000 000007E2 02000200 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017C6ED +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01020101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/PD9_low_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/PD9_low_normal_ram.log new file mode 100644 index 0000000..a6223b0 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/PD9_low_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017CA23 00000000 +0x200002DC : 00000000 00010000 000007E3 00000200 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017CA23 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/all_fault_ram.log b/docs/evidence/2026-10-03/debug-layout/all_fault_ram.log new file mode 100644 index 0000000..07f8a06 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/all_fault_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017ED65 00000000 +0x200002DC : 00000000 00010000 00000FA0 7FFF7FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017ED65 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 02020200 02020202 +0x2000033C : 02020202 02020202 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/all_normal_ram.log b/docs/evidence/2026-10-03/debug-layout/all_normal_ram.log new file mode 100644 index 0000000..e8a6aba --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/all_normal_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 001789C5 00000000 +0x200002DC : 00000000 00010000 000003E8 00007FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 001789C5 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/compile.log b/docs/evidence/2026-10-03/debug-layout/compile.log new file mode 100644 index 0000000..60226cd --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/compile.log @@ -0,0 +1,9 @@ +总可用内存:524288 +全局内存占用:2496 +图片总大小:12,781 +字库总大小:5,255,658 +页面:dash 占用内存:2496+2224=4720 +页面:debug 占用内存:2496+288=2784 +页面:CONFIRM 占用内存:2496+608=3104 +File Check Finish +编译成功! 0个错误, 0个警告,文件大小:6,238,816 diff --git a/docs/evidence/2026-10-03/debug-layout/dbc-verification.json b/docs/evidence/2026-10-03/debug-layout/dbc-verification.json new file mode 100644 index 0000000..c0464f2 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/dbc-verification.json @@ -0,0 +1,17 @@ +{ + "result": "passed", + "messages": 11, + "signals": 40, + "known_payload_checks": 28, + "all_task_ids_and_counter_edges": true, + "ports_bitrate": { + "CAN1": 500000, + "CAN2": 250000 + }, + "both_dbc_layouts_and_payloads_match": true, + "firmware_and_ioc_bit_timing_match": true, + "firmware_ids_match": true, + "sdc_source_layout_match": true, + "display_sender_known_bytes_and_argument_rejection": true, + "cantools_version": "44.1.0" +} diff --git a/docs/evidence/2026-10-03/debug-layout/debug-postinit-readback.txt b/docs/evidence/2026-10-03/debug-layout/debug-postinit-readback.txt new file mode 100644 index 0000000..ec7dadf --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/debug-postinit-readback.txt @@ -0,0 +1,316 @@ +xstr 8,2,160,24,0,2047,0,1,1,1,"DEBUG 安全回路" +xstr 170,2,235,24,0,33840,0,1,1,1,"灰未知 绿正常 红故障" +draw 8,34,111,79,10565 +xstr 9,36,102,18,0,65535,0,1,1,1,"配电箱" +draw 128,34,231,79,10565 +xstr 129,36,102,18,0,65535,0,1,1,1,"左电机互锁" +draw 248,34,351,79,10565 +xstr 249,36,102,18,0,65535,0,1,1,1,"左急停" +draw 368,34,471,79,10565 +xstr 369,36,102,18,0,65535,0,1,1,1,"电池箱" +draw 128,84,231,129,10565 +xstr 129,86,102,18,0,65535,0,1,1,1,"回路末端" +draw 248,84,351,129,10565 +xstr 249,86,102,18,0,65535,0,1,1,1,"驾舱/右急停" +draw 368,84,471,129,10565 +xstr 369,86,102,18,0,65535,0,1,1,1,"行程/惯性" +line 112,56,128,56,2047 +line 124,53,128,56,2047 +line 124,59,128,56,2047 +line 232,56,248,56,2047 +line 244,53,248,56,2047 +line 244,59,248,56,2047 +line 352,56,368,56,2047 +line 364,53,368,56,2047 +line 364,59,368,56,2047 +line 472,56,478,56,2047 +line 478,56,478,106,2047 +line 478,106,472,106,2047 +line 352,106,368,106,2047 +line 356,103,352,106,2047 +line 356,109,352,106,2047 +line 232,106,248,106,2047 +line 236,103,232,106,2047 +line 236,109,232,106,2047 +draw 8,137,231,182,10565 +xstr 9,139,222,19,0,50712,0,1,1,1,"RES" +draw 248,137,471,182,10565 +xstr 249,139,222,19,0,50712,0,1,1,1,"主控盒" +draw 8,188,111,229,10565 +xstr 9,190,102,19,0,2047,0,1,1,1,"EBS 舵机" +draw 128,188,231,229,10565 +xstr 129,190,102,19,0,2047,0,1,1,1,"EBS 电磁阀" +draw 248,188,351,229,10565 +xstr 249,190,102,19,0,2047,0,1,1,1,"EBS 气压" +draw 368,188,471,229,10565 +xstr 369,190,102,19,0,2047,0,1,1,1,"EBS 油压" +draw 8,232,111,271,10565 +xstr 9,234,102,19,0,2047,0,1,1,1,"无人驾驶惯导" +draw 128,232,231,271,10565 +xstr 129,234,102,19,0,2047,0,1,1,1,"无人驾驶轮速" +draw 248,232,351,271,10565 +xstr 249,234,102,19,0,2047,0,1,1,1,"无人驾驶相机" +draw 368,232,471,271,10565 +xstr 369,234,102,19,0,2047,0,1,1,1,"主控盒12V" +if(d0==1) +{ + t0.txt="正常" + t0.pco=2016 +}else +{ + if(d0==2) + { + t0.txt="故障" + t0.pco=63488 + }else + { + t0.txt="未知" + t0.pco=33840 + } +} +if(d1==1) +{ + t1.txt="正常" + t1.pco=2016 + t3.txt="正常" + t3.pco=2016 +}else +{ + if(d1==2) + { + t1.txt="故障" + t1.pco=63488 + t3.txt="故障" + t3.pco=63488 + }else + { + t1.txt="未知" + t1.pco=33840 + t3.txt="未知" + t3.pco=33840 + } +} +if(d2==1) +{ + t2.txt="正常" + t2.pco=2016 +}else +{ + if(d2==2) + { + t2.txt="故障" + t2.pco=63488 + }else + { + t2.txt="未知" + t2.pco=33840 + } +} +if(d3==1) +{ + t4.txt="正常" + t4.pco=2016 +}else +{ + if(d3==2) + { + t4.txt="故障" + t4.pco=63488 + }else + { + t4.txt="未知" + t4.pco=33840 + } +} +if(d4==1) +{ + t5.txt="正常" + t5.pco=2016 +}else +{ + if(d4==2) + { + t5.txt="故障" + t5.pco=63488 + }else + { + t5.txt="未知" + t5.pco=33840 + } +} +if(d5==1) +{ + t6.txt="正常" + t6.pco=2016 +}else +{ + if(d5==2) + { + t6.txt="故障" + t6.pco=63488 + }else + { + t6.txt="未知" + t6.pco=33840 + } +} +if(d6==1) +{ + t7.txt="正常" + t7.pco=2016 +}else +{ + if(d6==2) + { + t7.txt="故障" + t7.pco=63488 + }else + { + t7.txt="未知" + t7.pco=33840 + } +} +if(d7==1) +{ + t8.txt="正常" + t8.pco=2016 +}else +{ + if(d7==2) + { + t8.txt="故障" + t8.pco=63488 + }else + { + t8.txt="未知" + t8.pco=33840 + } +} +if(d8==1) +{ + t9.txt="正常" + t9.pco=2016 +}else +{ + if(d8==2) + { + t9.txt="故障" + t9.pco=63488 + }else + { + t9.txt="未知" + t9.pco=33840 + } +} +if(d9==1) +{ + t10.txt="正常" + t10.pco=2016 +}else +{ + if(d9==2) + { + t10.txt="故障" + t10.pco=63488 + }else + { + t10.txt="未知" + t10.pco=33840 + } +} +if(d10==1) +{ + t11.txt="正常" + t11.pco=2016 +}else +{ + if(d10==2) + { + t11.txt="故障" + t11.pco=63488 + }else + { + t11.txt="未知" + t11.pco=33840 + } +} +if(d11==1) +{ + t12.txt="正常" + t12.pco=2016 +}else +{ + if(d11==2) + { + t12.txt="故障" + t12.pco=63488 + }else + { + t12.txt="未知" + t12.pco=33840 + } +} +if(d12==1) +{ + t13.txt="正常" + t13.pco=2016 +}else +{ + if(d12==2) + { + t13.txt="故障" + t13.pco=63488 + }else + { + t13.txt="未知" + t13.pco=33840 + } +} +if(d13==1) +{ + t14.txt="正常" + t14.pco=2016 +}else +{ + if(d13==2) + { + t14.txt="故障" + t14.pco=63488 + }else + { + t14.txt="未知" + t14.pco=33840 + } +} +if(d14==1) +{ + t15.txt="正常" + t15.pco=2016 +}else +{ + if(d14==2) + { + t15.txt="故障" + t15.pco=63488 + }else + { + t15.txt="未知" + t15.pco=33840 + } +} +if(d15==1) +{ + t16.txt="正常" + t16.pco=2016 +}else +{ + if(d15==2) + { + t16.txt="故障" + t16.pco=63488 + }else + { + t16.txt="未知" + t16.pco=33840 + } +} diff --git a/docs/evidence/2026-10-03/debug-layout/final_timeout_ram.log b/docs/evidence/2026-10-03/debug-layout/final_timeout_ram.log new file mode 100644 index 0000000..7d09e5a --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/final_timeout_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 001808AD 00000000 +0x200002DC : 00000000 00010000 00001F40 00007FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 001808AD +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/fresh_sample_recovery_ram.log b/docs/evidence/2026-10-03/debug-layout/fresh_sample_recovery_ram.log new file mode 100644 index 0000000..19e7ba9 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/fresh_sample_recovery_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00180844 00000000 +0x200002DC : 00000000 00010000 00001F40 00007FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00180844 +0x2000030C : 00000000 FF7FFFFF 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010100 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/heartbeat_alone_after_loss_ram.log b/docs/evidence/2026-10-03/debug-layout/heartbeat_alone_after_loss_ram.log new file mode 100644 index 0000000..ece8a36 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/heartbeat_alone_after_loss_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00180521 00000000 +0x200002DC : 00000000 00010000 00001388 00010002 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00180521 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/heartbeat_before_sample_ram.log b/docs/evidence/2026-10-03/debug-layout/heartbeat_before_sample_ram.log new file mode 100644 index 0000000..10e14be --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/heartbeat_before_sample_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 00178690 00000000 +0x200002DC : 00000000 00010000 00001F40 00007FFF +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 00178690 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 00000000 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/heartbeat_holds_sample_ram.log b/docs/evidence/2026-10-03/debug-layout/heartbeat_holds_sample_ram.log new file mode 100644 index 0000000..33683b5 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/heartbeat_holds_sample_ram.log @@ -0,0 +1,32 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.28V +SWD freq : 950 KHz +Connect mode: Hot Plug +Reset mode : Software reset +Device ID : 0x467 +Revision ID : Rev Z +Device name : STM32G0B0xx/B1xx/C1xx +Flash size : 128 KBytes +Device type : MCU +Device CPU : Cortex-M0+ +BL Version : 0x92 + + +Reading 32-bit memory content + Size : 128 Bytes + Address: : 0x200002CC + +0x200002CC : 00000000 00000000 0017FC80 00000000 +0x200002DC : 00000000 00010000 00001388 00010002 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 00000000 0017FC80 +0x2000030C : 00000000 00000000 00000000 00000000 +0x2000031C : 00000000 00000000 00000000 00000000 +0x2000032C : 00000000 00000000 01010200 01010101 +0x2000033C : 01010101 01010101 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/debug-layout/inspect_uart.py b/docs/evidence/2026-10-03/debug-layout/inspect_uart.py new file mode 100644 index 0000000..4dbd0c1 --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/inspect_uart.py @@ -0,0 +1,10 @@ +import json, re, subprocess +from pathlib import Path +R=Path(__file__).resolve().parent +S=json.loads((R/'symbols.json').read_text()) +CLI=r'D:\STM32CubeCLT_1.19.0\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe' +for n,size in [('screen_tx_busy',4),('display_dirty',4),('huart2',128),('hdma_usart2_tx',96),('screen_tx_dma',32),('uwTick',4)]: + a=S[n]&~3 + p=subprocess.run([CLI,'-c','port=SWD','mode=HOTPLUG','freq=1000','-r32',hex(a),str(size)],capture_output=True,timeout=15) + (R/f'uart-{n}.log').write_bytes(p.stdout+p.stderr) + print(n,hex(S[n]),'\n'.join(x for x in p.stdout.decode(errors='replace').splitlines() if re.match(r'0x[0-9a-fA-F]+\s*:',x)),flush=True) diff --git a/docs/evidence/2026-10-03/debug-layout/mapping-results.json b/docs/evidence/2026-10-03/debug-layout/mapping-results.json new file mode 100644 index 0000000..8a5f45f --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/mapping-results.json @@ -0,0 +1,3692 @@ +{ + "map": [ + 0, + 5, + 2, + 6, + 7, + 1, + 3, + 4, + 8, + 9, + 10, + 11, + 12, + 13, + 14 + ], + "normal_level": 0, + "checks": [ + { + "name": "heartbeat_before_sample", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 1541776, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "heartbeat_before_sample.png", + "pcan_status": "0x0" + }, + { + "name": "all_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 1000, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1542597, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "all_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD0_high_fault", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 1, + "timestamp": 2000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1543400, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD0_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD0_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 1, + "timestamp": 2001, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1544203, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD0_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD1_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 2, + "changed": 2, + "timestamp": 2002, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1545106, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD1_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD1_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 2, + "timestamp": 2003, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1545913, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD1_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD2_high_fault", + "expected": [ + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 4, + "changed": 4, + "timestamp": 2004, + "debug_state": [ + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1546730, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD2_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD2_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 4, + "timestamp": 2005, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1547558, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD2_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD3_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 8, + "changed": 8, + "timestamp": 2006, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1548382, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD3_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD3_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 8, + "timestamp": 2007, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1549210, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD3_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD4_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 16, + "changed": 16, + "timestamp": 2008, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1550032, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD4_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD4_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 16, + "timestamp": 2009, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1550854, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD4_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD5_high_fault", + "expected": [ + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 32, + "changed": 32, + "timestamp": 2010, + "debug_state": [ + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1551688, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD5_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD5_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32, + "timestamp": 2011, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1552508, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD5_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD6_high_fault", + "expected": [ + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 64, + "changed": 64, + "timestamp": 2012, + "debug_state": [ + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1553331, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD6_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD6_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 64, + "timestamp": 2013, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1554156, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD6_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD7_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 128, + "changed": 128, + "timestamp": 2014, + "debug_state": [ + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1554971, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD7_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD7_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 128, + "timestamp": 2015, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1555791, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD7_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD8_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 256, + "changed": 256, + "timestamp": 2016, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1556613, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD8_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD8_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 256, + "timestamp": 2017, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1557430, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD8_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD9_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 512, + "changed": 512, + "timestamp": 2018, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1558253, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD9_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD9_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 512, + "timestamp": 2019, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1559075, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD9_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD10_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1024, + "changed": 1024, + "timestamp": 2020, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1559891, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD10_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD10_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 1024, + "timestamp": 2021, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1560713, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD10_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD11_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 2048, + "changed": 2048, + "timestamp": 2022, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1561535, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD11_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD11_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 2048, + "timestamp": 2023, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1562359, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD11_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD12_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 0 + ], + "snapshot": { + "state": 4096, + "changed": 4096, + "timestamp": 2024, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1563177, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD12_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD12_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 4096, + "timestamp": 2025, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1563998, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD12_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD13_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0 + ], + "snapshot": { + "state": 8192, + "changed": 8192, + "timestamp": 2026, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 1, + 0 + ], + "port_rx_ms": [ + 1564820, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD13_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD13_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 8192, + "timestamp": 2027, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1565641, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD13_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "PD14_high_fault", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0 + ], + "snapshot": { + "state": 16384, + "changed": 16384, + "timestamp": 2028, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 0 + ], + "port_rx_ms": [ + 1566457, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD14_high_fault.png", + "pcan_status": "0x0" + }, + { + "name": "PD14_low_normal", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 16384, + "timestamp": 2029, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1567285, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "PD14_low_normal.png", + "pcan_status": "0x0" + }, + { + "name": "all_fault", + "expected": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "snapshot": { + "state": 32767, + "changed": 32767, + "timestamp": 4000, + "debug_state": [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0 + ], + "port_rx_ms": [ + 1568101, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "all_fault.png", + "pcan_status": "0x0" + }, + { + "name": "unused_bit15", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1568915, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "unused_bit15.png", + "pcan_status": "0x0" + }, + { + "name": "truncated", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1569736, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "truncated.png", + "pcan_status": "0x0" + }, + { + "name": "wrong_extended", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1570552, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "wrong_extended.png", + "pcan_status": "0x0" + }, + { + "name": "heartbeat_holds_sample", + "expected": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 2, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1571968, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "heartbeat_holds_sample.png", + "pcan_status": "0x0" + }, + { + "name": "source_timeout", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 1572068, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "source_timeout.png", + "pcan_status": "0x0" + }, + { + "name": "heartbeat_alone_after_loss", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 1, + "changed": 2, + "timestamp": 5000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 1574177, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "heartbeat_alone_after_loss.png", + "pcan_status": "0x0" + }, + { + "name": "fresh_sample_recovery", + "expected": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0 + ], + "port_rx_ms": [ + 1574980, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": false, + "screenshot": "fresh_sample_recovery.png", + "pcan_status": "0x0" + }, + { + "name": "final_timeout", + "expected": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "snapshot": { + "state": 0, + "changed": 32767, + "timestamp": 8000, + "debug_state": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "port_rx_ms": [ + 1575085, + 0 + ], + "can_errors": 0, + "uart_errors": 0 + }, + "hmi_color_match": true, + "screenshot": "final_timeout.png", + "pcan_status": "0x0" + } + ], + "tx": [ + { + "id": "0x6A0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 01 00 64 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 02 00 c8 00 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 03 00 2c 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 04 00 90 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 05 00 f4 01 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 06 00 58 02 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 07 00 bc 02 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 08 00 20 03 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 ff 7f e8 03 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 09 00 84 03 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0a 00 e8 03 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0b 00 4c 04 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0c 00 b0 04 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0d 00 14 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0e 00 78 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0f 00 dc 05 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 10 00 40 06 00 00" + }, + { + "id": "0x6A6", + "data": "01 00 01 00 d0 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 11 00 a4 06 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 12 00 08 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 13 00 6c 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 14 00 d0 07 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 15 00 34 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 16 00 98 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 17 00 fc 08 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 18 00 60 09 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 01 00 d1 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 19 00 c4 09 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1a 00 28 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1b 00 8c 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1c 00 f0 0a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1d 00 54 0b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1e 00 b8 0b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1f 00 1c 0c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 20 00 80 0c 00 00" + }, + { + "id": "0x6A6", + "data": "02 00 02 00 d2 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 21 00 e4 0c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 22 00 48 0d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 23 00 ac 0d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 24 00 10 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 25 00 74 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 26 00 d8 0e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 27 00 3c 0f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 28 00 a0 0f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 29 00 04 10 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 02 00 d3 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 2a 00 68 10 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2b 00 cc 10 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2c 00 30 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2d 00 94 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2e 00 f8 11 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2f 00 5c 12 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 30 00 c0 12 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 31 00 24 13 00 00" + }, + { + "id": "0x6A6", + "data": "04 00 04 00 d4 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 32 00 88 13 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 33 00 ec 13 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 34 00 50 14 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 35 00 b4 14 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 36 00 18 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 37 00 7c 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 38 00 e0 15 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 39 00 44 16 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 04 00 d5 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 3a 00 a8 16 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3b 00 0c 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3c 00 70 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3d 00 d4 17 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3e 00 38 18 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3f 00 9c 18 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 40 00 00 19 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 41 00 64 19 00 00" + }, + { + "id": "0x6A6", + "data": "08 00 08 00 d6 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 42 00 c8 19 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 43 00 2c 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 44 00 90 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 45 00 f4 1a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 46 00 58 1b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 47 00 bc 1b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 48 00 20 1c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 49 00 84 1c 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 08 00 d7 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 4a 00 e8 1c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4b 00 4c 1d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4c 00 b0 1d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4d 00 14 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4e 00 78 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 4f 00 dc 1e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 50 00 40 1f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 51 00 a4 1f 00 00" + }, + { + "id": "0x6A6", + "data": "10 00 10 00 d8 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 52 00 08 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 53 00 6c 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 54 00 d0 20 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 55 00 34 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 56 00 98 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 57 00 fc 21 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 58 00 60 22 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 59 00 c4 22 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 10 00 d9 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 5a 00 28 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5b 00 8c 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5c 00 f0 23 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5d 00 54 24 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5e 00 b8 24 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 5f 00 1c 25 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 60 00 80 25 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 61 00 e4 25 00 00" + }, + { + "id": "0x6A6", + "data": "20 00 20 00 da 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 62 00 48 26 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 63 00 ac 26 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 64 00 10 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 65 00 74 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 66 00 d8 27 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 67 00 3c 28 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 68 00 a0 28 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 69 00 04 29 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 20 00 db 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 6a 00 68 29 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6b 00 cc 29 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6c 00 30 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6d 00 94 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6e 00 f8 2a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 6f 00 5c 2b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 70 00 c0 2b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 71 00 24 2c 00 00" + }, + { + "id": "0x6A6", + "data": "40 00 40 00 dc 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 72 00 88 2c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 73 00 ec 2c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 74 00 50 2d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 75 00 b4 2d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 76 00 18 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 77 00 7c 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 78 00 e0 2e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 79 00 44 2f 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 40 00 dd 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 7a 00 a8 2f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7b 00 0c 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7c 00 70 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7d 00 d4 30 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7e 00 38 31 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 7f 00 9c 31 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 80 00 00 32 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 81 00 64 32 00 00" + }, + { + "id": "0x6A6", + "data": "80 00 80 00 de 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 82 00 c8 32 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 83 00 2c 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 84 00 90 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 85 00 f4 33 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 86 00 58 34 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 87 00 bc 34 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 88 00 20 35 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 89 00 84 35 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 80 00 df 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 8a 00 e8 35 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8b 00 4c 36 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8c 00 b0 36 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8d 00 14 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8e 00 78 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 8f 00 dc 37 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 90 00 40 38 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 91 00 a4 38 00 00" + }, + { + "id": "0x6A6", + "data": "00 01 00 01 e0 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 92 00 08 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 93 00 6c 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 94 00 d0 39 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 95 00 34 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 96 00 98 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 97 00 fc 3a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 98 00 60 3b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 99 00 c4 3b 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 01 e1 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 9a 00 28 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9b 00 8c 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9c 00 f0 3c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9d 00 54 3d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9e 00 b8 3d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 9f 00 1c 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a0 00 80 3e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a1 00 e4 3e 00 00" + }, + { + "id": "0x6A6", + "data": "00 02 00 02 e2 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 a2 00 48 3f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a3 00 ac 3f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a4 00 10 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a5 00 74 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a6 00 d8 40 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a7 00 3c 41 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a8 00 a0 41 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 a9 00 04 42 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 02 e3 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 aa 00 68 42 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ab 00 cc 42 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ac 00 30 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ad 00 94 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ae 00 f8 43 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 af 00 5c 44 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b0 00 c0 44 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b1 00 24 45 00 00" + }, + { + "id": "0x6A6", + "data": "00 04 00 04 e4 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 b2 00 88 45 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b3 00 ec 45 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b4 00 50 46 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b5 00 b4 46 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b6 00 18 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b7 00 7c 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b8 00 e0 47 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 b9 00 44 48 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 04 e5 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 ba 00 a8 48 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bb 00 0c 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bc 00 70 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bd 00 d4 49 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 be 00 38 4a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 bf 00 9c 4a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c0 00 00 4b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c1 00 64 4b 00 00" + }, + { + "id": "0x6A6", + "data": "00 08 00 08 e6 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 c2 00 c8 4b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c3 00 2c 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c4 00 90 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c5 00 f4 4c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c6 00 58 4d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c7 00 bc 4d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c8 00 20 4e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 c9 00 84 4e 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 08 e7 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 ca 00 e8 4e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cb 00 4c 4f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cc 00 b0 4f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cd 00 14 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ce 00 78 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 cf 00 dc 50 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d0 00 40 51 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d1 00 a4 51 00 00" + }, + { + "id": "0x6A6", + "data": "00 10 00 10 e8 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 d2 00 08 52 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d3 00 6c 52 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d4 00 d0 52 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d5 00 34 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d6 00 98 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d7 00 fc 53 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d8 00 60 54 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 d9 00 c4 54 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 10 e9 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 da 00 28 55 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 db 00 8c 55 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 dc 00 f0 55 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 dd 00 54 56 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 de 00 b8 56 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 df 00 1c 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e0 00 80 57 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e1 00 e4 57 00 00" + }, + { + "id": "0x6A6", + "data": "00 20 00 20 ea 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 e2 00 48 58 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e3 00 ac 58 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e4 00 10 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e5 00 74 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e6 00 d8 59 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e7 00 3c 5a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e8 00 a0 5a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 e9 00 04 5b 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 20 eb 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 ea 00 68 5b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 eb 00 cc 5b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ec 00 30 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ed 00 94 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ee 00 f8 5c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ef 00 5c 5d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f0 00 c0 5d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f1 00 24 5e 00 00" + }, + { + "id": "0x6A6", + "data": "00 40 00 40 ec 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 f2 00 88 5e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f3 00 ec 5e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f4 00 50 5f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f5 00 b4 5f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f6 00 18 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f7 00 7c 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f8 00 e0 60 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 f9 00 44 61 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 00 40 ed 07 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 fa 00 a8 61 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fb 00 0c 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fc 00 70 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fd 00 d4 62 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 fe 00 38 63 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 ff 00 9c 63 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 00 01 00 64 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 01 01 64 64 00 00" + }, + { + "id": "0x6A6", + "data": "ff 7f ff 7f a0 0f 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 02 01 c8 64 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 03 01 2c 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 04 01 90 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 05 01 f4 65 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 06 01 58 66 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 07 01 bc 66 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 08 01 20 67 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 09 01 84 67 00 00" + }, + { + "id": "0x6A6", + "data": "01 80 02 80 88 13 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 0a 01 e8 67 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0b 01 4c 68 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0c 01 b0 68 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0d 01 14 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0e 01 78 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 0f 01 dc 69 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 10 01 40 6a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 11 01 a4 6a 00 00" + }, + { + "id": "0x6A6", + "data": "ff ff ff ff 70 17 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 12 01 08 6b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 13 01 6c 6b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 14 01 d0 6b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 15 01 34 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 16 01 98 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 17 01 fc 6c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 18 01 60 6d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 19 01 c4 6d 00 00" + }, + { + "id": "0x6A6", + "data": "ff ff ff ff 58 1b 00 00", + "extended": true + }, + { + "id": "0x6A0", + "data": "a1 01 1a 01 28 6e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1b 01 8c 6e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1c 01 f0 6e 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1d 01 54 6f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1e 01 b8 6f 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 1f 01 1c 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 20 01 80 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 21 01 e4 70 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 22 01 48 71 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 23 01 ac 71 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 24 01 10 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 25 01 74 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 26 01 d8 72 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 27 01 3c 73 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 28 01 a0 73 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 29 01 04 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2a 01 68 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2b 01 cc 74 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2c 01 30 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2d 01 94 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2e 01 f8 75 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 2f 01 5c 76 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 30 01 c0 76 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 31 01 24 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 32 01 88 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 33 01 ec 77 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 34 01 50 78 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 35 01 b4 78 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 36 01 18 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 37 01 7c 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 38 01 e0 79 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 39 01 44 7a 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3a 01 a8 7a 00 00" + }, + { + "id": "0x6A6", + "data": "00 00 ff 7f 40 1f 00 00", + "extended": false + }, + { + "id": "0x6A0", + "data": "a1 01 3b 01 0c 7b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3c 01 70 7b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3d 01 d4 7b 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3e 01 38 7c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 3f 01 9c 7c 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 40 01 00 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 41 01 64 7d 00 00" + }, + { + "id": "0x6A0", + "data": "a1 01 42 01 c8 7d 00 00" + } + ], + "counters": [ + { + "id": "datalabelText0", + "text": "T:0" + }, + { + "id": "datalabelList0", + "text": "L:0" + }, + { + "id": "datalabelText1", + "text": "T:0" + }, + { + "id": "datalabelList1", + "text": "L:0" + } + ], + "sender_errors": [], + "bitrate": 500000, + "port": "CAN1", + "mcu_passed": true, + "hmi_transitions_passed": false +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-layout/saved-postinit-verified.txt b/docs/evidence/2026-10-03/debug-layout/saved-postinit-verified.txt new file mode 100644 index 0000000..ec7dadf --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/saved-postinit-verified.txt @@ -0,0 +1,316 @@ +xstr 8,2,160,24,0,2047,0,1,1,1,"DEBUG 安全回路" +xstr 170,2,235,24,0,33840,0,1,1,1,"灰未知 绿正常 红故障" +draw 8,34,111,79,10565 +xstr 9,36,102,18,0,65535,0,1,1,1,"配电箱" +draw 128,34,231,79,10565 +xstr 129,36,102,18,0,65535,0,1,1,1,"左电机互锁" +draw 248,34,351,79,10565 +xstr 249,36,102,18,0,65535,0,1,1,1,"左急停" +draw 368,34,471,79,10565 +xstr 369,36,102,18,0,65535,0,1,1,1,"电池箱" +draw 128,84,231,129,10565 +xstr 129,86,102,18,0,65535,0,1,1,1,"回路末端" +draw 248,84,351,129,10565 +xstr 249,86,102,18,0,65535,0,1,1,1,"驾舱/右急停" +draw 368,84,471,129,10565 +xstr 369,86,102,18,0,65535,0,1,1,1,"行程/惯性" +line 112,56,128,56,2047 +line 124,53,128,56,2047 +line 124,59,128,56,2047 +line 232,56,248,56,2047 +line 244,53,248,56,2047 +line 244,59,248,56,2047 +line 352,56,368,56,2047 +line 364,53,368,56,2047 +line 364,59,368,56,2047 +line 472,56,478,56,2047 +line 478,56,478,106,2047 +line 478,106,472,106,2047 +line 352,106,368,106,2047 +line 356,103,352,106,2047 +line 356,109,352,106,2047 +line 232,106,248,106,2047 +line 236,103,232,106,2047 +line 236,109,232,106,2047 +draw 8,137,231,182,10565 +xstr 9,139,222,19,0,50712,0,1,1,1,"RES" +draw 248,137,471,182,10565 +xstr 249,139,222,19,0,50712,0,1,1,1,"主控盒" +draw 8,188,111,229,10565 +xstr 9,190,102,19,0,2047,0,1,1,1,"EBS 舵机" +draw 128,188,231,229,10565 +xstr 129,190,102,19,0,2047,0,1,1,1,"EBS 电磁阀" +draw 248,188,351,229,10565 +xstr 249,190,102,19,0,2047,0,1,1,1,"EBS 气压" +draw 368,188,471,229,10565 +xstr 369,190,102,19,0,2047,0,1,1,1,"EBS 油压" +draw 8,232,111,271,10565 +xstr 9,234,102,19,0,2047,0,1,1,1,"无人驾驶惯导" +draw 128,232,231,271,10565 +xstr 129,234,102,19,0,2047,0,1,1,1,"无人驾驶轮速" +draw 248,232,351,271,10565 +xstr 249,234,102,19,0,2047,0,1,1,1,"无人驾驶相机" +draw 368,232,471,271,10565 +xstr 369,234,102,19,0,2047,0,1,1,1,"主控盒12V" +if(d0==1) +{ + t0.txt="正常" + t0.pco=2016 +}else +{ + if(d0==2) + { + t0.txt="故障" + t0.pco=63488 + }else + { + t0.txt="未知" + t0.pco=33840 + } +} +if(d1==1) +{ + t1.txt="正常" + t1.pco=2016 + t3.txt="正常" + t3.pco=2016 +}else +{ + if(d1==2) + { + t1.txt="故障" + t1.pco=63488 + t3.txt="故障" + t3.pco=63488 + }else + { + t1.txt="未知" + t1.pco=33840 + t3.txt="未知" + t3.pco=33840 + } +} +if(d2==1) +{ + t2.txt="正常" + t2.pco=2016 +}else +{ + if(d2==2) + { + t2.txt="故障" + t2.pco=63488 + }else + { + t2.txt="未知" + t2.pco=33840 + } +} +if(d3==1) +{ + t4.txt="正常" + t4.pco=2016 +}else +{ + if(d3==2) + { + t4.txt="故障" + t4.pco=63488 + }else + { + t4.txt="未知" + t4.pco=33840 + } +} +if(d4==1) +{ + t5.txt="正常" + t5.pco=2016 +}else +{ + if(d4==2) + { + t5.txt="故障" + t5.pco=63488 + }else + { + t5.txt="未知" + t5.pco=33840 + } +} +if(d5==1) +{ + t6.txt="正常" + t6.pco=2016 +}else +{ + if(d5==2) + { + t6.txt="故障" + t6.pco=63488 + }else + { + t6.txt="未知" + t6.pco=33840 + } +} +if(d6==1) +{ + t7.txt="正常" + t7.pco=2016 +}else +{ + if(d6==2) + { + t7.txt="故障" + t7.pco=63488 + }else + { + t7.txt="未知" + t7.pco=33840 + } +} +if(d7==1) +{ + t8.txt="正常" + t8.pco=2016 +}else +{ + if(d7==2) + { + t8.txt="故障" + t8.pco=63488 + }else + { + t8.txt="未知" + t8.pco=33840 + } +} +if(d8==1) +{ + t9.txt="正常" + t9.pco=2016 +}else +{ + if(d8==2) + { + t9.txt="故障" + t9.pco=63488 + }else + { + t9.txt="未知" + t9.pco=33840 + } +} +if(d9==1) +{ + t10.txt="正常" + t10.pco=2016 +}else +{ + if(d9==2) + { + t10.txt="故障" + t10.pco=63488 + }else + { + t10.txt="未知" + t10.pco=33840 + } +} +if(d10==1) +{ + t11.txt="正常" + t11.pco=2016 +}else +{ + if(d10==2) + { + t11.txt="故障" + t11.pco=63488 + }else + { + t11.txt="未知" + t11.pco=33840 + } +} +if(d11==1) +{ + t12.txt="正常" + t12.pco=2016 +}else +{ + if(d11==2) + { + t12.txt="故障" + t12.pco=63488 + }else + { + t12.txt="未知" + t12.pco=33840 + } +} +if(d12==1) +{ + t13.txt="正常" + t13.pco=2016 +}else +{ + if(d12==2) + { + t13.txt="故障" + t13.pco=63488 + }else + { + t13.txt="未知" + t13.pco=33840 + } +} +if(d13==1) +{ + t14.txt="正常" + t14.pco=2016 +}else +{ + if(d13==2) + { + t14.txt="故障" + t14.pco=63488 + }else + { + t14.txt="未知" + t14.pco=33840 + } +} +if(d14==1) +{ + t15.txt="正常" + t15.pco=2016 +}else +{ + if(d14==2) + { + t15.txt="故障" + t15.pco=63488 + }else + { + t15.txt="未知" + t15.pco=33840 + } +} +if(d15==1) +{ + t16.txt="正常" + t16.pco=2016 +}else +{ + if(d15==2) + { + t16.txt="故障" + t16.pco=63488 + }else + { + t16.txt="未知" + t16.pco=33840 + } +} diff --git a/docs/evidence/2026-10-03/debug-layout/saved-project.json b/docs/evidence/2026-10-03/debug-layout/saved-project.json new file mode 100644 index 0000000..213281a --- /dev/null +++ b/docs/evidence/2026-10-03/debug-layout/saved-project.json @@ -0,0 +1,7 @@ +{ + "project": "D:\\YMR\\AMI\\AMI.HMI", + "sha256": "4BED317A2CBE3CCE523E3C7E220C9820AB498D409EF5348400E3EA2835B5FEF8", + "reopened_postinit_matches": true, + "PD1_debug_state": "d5", + "status_component": "t6" +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/debug-layout/saved-t6.png b/docs/evidence/2026-10-03/debug-layout/saved-t6.png new file mode 100644 index 0000000000000000000000000000000000000000..811e5437e5705c5e58b7cc181a5d2ad01d35492d GIT binary patch literal 15349 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

QF{XtVfEI*Et=0G?WKYGJt(& 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 MDm=;;*MI##03uwP<^TWy literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-layout/sim_RES_1.png b/docs/evidence/2026-10-03/debug-layout/sim_RES_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e96060575e38d034ee769752f0d4cfa883e13e GIT binary patch literal 29469 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-layout/sim_RES_2.png b/docs/evidence/2026-10-03/debug-layout/sim_RES_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f9afe1d0e51f46cde751ead8fe6836e8f72399f0 GIT binary patch literal 29671 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 Y>H?a)BkS>ZFP>fsvMP5Ap~n9I2jw}2V*mgE literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-layout/sim_all_fault.png b/docs/evidence/2026-10-03/debug-layout/sim_all_fault.png new file mode 100644 index 0000000000000000000000000000000000000000..8d6051b6613c410e79022b97fda828ec8aa4daed GIT binary patch literal 28946 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-layout/sim_all_normal.png b/docs/evidence/2026-10-03/debug-layout/sim_all_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..03097069966cfff1533135eea0de30eef31cfccc GIT binary patch literal 27845 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 uh=}Pc!*jIM|J* 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 o>NO2uV~KzNcq+Z}vA??Mq)Y?<7hA#IY5)KL literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-layout/sim_control_box_0.png b/docs/evidence/2026-10-03/debug-layout/sim_control_box_0.png new file mode 100644 index 0000000000000000000000000000000000000000..2e387a82249933a2c5318493e07caf91d49a7d3f GIT binary patch literal 29121 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

QF{XtVfEI*Et=0G?WKYGJt(& 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 MDm=;;*MI##03uwP<^TWy literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/debug-layout/sim_control_box_1.png b/docs/evidence/2026-10-03/debug-layout/sim_control_box_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a116e8684b276f727fa4e922abf0ae2f3edd09e6 GIT binary patch literal 29469 zcmbTeby!u=*Y68RNlGIrigbg7;06H+iA_tFbVzr%fPi#KgTNM~rCUI{ySuylPV{%q zdEa}U``mNy{=@yS*IIMU8gtI^8Q)>BoUAw|8VMR492};kgs1`>9Krw`9DD*Q0{CTR zO!xyFob8IF=vyV{Z@cwg7Nq0V>mEw%M&rv-anEH*`MRPS>~}*r^s7lbWkcT6>((MH zeM)|%lclk|G&{S4F3P-MKsEEu$0?G>i{Mx7x~GEs@?d zAu$!JnxQaqJDK{(LK!3cP6N@|feaN^F>$`vkYhg)Te_&${q;4%BkQ%EM80{x)!(7wOu#wZm$tRP2ti7cIN79sfaQ9dV6CxAAS;gQ~a?bd~8f*AImC-Q6VgQDF6E! z4K(KmJh(U_P*_-4bTeOs=-2%ILpF)ab=Ne{5|6I+Ls>aXvx}I>emXbHMC131t~uKZ z4s;<$P{%twVlr^qn^W^XXuI*czww7XGb~)IK`WyX)uV7|^x;|WYoF$a7kHOG@_Y2~ zgCPns%ENaT7IK&hi5kryU2sR|M8cz-)3c~EN8C^x<(JCuMpX)~zEbBe>joX=M@iE# zs-`cG(nXs6fL4qSOqK-+XLyr+?*Gl1_+>da@9uj6RZ?;?^yWa+PLcC=eFSCdKGF;c zSv=?P@=wV}>L<^f_MP;BMB86+cw&Qv-rKRW9W-eYZBIC>wWSo=V zapz*JvZ121w6whZx7B3HN0jMxjrpswvig3{?Gmd&FBWFjO-!s?c}M4ig=X3`_oId8 zM@wXEybQfJ0#Avb8TWl{e!CkXs;|*MH}*Y+hm2(>PgJ-7)sQvqlLOqUtmYw(>uEh>-UsXThqj7pM3<*!+n zcZ-8M5i;mppA?%8LqfE7b*m6T%>67Ez6dFmzPhetv38$Hq*DkJneFCx+FPlVh{B&D z?Q+}Ew3WRW!w3*Az^hc$rHRIwS!)}eEP%+qEizwg@6oiiBS&6UG+b-{Qat@rtM)lL z4mxFEn|w$n_5SBr9WAY1PrV)c9?!^nk8AGR4W7E7@;-EQbeMu;5rvnRYLl=$eyb5f z&Ft=i=?RzM)VEH9jb4mh%vXX_JEkXeX$*Fqe2b7W{xk{do;|xaWu>J@duel)pFZ7f zLcLydaDV|V2S!Gl>a1^S+8tI>UdP4HZ*F4Db|SvIn*TF5)p;pcIOTbTk#&O01%ctV zgEs=3Mbm%;rM)31{vOiwGXq|BX{DjN3PP>Sy+a=}x z$B!Q^=#Xb9udy6aYt`_pP9|~pCygYcMCb8p9e1M))ehW-D+{P4cZ9Bb-=oq;H@|&z zLv&|N72WyJ2eLWQohvstbqn=Yp5=TNn?I#KJ+p{0GJwb8>P7 zZx*oy?=Snku2{XUno%g(ek}RrW6wD+hY3qDZses!r=?viK3?Kd{@c$%f#vrF=Zmu! z?{+x3M8(A0m4|0~RUBSzuS~s)daukOmK8KtvuSF3b+Q&` z?L174;GeCyxwxpeSZF$oU9_LF%xSass95otNBoA=9`D5A$uLyoy59IxPcgzKy~O1v z?*tB3km;+FIX9#880^LDC~BAbxrT;@8Fksu_y>ZkVW%<5>aOq`)3Zx8{*LP}_3mph z2wu*VST+diUgvZ8y@(x}yYg&I7<__ivaeOsWwzINlrQ(1worNc2r?dQ0fSK06g#Ok6@wrbwfx^RFeGgs=u8_6yV7 zTjHhzYc?eLaDnTilb?bo3@^b1DVS9o2_zRjPpoGD zNX(f@FnmNqlUuIn1=DOyH4cch{QPG0xgw=BGc)Vq+vwby)GNNr>d8KrWg4i1>HUY3 zMHUWTC1pDXM1(1?^?s}RgzM|h&ghjsa@$i_Gi2ml+I!PqEei{45(urfT-O4^ESk@@ zx7)9Y<7S3MUh}`R@=;T5zS_cl%-)WJ`jtp$WbU_7kzH%nNhE&r2X5}~0ZM3Lg~Z4n zJK{nHYPIzznRL6m$(4H-hrNV5d)!rtO@DYkMY764^31jD+C2pB=iK(+T&_e%QOn54 zPV%U9;n+q|(_gBM&LIE5C!$l*cIERLH`_;#6wSt;iR9bc zze=@E-cr^KlDwO=$0|V`Yzv(V-tan^s;zxx?)Rj3+UIH0QS)-a1+-1NKy$>yAqDbaJBSwbA#l@M#p~b=e}m1!ahy zbv7y*330QD711O1(gK;ASAs?Luz>P#CA00=ZxSY+2xm~0zRTleKKdOJHJ={Qg>#%P zo3HljjC`>}3`p_ly^sw8@j{bv}6Mt^>u(_$H|$0?~IW+IO$bXINbZ(R(_hxr23NConeMk zs`OK%ihX@)N_dS(W@N(F@iVE@*ajwOY5yYN=A5W}3@dqIfdp?MXCL z5Ln*N+#1=NgWrvAm-COgMJwdHkx{~&iV;6-d(f4rzP!D3?SJppc!t1@q4(vB$uER} zhJ@4A0jlyxk2KEW8iYJ4GssZ%P1r@?Hieq*`2!Q51)`tuDQOj>QvqucI+L!=sXUyUT&xKCME zgI%HIzRB}-Q|52mJawj0rI7C=pOi4!IXHx82?THB1wFR%b1^*E%he&Z+nRF{Nd>rgl-!l!$rc#A9TZ_rI?se%x zY^1YiSRDx6G7oSvRi&@z4-b1^=fSv-&WB$19+y;YtavAr1bND_Ffkc4{_#9d^N7dX zABR%6wV(;O=Dykgn2QqxHga=w^Rv)`HjAf(lV}8zFVjyK=d-v>g)fyNsW%5QL^}B; zJuzN{F%qyx#`J#v0%zs6`GOyuF;+cehor*oMGe#-2PuytD&O=msQms$chwZ6S10mE zs6@?~`^T#sJ&7E$Oa6+!A>@%&Q$oDNZ$ouz53L>>AHP2c5>$oWD`Sq70xM6hrVjl0 z!rud;7o0D^N=wUEk&_nK?MbB8%e&{~o=!iA7dZ$d8%d z_o~}H1kO?Nd{SM+8weig2yDTduYGaNzBovRjK$1I)nihkI+X9hikzc(VoOL!xba0J z$DhDL_U5HO#YRj@3zy2xAJQ7*%ThLfCW27OMYNhlcf0M}C_D~13*WCH%QyYM?@#s) z?pAf~Rt0Zb1?#SJolF(V$v0-QZsKfv7`IsbS`RIV_&0LV88g3`D3x(fP5l~rt;#nR zOzX0Zhib8gTt=sm@e1Ep&RxC0L%*cg`73NHsi$ynQEO?^BF=~lbrSxVvVXdtY!Tfc zErKiCc4Hu;p#effjdTz%(&57OiYJyrh3@sbaHHrSZUeo9fFT&0gb%3Nw~NJKW4E;1 z*?mu^jR7hWjgsn<$68u#Y|Ot3s#+G(>2WPme`c0x?dWpzslNTaJk|3-zz5D{HMY0$ zlD^JjEGWXTyiySV9YbCqVJAOQ?{Hg(9|F8hH6e*CL(StEq)>#J8kf*s>!u?tldl1; zylb6xGV_6Q&p3HaCIVjHn6kAjy-29;UFJLt_ah(Uw|cZwGx7SFc99dXrtR(RU{T+8 zj=jElOSeqs`0m(RSRfyfQ74CCZwsByUFf?d$?O*`Mdn#S=c)t6Qf(ihEDH~3ZP%@Q z!MnoqOf&3exTm2qL)9MciG*9A;0LzPUQx4)h_06lS@zDlOJ* zyiwCu|1OrG*7Ikn=9@63Yq4tdJIYu(Jokd!Ds!T!sEa`YF2BuA+O%v=Z?zugcEY{H zq;Hv#Z~04dx9oeAuooLqD=RDidR$#y@7>(4f&19NdDcgH7s^f55yky<^Ju=|tP*se z3-BeS^{2(ch{?DgVKRMaq1U^EHRJ$SIJvbX3Yl8MZHZQ6XWo`v+jvpH=WdOOH~ zZV5KkRI-~RcR$44b?c&Pt?9E^XTG8a|2M(LO|5hatY0jhS2fL$98FWHZljcr4jvEO zkxD8iO2tnFx#Zooc2-4>=MyJ}T+9J2MdGdLcT~EGTAA3TszJi4j-6Xu41$;CZIaPW zQQM^Y!?_<1x>JTz#>dBzcmh3BY!r}B#$!7TKHXh@r?#{l?D*32)0{u!T<$X~Z@6a* z&udEc!SSE{FEb9YAd>Ip@uv{&63oC?s&K5sdV+I}XzbN2q z5qovCUfLKzKEb3qQgS$BhioTboF4d27*i+Q8zL3ZVUfukr=)+(fcWTVy;d2mk}{*H zU=c}J;X&?!YsFi(^rnQ*4s^enlCuUXrY@`7oV~`yxd13(I(Oo z3F7g^e98WbZ*+9lVSyhdEwht=^H9W|_yu~>!7ripwK?EHy z5A$EWzPM%=wumQc3<5@YmL=J^{3qw3++_RgrB!5(XiQKm|CEG3-2NCnYlNZwzX4F0 z&BT5bYgPEQPC3VFxDK9N&p7nm(CNlLrx#BT07R1#lDD=8hFuDJte%jFc2CsSgBm94 zlDcxulP!iOBjm1~ot>^Ow3M}NE1m0UfgqeCz%WR^{~-R^q#w9w@$n}o?-5Jj(gI|a zao~%yJL61oRRS$RfXvsNh@rz(e1A_cEDImKzS8&hF3PazJ?DVGrN}L7|$uHZIMI?jYecUfTU(gx3g-jLlT% z;1dkw^|fDCnfd^$HF@mZpWWT_o>0!Gx!*h8UpmG9lo~DRu4FtR$|zE8M;osN8|IkM$1#J~E&*SYKO< zi;E{AA!X2thb?!{#NSt4MI@NwgNNv1$@v}2fBiBln=CK(MVwd&_PRn8ctD3j`2x-d za60>hH_Kas`U7;}CjbU9upYi+$p01&N5}tvT3Oor-#TGoVUV<DTcISywD$C-{PSHrzSLI%JfcXGwU z9k%9t9q9htGw|i`J>J|xn^R5cgE9tcSV67YMdSHdA&kX+hpvFn@IFCRGEP=O+`i&< z>)3)9-&5Uu&i+HJqO%CgrtUEsgPh|jKN4~W&7g_BwRLe}Veh|ZP0h_o$;iHlWsOdL zCupvL^v#vHHbwHQ)JXKe%(N`l5ZQxk^zW?H)cqJ3Bi$Nw|f<%$Nv6MW44o zmY0`5e*DM{9UK}`@IRaw8ae{-qVeXaJ0ug8cJ%%?4BYzGIG=LEc>d(1{6!AI?DrP= zz@svg_iAxjgC)1L+6>h7n+s(F;i^3Q`6I%x!z3OkTfe#&$<2cVZqW#i|3KVE1)3*grUbm=%70BUr6% zGenrJVW6ghZ|LqmQ%vsxnJ@X+(Xz-ko%pzE2R}44lu$i~l~!1SJ2@pS&C1G3(B)_) zh2QC?c750W@YvYc@bK{D6FQ9gnGQZ*MyyC@G1Fc^jIWnuMN5rq{Dg2R*^X z3PM3a=~jQag_Dw+N$H~hpL21VjH8?n!kwK-m{>xpk`Wj3KguGK8 z?d$7PVo-)eNcHLw=b~B+Oi!EJq|XIx=q96y58BD|9qJDg{Sk38x;Mx)44U@WCZbyT z(0D~KTUu3>Ae*bKT4qqLpDOJ^X%Tf%t!%$6|@u& z4{vO0p*v$<0tQn@SwKU>e00q_WL3PL@=4Hct!H8)0R{`ytDT#hQ_Phmf8#oGkn8IF zFeX&p91a4=2=LrB8V8)yJ;i8<2&@ek`p=#`amCxpe(ia~s}rtf^1Z&kzN{>oBmo>S z?d?yD1+OO$mpe=if^J2fC`d_b-Ol$G7Sds`ikIP~EkR9mJy2p)M5gwWO|8$e74($9 zvOr^FJxip2AdGxx7Z8nGZ3Vu<`HWpWtB&V#7>|D%f)CuO<-kO79sIQZy^S>wmf4rC zwUK;9TG?-49>^)b!VMlsYgs&yVy)+T{o3_#>77~c%5Ef>)0u-Co5Q)whtAZv>`MD* z{(;+1#jh{}^#q|2`c^+gg0NC}ZCduvx3P<&o!(m#lMR}jv=QlK;~rk$`uX`m(jxAf zZ+ehCCN|$B26|eR4M;N)l9H3>gflhA_TE!p%nWVX%YWFHy?ByvJKz`KR(--v(BgA@LIsqy7S)>95RP2@&+pqateB9 zYd)-|s!G+wvia93se2c(2lDjvwCPNCef^u*_m~(M104NU0>v%WTe~R=oXFzZC!R*z zDFJ(_Nah&JjxPOeXk;WLncA9jiYViGufh#fVRO%>=YXISCd%#Z!jL6Y;^(+~PIt6!Iiu-0jxLWYyiY44j% z$-C|4hnJ#|a=YK%xF{=kbaarCkT@4^-1Z1x#EA<^qMv>V`|@RDm=Xg!w-fzJO-FUf zdm+E|8H7Lj+3M`D{%_A<%P!d4^$FsqPah*9fF-gZ13jQ$lj@i)cBf z{b(zrvU0o!U0CB_s=}N}+UQM=UYP8jl19vg)dBs-9W9|oOeN(C!Ejn_%KexmcHWKR zMZ5LBL7eN5Ot~P={ci@IYjrtb&)=+{>Di7Q-+%K9Ub%fROFV*7u#ZUMR<|w}OV0t_ zK<$&cd2(7>u2}u)2`^z8L+r%&0+LcDMXJ-2lL7gqHZ7vG-~|aI!nKci>FpbRFqn3o zbIHb6v~3=ywHVHVx;7@ebkX-aJgQY;dm3EYotzQ9Ki?blVv71lYilu4ft> z=$xYQVmk`3v6F2@K^jd#?>cu&n3L1C9T{4i#nrPAhw^}GRTmW2l#3rR45PF;<~>YO zZPtfLZEf$8yD~Bs`}$-(`rCDF4ET|J-`At>_{+I9zSn&)-Ckm{t3*|2ua6lyoAGRH z-*(#cV|WEO>I(~H8tdA2c9`r60$LZBJ0ghGCC8T~Y(o?uUL5}!2D^I4uG)tGt|a`| z!Ra8sb2GR3m+IaCp)W8PEi|>x{gOjULHD|#sA#$Z9Hrv{oDAg4bLP&cgcSUM-cTcWm z**9E0boPOq^^W%T4ck$BcGntbj^l>0F;St4O!n`H9ta2?e9SB?M;Tu;GBQ4ByW})B zQck{94pqDro6~M#%*^(f zlrBlt<0R*!|$Bj1rQ`N#YDX~|+M4Q|<-fn&KuNl6LK9k!4}f+#fA6>-mAIQS}(EXNAn9{30? z#D35oB>Gb%pl#wDS{N6;msyHGWmP=zrMOLw+Tl(%AJb1nc{DgU7+Cnz@TH8_V9XA; zY09Ke&Q&S42_ni9&zZu#U*YT&QOU|Hk6L5e+zu`F{i08yWJ~T<=Uq|j^br!G>(~MQ z<6|bH@wQMwGAv4dM&N1if1Ke_qGhb(h2|at(U3z=l zJ^Ni+9+K8C?cm-i%om^?etUI*R#{etUcQL`(oEXx12bCraRMoKbowa6CW~efCdxb# zQa+1@*M5vHTh-xxoOAtLeMbFNfX&-55G*L=DIbqCwaLJYhyUk|WODm9FN_zQ!|9?I z#rwBrBR>jC-}&eExFca;=_dc;=HQhuW4k1cA^+#&6nQtpTSUK)9F*Uc%4wvWXI!94 z$J9kGhi^bYMkx-1MP*R!dO=gE=WkhpMY*7+m@JVP-%zIDjD$$je+}usCBO-d#-@@UD$s9tMqABm~mW~NroSz9{QPPxtbK5Cd^*Z%3qCEWC zc<&Zuj>>@a&siFrBBrFZvt#4k!cB`H6a496h95L8b>k`g=YFn&@wkW69E6*!Plb?t zxV@haAkztxYVWT(f_HR1s3Pd@4y;v49VxH`k2-0Obna!=8t=~yX&F%%(Eb&VGnKyE z@K%eMEJKd&8Ojppp)`%+UY41kMI6)2@LeUUt6OJ=$Vx9yg^StnCi#aV&ytg;`D*Ey zI3~-C|M@qprTlR8tcH!(H$xYwEC4Bg+p9Sv|0&S5-PKjXIM=9$26rlM>`iu@5BE3t zDY{)co=283jxotX>P&Rj2$aI*+O50Ybbc+~e_L>Y_Q8dhT5=172JF^l_1sLXB%-qS zUd)1cQ47?rv)X_|Z6jDXLynF5=iBH`gPBc6Jeq^Vl+gxxGfb1LIw4YSZ*GY~cuU^U z9~fAF!~RtucBofNEva2}rud1O_NKh121W#YT_E}ZQD~Ak?xu;DdB!`}Z|0%7Lj^*T zQ2^F;dl=dyq)j1C(XkF7m+OI{x2zgkkjNcsZEZ~zJIt(!un%fo1fQJ#IR7+^>7n)W z)6>(6HyO+*GvnhO_-vPVD}Wezv8d>RC{4Ww8Vu#%=mYoI*e13)vU~NU7mBK;rq)?# zDo7uqpG#)u&k&NyV3z$NN&8zw7@9Y2*DsZ`~V*&M#4Yak-0{~6E>435sWnKKUI=sE5Itpw=k)jF&NfdORD zmIuoUU#9RAu`&%5&gh_U+X37-qn=7F4k!!^I1+W~Oy0zX9OZM^eGI&-Hy{5gAucM9 z|2i{aP1U%O&Ws*jj_;oV1O7nP@di1_GcHz_ZenWceVDjp)OVU(-;4#HeKJ)5pBK4W zKSq-dG#aY?T*qnqiTL;30Fkuf%v8srr5FZ0;Sdn$sr?0P1$1jT#ExqSC*K6=ZQK89 zC?XLFu%`_`sWnwq6Quf>J$}V>Tgtpi?lb_y@RzGTh^odO1&UMjk6(yQzJ`h3znzT|T^VUF~Kr&L6m(qTA_Qu+j z_G`SZVrp^Qa<5+@{+F>c#y}x`EMWIh?7($1xc_&2d|U*?ZUhj9w=IFk<7oWzH^(yE z&k|iH`~w`nHP9?z{I}lr3q$;_&AOf9BADR$l}#%u;fe6>7|=Mp&$;mww6X={YP!;j z^X-6(ZkL^5y3&8^VH82!39J$9@AE8@3g+h9caN^EX6s&E-cdIe^a1|N?|8R-c|PYB zkJX7Pgd!?w9qfUp3M#Mb*K3ZB@y14M|e@e&tpLU(6 z!DjLR5dVv4@c+&Rv2s=XYBEbozz(igUY)F}p&^w!Y;K-IBP2|^2dwF(*&}2WI*N#n z;quzfLqrcbdI1V3OT31b7V~Wm!e7)E^AnSpEL{l#^=fdZl>GE5-P9?%%#Qsn=}-76 zxE%9`=VO79C-{se;9_gxlx{1xL9+Q%!U^b-#BAuWw_8e&~K#zf(9_Ip#6s2vnL0a?gjB|b#!WRz)kpALR^1_`|-CSI1uN( zWb!4sLjBx}kY8zMYkSnoGyg3u?fm*S2%B;a5R|2*%wkSbQ$2}iPk6oV>d0Fq4o+Y& z5>&)+NGU zYrMbR-(05;ZQ#tce;)bAs0;?{>+i3us34#vtuIP-DF%$IZ9~8VwUr4&wCE%!UYmrR zyx#c`s7rhF?SyA`!9asizzt3acoAwn_<>_nifc5|hFusj&SU|w}GnLLxiZ07&ASus3FV2{4*J}I-H6Gw=&H(4fb zO@pp|uFB*HbW&x;{n|D5`KXf{8eg5fiSS$4&>xjBt`^mQp7^F`k%LO)F^U`7CMGW4 zO-_uvROo1LLOb`if#DMLIobc9>FntFU%q_##_tr~sL()0ab* zP726z5fR{9G4T1Z;MVqxyySv@SD24CTma?bpF~b$AUR>xX>i}2dc{w%vozr5s)ih* z_9qeG>J3P;-z%R?Ioo98J1O1 z9{us52sDTO396iUd17*s=T54iSL*!RdEbysV%OQ@sP{P=FV|$`K&jIKGUQ@jkfETi-RDWtMK@jg%APgqF((>Fi>}^`RHLp9!4*;SqC5Bh* z?2)}jE`nR*jd!P@=VfJO!@qn1{(h_NMx}4VaOEEb_8vzZu*C@8=L_wzVt?7z66BZH(5Q6 z7jRLa#l=f zD=qyn_+m+5t7>m=f1t4n@?etIcwdp`%jm9sE01n$a=$w(QvxEQ9^|hYzrSdv?dp5% zA|dse*yRqJUJ*vL=>u*LaXTxRL!k(5^B+OZRiGwobPP=(QQYs0rk!LAF`X+A8h7qi zRSnUKyqlWz>qn3lcJ5}=Fq%-NTX=kOLON%PtL~jqu<`)i^Z4@uv>5sBS|j^Gs`P z!ki(Q1FB*SvHHV@1nh_L{=EAa7gdm+_t$xolamZL93aNKg|IeV2bPMo zQ=vDBTz}rrriNtB)Vsyku%GZDjllQCOKVjCU<0DzUe~*o^FY+f5AoujCpz|0kop{; zr0U~dwAl4EWRA4wx_%d>4A#B4(NEA)c(S8L$N}*;K?l^s=wsPHM9pFI3$Cy>>L4SvcY!4ogxPqw zwG(km9A#wiVC5B`@ZMEr5?fbWN)uX(s92UGD8$NlwWMD_UD4_%dY{E z5I4Jyp6wka6&%WJJRr`K+OR_e%mIEc}b_3&8;&| z^^luVD-_w6C(>WxHjdHH+Avgu*eoGxpeBz{zFSdLt;8}%5E*Aj*BhvA1Je?k^7