From dade0e5d3a2a7987deea4c38c5e3dfa34382a8a0 Mon Sep 17 00:00:00 2001 From: shenlefengnai-rgb Date: Sat, 3 Oct 2026 18:52:21 +0800 Subject: [PATCH] Add CAN inputs for drivetrain display values with DBC and bench evidence --- .gitattributes | 2 + AMI.dbc | 28 +- AMI_CAN2_250k.dbc | 28 +- README.md | 13 +- docs/AMI_CAN_DBC说明.md | 57 +- docs/AMI自定义显示CAN测试报告.md | 43 + docs/CAN1_CAN2_v2.1测试报告.md | 2 + docs/SDC_BMS协议.md | 8 +- .../v2.2-display/all_invalid_ram.log | 32 + .../2026-10-03/v2.2-display/baseline_ram.log | 32 + .../2026-10-03/v2.2-display/can1-nbtp.log | 27 + .../2026-10-03/v2.2-display/can2-nbtp.log | 27 + .../v2.2-display/display-results.json | 5639 +++++++++++++++++ .../2026-10-03/v2.2-display/extended_ram.log | 32 + .../v2.2-display/final_recovered_ram.log | 32 + .../v2.2-display/flash-readback.log | 29 + .../v2.2-display/flash-verified.json | 6 + .../2026-10-03/v2.2-display/flash.log | 56 + .../v2.2-display/hmi-not-updated.png | Bin 0 -> 37416 bytes .../v2.2-display/manifest.sha256.json | 29 + .../2026-10-03/v2.2-display/negative_ram.log | 32 + .../v2.2-display/out_of_range_ram.log | 32 + .../v2.2-display/partial_invalid_ram.log | 32 + .../2026-10-03/v2.2-display/positive_ram.log | 32 + .../2026-10-03/v2.2-display/recovered_ram.log | 32 + .../v2.2-display/reject_baseline_ram.log | 32 + .../v2.2-display/reserved_bits_ram.log | 32 + .../2026-10-03/v2.2-display/rounding_ram.log | 32 + .../v2.2-display/source_timeout_ram.log | 32 + .../2026-10-03/v2.2-display/symbols.json | 232 + .../2026-10-03/v2.2-display/task-reset.log | 24 + .../2026-10-03/v2.2-display/task-results.json | 141 + .../2026-10-03/v2.2-display/truncated_ram.log | 32 + .../v2.2-display/uart-diagnostic.bin | 0 .../v2.2-display/uart-diagnostic.json | 16 + .../v2.2-display/wrong_version_ram.log | 32 + docs/通讯交接文档.md | 4 +- docs/验证说明.txt | 13 +- firmware/AMI_Controller.ioc | 4 +- firmware/Core/Inc/ami_protocol.h | 4 +- firmware/Core/Src/ami_app.c | 39 + firmware/Core/Src/fdcan.c | 4 +- firmware/README.md | 5 +- output/firmware/AMI_Controller.bin | Bin 15612 -> 15880 bytes .../AMI_Controller_v2.1_500k_250k.bin | Bin 0 -> 15612 bytes output/pdf/AMI_CAN报文说明.pdf | Bin 100901 -> 110627 bytes scripts/export_can_pdf.py | 4 +- scripts/export_dbc_docs.py | 49 +- scripts/requirements-can.txt | 1 + scripts/send_drivetrain_can.py | 79 + scripts/verify_dbc.py | 42 +- 51 files changed, 7084 insertions(+), 51 deletions(-) create mode 100644 docs/AMI自定义显示CAN测试报告.md create mode 100644 docs/evidence/2026-10-03/v2.2-display/all_invalid_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/baseline_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/can1-nbtp.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/can2-nbtp.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/display-results.json create mode 100644 docs/evidence/2026-10-03/v2.2-display/extended_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/final_recovered_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/flash-readback.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/flash-verified.json create mode 100644 docs/evidence/2026-10-03/v2.2-display/flash.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/hmi-not-updated.png create mode 100644 docs/evidence/2026-10-03/v2.2-display/manifest.sha256.json create mode 100644 docs/evidence/2026-10-03/v2.2-display/negative_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/out_of_range_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/partial_invalid_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/positive_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/recovered_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/reject_baseline_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/reserved_bits_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/rounding_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/source_timeout_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/symbols.json create mode 100644 docs/evidence/2026-10-03/v2.2-display/task-reset.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/task-results.json create mode 100644 docs/evidence/2026-10-03/v2.2-display/truncated_ram.log create mode 100644 docs/evidence/2026-10-03/v2.2-display/uart-diagnostic.bin create mode 100644 docs/evidence/2026-10-03/v2.2-display/uart-diagnostic.json create mode 100644 docs/evidence/2026-10-03/v2.2-display/wrong_version_ram.log create mode 100644 output/firmware/AMI_Controller_v2.1_500k_250k.bin create mode 100644 scripts/requirements-can.txt create mode 100644 scripts/send_drivetrain_can.py diff --git a/.gitattributes b/.gitattributes index dc2decb..23ee28c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,3 +10,5 @@ # Keep vendor source and captured logs as supplied. firmware/Drivers/** -whitespace docs/evidence/**/*.log -whitespace +# Byte hashes in this capture manifest refer to the original bytes. +docs/evidence/2026-10-03/v2.2-display/* -text diff --git a/AMI.dbc b/AMI.dbc index 1672912..96d9440 100644 --- a/AMI.dbc +++ b/AMI.dbc @@ -1,4 +1,4 @@ -VERSION "AMI-2.1-2026-10-03" +VERSION "AMI-2.2-2026-10-03" NS_ : NS_DESC_ @@ -12,6 +12,15 @@ BS_: BU_: AMI VCU SDC_ACQ_DAC BMS +BO_ 386 AMI_DrivetrainDisplay: 8 VCU + SG_ Torque_Permille : 0|16@1- (1,0) [-1000|1000] "permille" AMI + SG_ Motor_Temperature : 16|16@1- (0.1,0) [-3276.8|3276.7] "degC" AMI + SG_ MCU_Temperature : 32|16@1- (0.1,0) [-3276.8|3276.7] "degC" AMI + SG_ Torque_Valid : 48|1@1+ (1,0) [0|1] "" AMI + SG_ Motor_Temperature_Valid : 49|1@1+ (1,0) [0|1] "" AMI + SG_ MCU_Temperature_Valid : 50|1@1+ (1,0) [0|1] "" 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 @@ -65,12 +74,18 @@ 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.1. 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. Omitted bytes/signals are not interpreted by the AMI firmware. No motor temperature, calibrated vehicle speed, torque, task execution feedback or AMI heartbeat frame is defined."; -CM_ BU_ AMI "Instrument MCU. UART HMI task confirmation produces AMI_TaskRequest. Display values are received from SDC and BMS."; -CM_ BU_ VCU "Logical receiver of task selection requests; execution and safety interlocks are outside this AMI interface."; +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_ 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_ 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."; +CM_ BO_ 386 "Standard ID 0x182, DLC exactly 8, send every 100 ms. Three little-endian signed int16 values: torque permille, motor temperature in 0.1 degC, motor-controller MCU temperature in 0.1 degC. Byte 6 bits 0/1/2 are individual valid flags; bits 3..7 must be zero. Byte 7 is fixed version 1. Wrong DLC, frame type, version or reserved bits rejects the whole frame without refreshing timeout. Valid fields update white; invalid fields retain last value and turn grey. Source expires independently after 2000 ms. Display only, no motor torque actuation."; +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_ 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."; CM_ SG_ 768 Task_ID "Valid task values are 1 through 6."; @@ -103,6 +118,10 @@ 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_ 386 Protocol_Version 1 "Version_1"; +VAL_ 386 Torque_Valid 0 "Invalid" 1 "Valid"; +VAL_ 386 Motor_Temperature_Valid 0 "Invalid" 1 "Valid"; +VAL_ 386 MCU_Temperature_Valid 0 "Invalid" 1 "Valid"; VAL_ 768 Task_ID 1 "Skidpad" 2 "Acceleration" 3 "Autocross" 4 "Inspection_Test" 5 "EBS_Test" 6 "Manual_Driving"; VAL_ 768 Request_Source 1 "AMI_HMI"; VAL_ 1696 Board_Identifier 161 "A11_F407"; @@ -130,6 +149,7 @@ BA_DEF_DEF_ "GenMsgCycleTime" 0; BA_ "BusType" "CAN"; BA_ "Baudrate" 500000; BA_ "AMIPort" "CAN1"; +BA_ "GenMsgCycleTime" BO_ 386 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 4c8ce33..28cc031 100644 --- a/AMI_CAN2_250k.dbc +++ b/AMI_CAN2_250k.dbc @@ -1,4 +1,4 @@ -VERSION "AMI-2.1-2026-10-03" +VERSION "AMI-2.2-2026-10-03" NS_ : NS_DESC_ @@ -12,6 +12,15 @@ BS_: BU_: AMI VCU SDC_ACQ_DAC BMS +BO_ 386 AMI_DrivetrainDisplay: 8 VCU + SG_ Torque_Permille : 0|16@1- (1,0) [-1000|1000] "permille" AMI + SG_ Motor_Temperature : 16|16@1- (0.1,0) [-3276.8|3276.7] "degC" AMI + SG_ MCU_Temperature : 32|16@1- (0.1,0) [-3276.8|3276.7] "degC" AMI + SG_ Torque_Valid : 48|1@1+ (1,0) [0|1] "" AMI + SG_ Motor_Temperature_Valid : 49|1@1+ (1,0) [0|1] "" AMI + SG_ MCU_Temperature_Valid : 50|1@1+ (1,0) [0|1] "" 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 @@ -65,12 +74,18 @@ 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.1. 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. Omitted bytes/signals are not interpreted by the AMI firmware. No motor temperature, calibrated vehicle speed, torque, task execution feedback or AMI heartbeat frame is defined."; -CM_ BU_ AMI "Instrument MCU. UART HMI task confirmation produces AMI_TaskRequest. Display values are received from SDC and BMS."; -CM_ BU_ VCU "Logical receiver of task selection requests; execution and safety interlocks are outside this AMI interface."; +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_ 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_ 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."; +CM_ BO_ 386 "Standard ID 0x182, DLC exactly 8, send every 100 ms. Three little-endian signed int16 values: torque permille, motor temperature in 0.1 degC, motor-controller MCU temperature in 0.1 degC. Byte 6 bits 0/1/2 are individual valid flags; bits 3..7 must be zero. Byte 7 is fixed version 1. Wrong DLC, frame type, version or reserved bits rejects the whole frame without refreshing timeout. Valid fields update white; invalid fields retain last value and turn grey. Source expires independently after 2000 ms. Display only, no motor torque actuation."; +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_ 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."; CM_ SG_ 768 Task_ID "Valid task values are 1 through 6."; @@ -103,6 +118,10 @@ 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_ 386 Protocol_Version 1 "Version_1"; +VAL_ 386 Torque_Valid 0 "Invalid" 1 "Valid"; +VAL_ 386 Motor_Temperature_Valid 0 "Invalid" 1 "Valid"; +VAL_ 386 MCU_Temperature_Valid 0 "Invalid" 1 "Valid"; VAL_ 768 Task_ID 1 "Skidpad" 2 "Acceleration" 3 "Autocross" 4 "Inspection_Test" 5 "EBS_Test" 6 "Manual_Driving"; VAL_ 768 Request_Source 1 "AMI_HMI"; VAL_ 1696 Board_Identifier 161 "A11_F407"; @@ -130,6 +149,7 @@ BA_DEF_DEF_ "GenMsgCycleTime" 0; BA_ "BusType" "CAN"; BA_ "Baudrate" 250000; BA_ "AMIPort" "CAN2"; +BA_ "GenMsgCycleTime" BO_ 386 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 d74b192..81e46e5 100644 --- a/README.md +++ b/README.md @@ -2,19 +2,24 @@ YMR A11 仪表,使用淘晶驰 TJC4827X543_011 串口屏,分辨率 480 × 272。 -当前 MCU CAN 输入为 **v2.1(CAN1 500 kbit/s、CAN2 250 kbit/s,2026-10-03)**,两路保留相同的 SDC / BMS 解码和任务收发功能;屏幕沿用 debug 数字状态接口。工程使用 USART HMI 1.68.1.3037 编辑、编译。 +当前 MCU CAN 输入为 **v2.2(CAN1 500 kbit/s、CAN2 250 kbit/s,2026-10-03)**,新增标准 `0x182`,设置仪表上的扭矩千分、电机温度和 MCU 温度。两路保留相同解码和任务收发功能;屏幕沿用 debug 数字状态接口。工程使用 USART HMI 1.68.1.3037 编辑、编译。 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)。 + ## 工程与交接资料 -- [CAN1 DBC](AMI.dbc):500 kbit/s,10 条报文、33 个信号,含标准/扩展帧。 +- [CAN1 DBC](AMI.dbc):500 kbit/s,11 条报文、40 个信号,含标准/扩展帧。 - [CAN2 DBC](AMI_CAN2_250k.dbc):250 kbit/s,报文布局与 CAN1 相同。 - [DBC 对应说明](docs/AMI_CAN_DBC说明.md):信号布局、枚举、字节序、样例与复现检查。 -- [CAN 报文说明 PDF](output/pdf/AMI_CAN报文说明.pdf):当前 v2.1 协议的中文打印版,包含两路速率和全部 10 条报文。 +- [CAN 报文说明 PDF](output/pdf/AMI_CAN报文说明.pdf):当前 v2.2 协议的中文打印版,包含两路速率和全部 11 条报文。 +- [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,CAN1 500K / CAN2 250K,已烧录并完成两路分别测试;配套源码在 firmware。 +- [当前固件 BIN](output/firmware/AMI_Controller.bin):STM32G0B1CBT6,v2.2,CAN1 500K / CAN2 250K,已烧录并完整回读比对;本次新帧实测 CAN2。 +- [此前已联调的 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):最新版屏幕工程,打开后编译并下载到对应型号屏幕。 - [通讯交接文档](docs/通讯交接文档.md):可编辑协议说明,包含全部状态编号、任务帧、主页面属性及联调步骤。 diff --git a/docs/AMI_CAN_DBC说明.md b/docs/AMI_CAN_DBC说明.md index 4689a48..38b99a9 100644 --- a/docs/AMI_CAN_DBC说明.md +++ b/docs/AMI_CAN_DBC说明.md @@ -1,6 +1,6 @@ # AMI CAN DBC 说明 -版本:`AMI-2.1-2026-10-03`。由 [AMI.dbc](../AMI.dbc) 自动生成,10 条报文、33 个信号。 +版本:`AMI-2.2-2026-10-03`。由 [AMI.dbc](../AMI.dbc) 自动生成,11 条报文、40 个信号。 ## 使用范围 @@ -11,20 +11,21 @@ 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 均含 10 条报文、33 个信号;同一份报文表适用于两路。CAN 工具必须按接入端口设置速率,导入 DBC 不一定自动改硬件速率。实际接法:SDC 500 kbit/s 接 CAN1,BMS 250 kbit/s 接 CAN2。 +DBC 的 `Baudrate` / `AMIPort` 分别标注所属总线。每份 DBC 均含 11 条报文、40 个信号;同一份报文表适用于两路。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 其他电芯/故障字段不属于此接口子集。没有定义电机温度、逆变器温度、扭矩、标定后的车速、AMI 周期心跳或 VCU 执行反馈。旧 `0x180 / 0x181 / 0x280` 输入已停用。 +本 DBC 包含 AMI 唯一发送的 `0x300` 任务请求,以及 AMI 当前识别的 SDC / BMS 和自定义显示输入。SDC `0x6A3` DAC 控制、`0x6A5` ASSI 控制、BMS 其他电芯/故障字段不属于此接口子集。`0x182` 新增扭矩千分、电机温度和电机控制器 MCU 温度的仪表显示输入;发送者负责转换实际电机控制器协议。未定义标定后的车速、AMI 周期心跳或 VCU 执行反馈。旧 `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`。 -DBC 为 ASCII 编码,注释和枚举使用英文,便于导入 CAN 工具;本文为 UTF-8 中文。物理值 = 原始无符号值 × Factor + Offset;下表范围为编码范围,不表示车辆正常工作范围。 +DBC 为 ASCII 编码,注释和枚举使用英文,便于导入 CAN 工具;本文为 UTF-8 中文。物理值 = 原始值 × Factor + Offset;`0x182` 的三个数值为有符号 int16,其他数值按表定义。下表范围为接口允许范围,不表示车辆正常工作范围。 ## 报文总览 | CAN ID | 类型 | DLC | 报文名 | 方向和作用 | 周期 / 触发 | | --- | --- | --- | --- | --- | --- | +| `0x182` | 标准 | 8 | `AMI_DrivetrainDisplay` | VCU / 测试器 -> AMI:扭矩千分、电机温度、MCU 温度 | 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 | @@ -38,12 +39,26 @@ DBC 为 ASCII 编码,注释和枚举使用英文,便于导入 CAN 工具; 扩展帧在 DBC 的 `BO_` 十进制 ID 中设置 bit31:`0x186040F3 -> 2556444915`,`0x186140F3 -> 2556510451`。CAN 工具中使用实际 29 位仲裁 ID 并选择扩展帧;bit31 不是总线上发送的仲裁 ID。 -`GenMsgCycleTime` 仅填写已确认的 SDC 周期 100 / 500 / 20 ms。其余帧未填写周期,默认 0 表示未指定,不据此推断 BMS 周期。 +`GenMsgCycleTime` 填写已确认的 SDC 周期 100 / 500 / 20 ms,以及自定义 `0x182` 的约定周期 100 ms。其余帧未填写周期,默认 0 表示未指定,不据此推断 BMS 周期。 ## 信号布局 Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起算;Motorola `@0` 从最高有效位起算。例如 BMS 的 `7|16@0+` 对应字节 0..1 大端无符号数,`23|16@0+` 对应字节 2..3。单字节温度的字节序不改变实际解码。 +### 0x182 - AMI_DrivetrainDisplay + +| 信号 | Start | 位数 | 字节序 | Factor | Offset | 单位 | 编码范围 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| `Torque_Permille` | 0 | 16 | Intel | 1 | 0 | permille | -1000..1000 | +| `Motor_Temperature` | 16 | 16 | Intel | 0.1 | 0 | degC | -3276.8..3276.7 | +| `MCU_Temperature` | 32 | 16 | Intel | 0.1 | 0 | degC | -3276.8..3276.7 | +| `Torque_Valid` | 48 | 1 | Intel | 1 | 0 | - | 0..1 | +| `Motor_Temperature_Valid` | 49 | 1 | Intel | 1 | 0 | - | 0..1 | +| `MCU_Temperature_Valid` | 50 | 1 | Intel | 1 | 0 | - | 0..1 | +| `Protocol_Version` | 56 | 8 | Intel | 1 | 0 | - | 1..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。 + ### 0x300 - AMI_TaskRequest | 信号 | Start | 位数 | 字节序 | Factor | Offset | 单位 | 编码范围 | @@ -137,6 +152,29 @@ Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起 `Maximum_Cell_Temperature`:255 = Invalid。 +## 自定义动力显示输入 0x182 + +标准数据帧,DLC 必须为 8;CAN1 500K 或 CAN2 250K 均可接收,建议每 100 ms 发送。这是一条 AMI 仪表显示设置接口;扭矩千分以发送者定义的基准扭矩归一化,500 表示 500‰。MCU 温度由发送者提供,表示电机控制器 MCU / 逆变器温度,不是 AMI 芯片自动测温。 + +| 字节 | 字段 | 编码与规则 | +| --- | --- | --- | +| 0..1 | 扭矩千分 | 小端 int16,允许 -1000..1000,直接显示 | +| 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 版本号独立 | + +有效值更新并显示白色;标志为 0 时立即变灰并保留历史数字。扭矩超出 -1000..1000 时仅扭矩无效,两个温度仍按各自标志处理。温度的 int16 编码范围为 -3276.8..3276.7 ℃;显示正负半值均向远离零方向取整。扩展帧、错误 DLC、版本非 1 或保留位非 0 均整帧拒绝,不覆盖数值、不刷新超时。连续 2000 ms 未收到合规帧后,三个值同时变灰;BMS / SDC 流量不能续期。 + +CAN 工具发送样例:标准 ID `182`,DLC `8`,数据 `F4 01 C2 01 90 01 07 01`,周期 `100 ms`。可用仓库脚本发送: + +```powershell +python -m pip install -r scripts/requirements-can.txt +python scripts/send_drivetrain_can.py --torque 500 --motor-temp 45 --mcu-temp 40 --dry-run +# PCAN 当前接 CAN2,速率 250000;其他适配器按 python-can 接口参数设置 +python scripts/send_drivetrain_can.py --interface pcan --channel PCAN_USBBUS1 --bitrate 250000 --torque 500 --motor-temp 45 --mcu-temp 40 --duration 10 +``` + ## AMI 任务请求语义 | Task_ID | 任务 | @@ -160,6 +198,9 @@ Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起 | 高压电压 | BMS 大端 uint16 × 0.1 V;现有控件四舍五入到整数 V | 2000 ms 无有效 BMS 状态 | | 高压电流 | BMS 大端 uint16 × 0.1 - 500 A;四舍五入到整数 A | 2000 ms 无有效 BMS 状态 | | 最高单体温度 | `0x156` 有效通道最大值,或扩展帧字节 4 - 40 | 全无效或 2000 ms 无有效温度源 | +| 扭矩千分 | `0x182` 小端 int16,直接更新 `dash.mct.val` | bit0=0、超范围或 2000 ms 超时 | +| 电机温度 | `0x182` int16 × 0.1 ℃,整数显示 `dash.djwd.val` | bit1=0 或 2000 ms 超时 | +| MCU 温度 | `0x182` int16 × 0.1 ℃,整数显示 `dash.mcuwd.val` | bit2=0 或 2000 ms 超时 | 电流字段是带偏置的 uint16,不能按 int16 解码。温度原始 `0xFF` 为无效;DBC 枚举将其标为 Invalid。关闭枚举解码的工具可能显示 215,聚合时必须先排除 原始 255,不能把它当作 215 ℃。有效实际温度范围为 -40..214 ℃。第 9/10 路虚拟温度没有总线字段,最高温度也属于 MCU 派生结果,不新增虚构信号。 @@ -172,6 +213,8 @@ BMS 扩展帧的其他字段没有纳入本 DBC,尤其字节 6..7 的低压电 | ID / DLC | 数据(十六进制) | 解码及仪表显示 | | --- | --- | --- | | `0x300 / 8` | `01 02 00 01 E8 03 00 00` | 直线加速请求、序号 0、来源 AMI、上电 1000 ms | +| `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 | | `0x6A2 / 8` | `32 00 64 00 96 00 C8 00` | PA0 / PA2 / PA6 / PB14:50 / 100 / 150 / 200 Hz | | `0x140 / 8` | `0F A0 14 03 00 00 00 05` | 400.0 V / +12.3 A;显示 400 / 12 | @@ -191,8 +234,8 @@ python scripts/export_dbc_docs.py --check python scripts/verify_dbc.py --sdc-dbc ../SDC_ACQ_DAC/SDC_ACQ_DAC.dbc ``` -校验覆盖严格 DBC 解析(长度、信号越界与重叠)、10 个 ID 与固件宏对应、标准/扩展格式、33 个信号、发送/接收节点、SDC 周期、24 个已知报文解码、六个任务号与计数边界编码、大端偏置电流、无效温度枚举、全负温度和截短 DLC。已安装并验证 cantools 44.1.0,接口参考 [cantools 官方文档](https://cantools.readthedocs.io/en/latest/)。 +校验覆盖严格 DBC 解析(长度、信号越界与重叠)、11 个 ID 与固件宏对应、标准/扩展格式、40 个信号、发送/接收节点、SDC / 自定义帧周期、已知报文解码、六个任务号与计数边界编码、大端偏置电流、无效温度枚举、全负温度和截短 DLC。已安装并验证 cantools 44.1.0,接口参考 [cantools 官方文档](https://cantools.readthedocs.io/en/latest/)。 -上述是静态及软件编解码验证,另校验两份 DBC 的速率、相同信号布局及源码 / CubeMX 位时序一致。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 解析不替代这些测试。 +上述是静态及软件编解码验证,另校验两份 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 解析不替代这些测试。 修改 AMI.dbc 后运行 `python scripts/export_dbc_docs.py` 更新 CAN2 DBC 和本文;固件字节布局、DBC 与此文档需同时保持一致。 diff --git a/docs/AMI自定义显示CAN测试报告.md b/docs/AMI自定义显示CAN测试报告.md new file mode 100644 index 0000000..f28c906 --- /dev/null +++ b/docs/AMI自定义显示CAN测试报告.md @@ -0,0 +1,43 @@ +# AMI v2.2 自定义显示 CAN 测试 + +2026-10-03,新增标准 `0x182 / DLC 8`,用 CAN 设置扭矩千分、电机温度和 MCU 温度。CAN1 500K / CAN2 250K 保持原速率;本次 CAN 盒接 CAN2,250 kbit/s。 + +## 固件和烧录 + +- STM32G0B1CBT6,ST-LINK SN `37FF71064E573436188C1543`,目标 ID `0x467`,供电 3.28 V。 +- Release 编译通过,Flash 15880 字节,RAM 2632 字节。 +- [当前 BIN](../output/firmware/AMI_Controller.bin) SHA256:`E73994418D346ADEF7E2ED5EE3C018C4CD3B74C4E4A2884CD8628218153BEA7F`。 +- 烧录返回 `Download verified successfully`,另完整回读 15880 字节,逐字节一致。 +- CAN1 / CAN2 NBTP 分别为 `0x00070C01` / `0x000F0C01`;64 MHz 时钟下为 500K / 250K,采样点 87.5%。 +- 两份 DBC 各 11 条报文、40 个信号,严格解析和 28 个已知报文校验通过;五条 SDC 布局与源 DBC 一致。 + +## CAN2 与 MCU 状态 + +CAN 盒同时发送自定义输入和 BMS `0x140 / 0x156`;未发送 SDC 报文。SWD 根据本次 ELF 符号地址读取真实 MCU 状态,检查数值、有效位和时间戳。CAN1 接收时间为 0,CAN2 接收时间有效;各阶段 CAN / UART 接收错误均为 0,PCAN 状态 `0x0`。 + +| 阶段 | 输入 / 操作 | MCU 结果 | +| --- | --- | --- | +| 正值 | `F4 01 C2 01 90 01 07 01` | 500‰ / 45℃ / 40℃,均有效 | +| 负值 | `0C FE 9B FF 33 FF 07 01` | -500‰ / -10℃ / -21℃ | +| 取整和扭矩边界 | 1000‰ / 45.5℃ / -20.5℃ | 1000 / 46 / -21 | +| 部分无效 | 标志 05,仅扭矩 / MCU 有效 | 电机温度保留旧值但无效 | +| 全无效 | 标志 00 | 三项保留旧数字,均无效 | +| 扭矩超范围 | 1200‰ / 80℃ / 60℃,标志 07 | 扭矩无效,两个温度仍有效更新 | +| 有效基线 | 重新发送正值 | 三项恢复有效 | +| 错误版本 | 字节 7 改为 02,连续发送 | 整帧拒绝,原数值保留且独立超时 | +| 非零保留位 | 字节 6 改为 87 | 不更新值、不刷新时间戳 | +| 截短 DLC | DLC 7 | 不更新值、不刷新时间戳 | +| 错误帧类型 | 扩展 ID 182 | 不更新值、不刷新时间戳 | +| 恢复 | -250‰ / 70℃ / 55℃ | 三项恢复有效 | +| 独立超时 | 仅停止 0x182,BMS 持续发送 | 三项失效,BMS 400V / 12A / 40℃ 持续有效 | +| 再恢复 | 正值报文 | 三项恢复有效 | + +## 串口与 HMI 核验状态 + +本次 MCU 状态测试已通过;官方 HMI 调试窗口的显示更新尚未确认。COM4 9600 8N1 直接接收 6 秒得到 0 字节;电脑发送 `AA 55 01 02 0D 0A` 后收到 CAN2 标准 `0x300` 请求,说明电脑到 MCU 方向有效,MCU 到电脑方向待检查 PA2 -> 转串口 RXD 接线。不能据 MCU 数值正确宣称屏幕已更新。 + +随后在官方调试器点击六个任务按钮,每个任务先取消再确认:六个取消均无 `0x300`,六个确认均收到一条正确标准 `0x300 / DLC 8`,任务号 1..6、序号 0..5。此结果验证 HMI 操作到 MCU 再到 CAN2 的方向;不作为 CAN 输入到 HMI 数值更新的证据。发布的发送脚本另实际发送 30 条 `0x182`,每 100 ms 一条,3 秒后自动停止。 + +本次未重新接 CAN1 验证新帧;CAN1 与 CAN2 共享解码器和相同过滤 ID,属于源码 / 配置校验。未接物理串口屏、真实 BMS / 电机控制器或同时接两路。扭矩输入仅用于仪表显示。 + +证据见 [发送帧与状态](evidence/2026-10-03/v2.2-display/display-results.json)、[烧录回读](evidence/2026-10-03/v2.2-display/flash-verified.json)、[任务回传](evidence/2026-10-03/v2.2-display/task-results.json)、[串口诊断](evidence/2026-10-03/v2.2-display/uart-diagnostic.json)。v2.1 双 CAN 历史证据及 BIN 见 [双 CAN 报告](CAN1_CAN2_v2.1测试报告.md)。 diff --git a/docs/CAN1_CAN2_v2.1测试报告.md b/docs/CAN1_CAN2_v2.1测试报告.md index 1ceca8d..f01e8ea 100644 --- a/docs/CAN1_CAN2_v2.1测试报告.md +++ b/docs/CAN1_CAN2_v2.1测试报告.md @@ -2,6 +2,8 @@ 2026-10-03,固件来源提交 `9120bd0`。实际链路为 PCAN-USB CAN 盒 -> 实物 AMI MCU -> USART2 PA2/PA3 -> CH340 COM4(9600 8N1)-> USART HMI 官方调试器。先测试 CAN1,通知用户切换接线并收到确认后,再测试 CAN2。 +本报告为 v2.1 历史记录,对应 [归档 BIN](../output/firmware/AMI_Controller_v2.1_500k_250k.bin)。通用 `AMI_Controller.bin` 已更新为 v2.2,请勿把本报告的双 CAN 结果直接套用于后续版本。 + CAN1 按 SDC 的 500 kbit/s 使用,CAN2 按 BMS 的 250 kbit/s 使用。此次用 CAN 盒模拟源报文,未连接真实 SDC/BMS 节点或物理串口屏;未同时连接两路。 ## 烧录与实际位时序 diff --git a/docs/SDC_BMS协议.md b/docs/SDC_BMS协议.md index cba9679..57a9be2 100644 --- a/docs/SDC_BMS协议.md +++ b/docs/SDC_BMS协议.md @@ -1,6 +1,6 @@ # AMI 接入 SDC / BMS 协议 -版本 2.1,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.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` 数据接口。 v2.1 已通过源码 / CubeMX 位时序一致性检查及 Release 编译,已烧录并完整回读比对;CAN1 500K(SDC)与 CAN2 250K(BMS)分别通过数据更新、失效恢复和六个任务确认/取消测试,见 [双 CAN 测试报告](CAN1_CAN2_v2.1测试报告.md)。本文后面旧的实物联调引用属于两路均为 500K 的 v2.0。 @@ -53,6 +53,8 @@ USART2 为 9600、8N1,PA2 TX / PA3 RX。命令为 ASCII,末尾三个真实 ` ## 任务回传 +另有 v2.2 新增的标准 `0x182` 仪表显示输入,设置扭矩千分、电机温度和 MCU 温度,三个值独立于 BMS / SDC 计时。该自定义接口不改变本文的源协议字段,详见 [DBC 说明](AMI_CAN_DBC说明.md)。 + 屏幕确认后发送 `AA 55 01 NN 0D 0A`,`NN=01..06`;取消不发送。MCU 用 Receive-to-Idle DMA 按字节流解析拆包/粘包。 MCU 发出标准 `0x300 / 8`:版本 1、任务号、uint8 序号、来源 1、uint32 小端 MCU ms。任务依次为八字绕环、直线加速、高速循迹、车检测试、EBS 测试、手动驾驶。此接口是原有 AMI 请求,**不是 SDC DBC 定义的 ASSI 控制**;没有 VCU 映射前不把任务号直接写成 `0x6A5` 灯状态。 @@ -61,10 +63,10 @@ MCU 发出标准 `0x300 / 8`:版本 1、任务号、uint8 序号、来源 1、 PA0 LED 每 500 ms 翻转,PA1 为仪表/SDC 状态活动超时提示,默认高电平有效;尚未观察验证灯的物理极性和行为,活动灯不能替代每个数值的有效性判断。 -## 验证范围 +## v2.0 历史验证范围 已完成 Release 编译、SWD 烧录校验、HMI 编译(0 错误 / 0 警告),以及 **CAN 盒 → 实物 AMI CAN1 → MCU USART2 → COM4 → 官方 HMI 调试器** 数据更新测试。 同时发送 SDC 20 ms 频率、100 ms 心跳、500 ms ADC 和 BMS 报文,验证标准/扩展 BMS、负电流、无效温度、独立超时、恢复、错误 DLC 和旧 ID 拒绝。原始帧、截图和 SWD 快照见 [发布的发送记录](evidence/2026-10-03/sdc-bms/sdc_bms_visual_results.json)。 -CAN2 配置及过滤寄存器与 CAN1 相同,但本次未接线实测 CAN2。未测试物理串口屏,未接真实 SDC/BMS 节点,未验证 VCU 实际执行或安全动作。现有画面的 EBS 文案不能作为安全状态证明。 +上述 v2.0 测试未接线实测 CAN2。后续 v2.1 已按 CAN1 500K / CAN2 250K 分别测试,见 [双 CAN 报告](CAN1_CAN2_v2.1测试报告.md);当前 v2.2 见 [显示 CAN 报告](AMI自定义显示CAN测试报告.md)。未测试物理串口屏,未接真实 SDC/BMS 节点,未验证 VCU 实际执行或安全动作。现有画面的 EBS 文案不能作为安全状态证明。 diff --git a/docs/evidence/2026-10-03/v2.2-display/all_invalid_ram.log b/docs/evidence/2026-10-03/v2.2-display/all_invalid_ram.log new file mode 100644 index 0000000..3e31a1e --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/all_invalid_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 00031E98 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00031E98 +0x200002FC : 00031E97 00031E97 00000000 00000000 +0x2000030C : 00031E98 00000000 00000000 00000190 +0x2000031C : FFFFFC18 0000000C 0000002E 00000032 +0x2000032C : 00000028 00000000 0000004A 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/baseline_ram.log b/docs/evidence/2026-10-03/v2.2-display/baseline_ram.log new file mode 100644 index 0000000..5842062 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/baseline_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 0003287A +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 0003287A +0x200002FC : 0003287A 00032879 00000000 00000000 +0x2000030C : 0003287A 00000000 00000000 00000190 +0x2000031C : 000001F4 0000000C 0000002D 00000028 +0x2000032C : 00000028 00000000 0000007E 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/can1-nbtp.log b/docs/evidence/2026-10-03/v2.2-display/can1-nbtp.log new file mode 100644 index 0000000..0eb533f --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/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/v2.2-display/can2-nbtp.log b/docs/evidence/2026-10-03/v2.2-display/can2-nbtp.log new file mode 100644 index 0000000..74923c2 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/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/v2.2-display/display-results.json b/docs/evidence/2026-10-03/v2.2-display/display-results.json new file mode 100644 index 0000000..9b596e2 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/display-results.json @@ -0,0 +1,5639 @@ +{ + "result": "CAN2 MCU state checks passed; HMI display unconfirmed", + "stages": [ + { + "name": "positive", + "display_input": "f4 01 c2 01 90 01 07 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + 500, + 12, + 45, + 40, + 40, + 0 + ], + "valid": 126, + "can_port_last_rx_ms": [ + 0, + 199393 + ], + "drivetrain_last_rx_ms": 199393, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "negative", + "display_input": "0c fe 9b ff 33 ff 07 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + -500, + 12, + -10, + -21, + 40, + 0 + ], + "valid": 126, + "can_port_last_rx_ms": [ + 0, + 200598 + ], + "drivetrain_last_rx_ms": 200598, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "rounding", + "display_input": "e8 03 c7 01 33 ff 07 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + 1000, + 12, + 46, + -21, + 40, + 0 + ], + "valid": 126, + "can_port_last_rx_ms": [ + 0, + 201905 + ], + "drivetrain_last_rx_ms": 201905, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "partial_invalid", + "display_input": "18 fc d2 04 f4 01 05 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + -1000, + 12, + 46, + 50, + 40, + 0 + ], + "valid": 110, + "can_port_last_rx_ms": [ + 0, + 203135 + ], + "drivetrain_last_rx_ms": 203135, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "all_invalid", + "display_input": "00 00 00 00 00 00 00 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + -1000, + 12, + 46, + 50, + 40, + 0 + ], + "valid": 74, + "can_port_last_rx_ms": [ + 0, + 204440 + ], + "drivetrain_last_rx_ms": 204440, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "out_of_range", + "display_input": "b0 04 20 03 58 02 07 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + -1000, + 12, + 80, + 60, + 40, + 0 + ], + "valid": 122, + "can_port_last_rx_ms": [ + 0, + 205664 + ], + "drivetrain_last_rx_ms": 205664, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "baseline", + "display_input": "f4 01 c2 01 90 01 07 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + 500, + 12, + 45, + 40, + 40, + 0 + ], + "valid": 126, + "can_port_last_rx_ms": [ + 0, + 206970 + ], + "drivetrain_last_rx_ms": 206970, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "wrong_version", + "display_input": "84 03 84 03 84 03 07 02", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + 500, + 12, + 45, + 40, + 40, + 0 + ], + "valid": 74, + "can_port_last_rx_ms": [ + 0, + 210083 + ], + "drivetrain_last_rx_ms": 206970, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "reserved_bits", + "display_input": "84 03 84 03 84 03 87 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + 500, + 12, + 45, + 40, + 40, + 0 + ], + "valid": 74, + "can_port_last_rx_ms": [ + 0, + 211287 + ], + "drivetrain_last_rx_ms": 206970, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "truncated", + "display_input": "84 03 84 03 84 03 07", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + 500, + 12, + 45, + 40, + 40, + 0 + ], + "valid": 74, + "can_port_last_rx_ms": [ + 0, + 212593 + ], + "drivetrain_last_rx_ms": 206970, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "extended", + "display_input": "84 03 84 03 84 03 07 01", + "input_id": "0x182", + "extended": true, + "snapshot": { + "values": [ + 0, + 400, + 500, + 12, + 45, + 40, + 40, + 0 + ], + "valid": 74, + "can_port_last_rx_ms": [ + 0, + 213896 + ], + "drivetrain_last_rx_ms": 206970, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "recovered", + "display_input": "06 ff bc 02 26 02 07 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + -250, + 12, + 70, + 55, + 40, + 0 + ], + "valid": 126, + "can_port_last_rx_ms": [ + 0, + 215114 + ], + "drivetrain_last_rx_ms": 215114, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "source_timeout", + "display_input": null, + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + -250, + 12, + 70, + 55, + 40, + 0 + ], + "valid": 74, + "can_port_last_rx_ms": [ + 0, + 217824 + ], + "drivetrain_last_rx_ms": 215215, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + }, + { + "name": "final_recovered", + "display_input": "f4 01 c2 01 90 01 07 01", + "input_id": "0x182", + "extended": false, + "snapshot": { + "values": [ + 0, + 400, + 500, + 12, + 45, + 40, + 40, + 0 + ], + "valid": 126, + "can_port_last_rx_ms": [ + 0, + 219053 + ], + "drivetrain_last_rx_ms": 219053, + "can_errors": 0, + "uart_errors": 0 + }, + "pcan_status": "0x0" + } + ], + "tx": [ + { + "time_s": 0.1172, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 0.1173, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 0.1174, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 0.2171, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 0.2171, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 0.2172, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 0.3176, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 0.3177, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 0.3177, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 0.4176, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 0.4176, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 0.4177, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 0.5183, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 0.5183, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 0.5184, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 0.6184, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 0.6184, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 0.6185, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 0.7185, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 0.7185, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 0.7185, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 0.8195, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 0.8195, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 0.8195, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 0.9202, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 0.9203, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 0.9203, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.0203, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.0204, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.0204, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.121, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.121, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.121, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.2209, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.2209, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.2209, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.3209, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.3209, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.3209, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.422, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.4221, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.4221, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.523, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.523, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.523, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.623, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.623, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.623, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.724, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.724, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.724, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.8244, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.8244, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.8244, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 1.9252, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 1.9253, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 1.9253, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.0259, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.0259, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.0259, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.1259, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.1259, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.126, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.2262, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.2262, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.2262, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.3271, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.3271, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.3272, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.4278, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.4279, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.4279, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.528, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.528, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.5281, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.6283, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.6284, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.6284, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.7292, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.7292, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.7292, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.8291, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.8291, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.8292, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 2.9293, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 2.9293, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 2.9293, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.03, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.03, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.03, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.1308, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.1309, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.1309, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.2311, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.2311, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.2311, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.332, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.3321, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.3321, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.4325, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.4326, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.4326, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.5337, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.5337, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.5337, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.6341, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.6342, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.6342, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.7344, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.7345, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.7345, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.8353, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.8353, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.8353, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 3.9359, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 3.936, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 3.936, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.036, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.0361, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.0361, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.1364, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.1364, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.1364, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.2364, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.2365, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.2365, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.3367, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.3368, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.3368, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.4374, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.4374, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.4374, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.5381, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.5382, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.5382, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.6391, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.6391, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.6391, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.7396, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.7397, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.7397, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.84, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.8401, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.8401, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 4.9401, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 4.9402, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 4.9402, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.0409, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.041, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.041, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.1421, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.1421, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.1422, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.2427, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.2428, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.2428, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.3433, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.3433, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.3433, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.4434, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.4435, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.4435, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.544, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.544, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.544, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.6446, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.6446, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.6446, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.7455, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.7456, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.7456, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.8465, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.8466, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.8466, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 5.9465, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 5.9465, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 5.9465, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 6.047, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.047, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.047, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 6.1485, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.1486, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.1486, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 6.2491, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.2491, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.2491, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 6.3495, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.3496, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.3496, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 6.4498, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.4498, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.4498, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 6.5508, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.5509, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.5509, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 6.6511, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.6511, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.6511, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 6.7514, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.7514, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.7515, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 6.8524, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.8524, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.8525, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 6.9528, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 6.9528, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 6.9529, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.0535, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.0535, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.0535, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.1537, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.1537, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.1537, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.2537, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.2538, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.2538, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.3548, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.3548, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.3548, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.4548, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.4548, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.4549, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.5554, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.5555, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.5555, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.656, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.656, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.6561, + "id": "0x182", + "extended": false, + "data": "0c fe 9b ff 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.7568, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.7568, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.7568, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.8571, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.8572, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.8572, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 7.9574, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 7.9574, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 7.9574, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.0579, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.0579, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.0579, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.1588, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.1588, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.1588, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.2594, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.2594, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.2594, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.3603, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.3604, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.3604, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.4606, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.4606, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.4606, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.5614, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.5615, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.5615, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.6623, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.6623, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.6623, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.7631, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.7631, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.7631, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.8632, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.8632, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.8633, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 8.9644, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 8.9645, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 8.9645, + "id": "0x182", + "extended": false, + "data": "e8 03 c7 01 33 ff 07 01", + "dlc": 8 + }, + { + "time_s": 9.0648, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.0648, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.0648, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 9.1651, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.1651, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.1651, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 9.2658, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.2659, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.2659, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 9.3666, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.3666, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.3667, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 9.4677, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.4677, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.4677, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 9.568, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.5681, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.5681, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 9.6685, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.6685, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.6686, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 9.7695, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.7695, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.7696, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 9.8697, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.8697, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.8697, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 9.9952, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 9.9953, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 9.9953, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 10.0946, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.0946, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.0946, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 10.1948, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.1948, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.1949, + "id": "0x182", + "extended": false, + "data": "18 fc d2 04 f4 01 05 01", + "dlc": 8 + }, + { + "time_s": 10.2957, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.2957, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.2958, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 10.3967, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.3968, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.3968, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 10.4975, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.4975, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.4975, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 10.5977, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.5978, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.5978, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 10.6984, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.6985, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.6985, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 10.7984, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.7985, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.7985, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 10.8985, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.8985, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.8985, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 10.9989, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 10.999, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 10.999, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 11.0989, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 11.0989, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 11.099, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 11.1991, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 11.1991, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 11.1991, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 11.2993, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 11.2993, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 11.2993, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 11.4003, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 11.4003, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 11.4003, + "id": "0x182", + "extended": false, + "data": "00 00 00 00 00 00 00 01", + "dlc": 8 + }, + { + "time_s": 11.5012, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 11.5013, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 11.5013, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 11.6016, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 11.6016, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 11.6017, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 11.7025, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 11.7025, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 11.7025, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 11.8026, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 11.8026, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 11.8026, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 11.9033, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 11.9033, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 11.9034, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 12.0034, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.0034, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.0034, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 12.1037, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.1037, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.1038, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 12.2038, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.2039, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.2039, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 12.3045, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.3045, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.3045, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 12.4048, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.4048, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.4049, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 12.5255, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.5255, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.5255, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 12.6251, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.6251, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.6251, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 12.725, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.7251, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.7251, + "id": "0x182", + "extended": false, + "data": "b0 04 20 03 58 02 07 01", + "dlc": 8 + }, + { + "time_s": 12.8254, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.8255, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.8255, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 12.9265, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 12.9265, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 12.9265, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.0271, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.0271, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.0271, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.128, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.128, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.1281, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.2282, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.2283, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.2283, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.3287, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.3288, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.3288, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.43, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.43, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.43, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.5307, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.5307, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.5308, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.6311, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.6312, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.6312, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.7316, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.7316, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.7316, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.832, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.832, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.832, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 13.9329, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 13.9329, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 13.933, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 14.0336, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.0337, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.0337, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 14.1345, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.1345, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.1346, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 14.2347, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.2347, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.2347, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 14.3349, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.3349, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.3349, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 14.435, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.435, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.4351, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 14.535, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.535, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.535, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 14.6354, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.6354, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.6354, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 14.7363, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.7363, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.7363, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 14.8371, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.8372, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.8372, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 14.938, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 14.938, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 14.9381, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.0385, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.0386, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.0386, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.1391, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.1392, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.1392, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.2396, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.2396, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.2396, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.3403, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.3404, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.3404, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.4413, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.4413, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.4413, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.5418, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.5418, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.5418, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.6422, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.6422, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.6422, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.7424, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.7424, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.7424, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.8426, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.8427, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.8427, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 15.9434, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 15.9434, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 15.9434, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.044, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.0441, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.0441, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.1442, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.1442, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.1443, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.2444, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.2444, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.2444, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.3449, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.3449, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.345, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.446, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.446, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.446, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.5468, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.5468, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.5468, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.6468, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.6468, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.6468, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.7474, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.7475, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.7475, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.8482, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.8482, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.8483, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 16.9485, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 16.9485, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 16.9486, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 17.0489, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.049, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.049, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07 02", + "dlc": 8 + }, + { + "time_s": 17.149, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.1491, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.1491, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 17.249, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.2491, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.2491, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 17.3492, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.3493, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.3493, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 17.45, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.45, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.45, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 17.5505, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.5506, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.5506, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 17.6506, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.6506, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.6506, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 17.7507, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.7507, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.7507, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 17.8512, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.8512, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.8512, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 17.9521, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 17.9521, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 17.9522, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 18.0529, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.053, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.053, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 18.1537, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.1537, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.1538, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 18.2539, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.2539, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.2539, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 18.3548, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.3548, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.3548, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 87 01", + "dlc": 8 + }, + { + "time_s": 18.4553, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.4553, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.4553, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 18.5557, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.5558, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.5558, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 18.6562, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.6563, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.6563, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 18.7566, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.7566, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.7566, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 18.8575, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.8575, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.8576, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 18.9575, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 18.9576, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 18.9576, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 19.0581, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.0582, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.0582, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 19.1588, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.1588, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.1589, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 19.259, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.259, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.259, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 19.3596, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.3596, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.3596, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 19.4603, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.4603, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.4603, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 19.561, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.5611, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.5611, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 19.6613, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.6614, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.6614, + "id": "0x182", + "extended": false, + "data": "84 03 84 03 84 03 07", + "dlc": 7 + }, + { + "time_s": 19.7624, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.7624, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.7624, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 19.8623, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.8623, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.8623, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 19.9627, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 19.9627, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 19.9627, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.0628, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.0628, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.0629, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.163, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.163, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.163, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.2634, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.2634, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.2635, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.3634, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.3634, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.3635, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.4644, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.4644, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.4644, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.5646, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.5646, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.5646, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.6646, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.6647, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.6647, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.7648, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.7648, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.7648, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.8657, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.8657, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.8657, + "id": "0x182", + "extended": true, + "data": "84 03 84 03 84 03 07 01", + "dlc": 8 + }, + { + "time_s": 20.9665, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 20.9665, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 20.9665, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.0674, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.0674, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.0674, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.1678, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.1679, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.1679, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.2688, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.2688, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.2688, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.3688, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.3689, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.3689, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.4689, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.4689, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.4689, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.5693, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.5693, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.5693, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.6695, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.6696, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.6696, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.7696, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.7697, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.7697, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.8705, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.8705, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.8705, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 21.9851, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 21.9851, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 21.9851, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 22.0847, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.0847, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 22.0847, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 22.185, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.1851, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 22.1851, + "id": "0x182", + "extended": false, + "data": "06 ff bc 02 26 02 07 01", + "dlc": 8 + }, + { + "time_s": 22.2856, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.2857, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 22.3861, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.3862, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 22.4871, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.4871, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 22.5874, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.5874, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 22.6884, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.6884, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 22.7889, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.7889, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 22.8895, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.8895, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 22.9897, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 22.9898, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.0902, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.0902, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.1902, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.1903, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.2909, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.2909, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.3914, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.3914, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.4915, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.4916, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.593, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.593, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.6936, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.6936, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.7941, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.7942, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.8941, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.8941, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 23.9947, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 23.9948, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.0948, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.0949, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.195, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.1951, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.2953, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.2953, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.3957, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.3958, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.496, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.4961, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.5971, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.5971, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.6972, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.6973, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.7978, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.7978, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.8986, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.8988, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.9987, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 24.9988, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 24.9988, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 25.0996, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 25.0996, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 25.0997, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 25.1997, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 25.1997, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 25.1997, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 25.3005, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 25.3005, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 25.3005, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 25.4013, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 25.4013, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 25.4013, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 25.5022, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 25.5022, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 25.5022, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 25.6026, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 25.6026, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 25.6026, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 25.7028, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 25.7028, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 25.7028, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 25.803, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 25.803, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 25.8031, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 25.9271, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 25.9271, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 25.9271, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 26.0273, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 26.0273, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 26.0274, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + }, + { + "time_s": 26.1279, + "id": "0x140", + "extended": false, + "data": "0f a0 14 03 00 00 00 05", + "dlc": 8 + }, + { + "time_s": 26.128, + "id": "0x156", + "extended": false, + "data": "42 ff 43 47 37 0a 50 41", + "dlc": 8 + }, + { + "time_s": 26.128, + "id": "0x182", + "extended": false, + "data": "f4 01 c2 01 90 01 07 01", + "dlc": 8 + } + ], + "pcan_status": "0x0", + "sdc_frames_sent": false, + "path": "PCAN-USB CAN2 250K -> real AMI MCU; USART2 / COM4 output currently not received", + "hmi_display_verified": false +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/v2.2-display/extended_ram.log b/docs/evidence/2026-10-03/v2.2-display/extended_ram.log new file mode 100644 index 0000000..13e4017 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/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 00000000 00034388 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 0003287A +0x200002FC : 00034388 00034387 00000000 00000000 +0x2000030C : 00034388 00000000 00000000 00000190 +0x2000031C : 000001F4 0000000C 0000002D 00000028 +0x2000032C : 00000028 00000000 0000004A 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/final_recovered_ram.log b/docs/evidence/2026-10-03/v2.2-display/final_recovered_ram.log new file mode 100644 index 0000000..c66ac12 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/final_recovered_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 000357AD +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 000357AD +0x200002FC : 000357AD 000357AC 00000000 00000000 +0x2000030C : 000357AD 00000000 00000000 00000190 +0x2000031C : 000001F4 0000000C 0000002D 00000028 +0x2000032C : 00000028 00000000 0000007E 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/flash-readback.log b/docs/evidence/2026-10-03/v2.2-display/flash-readback.log new file mode 100644 index 0000000..c74d9f1 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/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\can-display-v22-test-20261003\flash-readback.bin + Size : 15880 Bytes + Address: : 0x8000000 +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Data read successfully +Time elapsed during read operation is: 00:00:00.252 diff --git a/docs/evidence/2026-10-03/v2.2-display/flash-verified.json b/docs/evidence/2026-10-03/v2.2-display/flash-verified.json new file mode 100644 index 0000000..ac3f0d7 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/flash-verified.json @@ -0,0 +1,6 @@ +{ + "bytes": 15880, + "sha256": "E73994418D346ADEF7E2ED5EE3C018C4CD3B74C4E4A2884CD8628218153BEA7F", + "flash_verified": true, + "full_readback_identical": true +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/v2.2-display/flash.log b/docs/evidence/2026-10-03/v2.2-display/flash.log new file mode 100644 index 0000000..0115179 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/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.51 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.762 + + + +Verifying... + + +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 50% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Time elapsed during verifying operation: 00:00:00.252 + + +Download verified successfully + + + +MCU Reset + +Software reset is performed diff --git a/docs/evidence/2026-10-03/v2.2-display/hmi-not-updated.png b/docs/evidence/2026-10-03/v2.2-display/hmi-not-updated.png new file mode 100644 index 0000000000000000000000000000000000000000..fd35dac972efdefac04b0a5137b0cc89e97dde73 GIT binary patch literal 37416 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

#cOJo9#R`Qdma6Zu!pvcUoVA6@{X> z@eX`?8J=4q>~5+iDczRE#Al~3#aYfc>*{#0b^S553I%5E8G3wFS5x}6*UbF4Gkh{ zxqKx=JABBIVmzJr^~J@-B_$;X1;;p3e_>L{MEv(14s+5K?&}Jpg!dA1xcssTDb^jv z60^%y{yRERFH#nBcBWa~!i$sXjQ6fyJWP3w&nlgo}#{?OUc; z6OWCZot=Bci`|cBLTTsc=gbCbWiw=lLPD=z8Q0AhtQX|x=a-bIM+_heNFK@bOQL^TEzP zitF9Hk*@JsN6sWxcXKRMqxz0Zf*0EJ+bSjH+Z%>7@cc~HCyIeRKR;ca46(9u3{7OA zb_JE@%CM&nfLGCgY5`!MVOoV zHH{Tdjz!XI`Z6D{#lTQsAMJUp6l+p)@-W_Mn8#+M*HzXHekeJTs)|a+wB;*i_yJuR zBfk%`cDy7jvbC`%U$~WH*k3j_HA#wPx3t`kWr!!1={fVKEPMa9s z$Cm7Gf~jYG@=pC$udo@rN3RIKHt;)q%2MEQyc%1XYn*HGYOCv+Vz*vPu%d32t=t?R zeca!Y4W`~-)_?Lv{hgXD@x13j)z*04r=4+!cr}9)Y^OwONwfIY22BUH%dOd^7o}vDg~T zyDr9Y6SDW+Imlgf^=tG>AKXWg07%8yKMP!N+bP$D29C;)_l089pR{r_;{?cF#prK+ z7JQR}E5bH5q>9$o11DbF#YR3CFZ9g>2D5^{=QkrGim3)JyT6$8x@1{8*ig@&=S+_4 z(i`!=E~w?+naELCIvN_p8$R@8;9I>IA3@ zM%8mvin6>@uB=c|X!aFNI0IE)HJP=r-Ewon3?C$b#DZN&q z3kPjG;D^mOqTpwXgVoka-?-pp{I3s+mi7-06pg0|s0_{jA;+DL=R2Fj-5UKB@29Fp z9SX&=6`l7(AildZ1!NCV{2oaT4JNQyWi3)3Ys7lRo%^{L`)e0W%)zX4W9_nd6zAtE z9^~?DbceM_hWK4pVbEvrlVi{q2%`L?py?OGC)wZMKaP28gx6CrnP=jtAvrA^j4NhD zK(j(bN3}1hV8LFjXYf<6vDmi9ydAQ58&&=bZLCjsoM}3=A)>&PrB$@Uk_&PY0F(e9KFOeZIl)&#LP8Zg5-gg$ z-&WkSmT9!oldIX59d$eRy4pv!?M=wjIX%uW1z?aXw9;z4^*Ka<3 zk94+ERjs1UUL5?>v_Rnf6+sbup+#Q539k+@G7!Z`#=eQqxcVdhWn=csuo*{H1JKkt z5TJftTr}|OSUz?I`K#H0Rb9?R%8pK>L+&qcKTV#*=lJCB_Mg@*RnKdJKEYza!4jBk z#|{L`Zg460Z%;7cQg>t=F+>SScR(=t(8U-{4h<>-R-7GGUqRtgosnhhD@Ni+! z(55oPr_uzc3?IbqZ`<->)UZ$;%6itK30D?dre@kk211t}J+tiHu#KbC3W|$4i5mRt zn{R%w6QJ^^j%+vpB(mYg^f|o4h}ZSVNJ%Mj+}x=_PciRwB=z;@^E@U=d1^<}aJeR` z#cj8iG^P{Zj|Dg!5RIUIdnjp$nXya>)VJ6+hV6L08+k`}Dbw?UW9L^1POKcM&^n9g zdZnGesyy}Lu2^NnxH$;{0l|wGFGxtTPr%YFmX?-2Ja`6nMekOubG5Xz2nq_~v*_71 z=t*TA|NPFOS*kZsB>ce#8J%mWqp0jzt)&0Zpr5q(9v1whv`&M(`7sE!d~X6(|7@cG zC+A)Tf>#8*`jieP?G5>5___px!L(z)jh5dL*V)*^#N6Dd#mI?}4n!z(k_OBKn7sIE zEF~?Ch9C|AM4%n{RC$Mr_~T%u(6K{0yf}PmN>LEPbP(@LAxgL)sXO zpL&Q3kmrXFw8|)P{k`v;KI*b_M*q#bpxHTiY)V;}RJD9}r(c~Q(x5DG0hIQMca}a{ zlJDQIt*%lkOxopxoZRyc(@oGkB96p}lWHg!TkgffN#a5tukliAIKcphSHH(^#-F|9 zB5S)dd~I2+LWSH@wDCwKlq$sRVg$cyK2EjW$*+PJKz$zR^mujUYG}B0*?QR$5CA_L zB*sP%_lbv}pWndi{yZQc;0M3U&lS6{hzQdIKenabSQQa1R1Az**RM0XU>5{j4)nlp zgKPM-mg+&!XT@|O-h$)D@A^P&#?7!`CK2sqp-{;Oq=?;ouYV=F^EKM|?r*wh+#WTQ z3K8i(B0EM-LIaZ~ZT%J4Jr55Lh$9UG0)mNf;R|$W0hjm2#-c69Fr5K|RM*_3*->za zZ`RceCx~+mMix?y69_l%RHF+rD!nWcAluSfJYlGQYWRv2O>mB?P--HgdV$28oNz&C zx=cb2wIU^w(i?^Xe=W)GvFHdW!mnAvKT6zDd+e`YzZMWk=?o@~>^r<1B84FMp$EQq zcGkezNl#6EK}M!|h!S+6TcUA=aCq!05!lKYY;M^d1TVL2j~SdcL`ipT0x zE038OrB5l@kYg~KFSt(4!>P>L3{_BU@FIJw zRyoQW$;KyX9OFN~ugFZJBzDgLFKuW@mhBXBvFp@WTFPSFEm<_p&BfJ$GBD;E<(oxS zsRpIO#i^9fo|<8#&K1)LvP;`sY)NT~rUf}~7$t*_rQiOd*!5==Ug$bMUyliU&qucY z*whXrTFPf&g+W?~9pGeRi%O-S2!Ms4!v*`5k7vw$;&2E(5((JbuTCz#$wN(01YzDRd*lU({v7{^`@FoRmk{?P3JK4lC}WGxO|lG=%3e zl;iDcG=nzw0x~c@zRyM3F|q@LHtqK2axR?gcudHajE0*}(G#Z_LX#lbopSFa>f0ri z(l>AVIt@RI*xHs&TjK6hy`@$i^75I?5oC1boan98=GZ~3?KvighXczpATTtPLKB7e zKp9Ls$QU2A<0Ko|_~%`l6m?~Mw?BTs-~R1M**^EEvlZtiL_|c~FR>LB6;mgMs~-Y_ zeqxSOsJt(lw&YHhmX;2PmCe{<3d<{h@b#!*H(bBu;N_(oKA_il>RsZ0i2V9hrG^9X z%F!^fV&vqsD?3;bw^>B6SM@wbx$d1QwNDsKwslyO=!n+$AD~CB;%@g-elLi0YWUN% zYT6Q<(8p~huR;g4iQcV|R1N}EKR-V)?Pr2Tdv=U#^hiH`KJ`N&Cr@tsPi%txs5M6- zDo3i~Q(R(Ju#Vd;!siyJn@yU6bB<622txi>bMJ|F%;apCbaEZIj(f=hPIA zy4;UtktoiRoXlKv#0oZvfHtG=w{P(0un6gjiWWw)r0G53z2PiaXUc3D^uDfh@=40+ zOsKb$s2I$3S=OYzc40AIDRa%4ofJxg?c6k(CJ&pAvzefHi8k)x2`f*B1 zYhiIK?wn2dM6@t!bqtT*du<iX?V2*@y88!S__60R)<-$v5i!7>adl_P_sdUE(a^#pBjq`?$)zY21boue za|6S|!^b)A2N}z(Bt+mfM;~0Hn&G$X;>gJvI92leL%gjizo>PmW!!ZozAJDTu5E0z zu6g~ENYSy}iBQ2pOQUKyq$tu}H&j+u78DE|Ual?Gkmr|{a({o5?)7k; zm+qNVy&Uu)jHKdS2^FHXkb5gN&RLXEFnA&^xa7J?yrjigrp3w_X+FqlMc6HDgoOy2 zKe0e}O}o+z8Z6_N&HbjcNJCPbOuCrHHC86NLHEli@dJ#S`R7nvWECr!E@bo(yOA|^scP?+SZ)iXUKmVeQU$B{9R0L$RD1JsJ z{Um6NT~Tg@*l4C_B?l>0mVehue0)3`{!VOOX{ln~Br_8e(xU-0Gc#aFMKejO>>z12mZGmn%{C5~y40hA2 z(cnyN4Q%8pJ^&fR3hKVEHLr(msA zsb`KZEO==xBiLjc`!&^E6YF*jD~8y;LKjLwB=Xk}m*~9HQz_+YmSlgegd-XP!6A`p zUX?te+C;G_XTqN~Y6#91SkU8pAbi2B;7#5GGgR5!y6jZ*6`P#RmS61TT^82!5(zk2 zQXCR$)ZmAZ$qzi}M>TEc?2Hk~Z}9IG5p%*b-zqd{EG&3F;4HL9n44b&9-C7KQ=mER^BE*URq{+COo-KZ!b5^e=4#Br zKgU={=<&-YS;aa#L_qw_CTLk;(JP=pE89Y4|FB@OFYg!#F?RQimF4^mxV!o)e2&&siq7&hrf4)uW zCrS8c6&CIc=qnZKnIp=E0Ma@qCx-;xTLxuirY8LT-450lOGsaD%J}ct_(x}?q0egw zHaI6z&DshJH~nAUSuJQ(q^qhEgBDyLmugA5o_2baUrx-wup} zL5j;k){vJZ1414F9Ct%QLx851UDnB$jM>8#orqM1R51~w2Wo0+iaHwUFlAz~|1mhb zkC5QM;-aP+-e|?3lrgTt91jXck%8T6jtiHna5vO@&-u$=;aH_~+#E=$pct)l*m+?^ z`(UC=2)?TNJn8tBiWZJJQ`ljsHaZIF(Bh@cE9g)?Rsk9dm!w@H%HoS;PHDC5Y?27* z2v$!%LX55VF5)9Dyg*D+ua7oEP6$=zPhlf2U;fN;E4asY+-JA_rW$==FErKaZ7QmY3|YytQH{G5@IQBh$JaO@Zj z33^#^vB33utZCI}3kwT-`(vQF0=>b}(J|fg#-h{^#+Tgk6#**f8$n~Rb_`1T=N5y) zxc-D?^Q!8)y3skaSZtExQOdxu;a~nu>JdBwD0_R`+pmbiSrUh~odC4W%jT5s&}9GwsJy&9>v^-&>966Umzo?-@!)oE z^OR<-YJcj((u)!i5v74zO?J18=ze)Hz3rr~uFjwY9^rbEr|o*LYSi;;CGhd4?D6Jk zr3*C@M>MKr0?_zi5mq|k6Nf%<5{;(tIRZ+dqeHaNM5b!_*_K$|Oz=gW_S~79hl|T4 zdleJENqU8R7Wx>5q>83=DLZPGkro^3+COG-JIO_b@Ff%p@L5Q)-jVMus;IvBpmzNj z@akLcU$_rm72_ByLm88PS|Z(lQg_p;=e=@CJef5A)&N`aqC9lBOrI5 z(nXlSuRl*rv5i_9jc3%%&CLaU`2My}eT7KwQ8G z{53Np8F&|FsA1>*oSmIrOl1mescKhdW~Q&6%&#GDI!-GdZfSZ(FHZgngK>SHaNSMr13hXjY90ISO zbI6)Kw*3!Bg9Z&m3&1u~St`cx3U%|$_kVqrYF1W^qnFu^x_21}P#g7FGIaCoK4py~ zDZZl~TV1*4Y~7ytbEv-x^68OW3FTh`Y4afW4rRP04xB$=7^h490gu+Z&ZRdE{;l{-Orua6H* z>;O(#2YKY+q8oUco14`apLj{`@9)tA#fPT><;@FE*^=o%B@-NF+5vd)*7|z$3N48U zzj5>8(o!M2WpARsj&~J+p9aF5bprR!^k2o*5|L5xWjSB}wyOLGPfyQx?_g{HkAy|Y z`{Erbe~V(-jMAGoQJ(!2+eKBQzwg7+S71cNf48l5aGEq6{wg=t^EjP76Si%eCdl~kdL-7Ye`XE@d{Pb$sN|6OIKBrP5I z$L8^<3*(h-PLMHysgn~9B{pTEgr#LrxlRd4W7sz@#zv2h%KO%$YcE{|JlhN}b|%t{ z@z(eDa?6a7eO~z~VnrBRS%u|pYZ`psxW8N)O+oX=8OTj9$4T75ihiX~q=snr>@bIu{=;vOc z(>~$5=-X>`MV2TZ>m6x3nGA6@48WIbM7*PXtIe=nLRXLV=g%Lpd(6>t zb1N%>Pd9OAQJvefCScdUkYwag5^?xKK@>h5lRX~)9nYE&2T%2stn>2na1{}4drYeY z!HLWy(dpOyo}3I`?~lPWE*R0O>gwm+ z*h-)P)m2x^L;@w{a?$;8vBe!C=v~Lo!*jV3NJbPcm9gwSKmtOL*X@ihyUt`&l3e?p zv$Hdx0$i!gohq2M0FW86LM6K%-f@T8~u% z)+zoq0V6H2$>+V&&7LL{rr}9eiB2%HEE+}UU{jA_xs8_2fcAZM7H8yB{EnK888^mf z)rpt2^^?lCzoJ-5MkC#T74BUmyS;9^7s%44fC!<>x>KxSj;x44Dcmpi_}tF&oigbp zRi11GVDl0a*QDSAn3$RWG`ZM*`lNn=#oBz-Y3q5K>=cGi?+MnXy?9oxR=!fCc4%r! z&C9E;vWkO~bKQwwzFb73A|^5cVp3p-_vxJ56Y~s>)sHHzT6+#e5nzVu<_W*57|;fs zN-!k^6Vw0VO1$AMcQi4PD4P*~K9trw;f?AsIGc!tZwW7ZkdjK%k>8 zdOhBQB`erA1802eR6$AU@OMR4L4mAmeqrID5gSX7Xh_F1Krco8SHpgrwL+lHDJqiZWyG5>^JgVI*grnDKhkJyY*f?08WNX4j}B$EUYwkKYZ;yV zrCKffLk-Se4De8Z7t(KanB873#4#asIDb-A6XZe*Hh}$MuJk$XWrO?_ zHM6VWJlF#sxyAhwl-=yW)-zxPK22WI)6!B_bQOh+TwU$kdbzK325^{-h%}4>Q~@|N zO7wo(>Km)X>|Us?Gf3w@5LSnKp&z=RxS)s#P=hBj_O@waEsTsr-0;-R>_7%_2_fxwLX*&b-ke_eyeY2_z0k#$<`M&4UMEXGy$;6GNK|(s72F|-oC4= ztG&HFfP_Gy95y}GwQZrU5o1r>U)_inTt9Z5+G+!}OsaV@00twV2p?)tmdGnX8i|Of zo*@?uR@A>8?q^5{Wc-E(&}x~Lt2t?j2alH?z)XPzXM!ITIkIHJCrz_x9a z!Ws155YgiB8|;;T<0)CB3^U+ORSZz_7*ApXsG(9Uq+i4*hs9qgqL|ZXM#$0StF|eu zk4W<_CAAo+a0&_v;BRehZPm>n*nggAVYjm&<8S-(b@J{uR#sm?hahylj*UYCA2MeD z`<-UD^))EQR60K-l5$`HlW2XMDT`K|&CVtF-3fwjq0X|=n;qWIg30p001e#K&7iETr0D#!hi5OVLAj7=B^xRS50A_B{?Izs8y?5yc9;wdO3o+r z4HBr(!`1tyKds}*3-TAY_si$mD?Fh%>|9)2N&?3c%{q3FO&KxJv@{!(X%xjn(EU2R zE9@nzO$LBLPWM}I1K<%^<*Adi_<>Z5Y-$cB{Q`-Q!ej$rX(D4=`h9W7#Rn8F{0`q_xUXgj_zzyGCDR<7mBo8(SWfFx3FX8xN^VfT$sb zYYs6wDngj5V3UylB& zhz}T0TnnxC$Pe1%lwa1B52OOgPqJ%&n>hHs|L|c0)L9}l z1jz{uAj8pfiKspULk*pNs?P@;mml8j8z``MW|US7fmw}A)S*fVNAEe2XrFaqvFPZ% z7ojT4D)rik+i%H8*Ah{6e{Lpc%5V_*5uc31~15@c%f8P zOsuS|EG)o2I7G_)Z}> z=S2v^fbMJh`RuPsCz5ofZx)~lUMn@D;#aFdUacr+v$6I2tP`)};r=ON=y~<;)j*Hu zIr5U&7I-89wg>EoY@yP-?(Qm00MV3zPmFvPn3jD_Qb24!aUpI;%RXny>gv;Pl?0~& z9##v4NWG!MIdN+NWQ$Nb2KZU>>*r4jF0YS>k*TREFcG-P6io}APd%9_Wk2OlTPo1R zb{IvGy4_tJPff*5ZUYlTpX@W>ufzbXGSwQKUkAYY%q%Q&80s1t+&ny>&9|AaRk&CE z2}m<*YiqAd7cW}Dv#aAZ3;>n^VqQGSe{zT-|GVvf?J;IlN#V;br8eSW&m5Mbl|31G;Qi2Ks~rRLFp-m^D0_q9i*hHswy6vh2L#n zZB7S02Y;H<-4FN@ht9!`{aZkia=bkFgW#9Z*r?<57qqJ`yd>#gP6kd+9CV)OF&RAg zK#d~sxC+kvf|(%}rFLSah(0C>O~Ad_;IJ`3n;r*=00?R;&D{n-Uj<>XJW7J+am8m| zS4S(u$vl8fsDMTEU8neuz9^bT@DoiOs;RA&ipMf9AeTvSJzDMn>Dpu_RB2EZ%!jyw z!e~MaTByhKGOv3usx|S-04z(`KjY3*Pshc^X2eNUfb}o41%t%|7L$sKR~DXDV3+-}wfVy`dqesXGA;D}ZtcCj5cpDKbpU#i~(xT=60DnJCz zv^{*vhk{sOXkt?Zj#S`7p0xrF@^mYQL1{9NZnig@hKMo5z(5QNnTN+cXj*~M=XvDK z#m@T&U_%1jFMqb2wZ1Nq&0L`((5ApW)_62(2 zfC&)+!4Eoy0O1cSV9HChvJa#OuzIavumiMpgCrzZ$~C$m_9adU-t##L^-nAS^q|-#35<0{qa<{A-d3 z6V~Xs5;kDu0cL}FqyH83HwWVxkLPgkj$-n1b8l{M^;u@{9^(Q~p3W^Pm`yYOwhI*e zrPlkYg14QpS>=lN<5|+recD0OMVvQDpL7L!^bw#f-UQ$qm|Iw2egbjw=kadz5jbK= zY4UK;G>U4nvcxaOG+R$_t7gAk>}f~#y%gN}XJE_rfeEq$?xCSH>iNi}!#wt9|LT$v zMu#$RQ2|p1+q3s<1n8s!AVLR5T+52cz2!W(lf#ihYihUxyE-b12TT}J7nGi|nYGPg z^YxSA{CddH6LiSV2MhE9)wWAQfFD%KQ4+d_YsS?o1PnwQpf;3*@2ijEfaufQEFdKG z0LB3xdm1u({AaBW_V>eGrq+(Ts~%sV_W@dE53#CmjgW*SB{fz3(5By1E9in472!%G zK5f;xDM!$~WwE29qqS9NHQ8HT!j0|80cT@u4C61;ITL^bdCDG$Oe`!9yKN78a zyfF$3mjw8(!7=dkT(qgntI!SYd1u9~sQ9KZg))x~l{b5GcUk&2OfVpW<~3<{w>Dr_ z!4?97hBhR#^`fQ>*$)o{`_pXGj%HgU*lZvX)zs904onbq=<{`l!L(^m=M&KI4-5

=K!f%zOvK+uKADcEJVgDy?U>*noB8dx7fRD@{l_uR=J6v&VQMGO#J z89T-Q69gz6CEeZKLz(n*x(Di)kFLMqFE#%D&l<-9I1%T2270iv!17-?YX#W5To-|{ zDm!~cDE3ULzTd|Ip(gAIGlzE$V1fp;aW;#M-!ERh>;WkwWZ3j}3rrur?~CvNEQ!}j z0REX ze{vU^Mhly4k_09idVc;M{aq3`_xr<;;9$9v(K@jJ;0LVrlw)#^LfH%;nNeQHT~xhd z3;nR#>;K25>|eb;<9HyvMI|X2pCPdj?qvH3^q}TM8luQEEYvRE7bD4aHjSI(A0(!* zfD)&n@dN$a{Qd(FG|Iqns;;gE^^udC8!H_?>9asukEG4;i@eF}acQzY_4dyhoY!vv zFSfd!m!6>bGQeAO@R~KM@m-D1XzJ^{iL7YuTAdQ8AEq`#rRU(@o)yT?AQLWmJ$g7G z+o^*7IRm!Oaa532K@;ZQ$3DWBCe;^M!L4j4LLi5$yqXy99HUkwj5 zCitsuK5TbL{Tg4zUtSrfrnR+nQBq9qJEA~JjLk=Pkekw0F&AYF%4UEz6q-RE5xx47 z09CAjZnha0L&@@*Ri{KFZ}R)FX*6$?;uJKE#S%3$?}{fVR0$|`{@GeB*}Ua%Dc}5+7EF9F zHnZKpYb|;iwe>%}kVeqtO7qn($qjj{KS|M*_4WDSaiPkjp`oFV*XfT1)0RL+HKu(U zB{m1xAwJKER0-*sWF}4_7Zo+H|26A!KXCNp@W=7Lu9T&Q7+^G$v@Iz)m`G?dsGgMn za95QX`a(#Z(=O)&THmkI+~?vUNhZ+Sus@?$vUQ#4;ZpBGbo)F<49cP0ho<1#G`Y|G` zPqt^EOz`sUiO zOJ72UM~t)z6qBbm2<$b@8k6;5iU&?>UWsaX02~12W*0e?6di&125+_B%9XQBmA~Zx zxOh?BULwV0tmDvI$ZBHdM$uKjN*+c=@uFt>VZlZaCY3d`L0J}2JV5#9Sw5_pfGO?w zH@QF6BUt}1#Rmr?TMSA8+b?MOYky~qsRqxi0HLPZTIZK6COWDjzUdFDYS$+S`7MQ# znt7W6LQmDnP3ao4H;RViZu(=-WJ-Ftb^xk6zR<1M?c>-JMbT z`jYjX{l920`*WjY=JV zYFrkM&$Lf@fT%()g=RuOghJb`ErjQ6D!}oz6$XqXEyrU3DH@N0&XcwgWHv0*C(aP; zBmEMtnY4G5N_`hq6e{5p5fL$C=;dK-?1O}2r;D{|ldlxyUFvyWWLUw(h)cqzBF^8X z240_#Vqi$dSU@IPC2icz@YqSD`9>!*B@R&9DxEuE8Ojkmu|V3z8d(WSl%JTJBRX_Y zwWTgNrfa?c^r>pi2w2rPZ7nV6%?k!co{4yh;$NAjg%t#GyA7fm*NbxtT9Z= zWxlRZfJmGyKV~t4sQ&OCw_p|qx&j?0jgJT{hP(!VZMQrME&;Zr%g02{u3KI)I#WnL zz$5?+fZ$=870meu-ChUA8^mgZaxr(*UGc(d^wJah71tW4P?F!DfZZ z)nGNp{>`(HV!~N!HK2O}HE{bHpbKiQx@xU~pk?v~s>-4wBy6QA#AiX;j{iv42GGCQ zu^6cz0L~C_tcziP#gLyfTQcF!;v)&}o;Cg(!=i0!gp{rXlgkVSEug7%uuyxLvePmx(1xLt#Yi{YII_7m-3?&uh=*vwV)Re-v>18q~%zc ze@&Qz3AfglXRot^X)T}8Zh$$nI-5U4goK!+mGk?c>!id6lzg^nfz_2LlO{DNMlS~A zJC&ym!75OZW=_xJD(8n%3uL!;nas+K4obGL^O$CvC+5+51`bL@x+;cDHIOI%b**?A zP#iVIguBha{NDr@wq%Yc=u5%;8^lDA?uw(3{GSiTTxP5^LjsHVPl-thhnmJR1i6M0YnFC(Uljf1{FU9WbW^5)^2wqTNG8 zxI}c^$@_q4C-b_i_+vv`8<2m5zkGRX&7EAiJhpqzw&6<^pI@Ptz2-B7jGuLRd*2B$ zVpG#gBYpaRF)Ar|P4J5YBUeU7Mga1Xtu;y<6G4W9HA;MP`BPcFWV*}odl z#bDX{5`{%6^64oEF-eruhPV#pz7@O@7RJCX%zBAb( z2>?13ay=5c)qHs>U&Oy9_`a2v{!imHaG`^Zb;d3R+`hl90GEBtF3ST-8L z*o5&)J!qrDZ;3^tIs>?f$S_cgTTbLk5qkSOb@H6~m* zQ7u2?k~*GuY~})KgBcmsh!kQPANwtt(~}sIQ-{xLqN=+pt>|!kKfMjWu*sBh;OB?K ze2GiK@I=5722OAPYHAc46)rn=9qj8HnqY?g^_u^eyL;W^GUA7-D$H2=tQj$OQ92w* zU{^kKl&^@%k97(!JqWwNwS-#{SRMn8CF%>wQWnoqG5qZ z$D&iDLmCz!DUGDGlz>P{cQ*QIdU^j3fa?m*&|3D@W-| zAsb(!dz#@dcaon2f07D(PsOeIV@tp|P>BN7RC8GD4E-d25v9dTK`giZU_@Y#p_wDJ zrm2v?O>S5ks_!Q<3iit%4C~a=J#%`VS9N^)Wdi2BRRS6El`9SL@zbAI#*r4^HY9$3 zS5+(=e+4so&4egVkqCq6=4LSlN@>yfu(9KfI(OaDL(p`Jf^Z`X`LVHUhvcx8e%$-i zLGX~ApXX6K7KEfB z5le^?aZ&Pp`CtxRxoYoT?`~+kku*jSc?bHdwR_g-_BVXU^i`N)_NtIyr@GOxkz9li z$qUMH6WN24~;wkcIRsCDAV3qhcF$%!zKcpJDvdn&5@AgE((aq&gGE4nzf+T&<~ z0d_>TBsI0j`kdECoaoi1l0~{3-fi`BKx91g9Zn3 zcxN{VBfO)t8WyQXv0|uNG?<^DMvB#-`d;Tfj?+%d+H;w0*z+@Nul)F zC)Ia3Idnij+Wz_u^enhNLiCWM8R!-y%tC9$@`(ht z1EMBppoXu^4T@^E81JvGnSywUuI?;&laA?ukK5cRCZAV88mnl#xw!LqfL{XbG~c$> zE|jM-A3#1I!+{bn>>xMfMi95Rp*)fd93Z&SF!jhZ&5&riP*6}N0t14?s#_xt018Eu z0!X}LKYph%!DssvH8nED+Rkp!s%D(;&C%w->8hW}aVfhaxC=gF z9&UO;F*RMHbMGNiYNTq> zql{ttcgWJH3((pEWYx%NJ8_SL4?M*vW?2)5cc~x{I)&4*QYoWlCIe$6h&XzX+~p*0 zL6HK^P{Fq{aIE0rHup!fS?zc&Jb-2V5H-dq!*Ru ze~6}u~Ni~N@-xDca5RMw*J&V z`keZCQUXNx-Vp+71GtmGL%8k?EQ{{VNyD0SlEE^i(}Oy{i4a25SgWG01Y83PuS{nV zC_vy-VBj#BZ4wGz7gG6PR}x8YA_Ym>?FD44P*o;P_2OGnrZhSAQqeMkw0=(uGF|vJ9cQ39m zN+H>aS41RzY=e#gVLBMmJYNgKuYc?d`~IJk`0sC!0O%lBeB$4qSu0o^q6SID_2v0i z7tQ{BpP4DKj623~toF z+u^lHs2ai7z=V@G4wkI?n|bapBKierc2U5;lQ%vGtQCAiy`9;Kg|G0-NK$D&Solm$+imzhK2%_dq~C^j`U0T@VIl=)iTvKAscEq4ay@Hw1`CkM z^{y_UC;{*RYb1T!bg*AwE-J&nXLTx6i8BPI?+P=Mu#I+xSE!N(n(3ba74Hmq;cU}= zZ-6ihgb#W>>5wZ{gd!7}tC}S?a0F7YAa;`mkI}e?=+eOH)(<_}-QuY=Yb??O-Dt&? zF9}tL?uq)thA?ZaBnt_?(ARkc>oUKn3kopjBOf6D$a4-IK}#yYoN=Y0p$XfmLUicB zw=sMu9nK$?{%RfQZQfp9-~f2|`AI6i2VvkxUJzO}`%@iU{TY?1#>wxIp22|)NxtNn zv$3-y@~wtcsLt5EZh8h%!?Yiz^&nqu_&V7+W7TYQ_gg zHKCO^KIZ21Bpu^cpybM~8y&=qJqrs)SoUUS(2s?RxzEp^KOy3vNdau2 zCMJ2Ohw;7D6;t2;Fxp3h*D-JWOu`gv{z{q)At%2$Fq-c0R6BFRR#{w>3;sbyKnVcE zipboB#l^VSH23TDpFIN-5x|hhh4}j1`Apqg=3ed|mmCX#!;}J)gyBFGd$jky&&Q=P z*?_C6Sa(Ye;0ux_wU(J_FR@VGT>4Z<{LWq+F8)OI$?mbp7h{Qs52bSN16Br* zS%Fh!D+;tUL1VL;qqOz#>+%Ducc6OMH6aIAH4w^fOG;@f4)np!IG|~N{=D%0&(5)k zI+iA|{^pZ~ALh*dWM^XoR;>rrbCc$F!k{KCGi>q^cCK8iJz!`D2)VM4FBUMeYo|44sj3~ ziG&?=e2*s<&0f6t8F#azkem0o0v|7;1&Cq;pk^Zg;}1Z*$gra_Y(GQt_E6aYE^ZuHv9DMD0LwrRrZ&yu-fKlqBj)vbq2r+G&4|KG=XRS`SUy% z^hl+su+4?`AzKHBkR?*va@;`LaAZCe?6${M9Hrwn`6k5#Fo}J=d2wL^O0X2vxR?8K zN(mUDZOarZdfPs%BWRY@8d5e`R*p=^Nwx?G_;PhLH1-E{F!?k{fsUmD3)=2zM^DVI zQK>4r}2GH3MHDn2F?-#-4~To}=)o%41_~&(p%E&i$!f^kI^u{nR97R-ge? z|JI<ivX+cD)ui8_b%>Zgi|q(P(n05`Qk|DzAKddNd8MaEjsvPTAY?D4vGj_&4Z^CAmXFTh6Kmro{uxr*bS>yO(S2GB^4UlaW?k( znLGMD>4d|(Y^t463#^H8>e|85IdE9u5i%>Z{}-g;B_2Ix^;YFQ%}!+jS~|9P##a{k zs*p62PJq3kyNTM%RKY9-ZmqL3jHb!?dBs$7x~)!ln4K{zD{EopO5`5zDYygu`?2E= zHr-?~>D3?|(O{XLchS=@XKb1Jx*jjLnIHc`O0g>Yc5$>o{O8{bgdmirOqak#FL847 z)|r*GphFq@74%CCpKw+RVOK@Ux|&+1H7O9FCeXjX;%=sqI#PEnZd2yhI-FQpxzQX| z22i2Ym}Y+z5H$dLtf_mrS6pZ=%YjXQ7R~i!T;eXki^|fi1x&&duB6r-zrHcB-zEU& zrT1RNZ@3&jP5z|ql!}F1r{(Kp-WL{ys_2V;G9~Gt4mE2hs~(-RO?L!Z=tIMaiwR&N zAjtP;#p#ebGP&|CZza6~rqHvAA#Rn$LJ+Dki(^@odmDhf!$ul~c4X2Yt-2HW2QpuV z)Ae^{UFjJh1*;AB1Jf#zXLaD3r$BG}h)%k?{Hc;@_oM{qT%y_vXzzfeu)+bSTb7lQb z!1?0W;uM9GGtGe^rK^39)o*D?P*^W_i{$i_Gez~s4S-vNR~vxq2_pnGzbqQS3HSr# zd=H419P3shJ1T9z|5{v!GrwW2G?&rF8qd&ijit1=N?Cp(?sj(K! zWrf5)%ocm_>tI+=u!M1)5xjot?}0s33=Sljm>=l5H{4_JYhyc;nRp*q9^~9pWc>Tr+z*v99*|Dta%UA(VuByAOq|n{=*#8H00ivIAnf(_ zGuFt9>;0zE*;!X2R98#o43J;S8!u+m;6v lOKVl^7v2VW*)Ya;(Q>jD$s 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 literal 0 HcmV?d00001 diff --git a/docs/evidence/2026-10-03/v2.2-display/manifest.sha256.json b/docs/evidence/2026-10-03/v2.2-display/manifest.sha256.json new file mode 100644 index 0000000..074843a --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/manifest.sha256.json @@ -0,0 +1,29 @@ +{ + "all_invalid_ram.log": "4c5aec9dc454cfcabdd74a9fee1f173c6debfa17498c0c8194628b7a1aaa99d2", + "baseline_ram.log": "99821ebe2305bb7e04da970f4c191ae1d9bfe6b076d47003d0b2511e028ca9e0", + "can1-nbtp.log": "cab2516dc364f705b4d76aebefaa6c74c2613508df26602c7bceb3f0d28bdc3f", + "can2-nbtp.log": "5a4ab1de646f825fb1f10de307c835e1d5bdaeba26b203bf39188cb9a4307684", + "display-results.json": "2a8772323cd8a29988ed3f1abee28dd91bcfcc776f86d08b5db1b3268d88687f", + "extended_ram.log": "659a043bc153e36b968797d182f458b5461d7e17059accf41efabb1543be07b2", + "final_recovered_ram.log": "28e14f32a0712ec0cbd47f65ecdb7aa02608c4d123ba31e3322473bea46d3c59", + "flash-readback.log": "5269ba5a41f38ffbf61e82f54b9f1bd0590d9074b4efd52700e9a63123b84cab", + "flash-verified.json": "884caaaa1f340ee008e9629f927230f4fa6fef65c6e09184f7f0b68160ec8924", + "flash.log": "bce4b434ea80aec044a9bc10e31a2701d5179ad7939c33f39f13acd2f36db47c", + "hmi-not-updated.png": "3382d2407b4238829f76bbc4beb290451ff2fc51d7e007d23fd95edbda5faafc", + "negative_ram.log": "b3b05102cb09e552ec151cb2e4ebc92c33fdab4a0a9c2303980556ebf7c528ad", + "out_of_range_ram.log": "fa0c56aaff993322bc358f447161006e352c557fc7c264ff2bc302812fa6c2f2", + "partial_invalid_ram.log": "b857e871f6ef4a26bbe485c6a68f9e34a790e9e5f3932561a30c7096d7a1cd12", + "positive_ram.log": "1bf1ae2e0c8fcdd843fad842c0c766c2dceec5cbfcb0eef92b4b708a5ff51333", + "recovered_ram.log": "4027dd15d4d1c47f8100ac40e37bc313c3370856fd6b9fb0c775e5c65e86bd85", + "reject_baseline_ram.log": "1d95a37bdee533c131bf1e70e884a2ad624d4125081571f9b7d47b38363ef366", + "reserved_bits_ram.log": "a40b1c3867115835703c1f891f4309d0d2de475709816dc3d291416a58736854", + "rounding_ram.log": "4e11287a4ccc6362108de61c322dad78471fe296a14789d8cad121a34d0378a9", + "source_timeout_ram.log": "128f9fd78c10d26bd92ae36f0d6bccab732b6d594e21123d01e6a719eba4b9f2", + "symbols.json": "cb979c1b25e3b55d7ffaf378f7ad90b8e34b4b282e23eeb766fe61d36087e2d4", + "task-reset.log": "541d5b7b95ef470302a7cf87b29215fac268331a31b172d193b6ec1625b9bc7c", + "task-results.json": "496d10c60935c09d0aa8cb5f28c5b38eda225c560325c552eb9cd2bc5adcfe18", + "truncated_ram.log": "dfac2f39b7d5a951645e29546382954f2f7bfe19ca4e716adb607e64ffc559a0", + "uart-diagnostic.bin": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "uart-diagnostic.json": "4edb6c1a0cbdedb87936f264b4e0445c46b96454ebbd90d7938f42b5e2802edd", + "wrong_version_ram.log": "560afd44bc00d332c7ac3b81b35e968e3cce4e10185e78a8389be224bea27514" +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/v2.2-display/negative_ram.log b/docs/evidence/2026-10-03/v2.2-display/negative_ram.log new file mode 100644 index 0000000..5b05cbb --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/negative_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 00030F96 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00030F96 +0x200002FC : 00030F96 00030F95 00000000 00000000 +0x2000030C : 00030F96 00000000 00000000 00000190 +0x2000031C : FFFFFE0C 0000000C FFFFFFF6 FFFFFFEB +0x2000032C : 00000028 00000000 0000007E 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/out_of_range_ram.log b/docs/evidence/2026-10-03/v2.2-display/out_of_range_ram.log new file mode 100644 index 0000000..7964f1a --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/out_of_range_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 00032360 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00032360 +0x200002FC : 0003235F 0003235F 00000000 00000000 +0x2000030C : 00032360 00000000 00000000 00000190 +0x2000031C : FFFFFC18 0000000C 00000050 0000003C +0x2000032C : 00000028 00000000 0000007A 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/partial_invalid_ram.log b/docs/evidence/2026-10-03/v2.2-display/partial_invalid_ram.log new file mode 100644 index 0000000..1e4e438 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/partial_invalid_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 0003197F +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 0003197F +0x200002FC : 0003197F 0003197E 00000000 00000000 +0x2000030C : 0003197F 00000000 00000000 00000190 +0x2000031C : FFFFFC18 0000000C 0000002E 00000032 +0x2000032C : 00000028 00000000 0000006E 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/positive_ram.log b/docs/evidence/2026-10-03/v2.2-display/positive_ram.log new file mode 100644 index 0000000..12e724b --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/positive_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 00030AE1 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00030AE1 +0x200002FC : 00030AE1 00030AE0 00000000 00000000 +0x2000030C : 00030AE1 00000000 00000000 00000190 +0x2000031C : 000001F4 0000000C 0000002D 00000028 +0x2000032C : 00000028 00000000 0000007E 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/recovered_ram.log b/docs/evidence/2026-10-03/v2.2-display/recovered_ram.log new file mode 100644 index 0000000..a3707b0 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/recovered_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 0003484A +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 0003484A +0x200002FC : 0003484A 00034849 00000000 00000000 +0x2000030C : 0003484A 07FFFFE0 00000000 00000190 +0x2000031C : FFFFFF06 0000000C 00000046 00000037 +0x2000032C : 00000028 00000000 0000007E 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/reject_baseline_ram.log b/docs/evidence/2026-10-03/v2.2-display/reject_baseline_ram.log new file mode 100644 index 0000000..8b2730b --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/reject_baseline_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 00032A0B +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 0003287A +0x200002FC : 00032A0B 00032A0B 00000000 00000000 +0x2000030C : 00032A0B 00000000 00000000 00000190 +0x2000031C : 000001F4 0000000C 0000002D 00000028 +0x2000032C : 00000028 00000000 0000007E 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/reserved_bits_ram.log b/docs/evidence/2026-10-03/v2.2-display/reserved_bits_ram.log new file mode 100644 index 0000000..668bc8a --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/reserved_bits_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 00033957 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 0003287A +0x200002FC : 00033957 00033956 00000000 00000000 +0x2000030C : 00033957 00000000 00000000 00000190 +0x2000031C : 000001F4 0000000C 0000002D 00000028 +0x2000032C : 00000028 00000000 0000004A 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/rounding_ram.log b/docs/evidence/2026-10-03/v2.2-display/rounding_ram.log new file mode 100644 index 0000000..c44f9e9 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/rounding_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 000314B1 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 000314B1 +0x200002FC : 000314B0 000314B0 00000000 00000000 +0x2000030C : 000314B1 00000000 00000000 00000190 +0x2000031C : 000003E8 0000000C 0000002E FFFFFFEB +0x2000032C : 00000028 00000000 0000007E 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/source_timeout_ram.log b/docs/evidence/2026-10-03/v2.2-display/source_timeout_ram.log new file mode 100644 index 0000000..95cca27 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/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 00000000 000352E0 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 000348AF +0x200002FC : 000352E0 000352E0 00000000 00000000 +0x2000030C : 000352E0 00000000 00000000 00000190 +0x2000031C : FFFFFF06 0000000C 00000046 00000037 +0x2000032C : 00000028 00000000 0000004A 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/symbols.json b/docs/evidence/2026-10-03/v2.2-display/symbols.json new file mode 100644 index 0000000..06a2dca --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/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": 134232012, + "HAL_FDCAN_ErrorCallback": 134232724, + "HAL_UARTEx_RxEventCallback": 134232740, + "HAL_UART_TxCpltCallback": 134232936, + "HAL_UART_ErrorCallback": 134232960, + "memset": 134232996, + "__libc_init_array": 134233012, + "memcpy": 134233084, + "__EH_FRAME_BEGIN__": 134233104, + "_init": 134233104, + "_fini": 134233116, + "_etext": 134233128, + "APBPrescTable": 134233128, + "AHBPrescTable": 134233160, + "DLCtoBytes": 134233224, + "UARTPrescTable": 134233240, + "__exidx_start": 134233580, + "__exidx_end": 134233588, + "__frame_dummy_init_array_entry": 134233588, + "__init_array_start": 134233588, + "__preinit_array_end": 134233588, + "__preinit_array_start": 134233588, + "__do_global_dtors_aux_fini_array_entry": 134233592, + "__init_array_end": 134233592, + "_sidata": 134233596, + "_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/v2.2-display/task-reset.log b/docs/evidence/2026-10-03/v2.2-display/task-reset.log new file mode 100644 index 0000000..005a1e3 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/task-reset.log @@ -0,0 +1,24 @@ + ------------------------------------------------------------------- + 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 + + +MCU Reset + +Software reset is performed +Core run diff --git a/docs/evidence/2026-10-03/v2.2-display/task-results.json b/docs/evidence/2026-10-03/v2.2-display/task-results.json new file mode 100644 index 0000000..d8a7c4b --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/task-results.json @@ -0,0 +1,141 @@ +{ + "results": [ + { + "task": 1, + "cancel_no_can_request": true, + "confirm_can_request_correct": true, + "cancel_frames": [], + "confirm_frames": [ + { + "time_s": 4.289997600018978, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 01 00 01 6d 0f 00 00" + } + ] + }, + { + "task": 2, + "cancel_no_can_request": true, + "confirm_can_request_correct": true, + "cancel_frames": [], + "confirm_frames": [ + { + "time_s": 8.514357500011101, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 02 01 01 e8 1f 00 00" + } + ] + }, + { + "task": 3, + "cancel_no_can_request": true, + "confirm_can_request_correct": true, + "cancel_frames": [], + "confirm_frames": [ + { + "time_s": 12.751596000045538, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 03 02 01 75 30 00 00" + } + ] + }, + { + "task": 4, + "cancel_no_can_request": true, + "confirm_can_request_correct": true, + "cancel_frames": [], + "confirm_frames": [ + { + "time_s": 16.996419199975207, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 04 03 01 01 41 00 00" + } + ] + }, + { + "task": 5, + "cancel_no_can_request": true, + "confirm_can_request_correct": true, + "cancel_frames": [], + "confirm_frames": [ + { + "time_s": 21.236944500007667, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 05 04 01 8c 51 00 00" + } + ] + }, + { + "task": 6, + "cancel_no_can_request": true, + "confirm_can_request_correct": true, + "cancel_frames": [], + "confirm_frames": [ + { + "time_s": 25.482824600068852, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 06 05 01 27 62 00 00" + } + ] + } + ], + "rx": [ + { + "time_s": 4.289997600018978, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 01 00 01 6d 0f 00 00" + }, + { + "time_s": 8.514357500011101, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 02 01 01 e8 1f 00 00" + }, + { + "time_s": 12.751596000045538, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 03 02 01 75 30 00 00" + }, + { + "time_s": 16.996419199975207, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 04 03 01 01 41 00 00" + }, + { + "time_s": 21.236944500007667, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 05 04 01 8c 51 00 00" + }, + { + "time_s": 25.482824600068852, + "id": 768, + "dlc": 8, + "extended": false, + "data": "01 06 05 01 27 62 00 00" + } + ], + "pcan_status": "0x0", + "path": "Official HMI task buttons -> COM4 / AMI MCU -> CAN2 250K", + "hmi_data_display_verified": false +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/v2.2-display/truncated_ram.log b/docs/evidence/2026-10-03/v2.2-display/truncated_ram.log new file mode 100644 index 0000000..693cc22 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/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 00000000 00033E71 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 0003287A +0x200002FC : 00033E71 00033E70 00000000 00000000 +0x2000030C : 00033E71 00000000 00000000 00000190 +0x2000031C : 000001F4 0000000C 0000002D 00000028 +0x2000032C : 00000028 00000000 0000004A 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/evidence/2026-10-03/v2.2-display/uart-diagnostic.bin b/docs/evidence/2026-10-03/v2.2-display/uart-diagnostic.bin new file mode 100644 index 0000000..e69de29 diff --git a/docs/evidence/2026-10-03/v2.2-display/uart-diagnostic.json b/docs/evidence/2026-10-03/v2.2-display/uart-diagnostic.json new file mode 100644 index 0000000..349c1b7 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/uart-diagnostic.json @@ -0,0 +1,16 @@ +{ + "baudrate": 9600, + "port": "COM4", + "sample_seconds": 6, + "rx_bytes": 0, + "pc_to_mcu_task": "AA 55 01 02 0D 0A", + "can2_response": "01 02 00 01 42 E2 04 00", + "can_id": "0x300", + "can_type": "standard", + "dlc": 8, + "mcu_gpioa_moder": "0xEABFFFA5", + "mcu_gpioa_afrl": "0x00001100", + "PA2_PA3_mode": "alternate function 1, USART2", + "PA2_idle": "high", + "hmi_display_verified": false +} \ No newline at end of file diff --git a/docs/evidence/2026-10-03/v2.2-display/wrong_version_ram.log b/docs/evidence/2026-10-03/v2.2-display/wrong_version_ram.log new file mode 100644 index 0000000..c7f1508 --- /dev/null +++ b/docs/evidence/2026-10-03/v2.2-display/wrong_version_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 000334A3 +0x200002DC : 0000007B 00000FA0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 0003287A +0x200002FC : 000334A3 000334A3 00000000 00000000 +0x2000030C : 000334A3 07FFFFFF 00000000 00000190 +0x2000031C : 000001F4 0000000C 0000002D 00000028 +0x2000032C : 00000028 00000000 0000004A 00000000 +0x2000033C : 00000000 00000000 00000000 1C6D559A diff --git a/docs/通讯交接文档.md b/docs/通讯交接文档.md index 4c287e3..5926c0f 100644 --- a/docs/通讯交接文档.md +++ b/docs/通讯交接文档.md @@ -1,9 +1,11 @@ # AMI 仪表通讯交接文档 -屏幕接口 1.2;MCU CAN 协议 2.1(CAN1 500K / CAN2 250K) | 2026-10-03 +屏幕接口 1.2;MCU CAN 协议 2.2(CAN1 500K / CAN2 250K) | 2026-10-03 适用工程:AMI.HMI;屏幕 TJC4827X543_011,480 × 272;编辑器 USART HMI 1.68.1.3037。本文以随附的精简指令版工程为准。 +v2.2 新增标准 CAN `0x182 / DLC 8`,分别设置 `dash.mct`(扭矩千分)、`dash.djwd`(电机温度)、`dash.mcuwd`(MCU 温度)。数据 `F4 01 C2 01 90 01 07 01` 对应 500‰ / 45℃ / 40℃;建议每 100 ms 发一次。CAN1 500K / CAN2 250K 均可接收,三个字段各有有效标志,帧源独立超时 2000 ms。完整布局、有符号温度和异常处理见 [DBC 说明](AMI_CAN_DBC说明.md),实测范围见 [v2.2 报告](AMI自定义显示CAN测试报告.md)。 + v2.1 已烧录并通过 CAN1 500K(SDC)与 CAN2 250K(BMS)分别到官方 HMI 调试器的测试,含两路各六个任务确认/取消;见 [双 CAN 测试报告](CAN1_CAN2_v2.1测试报告.md)。下文的旧模拟器及 v2.0 测试描述属于历史记录,物理串口屏、真实节点和两路同时接入仍待实测。 2026-10-03 补充:dash 增加全局虚拟浮点控件 `lvbat`,两位小数,`dash.lvbat.val=1230` 显示 12.30 V,来源为 SDC ADC。当前 MCU CAN 输入见 [SDC_BMS协议.md](SDC_BMS协议.md);原整数高压电压/电流控件四舍五入为 1 V / 1 A。灰色数值表示未知或失效。SDC GPIO 尚无具名安全状态映射,当前 MCU 不生成正常/故障判断。 diff --git a/docs/验证说明.txt b/docs/验证说明.txt index 4d86239..a84e377 100644 --- a/docs/验证说明.txt +++ b/docs/验证说明.txt @@ -1,13 +1,18 @@ -2026-10-03:屏幕数字接口1.2,MCU CAN输入2.1(SDC/BMS)。 -CAN1为500 kbit/s,使用AMI.dbc;CAN2为250 kbit/s,使用AMI_CAN2_250k.dbc。每份包含10条Classic CAN报文和33个信号,报文布局相同。 +2026-10-03:屏幕数字接口1.2,MCU CAN输入2.2(SDC/BMS及自定义动力显示)。 +CAN1为500 kbit/s,使用AMI.dbc;CAN2为250 kbit/s,使用AMI_CAN2_250k.dbc。每份包含11条Classic CAN报文和40个信号,报文布局相同。 +v2.2新增标准0x182/DLC8,设置扭矩千分、电机温度及MCU温度,三个有效标志和独立2000ms超时;不控制电机执行。 +v2.2编译通过,烧录及完整15880字节回读一致;14组CAN2 MCU状态核对通过,CAN/UART接收错误均为0。 +v2.2官方HMI按钮到CAN2回传方向六个确认/六个取消通过,任务号1..6、序号0..5;发送脚本实发30条0x182。 +当前COM4未收到MCU输出字节,已请检查PA2->RXD线;本次HMI显示尚未确认,详见docs/AMI自定义显示CAN测试报告.md。 +以下双CAN分别联调结果对应归档v2.1 BIN,不能直接作为v2.2新帧CAN1/HMI实测证据。 v2.1源码/CubeMX/DBC位时序一致性校验及Release编译通过;已烧录,完整15612字节Flash回读与发布BIN一致。 CAN1 500K(SDC)及CAN2 250K(仅BMS数据)分别完成MCU/USART2/COM4/官方HMI调试器的数据更新、无效、超时和恢复测试。 两路各六个任务确认及六个取消通过;十组MCU状态快照符合预期,CAN/UART接收错误均为0。新证据见docs/CAN1_CAN2_v2.1测试报告.md。 -cantools 44.1.0严格解析、24个已知报文、六个任务号及计数边界、标准/扩展ID、偏置电流、无效温度和SDC布局一致性检查通过;具体复现命令见docs/AMI_CAN_DBC说明.md。 +cantools 44.1.0严格解析、28个已知报文、六个任务号及计数边界、标准/扩展ID、偏置电流、无效温度、有符号扭矩/温度和SDC布局一致性检查通过;具体复现命令见docs/AMI_CAN_DBC说明.md。 下述历史实物证据对应v2.0,两路均为500K;原BIN保留在output/firmware/AMI_Controller_v2.0_500k.bin。 HMI编译0错误0警告;v2.0固件Release编译、SWD烧录校验通过。 已实测CAN盒->实物AMI CAN1/MCU->USART2->COM4->官方HMI调试器:低压电压、高压电压/电流、最高有效温度、无效数据、超时/恢复、跨页更新、HMI重连。 六个任务确认均收到正确0x300请求,六个取消均未发送;该测试条件为CAN1持续有有效输入。 证据在docs/evidence/2026-10-03/sdc-bms;联调报告见docs/SDC_BMS联调报告.md。 -v2.1仍未接物理串口屏或真实SDC/BMS节点,未实测两路同时接入、LED极性和车辆执行/安全动作;未定义电机温度、轮频到车速标定和GPIO到具名安全信号映射。 +未接物理串口屏或真实SDC/BMS/电机控制器节点,未实测两路同时接入、LED极性和车辆执行/安全动作;未定义轮频到车速标定和GPIO到具名安全信号映射。 原C示例是屏幕debug接口参考,不代表整车控制已实现。 diff --git a/firmware/AMI_Controller.ioc b/firmware/AMI_Controller.ioc index 561071a..23678e0 100644 --- a/firmware/AMI_Controller.ioc +++ b/firmware/AMI_Controller.ioc @@ -50,7 +50,7 @@ FDCAN1.IPParameters=AutoRetransmission,CalculateTimeQuantumNominal,CalculateTime FDCAN1.NominalPrescaler=8 FDCAN1.NominalTimeSeg1=13 FDCAN1.NominalTimeSeg2=2 -FDCAN1.StdFiltersNbr=3 +FDCAN1.StdFiltersNbr=4 FDCAN1.ExtFiltersNbr=1 FDCAN2.AutoRetransmission=ENABLE FDCAN2.CalculateBaudRateNominal=250000 @@ -63,7 +63,7 @@ FDCAN2.IPParameters=AutoRetransmission,CalculateTimeQuantumNominal,CalculateTime FDCAN2.NominalPrescaler=16 FDCAN2.NominalTimeSeg1=13 FDCAN2.NominalTimeSeg2=2 -FDCAN2.StdFiltersNbr=3 +FDCAN2.StdFiltersNbr=4 FDCAN2.ExtFiltersNbr=1 File.Version=6 GPIO.groupedBy=Group By Peripherals diff --git a/firmware/Core/Inc/ami_protocol.h b/firmware/Core/Inc/ami_protocol.h index c0814e7..bb9afaa 100644 --- a/firmware/Core/Inc/ami_protocol.h +++ b/firmware/Core/Inc/ami_protocol.h @@ -1,7 +1,8 @@ #ifndef AMI_PROTOCOL_H #define AMI_PROTOCOL_H -/* Both CAN ports use the same 500 kbit/s protocol and the same IDs. */ +/* CAN1 is 500 kbit/s; CAN2 is 250 kbit/s. Both share IDs and parsing. */ +#define AMI_CAN_ID_DRIVETRAIN_DISPLAY 0x182U #define AMI_CAN_ID_SDC_HEARTBEAT 0x6A0U #define AMI_CAN_ID_SDC_ADC 0x6A1U #define AMI_CAN_ID_SDC_FREQUENCY 0x6A2U @@ -17,6 +18,7 @@ #define AMI_CAN_DATA_TIMEOUT_MS 500U #define AMI_ADC_TIMEOUT_MS 1500U #define AMI_BMS_TIMEOUT_MS 2000U +#define AMI_DRIVETRAIN_TIMEOUT_MS 2000U #define AMI_SCREEN_BOOT_DELAY_MS 800U #define AMI_SCREEN_RESYNC_MS 5000U diff --git a/firmware/Core/Src/ami_app.c b/firmware/Core/Src/ami_app.c index b3985d5..c93dda8 100644 --- a/firmware/Core/Src/ami_app.c +++ b/firmware/Core/Src/ami_app.c @@ -41,6 +41,7 @@ static volatile uint32_t debug_last_rx_ms; static volatile uint32_t adc_last_rx_ms; static volatile uint32_t bms_status_last_rx_ms; static volatile uint32_t bms_temperature_last_rx_ms; +static volatile uint32_t drivetrain_last_rx_ms; /* Preserve the exact source units even where the HMI has integer controls. */ static volatile uint16_t sdc_adc_mv; static volatile uint16_t sdc_frequency_hz[4]; @@ -88,6 +89,12 @@ static int32_t RoundTenths(int32_t value) return (value >= 0) ? ((value + 5) / 10) : ((value - 5) / 10); } +static int32_t ReadLeS16(const uint8_t *data) +{ + uint32_t raw = ReadLeU16(data); + return (raw & 0x8000U) ? ((int32_t)raw - 65536) : (int32_t)raw; +} + static size_t AppendUnsigned(char *dst, uint32_t value) { char reversed[10]; @@ -245,6 +252,27 @@ static bool DecodeCan(uint32_t identifier, uint32_t id_type, uint32_t now = HAL_GetTick(); if (id_type == FDCAN_STANDARD_ID) { + if (identifier == AMI_CAN_ID_DRIVETRAIN_DISPLAY) + { + /* Version 1 display input only; no motor actuation is performed. */ + if ((length != 8U) || (data[7] != 1U) || ((data[6] & 0xF8U) != 0U)) + { + return false; + } + int32_t torque = ReadLeS16(data); + if ((data[6] & 1U) && (torque >= -1000) && (torque <= 1000)) + { + SetDashValue(2U, torque); + } + else { SetDashValid(2U, false); } + if (data[6] & 2U) { SetDashValue(4U, RoundTenths(ReadLeS16(&data[2]))); } + else { SetDashValid(4U, false); } + if (data[6] & 4U) { SetDashValue(5U, RoundTenths(ReadLeS16(&data[4]))); } + else { SetDashValid(5U, false); } + drivetrain_last_rx_ms = now; + dash_last_rx_ms = now; + return true; + } if ((identifier == AMI_CAN_ID_SDC_ADC) && (length == 2U)) { sdc_adc_mv = (uint16_t)ReadLeU16(data); @@ -350,6 +378,10 @@ static void ConfigureCanPort(FDCAN_HandleTypeDef *hfdcan) filter.FilterID1 = AMI_CAN_ID_BMS_TEMPERATURE; if (HAL_FDCAN_ConfigFilter(hfdcan, &filter) != HAL_OK) { Error_Handler(); } + filter.FilterIndex = 3U; + filter.FilterID1 = AMI_CAN_ID_DRIVETRAIN_DISPLAY; + if (HAL_FDCAN_ConfigFilter(hfdcan, &filter) != HAL_OK) { Error_Handler(); } + filter.IdType = FDCAN_EXTENDED_ID; filter.FilterIndex = 0U; filter.FilterType = FDCAN_FILTER_DUAL; @@ -489,6 +521,13 @@ static void UpdateTimeoutsAndLeds(void) { SetDashValid(6U, false); } + if ((drivetrain_last_rx_ms == 0U) || + ((now - drivetrain_last_rx_ms) > AMI_DRIVETRAIN_TIMEOUT_MS)) + { + SetDashValid(2U, false); + SetDashValid(4U, false); + SetDashValid(5U, false); + } __enable_irq(); if (debug_timeout && !debug_timeout_applied) diff --git a/firmware/Core/Src/fdcan.c b/firmware/Core/Src/fdcan.c index ca3fa22..ab304f9 100644 --- a/firmware/Core/Src/fdcan.c +++ b/firmware/Core/Src/fdcan.c @@ -53,7 +53,7 @@ void MX_FDCAN1_Init(void) hfdcan1.Init.DataSyncJumpWidth = 1; hfdcan1.Init.DataTimeSeg1 = 13; hfdcan1.Init.DataTimeSeg2 = 2; - hfdcan1.Init.StdFiltersNbr = 3; + hfdcan1.Init.StdFiltersNbr = 4; hfdcan1.Init.ExtFiltersNbr = 1; hfdcan1.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION; if (HAL_FDCAN_Init(&hfdcan1) != HAL_OK) @@ -91,7 +91,7 @@ void MX_FDCAN2_Init(void) hfdcan2.Init.DataSyncJumpWidth = 1; hfdcan2.Init.DataTimeSeg1 = 13; hfdcan2.Init.DataTimeSeg2 = 2; - hfdcan2.Init.StdFiltersNbr = 3; + hfdcan2.Init.StdFiltersNbr = 4; hfdcan2.Init.ExtFiltersNbr = 1; hfdcan2.Init.TxFifoQueueMode = FDCAN_TX_FIFO_OPERATION; if (HAL_FDCAN_Init(&hfdcan2) != HAL_OK) diff --git a/firmware/README.md b/firmware/README.md index 629fad1..66a3d4c 100644 --- a/firmware/README.md +++ b/firmware/README.md @@ -21,7 +21,8 @@ CAN1 为 500 kbit/s、CAN2 为 250 kbit/s。FDCAN 时钟为 64 MHz,两路 Cloc ## 数据路径 -- FDCAN1、FDCAN2 使用相同的三条标准过滤器和一条扩展过滤器,接收 SDC 0x6A0..0x6A6 与 BMS 0x140 / 0x156 / 0x186040F3 / 0x186140F3。 +- FDCAN1、FDCAN2 使用相同的四条标准过滤器和一条扩展过滤器,接收自定义显示 0x182、SDC 0x6A0..0x6A6 与 BMS 0x140 / 0x156 / 0x186040F3 / 0x186140F3。 +- 标准 0x182 / DLC 8:小端 int16 扭矩千分、0.1℃ 电机温度、0.1℃ MCU 温度;有效标志及版本校验见 [DBC 说明](../docs/AMI_CAN_DBC说明.md)。设置 dash.mct / djwd / mcuwd,独立超时 2000 ms。 - SDC ADC 为低压电池电压;BMS 总压、偏置电流和最高有效实际温度按源协议解码。旧 0x180 / 0x181 / 0x280 不再接收。 - 主循环通过 USART2 TX DMA 一次发送一条完整 TJC 指令,末尾为三个真实字节 `FF FF FF`。 - 仅变化后的数值排队,字段轮转和 DMA 合并最新值,避免刷新饥饿;白色为有效数值,灰色为未知/失效,ADC 和 BMS 各自计时。 @@ -57,4 +58,4 @@ CubeMX 配置源为 `AMI_Controller.ioc`。重新生成时保留 USER CODE 区 4. 下载 `AMI.HMI` 后逐条验证仪表数值、16 路 debug 状态及 6 个任务按钮。 5. 2026-10-03 已完成 v2.1 CAN1 500K 与 CAN2 250K 分别到 MCU / USART2 / COM4 / 官方 HMI 调试器的联调;物理屏幕、真实节点、两路同时接入和 LED 极性尚未实测。见 [双 CAN 测试报告](../docs/CAN1_CAN2_v2.1测试报告.md)。 -此前两路均为 500K 的 v2.0 历史证据仍保留。当前 v2.1 BIN 已烧录并完整回读比对通过,两路各六个任务确认和六个取消通过;CAN2 测试仅注入 BMS 数据,未将 SDC 改成 250K。 +当前 v2.2 BIN 已烧录并完整回读比对;新 0x182 在 CAN2 250K 实测,见 [显示 CAN 测试报告](../docs/AMI自定义显示CAN测试报告.md)。v2.1 的双 CAN 分别联调和两路均为 500K 的 v2.0 历史证据及 BIN 保留;SDC 仍为 500K。 diff --git a/output/firmware/AMI_Controller.bin b/output/firmware/AMI_Controller.bin index fcb2632c97dd301afe29d696514fa78453b449c2..d301273c916954f7157a9b6324435031c750dffe 100644 GIT binary patch delta 2256 zcmZ8iYfu~46+U+*fp{6k!bXUfqy;R%81b~h*n^jp8ZCasX=4W`Rl)7Zjh)E&M@1%y zly;I*r%Z{jT@z#%m!@tUI~fKQCgTh>H4{%d@sC~HIL0^=k%zabTZc^DE{I)i&tiU6 zGoQ}A=XLM7=R1CTU46axvCR+hN766B(DasHbiTpi! zBRPj*dYhv6Q|v^SscF{D9 zz(n{bz%pPNd%D^hHaA+sWd3;c83#|2zf|H9nV+K*&W{WTuCvAc60%)3N>=z?OEG^yTZ-x01^=~XG zo&_T<;t#btz;Mb$Rr%#5a1%k3kE!QEEIGv#cc4T5vIDd1aCF6?OTEY*YV80AkW)qs z{Lza33Dv+78m`f5^rX6F--^YnhS^yYP<$auY8aY=S&h`pJ3v49J1brr)#MQmGUa>{ zeYc7;t-(4i^gmUVYqIo}j|xNuAYrJxuSIAA5ZyA+J@7T%`YDON*30 z>^jdk26Kah90-BAgq*DYo=*b1pA^&f#L`&sUtZAZAc>nu--a{P}0lp2LR ze{JqC_vW^P+`z8Q{(svkXS#9DL7aNIPsX?Us>(pG-_@ck+T%!4c}Dp)Z^GnIW)yP$ zecmYyGR)vr9GaY|9j8MzZ0KjaZZ`>WSFV2=?yYzvp~p9g7glV!{(sry>@1w+(lDAq z+gt*iMwFkTG@+bHbdDeO!g>%xbJie~Tg2{h8$8=SXJe{J&4)j=lrM_Uv>oQnenU%| zuXCKR*1#bzdBeKX|B>C__8MoN=^pRmbNs~F#^vY^5v#9@Ke)q$JTYBjkCtOn5F)XJ z>{C8uBQU_h^vPKF`1jk){?2jii`W+{bnT~IwRLU$PUeK&*4SL_>mJ|cO)iI-!np|C z+}G+ovoFoh4ASK*IIwN6E@0mN&u~C?i3V6z<0$8EZQa3u-e{QLOXq6Wt$HfqscHy# zAl0eJqDt4+6>KTtJ0HDai`iBMNkc(^)C_QoqQvRIPHf~ z^Bw`m=HU0dv!gc;B;*tHv$|I@oyfs7p$wRTA91X6W|le@9cw zlV+;elIpHNdd+a)i@*nWJ=L9otF(0Ey3i%O*ZkPo5z_zHWcc{~SpLZTgfU_sw6=io zr9qVt8SXLa zF6gmF$aqVWpGNB*wCZGyDTn!d-(h}z>>-&iD>o%QYFzn3((R+led)*i5SJ-38}^6? zc~@_$(;l|Zwqeo|xgRnV?Y zb)n6IKF^OTm3*g^0}RYd=hzMy;;!P+lX!HQx8t&YaA{k|<nZ8%N23N&NE`5T7FMAr=tHXwOEJAnFmVh`op(BA!LO di0DI{K^(rOg$Rz}R{-V-1Qb00eUJZ@@IO~WR(k*d delta 1951 zcmZ8ie{d6Z7JuJOwh2vtq^4+_kg~}ZNgGN-Ybi~r)>Ny>w%`febqH!E<<20-7<+#Z zJh&D{hk|yd$G4m{Q7I082r^EmF&T!L9zAu?8y(Fm2uztVICtc3q$1DA|*^L>CnBLJuMBp8w| zBca4sx_X8==t+FP!c5e)-0&G857KKDmzYH*F;y8UV>WwedF@7Kl_%k?ea}ET=-t&r z_f;#AxzXo;jGDiw@(*7m$Vu6PFUCcl8 z^fDh~;`v0V@i@c0iVwd3PnxpxsP~K~alCmmF@#Ia05U#x zr;1ruk~AKhskMVmgAuj#`E}zaVrOiTq<&3hqb3ME36Y^=w7R8h*>C(m|7!YTOQYdn zu^)4+z#RJ%XIl=DiVKSB(4ixtB-&aplaXt3Ns1}OEc7rO_KmAR5_CzndZq!W=#P3dzW}-i9fo` zA5h-q_w)sT19DPJl@96m%fvoqlwV+hVr`VPGgOb8wRq(~O&?y4+NtPfTyylt4Ue!j zsIG!`x3#V`suseSEbs5JbFji!lE&%bw$73N>qI@|GAo4>jNdm{g=He3TX|Q9CnN`rX{moMVZD0@H9;v|*$owaQGxcW67% zZj!@Mi7WRky zgTZD{3$^#E_mMo#kfg{j2`rey(5y{c!bkic;vUTnd?r_ts!Jm@+s=>d7gU}_{$J)i zzW{G8MU-L055-U_;)iu09=c_Ug3~Atr|Mu||E)S^18M(cztQ=V_?&OApbu+$4Z%=~ z@TN%EPhK~LKQ%w=d&R52F`Nns^^ar<5Vdu#Y;xV! z*ga9wZtAi4JrR>?MO4}C5&kwbof0*6lMv6=Mksxz(@L(=L!DOL$G2T=p~y${bm!WU zX%vx5zBxlC{;GqkdoxxnP#f3BOufGr*|+rTL)SHN<`mGP1O)%sEB+d{Oni zl#M~!D+ksM(=Ki#!>(5zs)3;f$sY3kn#q50F=`w&HacI;*TN*s-bGP23j#>s0 zy;CaP#8qbKaksm&OJ1C_Mp;Meby+$~MfZnnOTHw1L0|W5tNI5XxQaVVYa;KNCEoY( qAL=87i1-F^2T?#6Fvg5%Mz|4=A$A}_h!+rt5fg~$$MpMd^M3*UipZD% diff --git a/output/firmware/AMI_Controller_v2.1_500k_250k.bin b/output/firmware/AMI_Controller_v2.1_500k_250k.bin new file mode 100644 index 0000000000000000000000000000000000000000..fcb2632c97dd301afe29d696514fa78453b449c2 GIT binary patch literal 15612 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%0Dp_>6IvwLN{;gk82r?7>9*4b&YHy60FTYL@t& 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%0Ay_s?Ai{g*?~Om)rfB;Cha{e{>k3V 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 AMI:扭矩千分、电机温度、MCU 温度', 0x300: 'AMI -> VCU:用户确认后的任务选择请求', 0x6A0: 'SDC -> AMI:板标识、版本、序号、上电时间', 0x6A1: 'SDC -> AMI:低压电池电压,精确 DLC=2', @@ -40,7 +41,7 @@ def render(): db = cantools.database.load_file(ROOT / 'AMI.dbc', strict=True) lines = [ '# AMI CAN DBC 说明', '', - f'版本:`{db.version}`。由 [AMI.dbc](../AMI.dbc) 自动生成,10 条报文、33 个信号。', '', + f'版本:`{db.version}`。由 [AMI.dbc](../AMI.dbc) 自动生成,{len(db.messages)} 条报文、{sum(len(m.signals) for m in db.messages)} 个信号。', '', '## 使用范围', '', 'CAN1 为 500 kbit/s,CAN2 为 250 kbit/s,均为 Classic CAN、87.5% 采样点。' '两路保留相同的接收 ID、解码与任务发送功能,MCU 不在两路之间转发原始报文。' @@ -49,22 +50,24 @@ def render(): '| --- | --- | --- | --- |', '| 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 均含 10 条报文、33 个信号;' + 'DBC 的 `Baudrate` / `AMIPort` 分别标注所属总线。每份 DBC 均含 11 条报文、40 个信号;' '同一份报文表适用于两路。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 输入。' + '本 DBC 包含 AMI 唯一发送的 `0x300` 任务请求,以及 AMI 当前识别的 SDC / BMS 和自定义显示输入。' 'SDC `0x6A3` DAC 控制、`0x6A5` ASSI 控制、BMS 其他电芯/故障字段不属于此接口子集。' - '没有定义电机温度、逆变器温度、扭矩、标定后的车速、AMI 周期心跳或 VCU 执行反馈。' + '`0x182` 新增扭矩千分、电机温度和电机控制器 MCU 温度的仪表显示输入;' + '发送者负责转换实际电机控制器协议。未定义标定后的车速、AMI 周期心跳或 VCU 执行反馈。' '旧 `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`。', '', 'DBC 为 ASCII 编码,注释和枚举使用英文,便于导入 CAN 工具;本文为 UTF-8 中文。' - '物理值 = 原始无符号值 × Factor + Offset;下表范围为编码范围,不表示车辆正常工作范围。', '', + '物理值 = 原始值 × Factor + Offset;`0x182` 的三个数值为有符号 int16,其他数值按表定义。' + '下表范围为接口允许范围,不表示车辆正常工作范围。', '', '## 报文总览', '', '| CAN ID | 类型 | DLC | 报文名 | 方向和作用 | 周期 / 触发 |', '| --- | --- | --- | --- | --- | --- |', @@ -78,7 +81,7 @@ def render(): '', '扩展帧在 DBC 的 `BO_` 十进制 ID 中设置 bit31:' '`0x186040F3 -> 2556444915`,`0x186140F3 -> 2556510451`。' 'CAN 工具中使用实际 29 位仲裁 ID 并选择扩展帧;bit31 不是总线上发送的仲裁 ID。', '', - '`GenMsgCycleTime` 仅填写已确认的 SDC 周期 100 / 500 / 20 ms。' + '`GenMsgCycleTime` 填写已确认的 SDC 周期 100 / 500 / 20 ms,以及自定义 `0x182` 的约定周期 100 ms。' '其余帧未填写周期,默认 0 表示未指定,不据此推断 BMS 周期。', '', '## 信号布局', '', 'Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起算;' @@ -100,6 +103,28 @@ def render(): lines += ['', ';'.join(choices) + '。'] lines += [''] lines += [ + '## 自定义动力显示输入 0x182', '', + '标准数据帧,DLC 必须为 8;CAN1 500K 或 CAN2 250K 均可接收,建议每 100 ms 发送。' + '这是一条 AMI 仪表显示设置接口;扭矩千分以发送者定义的基准扭矩归一化,500 表示 500‰。' + 'MCU 温度由发送者提供,表示电机控制器 MCU / 逆变器温度,不是 AMI 芯片自动测温。', '', + '| 字节 | 字段 | 编码与规则 |', '| --- | --- | --- |', + '| 0..1 | 扭矩千分 | 小端 int16,允许 -1000..1000,直接显示 |', + '| 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 版本号独立 |', '', + '有效值更新并显示白色;标志为 0 时立即变灰并保留历史数字。' + '扭矩超出 -1000..1000 时仅扭矩无效,两个温度仍按各自标志处理。' + '温度的 int16 编码范围为 -3276.8..3276.7 ℃;显示正负半值均向远离零方向取整。' + '扩展帧、错误 DLC、版本非 1 或保留位非 0 均整帧拒绝,不覆盖数值、不刷新超时。' + '连续 2000 ms 未收到合规帧后,三个值同时变灰;BMS / SDC 流量不能续期。', '', + 'CAN 工具发送样例:标准 ID `182`,DLC `8`,数据 `F4 01 C2 01 90 01 07 01`,周期 `100 ms`。' + '可用仓库脚本发送:', '', '```powershell', + 'python -m pip install -r scripts/requirements-can.txt', + 'python scripts/send_drivetrain_can.py --torque 500 --motor-temp 45 --mcu-temp 40 --dry-run', + '# PCAN 当前接 CAN2,速率 250000;其他适配器按 python-can 接口参数设置', + 'python scripts/send_drivetrain_can.py --interface pcan --channel PCAN_USBBUS1 --bitrate 250000 --torque 500 --motor-temp 45 --mcu-temp 40 --duration 10', + '```', '', '## AMI 任务请求语义', '', '| Task_ID | 任务 |', '| --- | --- |', '| 1 | 八字绕环 |', '| 2 | 直线加速 |', '| 3 | 高速循迹 |', @@ -117,7 +142,10 @@ def render(): '| 低压电池 | `0x6A1` uint16 mV;`lvbat.val=(mV+5)/10`,显示两位小数 V | 1500 ms 无有效 ADC |', '| 高压电压 | BMS 大端 uint16 × 0.1 V;现有控件四舍五入到整数 V | 2000 ms 无有效 BMS 状态 |', '| 高压电流 | BMS 大端 uint16 × 0.1 - 500 A;四舍五入到整数 A | 2000 ms 无有效 BMS 状态 |', - '| 最高单体温度 | `0x156` 有效通道最大值,或扩展帧字节 4 - 40 | 全无效或 2000 ms 无有效温度源 |', '', + '| 最高单体温度 | `0x156` 有效通道最大值,或扩展帧字节 4 - 40 | 全无效或 2000 ms 无有效温度源 |', + '| 扭矩千分 | `0x182` 小端 int16,直接更新 `dash.mct.val` | bit0=0、超范围或 2000 ms 超时 |', + '| 电机温度 | `0x182` int16 × 0.1 ℃,整数显示 `dash.djwd.val` | bit1=0 或 2000 ms 超时 |', + '| MCU 温度 | `0x182` int16 × 0.1 ℃,整数显示 `dash.mcuwd.val` | bit2=0 或 2000 ms 超时 |', '', '电流字段是带偏置的 uint16,不能按 int16 解码。温度原始 `0xFF` 为无效;' 'DBC 枚举将其标为 Invalid。关闭枚举解码的工具可能显示 215,聚合时必须先排除 ' '原始 255,不能把它当作 215 ℃。有效实际温度范围为 -40..214 ℃。' @@ -131,6 +159,8 @@ def render(): '## 报文样例', '', '| ID / DLC | 数据(十六进制) | 解码及仪表显示 |', '| --- | --- | --- |', '| `0x300 / 8` | `01 02 00 01 E8 03 00 00` | 直线加速请求、序号 0、来源 AMI、上电 1000 ms |', + '| `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 |', '| `0x6A2 / 8` | `32 00 64 00 96 00 C8 00` | PA0 / PA2 / PA6 / PB14:50 / 100 / 150 / 200 Hz |', '| `0x140 / 8` | `0F A0 14 03 00 00 00 05` | 400.0 V / +12.3 A;显示 400 / 12 |', @@ -145,11 +175,12 @@ def render(): '# 若同时检出 SDC 仓库,可额外比较五条输入帧的原始布局:', 'python scripts/verify_dbc.py --sdc-dbc ../SDC_ACQ_DAC/SDC_ACQ_DAC.dbc', '```', '', - '校验覆盖严格 DBC 解析(长度、信号越界与重叠)、10 个 ID 与固件宏对应、' - '标准/扩展格式、33 个信号、发送/接收节点、SDC 周期、24 个已知报文解码、' + '校验覆盖严格 DBC 解析(长度、信号越界与重叠)、11 个 ID 与固件宏对应、' + '标准/扩展格式、40 个信号、发送/接收节点、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 ' diff --git a/scripts/requirements-can.txt b/scripts/requirements-can.txt new file mode 100644 index 0000000..d3661f6 --- /dev/null +++ b/scripts/requirements-can.txt @@ -0,0 +1 @@ +python-can==4.6.1 diff --git a/scripts/send_drivetrain_can.py b/scripts/send_drivetrain_can.py new file mode 100644 index 0000000..5ffd0da --- /dev/null +++ b/scripts/send_drivetrain_can.py @@ -0,0 +1,79 @@ +"""Send AMI 0x182 display values through a python-can adapter (no motor actuation).""" +import argparse +from decimal import Decimal, InvalidOperation +import os +import struct +import time + + +def temperature_raw(value): + try: + scaled = Decimal(value) * 10 + if not scaled.is_finite() or scaled != scaled.to_integral_value(): + raise ValueError('temperature must have at most one decimal place') + raw = int(scaled) + except (InvalidOperation, OverflowError) as exc: + raise ValueError('invalid temperature') from exc + if not -32768 <= raw <= 32767: + raise ValueError('temperature must be -3276.8..3276.7 degC') + return raw + + +def build_payload(torque, motor_temp, mcu_temp, valid=7): + if not -1000 <= torque <= 1000: + raise ValueError('torque must be -1000..1000 permille') + if not 0 <= valid <= 7: + raise ValueError('valid must be 0..7 (bit0 torque, bit1 motor, bit2 MCU)') + return struct.pack('0 and <=2 seconds; duration must be positive and finite') + print(f'Standard ID 0x182, DLC 8, data {payload.hex(" ").upper()}, bitrate {args.bitrate}', flush=True) + if args.dry_run: + return + dll_handle = None + if args.dll_dir: + path = os.path.abspath(args.dll_dir) + os.environ['PATH'] = path + os.pathsep + os.environ['PATH'] + if hasattr(os, 'add_dll_directory'): + dll_handle = os.add_dll_directory(path) + import can + count = 0 + try: + with can.Bus(interface=args.interface, channel=args.channel, bitrate=args.bitrate) as bus: + message = can.Message(arbitration_id=0x182, is_extended_id=False, data=payload) + started = time.monotonic() + deadline = started + while time.monotonic() < started + args.duration: + bus.send(message, timeout=0.2) + count += 1 + deadline += args.period + time.sleep(max(0, min(deadline, started + args.duration) - time.monotonic())) + finally: + if dll_handle is not None: + dll_handle.close() + print(f'Sent {count} frames. Values expire after 2 seconds without valid input.') + + +if __name__ == '__main__': + main() diff --git a/scripts/verify_dbc.py b/scripts/verify_dbc.py index be311db..2eca373 100644 --- a/scripts/verify_dbc.py +++ b/scripts/verify_dbc.py @@ -11,6 +11,7 @@ import re import cantools from export_dbc_docs import can2_dbc_text +from send_drivetrain_can import build_payload ROOT = Path(__file__).resolve().parents[1] @@ -36,6 +37,7 @@ def verify_bit_timing(): assert value('ClockDivider') == 'FDCAN_CLOCK_DIV1' assert value('FrameFormat') == 'FDCAN_FRAME_CLASSIC' + assert int(value('StdFiltersNbr')) == int(ioc[f'FDCAN{port}.StdFiltersNbr']) == 4 prescaler, seg1, seg2, sjw = (int(value(field)) for field in ('NominalPrescaler', 'NominalTimeSeg1', 'NominalTimeSeg2', 'NominalSyncJumpWidth')) @@ -70,23 +72,24 @@ def main(): header = (ROOT / 'firmware/Core/Inc/ami_protocol.h').read_text(encoding='utf-8') identifiers = {int(value, 16) for value in re.findall( r'^#define\s+AMI_CAN_ID_\w+\s+(0x[\dA-Fa-f]+)', header, re.MULTILINE)} - expected = {0x300:(False,8), 0x6A0:(False,8), 0x6A1:(False,2), + expected = {0x182:(False,8), 0x300:(False,8), 0x6A0:(False,8), 0x6A1:(False,2), 0x6A2:(False,8), 0x6A4:(False,4), 0x6A6:(False,8), 0x140:(False,8), 0x156:(False,8), 0x186040F3:(True,8), 0x186140F3:(True,8)} actual = {m.frame_id:(m.is_extended_frame,m.length) for m in db.messages} assert actual == expected, actual assert set(actual) == identifiers, (actual, identifiers) - assert len(db.messages) == 10 - assert sum(len(m.signals) for m in db.messages) == 33 + assert len(db.messages) == 11 + assert sum(len(m.signals) for m in db.messages) == 40 for m in db.messages: if m.frame_id == 0x300: assert m.senders == ['AMI'] and m.receivers == {'VCU'} else: assert m.receivers == {'AMI'} - assert m.senders == (['SDC_ACQ_DAC'] if 0x6A0 <= m.frame_id <= 0x6A6 else ['BMS']) + assert m.senders == (['VCU'] if m.frame_id == 0x182 else + ['SDC_ACQ_DAC'] if 0x6A0 <= m.frame_id <= 0x6A6 else ['BMS']) assert db.dbc.attributes['Baudrate'].value == 500000 - for ident, cycle in [(0x6A0,100), (0x6A1,500), (0x6A2,20)]: + for ident, cycle in [(0x182,100), (0x6A0,100), (0x6A1,500), (0x6A2,20)]: assert db.get_message_by_frame_id(ident).cycle_time == cycle for ident in [0x300,0x6A4,0x6A6,0x140,0x156,0x186040F3,0x186140F3]: assert db.get_message_by_frame_id(ident).cycle_time in (None,0) @@ -96,6 +99,32 @@ def main(): checks.append({'id':hex(ident),'data':data}) return db.decode_message(ident, bytes.fromhex(data), decode_choices=False) + display = db.get_message_by_frame_id(0x182) + for raw, torque, motor, mcu, flags in [ + ('F4 01 C2 01 90 01 07 01',500,45,40,7), + ('0C FE 9B FF 33 FF 07 01',-500,-10.1,-20.5,7), + ('18 FC 00 80 FF 7F 05 01',-1000,-3276.8,3276.7,5), + ('E8 03 00 00 00 00 00 01',1000,0,0,0)]: + values = decode(0x182,raw) + assert values['Torque_Permille'] == torque + near(values['Motor_Temperature'],motor) + near(values['MCU_Temperature'],mcu) + for bit, name in enumerate(('Torque_Valid','Motor_Temperature_Valid','MCU_Temperature_Valid')): + assert values[name] == ((flags >> bit) & 1) + assert values['Protocol_Version'] == 1 + assert display.encode(values) == bytes.fromhex(raw) + assert build_payload(torque,str(motor),str(mcu),flags) == bytes.fromhex(raw) + assert all(display.get_signal_by_name(name).is_signed for name in + ('Torque_Permille','Motor_Temperature','MCU_Temperature')) + for arguments in ((1001,'45','40',7), (0,'3276.8','40',7), + (0,'45.01','40',7), (0,'45','40',8), (0,'nan','40',7)): + try: + build_payload(*arguments) + except ValueError: + pass + else: + raise AssertionError(f'Invalid sender arguments accepted: {arguments}') + # Canonical request at 1000 ms, first sequence, task 2; all six task enums. task = decode(0x300,'01 02 00 01 E8 03 00 00') assert task == {'Protocol_Version':1,'Task_ID':2,'Request_Sequence':0, @@ -189,11 +218,12 @@ def main(): for decode_choices in (False, True): assert db.decode_message(ident, payload, decode_choices=decode_choices) == \ db2.decode_message(ident, payload, decode_choices=decode_choices) - print(json.dumps({'result':'passed','messages':len(db.messages),'signals':33, + print(json.dumps({'result':'passed','messages':len(db.messages),'signals':40, 'known_payload_checks':len(checks),'all_task_ids_and_counter_edges':True, 'ports_bitrate':bitrates,'both_dbc_layouts_and_payloads_match':True, 'firmware_and_ioc_bit_timing_match':True, 'firmware_ids_match':True,'sdc_source_layout_match':source_check, + 'display_sender_known_bytes_and_argument_rejection':True, 'cantools_version':cantools.__version__},indent=2))