diff --git a/AMI.HMI b/AMI.HMI index ccfc7da..bb94727 100644 Binary files a/AMI.HMI and b/AMI.HMI differ diff --git a/AMI.dbc b/AMI.dbc index 9188d58..3820691 100644 --- a/AMI.dbc +++ b/AMI.dbc @@ -1,4 +1,4 @@ -VERSION "AMI-2.5-2026-10-04" +VERSION "AMI-2.7-2026-10-07" NS_ : NS_DESC_ @@ -28,9 +28,11 @@ BO_ 387 AMI_VCUStatus: 8 VCU SG_ Task_Valid : 24|1@1+ (1,0) [0|1] "" AMI SG_ Lock_Valid : 25|1@1+ (1,0) [0|1] "" AMI SG_ EBS_Valid : 26|1@1+ (1,0) [0|1] "" AMI + SG_ AS_Valid : 27|1@1+ (1,0) [0|1] "" AMI SG_ Feedback_Sequence : 32|8@1+ (1,0) [0|255] "" AMI - SG_ Reserved : 40|16@1+ (1,0) [0|0] "" AMI - SG_ Protocol_Version : 56|8@1+ (1,0) [1|1] "" AMI + SG_ AS_State : 40|8@1+ (1,0) [0|5] "" AMI + SG_ Reserved : 48|8@1+ (1,0) [0|0] "" AMI + SG_ Protocol_Version : 56|8@1+ (1,0) [1|2] "" AMI BO_ 768 AMI_TaskRequest: 8 AMI SG_ Protocol_Version : 0|8@1+ (1,0) [1|1] "" VCU @@ -54,11 +56,9 @@ BO_ 1696 SDC_Heartbeat: 8 SDC_ACQ_DAC BO_ 1697 SDC_ADC_InputVoltage: 2 SDC_ACQ_DAC SG_ Input_Voltage : 0|16@1+ (0.001,0) [0|65.535] "V" AMI -BO_ 1698 SDC_InputFrequencies: 8 SDC_ACQ_DAC - SG_ Frequency_LeftFront_PA0 : 0|16@1+ (1,0) [0|65535] "Hz" AMI - SG_ Frequency_PA2 : 16|16@1+ (1,0) [0|65535] "Hz" AMI - SG_ Frequency_RightFront_PA6 : 32|16@1+ (1,0) [0|65535] "Hz" AMI - SG_ Frequency_PB14 : 48|16@1+ (1,0) [0|65535] "Hz" AMI +BO_ 1698 SDC_WheelSpeed: 4 SDC_ACQ_DAC + SG_ WheelSpeed_LeftFront_PA0 : 0|16@1+ (0.001,0) [0|65.535] "m/s" AMI + SG_ WheelSpeed_RightFront_PA6 : 16|16@1+ (0.001,0) [0|65.535] "m/s" AMI BO_ 1700 SDC_DAC_Ack: 4 SDC_ACQ_DAC SG_ DAC_Set_Result : 0|8@1+ (1,0) [0|1] "" AMI @@ -91,10 +91,10 @@ 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.5. CAN1: 500000 bit/s; CAN2: 250000 bit/s. Both use Classic CAN, identical IDs, parsing and task request capability. This file is CAN1; use AMI_CAN2_250k.dbc for CAN2. Frames are not bridged between buses. SDC fields follow SDC_ACQ_DAC.dbc VERSION 1.1. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. AMI_DrivetrainDisplay and AMI_VCUStatus are custom instrument inputs to be implemented by VCU. Native motor-controller protocols, calibrated vehicle speed are not defined. AMI heartbeat is standard 0x301 every 100 ms on CAN1 only."; +CM_ "AMI CAN interface v2.7. 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 at commit 7bc2d9f1eaaf19814957037bd097cd879cbf4cbf. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. AMI_DrivetrainDisplay and AMI_VCUStatus are custom instrument inputs to be implemented by VCU. Native motor-controller protocols are not defined. Vehicle speed display is the mean of the two calibrated front-wheel speeds, rounded to whole km/h; this is not a VCU fused vehicle-speed estimate. AMI heartbeat is standard 0x301 every 100 ms on CAN1 only."; 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 "Task request receiver and authoritative sender for actual task, lock and EBS display states plus drivetrain data. Vehicle execution and safety outputs remain VCU responsibilities."; -CM_ BU_ SDC_ACQ_DAC "Source of ADC, capture frequencies and raw PD0-PD14 states; both SDC CAN ports carry the same protocol."; +CM_ BU_ VCU "Task request receiver and authoritative sender for actual task, lock, AS and EBS display states plus drivetrain data. Vehicle execution and safety outputs remain VCU responsibilities."; +CM_ BU_ SDC_ACQ_DAC "Source of ADC, calibrated front-wheel speeds 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."; @@ -102,7 +102,7 @@ CM_ SG_ 386 Torque_Permille "Signed -1000..1000 permille relative to sender-defi 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.4."; -CM_ BO_ 387 "Custom standard 0x183, DLC exactly 8, 100 ms, expires after 500 ms. Byte 0 actual task 0..6, byte 1 locked 0/1, byte 2 EBS normal 0/1. Byte 3 bits 0/1/2 valid for task/lock/EBS; upper bits zero. Byte 4 sender counter for observation, no deduplication or acknowledgement. Bytes 5/6 zero. Byte 7 fixed 1. Reject whole frame on wrong DLC, version, enums, reserved bits or extended/remote/FD format. Invalid fields and timeout show unknown. HMI confirmation only sends 0x300 request and never changes actual task. This frame controls display only, not safety outputs."; +CM_ BO_ 387 "Custom 0x183 DLC 8, 100 ms, timeout 500 ms. Version 2: bytes 0/1/2 task/locked/EBS, byte 3 valid bits 0/1/2/3 task/lock/EBS/AS, byte 4 sequence, byte 5 AS 0..5, byte 6 zero, byte 7 fixed 2. Reject bad enum/reserved/format without renewing timeout. Legacy v1 accepted with byte 5/6 zero and only valid bits 0..2; AS becomes unknown. VCU actual feedback only; task requests never set AS. Display only, no safety outputs."; CM_ SG_ 387 Current_Task "Authoritative VCU actual task, not an echo of the AMI request. 0 is no task (red); 1..6 are named tasks (green). Unknown is encoded by Task_Valid=0, not task value 7. Values above 6 reject the whole frame even if Task_Valid=0."; CM_ SG_ 387 Locked "0 unlocked (red), 1 locked (green). Lock_Valid=0 shows unknown. No vehicle interlock output is driven by this field."; CM_ SG_ 387 EBS_Normal "0 fault (red background), 1 normal (green background). EBS_Valid=0 shows unknown. Independent of the raw SDC EBS input channels."; @@ -110,8 +110,8 @@ CM_ SG_ 387 Task_Valid "0 makes the current-task display unknown immediately; 1 CM_ SG_ 387 Lock_Valid "0 makes lock status unknown immediately; 1 uses Locked."; CM_ SG_ 387 EBS_Valid "0 makes EBS status unknown immediately; 1 uses EBS_Normal."; CM_ SG_ 387 Feedback_Sequence "Sender observation counter, normally incremented modulo 256. AMI accepts repeated or wrapped values; this is not Request_Sequence and is not an application ACK."; -CM_ SG_ 387 Reserved "Bytes 5 and 6 must both be zero; nonzero rejects the whole frame without refreshing timeout."; -CM_ SG_ 387 Protocol_Version "Fixed 1, independent of interface package version 2.4. Unsupported versions reject the whole frame."; +CM_ SG_ 387 Reserved "Byte 6 must be zero. Legacy version 1 also requires byte 5 zero. Nonzero reserved fields reject the whole frame without refreshing timeout."; +CM_ SG_ 387 Protocol_Version "2 for AS feedback. Legacy version 1 is also decoded by firmware, with AS unknown."; 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."; @@ -123,9 +123,11 @@ CM_ SG_ 768 MCU_Uptime "Unsigned MCU HAL_GetTick milliseconds, little-endian. Na CM_ BO_ 1696 "Standard ID 0x6A0, DLC 8, 100 ms. AMI accepts board identifier 0xA1 and protocol version 1."; CM_ BO_ 1697 "Standard ID 0x6A1, DLC exactly 2, 500 ms. Calibrated input voltage before the SDC divider. AMI uses it exclusively as low-voltage battery voltage. Do not apply the divider again."; CM_ SG_ 1697 Input_Voltage "On-wire uint16 mV, decoded in V. dash.lvbat uses 0.01 V integer display units: (raw_mV + 5) / 10. Source expires after 1500 ms."; -CM_ BO_ 1698 "Standard ID 0x6A2, DLC 8, 20 ms. Preserve Hz; wheel circumference and pulses per revolution are undefined, so AMI does not convert to km/h."; +CM_ BO_ 1698 "Standard ID 0x6A2, DLC exactly 4, 20 ms. Bytes 0..1 left-front PA0 and 2..3 right-front PA6: little-endian uint16 mm/s, physical scale 0.001 m/s. SDC applies 49 pulses/rev and 1414 mm circumference. AMI displays the mean rounded to whole km/h: ((left_raw + right_raw) * 9 + 2500) / 5000. Zero and 65535 are valid; no per-wheel validity flags or invalid sentinel exist. Expires independently after 500 ms, retaining the last value in grey. Reject old DLC 8 without refreshing timeout."; +CM_ SG_ 1698 WheelSpeed_LeftFront_PA0 "Left-front PA0/TIM5_CH1. Calibrated by SDC; do not apply circumference or pulses/rev again."; +CM_ SG_ 1698 WheelSpeed_RightFront_PA6 "Right-front PA6/TIM3_CH1. Calibrated by SDC; no individual sensor-health flag is supplied."; CM_ BO_ 1700 "Standard ID 0x6A4, DLC 4. Response to a DAC command. AMI recognizes the frame but does not update a display value from it."; -CM_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent at startup and on PD0-PD14 changes, not periodically. PD0..PD14 map to HMI d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14. Low is normal (1); high is fault (2). d15 remains unknown. Heartbeat 0x6A0 sustains an existing snapshot; over 500 ms without either GPIO or heartbeat clears all states to unknown (0). A fresh GPIO snapshot is needed after loss."; +CM_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent every 1000 ms; changed-mask bits accumulate transitions during the preceding reporting interval. PD0..PD14 map to HMI d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14. Low is normal (1); high is fault (2). d15 remains unknown. Heartbeat 0x6A0 sustains an existing snapshot; over 500 ms without either GPIO or heartbeat clears all states to unknown (0). A fresh GPIO snapshot is needed after loss."; CM_ SG_ 1702 SDC_Input_State "Bit n maps directly to PDn for n=0..14. Bits 15 and 31 in the payload are unused."; CM_ SG_ 1702 SDC_Changed_Mask "Bit n indicates PDn changed since the preceding GPIO status frame."; @@ -151,7 +153,7 @@ VAL_ 387 EBS_Normal 0 "Fault" 1 "Normal"; VAL_ 387 Task_Valid 0 "Unknown" 1 "Valid"; VAL_ 387 Lock_Valid 0 "Unknown" 1 "Valid"; VAL_ 387 EBS_Valid 0 "Unknown" 1 "Valid"; -VAL_ 387 Protocol_Version 1 "Version_1"; +VAL_ 387 Protocol_Version 1 "Legacy_Version_1" 2 "Version_2"; VAL_ 386 Protocol_Version 1 "Version_1"; VAL_ 386 Torque_Valid 0 "Invalid" 1 "Valid"; VAL_ 386 Motor_Temperature_Valid 0 "Invalid" 1 "Valid"; @@ -188,6 +190,12 @@ BA_ "GenMsgCycleTime" BO_ 387 100; BA_ "GenMsgCycleTime" BO_ 1696 100; BA_ "GenMsgCycleTime" BO_ 1697 500; BA_ "GenMsgCycleTime" BO_ 1698 20; +BA_ "GenMsgCycleTime" BO_ 1702 1000; CM_ BO_ 769 "Standard 0x301, Classic CAN DLC 8. CAN1 (500 kbit/s) only, every 100 ms regardless of RX activity. Version 1, reserved 0, uint16 sequence and uint32 uptime in ms, little-endian. Sequence starts at 0 and increments each scheduled period even if transmission is skipped. Keep one TX FIFO slot for tasks; busy/error periods are skipped without software retry. Hardware automatic retransmission still applies."; BA_ "GenMsgCycleTime" BO_ 769 100; + +CM_ SG_ 387 AS_State "0 AS OFF, 1 AS Ready, 2 AS Driving, 3 AS Finished, 4 AS Emergency, 5 Manual Driving. ASF semantic states; numeric encoding is this custom AMI contract, not an ASF CAN assignment. Invalid flag or timeout shows unknown."; +CM_ SG_ 387 AS_Valid "0 AS unknown, 1 uses AS_State. Never derive AS from task, lock, EBS or ASSI lamp."; +VAL_ 387 AS_State 0 "AS_OFF" 1 "AS_Ready" 2 "AS_Driving" 3 "AS_Finished" 4 "AS_Emergency" 5 "Manual_Driving"; +VAL_ 387 AS_Valid 0 "Unknown" 1 "Valid"; diff --git a/AMI_CAN2_250k.dbc b/AMI_CAN2_250k.dbc index f99a0ce..b2d29e3 100644 --- a/AMI_CAN2_250k.dbc +++ b/AMI_CAN2_250k.dbc @@ -1,4 +1,4 @@ -VERSION "AMI-2.5-2026-10-04" +VERSION "AMI-2.7-2026-10-07" NS_ : NS_DESC_ @@ -28,9 +28,11 @@ BO_ 387 AMI_VCUStatus: 8 VCU SG_ Task_Valid : 24|1@1+ (1,0) [0|1] "" AMI SG_ Lock_Valid : 25|1@1+ (1,0) [0|1] "" AMI SG_ EBS_Valid : 26|1@1+ (1,0) [0|1] "" AMI + SG_ AS_Valid : 27|1@1+ (1,0) [0|1] "" AMI SG_ Feedback_Sequence : 32|8@1+ (1,0) [0|255] "" AMI - SG_ Reserved : 40|16@1+ (1,0) [0|0] "" AMI - SG_ Protocol_Version : 56|8@1+ (1,0) [1|1] "" AMI + SG_ AS_State : 40|8@1+ (1,0) [0|5] "" AMI + SG_ Reserved : 48|8@1+ (1,0) [0|0] "" AMI + SG_ Protocol_Version : 56|8@1+ (1,0) [1|2] "" AMI BO_ 768 AMI_TaskRequest: 8 AMI SG_ Protocol_Version : 0|8@1+ (1,0) [1|1] "" VCU @@ -48,11 +50,9 @@ BO_ 1696 SDC_Heartbeat: 8 SDC_ACQ_DAC BO_ 1697 SDC_ADC_InputVoltage: 2 SDC_ACQ_DAC SG_ Input_Voltage : 0|16@1+ (0.001,0) [0|65.535] "V" AMI -BO_ 1698 SDC_InputFrequencies: 8 SDC_ACQ_DAC - SG_ Frequency_LeftFront_PA0 : 0|16@1+ (1,0) [0|65535] "Hz" AMI - SG_ Frequency_PA2 : 16|16@1+ (1,0) [0|65535] "Hz" AMI - SG_ Frequency_RightFront_PA6 : 32|16@1+ (1,0) [0|65535] "Hz" AMI - SG_ Frequency_PB14 : 48|16@1+ (1,0) [0|65535] "Hz" AMI +BO_ 1698 SDC_WheelSpeed: 4 SDC_ACQ_DAC + SG_ WheelSpeed_LeftFront_PA0 : 0|16@1+ (0.001,0) [0|65.535] "m/s" AMI + SG_ WheelSpeed_RightFront_PA6 : 16|16@1+ (0.001,0) [0|65.535] "m/s" AMI BO_ 1700 SDC_DAC_Ack: 4 SDC_ACQ_DAC SG_ DAC_Set_Result : 0|8@1+ (1,0) [0|1] "" AMI @@ -85,10 +85,10 @@ 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.5. CAN1: 500000 bit/s; CAN2: 250000 bit/s. Both use Classic CAN, identical IDs, parsing and task request capability. This file is CAN2; use AMI.dbc for CAN1. Frames are not bridged between buses. SDC fields follow SDC_ACQ_DAC.dbc VERSION 1.1. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. AMI_DrivetrainDisplay and AMI_VCUStatus are custom instrument inputs to be implemented by VCU. Native motor-controller protocols, calibrated vehicle speed are not defined. AMI heartbeat 0x301 is CAN1 only and is not included in this CAN2 file."; +CM_ "AMI CAN interface v2.7. 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 at commit 7bc2d9f1eaaf19814957037bd097cd879cbf4cbf. BMS consumed fields follow BmsMonitor-CANTest commit e65c95203d1689df05343775982d7e85bd782646. AMI_DrivetrainDisplay and AMI_VCUStatus are custom instrument inputs to be implemented by VCU. Native motor-controller protocols are not defined. Vehicle speed display is the mean of the two calibrated front-wheel speeds, rounded to whole km/h; this is not a VCU fused vehicle-speed estimate. AMI heartbeat 0x301 is CAN1 only and is not included in this CAN2 file."; 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 "Task request receiver and authoritative sender for actual task, lock and EBS display states plus drivetrain data. Vehicle execution and safety outputs remain VCU responsibilities."; -CM_ BU_ SDC_ACQ_DAC "Source of ADC, capture frequencies and raw PD0-PD14 states; both SDC CAN ports carry the same protocol."; +CM_ BU_ VCU "Task request receiver and authoritative sender for actual task, lock, AS and EBS display states plus drivetrain data. Vehicle execution and safety outputs remain VCU responsibilities."; +CM_ BU_ SDC_ACQ_DAC "Source of ADC, calibrated front-wheel speeds 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."; @@ -96,7 +96,7 @@ CM_ SG_ 386 Torque_Permille "Signed -1000..1000 permille relative to sender-defi 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.4."; -CM_ BO_ 387 "Custom standard 0x183, DLC exactly 8, 100 ms, expires after 500 ms. Byte 0 actual task 0..6, byte 1 locked 0/1, byte 2 EBS normal 0/1. Byte 3 bits 0/1/2 valid for task/lock/EBS; upper bits zero. Byte 4 sender counter for observation, no deduplication or acknowledgement. Bytes 5/6 zero. Byte 7 fixed 1. Reject whole frame on wrong DLC, version, enums, reserved bits or extended/remote/FD format. Invalid fields and timeout show unknown. HMI confirmation only sends 0x300 request and never changes actual task. This frame controls display only, not safety outputs."; +CM_ BO_ 387 "Custom 0x183 DLC 8, 100 ms, timeout 500 ms. Version 2: bytes 0/1/2 task/locked/EBS, byte 3 valid bits 0/1/2/3 task/lock/EBS/AS, byte 4 sequence, byte 5 AS 0..5, byte 6 zero, byte 7 fixed 2. Reject bad enum/reserved/format without renewing timeout. Legacy v1 accepted with byte 5/6 zero and only valid bits 0..2; AS becomes unknown. VCU actual feedback only; task requests never set AS. Display only, no safety outputs."; CM_ SG_ 387 Current_Task "Authoritative VCU actual task, not an echo of the AMI request. 0 is no task (red); 1..6 are named tasks (green). Unknown is encoded by Task_Valid=0, not task value 7. Values above 6 reject the whole frame even if Task_Valid=0."; CM_ SG_ 387 Locked "0 unlocked (red), 1 locked (green). Lock_Valid=0 shows unknown. No vehicle interlock output is driven by this field."; CM_ SG_ 387 EBS_Normal "0 fault (red background), 1 normal (green background). EBS_Valid=0 shows unknown. Independent of the raw SDC EBS input channels."; @@ -104,8 +104,8 @@ CM_ SG_ 387 Task_Valid "0 makes the current-task display unknown immediately; 1 CM_ SG_ 387 Lock_Valid "0 makes lock status unknown immediately; 1 uses Locked."; CM_ SG_ 387 EBS_Valid "0 makes EBS status unknown immediately; 1 uses EBS_Normal."; CM_ SG_ 387 Feedback_Sequence "Sender observation counter, normally incremented modulo 256. AMI accepts repeated or wrapped values; this is not Request_Sequence and is not an application ACK."; -CM_ SG_ 387 Reserved "Bytes 5 and 6 must both be zero; nonzero rejects the whole frame without refreshing timeout."; -CM_ SG_ 387 Protocol_Version "Fixed 1, independent of interface package version 2.4. Unsupported versions reject the whole frame."; +CM_ SG_ 387 Reserved "Byte 6 must be zero. Legacy version 1 also requires byte 5 zero. Nonzero reserved fields reject the whole frame without refreshing timeout."; +CM_ SG_ 387 Protocol_Version "2 for AS feedback. Legacy version 1 is also decoded by firmware, with AS unknown."; 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."; @@ -117,9 +117,11 @@ CM_ SG_ 768 MCU_Uptime "Unsigned MCU HAL_GetTick milliseconds, little-endian. Na CM_ BO_ 1696 "Standard ID 0x6A0, DLC 8, 100 ms. AMI accepts board identifier 0xA1 and protocol version 1."; CM_ BO_ 1697 "Standard ID 0x6A1, DLC exactly 2, 500 ms. Calibrated input voltage before the SDC divider. AMI uses it exclusively as low-voltage battery voltage. Do not apply the divider again."; CM_ SG_ 1697 Input_Voltage "On-wire uint16 mV, decoded in V. dash.lvbat uses 0.01 V integer display units: (raw_mV + 5) / 10. Source expires after 1500 ms."; -CM_ BO_ 1698 "Standard ID 0x6A2, DLC 8, 20 ms. Preserve Hz; wheel circumference and pulses per revolution are undefined, so AMI does not convert to km/h."; +CM_ BO_ 1698 "Standard ID 0x6A2, DLC exactly 4, 20 ms. Bytes 0..1 left-front PA0 and 2..3 right-front PA6: little-endian uint16 mm/s, physical scale 0.001 m/s. SDC applies 49 pulses/rev and 1414 mm circumference. AMI displays the mean rounded to whole km/h: ((left_raw + right_raw) * 9 + 2500) / 5000. Zero and 65535 are valid; no per-wheel validity flags or invalid sentinel exist. Expires independently after 500 ms, retaining the last value in grey. Reject old DLC 8 without refreshing timeout."; +CM_ SG_ 1698 WheelSpeed_LeftFront_PA0 "Left-front PA0/TIM5_CH1. Calibrated by SDC; do not apply circumference or pulses/rev again."; +CM_ SG_ 1698 WheelSpeed_RightFront_PA6 "Right-front PA6/TIM3_CH1. Calibrated by SDC; no individual sensor-health flag is supplied."; CM_ BO_ 1700 "Standard ID 0x6A4, DLC 4. Response to a DAC command. AMI recognizes the frame but does not update a display value from it."; -CM_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent at startup and on PD0-PD14 changes, not periodically. PD0..PD14 map to HMI d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14. Low is normal (1); high is fault (2). d15 remains unknown. Heartbeat 0x6A0 sustains an existing snapshot; over 500 ms without either GPIO or heartbeat clears all states to unknown (0). A fresh GPIO snapshot is needed after loss."; +CM_ BO_ 1702 "Standard ID 0x6A6, DLC 8. Sent every 1000 ms; changed-mask bits accumulate transitions during the preceding reporting interval. PD0..PD14 map to HMI d0,d5,d2,d6,d7,d1,d3,d4,d8,d9,d10,d11,d12,d13,d14. Low is normal (1); high is fault (2). d15 remains unknown. Heartbeat 0x6A0 sustains an existing snapshot; over 500 ms without either GPIO or heartbeat clears all states to unknown (0). A fresh GPIO snapshot is needed after loss."; CM_ SG_ 1702 SDC_Input_State "Bit n maps directly to PDn for n=0..14. Bits 15 and 31 in the payload are unused."; CM_ SG_ 1702 SDC_Changed_Mask "Bit n indicates PDn changed since the preceding GPIO status frame."; @@ -145,7 +147,7 @@ VAL_ 387 EBS_Normal 0 "Fault" 1 "Normal"; VAL_ 387 Task_Valid 0 "Unknown" 1 "Valid"; VAL_ 387 Lock_Valid 0 "Unknown" 1 "Valid"; VAL_ 387 EBS_Valid 0 "Unknown" 1 "Valid"; -VAL_ 387 Protocol_Version 1 "Version_1"; +VAL_ 387 Protocol_Version 1 "Legacy_Version_1" 2 "Version_2"; VAL_ 386 Protocol_Version 1 "Version_1"; VAL_ 386 Torque_Valid 0 "Invalid" 1 "Valid"; VAL_ 386 Motor_Temperature_Valid 0 "Invalid" 1 "Valid"; @@ -182,3 +184,10 @@ BA_ "GenMsgCycleTime" BO_ 387 100; BA_ "GenMsgCycleTime" BO_ 1696 100; BA_ "GenMsgCycleTime" BO_ 1697 500; BA_ "GenMsgCycleTime" BO_ 1698 20; +BA_ "GenMsgCycleTime" BO_ 1702 1000; + + +CM_ SG_ 387 AS_State "0 AS OFF, 1 AS Ready, 2 AS Driving, 3 AS Finished, 4 AS Emergency, 5 Manual Driving. ASF semantic states; numeric encoding is this custom AMI contract, not an ASF CAN assignment. Invalid flag or timeout shows unknown."; +CM_ SG_ 387 AS_Valid "0 AS unknown, 1 uses AS_State. Never derive AS from task, lock, EBS or ASSI lamp."; +VAL_ 387 AS_State 0 "AS_OFF" 1 "AS_Ready" 2 "AS_Driving" 3 "AS_Finished" 4 "AS_Emergency" 5 "Manual_Driving"; +VAL_ 387 AS_Valid 0 "Unknown" 1 "Valid"; diff --git a/AMI_TJC8048X370_011.HMI b/AMI_TJC8048X370_011.HMI new file mode 100644 index 0000000..3b247c8 Binary files /dev/null and b/AMI_TJC8048X370_011.HMI differ diff --git a/README.md b/README.md index 6cdb802..e6b1d00 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ 2026-10-04:新增 AMI `0x301` 标准心跳帧(DLC 8),仅 CAN1(500 kbit/s)100 ms 一次,CAN2 不发送心跳,包含版本、uint16 序号和 uint32 运行毫秒值,小端。源码和 DBC 已更新,已烧录并全量回读一致;CAN1 实测 121 帧,间隔 99.952~100.180 ms。完整定义见 [DBC 说明](docs/AMI_CAN_DBC说明.md)。 -YMR A11 仪表,使用淘晶驰 TJC4827X543_011 串口屏,分辨率 480 × 272。 +YMR A11 仪表。当前提供淘晶驰 TJC8048X370_011(800 × 480)与 TJC4827X543_011(480 × 272)两个版本,均支持独立无人状态。小屏工程为 `AMI.HMI`。 -当前屏幕接口 **1.4**,MCU CAN 输入 **v2.4(CAN1 500 kbit/s、CAN2 250 kbit/s,2026-10-03)**。新增标准 `0x183`,由 VCU 反馈实际当前任务、锁定状态和 EBS 状态;两路保留相同解码和任务收发功能。工程使用 USART HMI 1.68.1.3037 编辑、编译。 +当前屏幕接口 **1.5**,MCU CAN 输入 **v2.7(CAN1 500 kbit/s、CAN2 250 kbit/s,2026-10-07)**。标准 `0x183` 由 VCU 反馈实际当前任务、锁定、无人状态和 EBS 状态;两路保留相同解码和任务收发功能。工程使用 USART HMI 1.68.1.3037 编辑、编译。 -任务按钮确认仅发送 `0x300` 请求,当前任务等待 VCU `0x183` 更新。例:标准 ID `183`、DLC `8`、周期 `100 ms`、数据 `02 01 01 07 00 00 00 01` 显示直线加速、已锁定、EBS 正常。任务 1~6、已锁定、EBS 正常使用绿色;无任务、已解锁、EBS 故障使用红色;有效标志为 0 或超过 500 ms 无反馈显示灰色未知。VCU 需实现此新增自定义帧,详见 [反馈协议](docs/AMI_CAN_DBC说明.md#vcu-状态反馈-0x183) 和 [验证报告](docs/VCU状态反馈测试报告.md)。 +任务按钮确认仅发送 `0x300` 请求,实际状态等待 VCU `0x183` 更新。例:标准 ID `183`、DLC `8`、周期 `100 ms`、数据 `02 01 01 0F 00 01 00 02` 显示直线加速、已锁定、AS Ready、EBS 正常。无人状态独立显示在锁定状态右侧;有效标志为 0 或超过 500 ms 无反馈显示灰色未知。VCU 需实现此自定义版本 2 布局,详见 [反馈协议](docs/AMI_CAN_DBC说明.md#vcu-状态反馈-0x183) 和 [本次验证报告](docs/无人状态显示验证报告.md)。 dash 顶部已加入低压电池电压 `lvbat`(两位小数),来源是 SDC `0x6A1` ADC mV。高压电压、电流来自 BMS `0x140` / 扩展 `0x186040F3`,现有控件显示整数单位;最高单体温度取 `0x156` 的有效实际温度最大值,或扩展 `0x186140F3`。旧 `0x180 / 0x181 / 0x280` 输入不再使用。 @@ -16,22 +16,26 @@ v2.3 按用户接线表将 `0x6A6` 的 PD0~PD14 映射到 DEBUG:`d0,d5,d2,d6 屏幕接口 1.3 的修正已保留:PD1 / Safe_S 的 d5 显示为“左电机互锁”,替换原左后悬项;删除 BSPD/TSMS 与“返回支路”框。布局绘制源码见 [debug 后初始化脚本](scripts/hmi/debug-postinit.txt),主页面反馈渲染见 [状态脚本](scripts/hmi/dash-status-render.txt)。 +2026-10-05:按 SDC master `7bc2d9f1eaaf19814957037bd097cd879cbf4cbf` 接入标准 `0x6A2 / DLC 4` 双前轮轮速(uint16 小端 mm/s,20 ms)。车速为双前轮平均值换算整数 km/h;`10 27 F8 2A` 显示 38 km/h,停止 `00 00 00 00` 显示白色 0。超过 500 ms 无有效轮速帧保留数字变灰,新帧恢复,其他流量不续期。旧 DLC 8 四路 Hz 已拒绝。SDC 已使用每圈 49 脉冲、轮周长 1414 mm;AMI 不再次标定。无每轮有效标志,不能把零读数当作传感器健康证据。详情见 [轮速接入验证报告](docs/SDC轮速接入验证报告.md)。 + ## 工程与交接资料 - [CAN1 DBC](AMI.dbc):500 kbit/s,13 条报文、53 个信号,含标准/扩展帧。 - [CAN2 DBC](AMI_CAN2_250k.dbc):250 kbit/s,不含 0x301 心跳,其余报文布局与 CAN1 相同。 - [DBC 对应说明](docs/AMI_CAN_DBC说明.md):信号布局、枚举、字节序、样例与复现检查。 -- [CAN 报文说明 PDF](output/pdf/AMI_CAN报文说明.pdf):当前 v2.5 协议的中文打印版,含两路速率、13 条报文及仅 CAN1 发送的 0x301 心跳。 -- [VCU 状态发送工具](scripts/send_vcu_status_can.py):预览或发送实际任务、锁定和 EBS 显示反馈。 +- [CAN 报文说明 PDF](output/pdf/AMI_CAN报文说明.pdf):当前 v2.7 协议的中文打印版,含两路速率、无人状态反馈及仅 CAN1 发送的 0x301 心跳。 +- [VCU 状态发送工具](scripts/send_vcu_status_can.py):预览或发送实际任务、锁定、无人状态和 EBS 显示反馈。 - [CAN 显示发送工具](scripts/send_drivetrain_can.py):通过 python-can 发送扭矩千分和两路温度,支持预览字节、有效标志和适配器参数。 - [v2.2 显示 CAN 测试报告](docs/AMI自定义显示CAN测试报告.md):新帧烧录回读和 CAN2 数据、失效、异常帧测试。 - [联调报告](docs/SDC_BMS联调报告.md):真实 CAN1 / MCU / COM4 到 HMI 调试器的证据。 - [v2.1 双 CAN 测试报告](docs/CAN1_CAN2_v2.1测试报告.md):烧录和完整回读、CAN1 500K / CAN2 250K 数据与六个任务确认/取消测试。 -- [当前固件 BIN](output/firmware/AMI_Controller.bin):STM32G0B1CBT6,v2.4,CAN1 500K / CAN2 250K,已烧录并完整回读比对;VCU 反馈测试见当前验证报告。 +- [当前固件 BIN](output/firmware/AMI_Controller.bin):STM32G0B1CBT6,v2.7,CAN1 500K / CAN2 250K;2026-10-07 已烧录,16672 字节 Flash 回读与 BIN 完全一致。大小屏官方模拟器与真实 CAN1/MCU/COM6 验收通过;见 [无人状态报告](docs/无人状态显示验证报告.md) 与 [小屏报告](docs/小屏无人状态验证报告.md)。 +- [此前 v2.5 BIN](output/firmware/AMI_Controller_v2.5_500k_250k.bin):保留本次修改前的心跳版本。 - [此前 v2.3 BIN](output/firmware/AMI_Controller_v2.3_500k_250k.bin):保留十五路 GPIO 映射版本。 - [此前已联调的 v2.1 BIN](output/firmware/AMI_Controller_v2.1_500k_250k.bin):CAN1 500K / CAN2 250K,保留双 CAN 分别测试的历史版本。 - [此前已联调的 v2.0 BIN](output/firmware/AMI_Controller_v2.0_500k.bin):两路均为 500K,保留历史测试版本。 - [AMI.HMI](AMI.HMI):最新版屏幕工程,打开后编译并下载到对应型号屏幕。 +- [AMI_TJC8048X370_011.HMI](AMI_TJC8048X370_011.HMI):7 寸 800×480 移植版;见 [移植说明](docs/TJC8048X370移植说明.md)。 - [通讯交接文档](docs/通讯交接文档.md):可编辑协议说明,包含全部状态编号、任务帧、主页面属性及联调步骤。 - [历史屏幕接口 PDF](docs/AMI仪表通讯交接文档.pdf):保留的 v1.2 屏幕接口资料;当前 CAN 与有效性定义以 DBC 对应说明和 Markdown 交接文档为准。 - [C 发送示例](examples/ami_debug_send.c):主控更新 debug 状态的参考函数。 @@ -72,7 +76,7 @@ dash.lvbat.val=1260 上述历史证据对应 v2.0。v2.1 的源码、CubeMX、两份 DBC 与位时序校验及 Release 编译通过;已烧录,15612 字节 Flash 回读与发布 BIN 完全一致。随后按 CAN1 500K(SDC)和 CAN2 250K(BMS)分别完成 MCU / COM4 / 官方 HMI 调试器联调;两路各六个任务确认和六个取消通过。使用 CAN 盒模拟数据源,未同时接两路或连接真实 SDC/BMS 节点、物理串口屏。两路不转发原始 CAN 帧,CAN 盒需分别设置正确速率。 -灰色数值表示未知或失效。原生电机控制器温度协议、Hz 到 km/h 标定参数尚未定义;电机与 MCU 温度可由自定义 0x182 显示输入设置。实际当前任务、锁定和 EBS 显示取 VCU 自定义 0x183 反馈;任务裁决与 EBS 安全输出由 VCU 实现。 +灰色数值表示未知或失效。原生电机控制器温度协议尚未定义;车速已按最新 SDC 双前轮标定轮速接入,采用平均值显示 km/h;电机与 MCU 温度可由自定义 0x182 显示输入设置。实际当前任务、锁定和 EBS 显示取 VCU 自定义 0x183 反馈;任务裁决与 EBS 安全输出由 VCU 实现。 许可证沿用仓库中的 [AGPL-3.0](LICENSE)。 @@ -87,3 +91,13 @@ python scripts/export_can_pdf.py ``` 默认使用 Windows 黑体 `C:/Windows/Fonts/simhei.ttf`;其他环境可通过 `--font` 指定支持中文的 TrueType 字体。输出为 `output/pdf/AMI_CAN报文说明.pdf`。修改 DBC 后,需重新导出 Markdown 和 PDF。 + +## 2026-10-07 无人状态显示 v2.7 + +按 ASF 补充独立无人状态,800×480 主页面在“已锁定/已解锁”右侧显示 AS OFF、AS Ready、AS Driving、AS Finished、AS Emergency 或 Manual Driving;无效或超过 500 ms 无反馈显示灰色“无人未知”。状态来自 VCU,不从任务、锁定、EBS 或灯色推断。 + +`0x183 / DLC 8` 版本 2:byte3 bit3 为 AS 有效标志,byte5 为状态 0..5(按上面顺序),byte6=0,byte7=2;其他字段位置不变。例 `02 01 01 0F 00 01 00 02` 表示直线加速、已锁定、AS Ready、EBS 正常。保留位和枚举错误整帧拒绝、不续期。旧版本 1 仍接收原三项,但 AS 立即未知。屏内新增 `as_state=0..5`(6 未知),串口命令仍使用真实 FF FF FF 结尾;全局变量在切页后保留,每 5 秒重同步。需配套包含 as_state 的新屏幕工程;480×272 AMI.HMI 与 800×480 工程均已加入 as_state;小屏 AS=5 显示“有人驾驶”。完整定义见 CAN DBC 说明的“VCU 状态反馈 0x183”。 + +本次源码、屏幕工程和构建产物的验证以 `docs/无人状态显示验证报告.md` 为准,历史烧录和联调记录不代表本次版本已下载到实物。 + +2026-10-07:v2.7 已烧录并完整回读程序区 16,672 字节一致,保留 128 KB 烧录前备份;CAN1 500K→MCU RAM→COM6 实际链路 37 项通过,实际串口驱动官方 HMI 调试器新增状态 16 项通过,含触摸请求→UART→MCU→CAN 0x300。实物串口屏、CAN2、真实 VCU 和车辆动作未测试。详见 [无人状态验收报告](docs/无人状态显示验证报告.md)。 diff --git a/docs/AMI_CAN_DBC说明.md b/docs/AMI_CAN_DBC说明.md index dbdff71..058b1be 100644 --- a/docs/AMI_CAN_DBC说明.md +++ b/docs/AMI_CAN_DBC说明.md @@ -1,6 +1,6 @@ # AMI CAN DBC 说明 -版本:`AMI-2.5-2026-10-04`。由 [AMI.dbc](../AMI.dbc) 自动生成,13 条报文、53 个信号。 +版本:`AMI-2.7-2026-10-07`。由 [AMI.dbc](../AMI.dbc) 自动生成,13 条报文、53 个信号。 ## 使用范围 @@ -15,9 +15,9 @@ DBC 的 `Baudrate` / `AMIPort` 分别标注所属总线。CAN1 DBC 含 13 条报 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` 任务请求和 `0x301` 周期心跳,以及 AMI 当前识别的 SDC / BMS 和自定义显示输入。SDC `0x6A3` DAC 控制、`0x6A5` ASSI 控制、BMS 其他电芯/故障字段不属于此接口子集。`0x182` 新增扭矩千分、电机温度和电机控制器 MCU 温度的仪表显示输入;发送者负责转换实际电机控制器协议。`0x183` 为新增 VCU 状态反馈,需 VCU 按此自定义接口发送;未定义标定后的车速。旧 `0x180 / 0x181 / 0x280` 输入已停用。 +本 DBC 包含 AMI 发送的 `0x300` 任务请求和 `0x301` 周期心跳,以及 AMI 当前识别的 SDC / BMS 和自定义显示输入。SDC `0x6A3` DAC 控制、`0x6A5` ASSI 控制、BMS 其他电芯/故障字段不属于此接口子集。`0x182` 新增扭矩千分、电机温度和电机控制器 MCU 温度的仪表显示输入;发送者负责转换实际电机控制器协议。`0x183` 为新增 VCU 状态反馈,需 VCU 按此自定义接口发送;车速取 SDC 双前轮轮速平均值。旧 `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`。 +SDC 字段依据 `SDC_ACQ_DAC.dbc` VERSION 1.1,核对远端 master 提交 `7bc2d9f1eaaf19814957037bd097cd879cbf4cbf`(2026-10-05),保持其信号名、位布局、缩放和单位;仅将输入接收节点设为 AMI。BMS 字段依据 [BmsMonitor-CANTest](https://git.acetaffy.ltd/acetaffy/BmsMonitor-CANTest) 提交 `e65c95203d1689df05343775982d7e85bd782646` 的 `BmsProtocolParser.cs`。 DBC 为 ASCII 编码,注释和枚举使用英文,便于导入 CAN 工具;本文为 UTF-8 中文。物理值 = 原始值 × Factor + Offset;`0x182` 的三个数值为有符号 int16,其他数值按表定义。下表范围为接口允许范围,不表示车辆正常工作范围。 @@ -42,14 +42,14 @@ DBC 为 ASCII 编码,注释和枚举使用英文,便于导入 CAN 工具; | CAN ID | 类型 | DLC | 报文名 | 方向和作用 | 周期 / 触发 | | --- | --- | --- | --- | --- | --- | | `0x182` | 标准 | 8 | `AMI_DrivetrainDisplay` | VCU / 测试器 -> AMI:扭矩千分、电机温度、MCU 温度 | 100 ms | -| `0x183` | 标准 | 8 | `AMI_VCUStatus` | VCU -> AMI:实际当前任务、锁定状态、EBS 状态 | 100 ms | +| `0x183` | 标准 | 8 | `AMI_VCUStatus` | VCU -> AMI:实际当前任务、锁定状态、无人状态、EBS 状态 | 100 ms | | `0x300` | 标准 | 8 | `AMI_TaskRequest` | AMI -> VCU:用户确认后的任务选择请求 | 确认任务触发 | | `0x301` | 标准 | 8 | `AMI_Heartbeat` | AMI -> VCU(仅 CAN1):版本、序号、运行时间 | 100 ms | | `0x6A0` | 标准 | 8 | `SDC_Heartbeat` | SDC -> AMI:板标识、版本、序号、上电时间 | 100 ms | | `0x6A1` | 标准 | 2 | `SDC_ADC_InputVoltage` | SDC -> AMI:低压电池电压,精确 DLC=2 | 500 ms | -| `0x6A2` | 标准 | 8 | `SDC_InputFrequencies` | SDC -> AMI:PA0 / PA2 / PA6 / PB14 原始频率 | 20 ms | +| `0x6A2` | 标准 | 4 | `SDC_WheelSpeed` | SDC -> AMI:左前 PA0 / 右前 PA6 已标定轮速 | 20 ms | | `0x6A4` | 标准 | 4 | `SDC_DAC_Ack` | SDC -> AMI:DAC 设置应答,识别但不显示 | DAC 设置后应答 | -| `0x6A6` | 标准 | 8 | `SDC_GPIO_Status` | SDC -> AMI:PD0..PD14 原始电平和变化掩码 | 启动 / 电平变化 | +| `0x6A6` | 标准 | 8 | `SDC_GPIO_Status` | SDC -> AMI:PD0..PD14 原始电平和变化掩码 | 1000 ms | | `0x140` | 标准 | 8 | `BMS_Status` | BMS -> AMI:高压总电压、带偏置的总电流 | 源协议未指定 | | `0x156` | 标准 | 8 | `BMS_Temperatures` | BMS -> AMI:八路实际温度,AMI 派生最高有效温度 | 源协议未指定 | | `0x186040F3` | 扩展 | 8 | `BMS_Status_Extended` | BMS -> AMI:高压总电压、总电流扩展帧别名 | 源协议未指定 | @@ -57,7 +57,7 @@ DBC 为 ASCII 编码,注释和枚举使用英文,便于导入 CAN 工具; 扩展帧在 DBC 的 `BO_` 十进制 ID 中设置 bit31:`0x186040F3 -> 2556444915`,`0x186140F3 -> 2556510451`。CAN 工具中使用实际 29 位仲裁 ID 并选择扩展帧;bit31 不是总线上发送的仲裁 ID。 -`GenMsgCycleTime` 填写已确认的 SDC 周期 100 / 500 / 20 ms,以及 `0x182`、`0x183` 和 `0x301` 的约定周期 100 ms。其余帧未填写周期,默认 0 表示未指定,不据此推断 BMS 周期。 +`GenMsgCycleTime` 填写已确认的 SDC 周期 100 / 500 / 20 / 1000 ms,以及 `0x182`、`0x183` 和 `0x301` 的约定周期 100 ms。其余帧未填写周期,默认 0 表示未指定,不据此推断 BMS 周期。 ## 信号布局 @@ -87,11 +87,13 @@ Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起 | `Task_Valid` | 24 | 1 | Intel | 1 | 0 | - | 0..1 | | `Lock_Valid` | 25 | 1 | Intel | 1 | 0 | - | 0..1 | | `EBS_Valid` | 26 | 1 | Intel | 1 | 0 | - | 0..1 | +| `AS_Valid` | 27 | 1 | Intel | 1 | 0 | - | 0..1 | | `Feedback_Sequence` | 32 | 8 | Intel | 1 | 0 | - | 0..255 | -| `Reserved` | 40 | 16 | Intel | 1 | 0 | - | 0(固定) | -| `Protocol_Version` | 56 | 8 | Intel | 1 | 0 | - | 1..1 | +| `AS_State` | 40 | 8 | Intel | 1 | 0 | - | 0..5 | +| `Reserved` | 48 | 8 | Intel | 1 | 0 | - | 0(固定) | +| `Protocol_Version` | 56 | 8 | Intel | 1 | 0 | - | 1..2 | -`Current_Task`:0 = None,1 = Skidpad,2 = Acceleration,3 = Autocross,4 = Inspection_Test,5 = EBS_Test,6 = Manual_Driving;`Locked`:0 = Unlocked,1 = Locked;`EBS_Normal`:0 = Fault,1 = Normal;`Task_Valid`:0 = Unknown,1 = Valid;`Lock_Valid`:0 = Unknown,1 = Valid;`EBS_Valid`:0 = Unknown,1 = Valid;`Protocol_Version`:1 = Version_1。 +`Current_Task`:0 = None,1 = Skidpad,2 = Acceleration,3 = Autocross,4 = Inspection_Test,5 = EBS_Test,6 = Manual_Driving;`Locked`:0 = Unlocked,1 = Locked;`EBS_Normal`:0 = Fault,1 = Normal;`Task_Valid`:0 = Unknown,1 = Valid;`Lock_Valid`:0 = Unknown,1 = Valid;`EBS_Valid`:0 = Unknown,1 = Valid;`AS_Valid`:0 = Unknown,1 = Valid;`AS_State`:0 = AS_OFF,1 = AS_Ready,2 = AS_Driving,3 = AS_Finished,4 = AS_Emergency,5 = Manual_Driving;`Protocol_Version`:1 = Legacy_Version_1,2 = Version_2。 ### 0x300 - AMI_TaskRequest @@ -131,14 +133,12 @@ Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起 | --- | --- | --- | --- | --- | --- | --- | --- | | `Input_Voltage` | 0 | 16 | Intel | 0.001 | 0 | V | 0..65.535 | -### 0x6A2 - SDC_InputFrequencies +### 0x6A2 - SDC_WheelSpeed | 信号 | Start | 位数 | 字节序 | Factor | Offset | 单位 | 编码范围 | | --- | --- | --- | --- | --- | --- | --- | --- | -| `Frequency_LeftFront_PA0` | 0 | 16 | Intel | 1 | 0 | Hz | 0..65535 | -| `Frequency_PA2` | 16 | 16 | Intel | 1 | 0 | Hz | 0..65535 | -| `Frequency_RightFront_PA6` | 32 | 16 | Intel | 1 | 0 | Hz | 0..65535 | -| `Frequency_PB14` | 48 | 16 | Intel | 1 | 0 | Hz | 0..65535 | +| `WheelSpeed_LeftFront_PA0` | 0 | 16 | Intel | 0.001 | 0 | m/s | 0..65.535 | +| `WheelSpeed_RightFront_PA6` | 16 | 16 | Intel | 0.001 | 0 | m/s | 0..65.535 | ### 0x6A4 - SDC_DAC_Ack @@ -195,6 +195,14 @@ Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起 `Maximum_Cell_Temperature`:255 = Invalid。 +## SDC 轮速与车速显示 0x6A2 + +2026-10-05 的 SDC master 将旧四路 Hz 改为双前轮已标定轮速:标准 Classic CAN 数据帧,DLC 必须为 4,每 20 ms 一帧。字节 0..1 为左前 PA0,字节 2..3 为右前 PA6,均为小端 uint16 mm/s(DBC 0.001 m/s)。SDC 已使用每圈 49 脉冲、轮周长 1414 mm,AMI 不再次标定。 + +AMI 用双前轮平均轮速作为仪表车速,转换为 km/h 后一次四舍五入:`dash.speed.val=((left_raw+right_raw)*9+2500)/5000`,全部采用 uint32 整数运算。有效时白色;超过 500 ms 没有合规轮速帧时保留历史值并变灰;新帧自动恢复。其他 SDC 心跳、GPIO、BMS 或 VCU 流量不延长车速有效期。旧 DLC 8、扩展、远程或 FD 帧拒绝。 + +该源未提供每轮有效标志,0 为有效停止读数,65535 为有效饱和值;不能据此判断传感器健康。SDC 超过 1 秒没有边沿会把对应轮速归零;AMI 仍会把持续收到的零作为有效数值。平均轮速不是 VCU 融合车速,单轮丢脉冲或打滑会影响显示。接收长度变更与旧固件不兼容,需配套 SDC 最新版本。 + ## 自定义动力显示输入 0x182 标准数据帧,DLC 必须为 8;CAN1 500K 或 CAN2 250K 均可接收,建议每 100 ms 发送。这是一条 AMI 仪表显示设置接口;扭矩千分以发送者定义的基准扭矩归一化,500 表示 500‰。MCU 温度由发送者提供,表示电机控制器 MCU / 逆变器温度,不是 AMI 芯片自动测温。 @@ -220,47 +228,58 @@ python scripts/send_drivetrain_can.py --interface pcan --channel PCAN_USBBUS1 -- ## VCU 状态反馈 0x183 -新增自定义标准数据帧,DLC 必须为 8,建议周期 100 ms;CAN1 500K 与 CAN2 250K 共用布局。只有该帧更新当前任务、锁定、EBS 主页面显示。AMI 发出任务请求后保留 VCU 上次反馈,等待新的实际状态。 +新增自定义标准数据帧,DLC 必须为 8,建议周期 100 ms;CAN1 500K 与 CAN2 250K 共用布局。v2.7 扩展此帧为版本 2,只有该帧更新当前任务、锁定、无人状态和 EBS 主页面显示。AMI 发出任务请求后保留 VCU 上次反馈,等待新的实际状态。 | 字节 | 字段 | 编码与规则 | | --- | --- | --- | | 0 | 当前任务 | 0 无;1 八字绕环;2 直线加速;3 高速循迹;4 车检测试;5 EBS 测试;6 手动驾驶 | | 1 | 锁定 | 0 已解锁(红);1 已锁定(绿) | | 2 | EBS 正常 | 0 故障(红底);1 正常(绿底) | -| 3 | 有效标志 | bit0 当前任务,bit1 锁定,bit2 EBS;1 有效,0 未知;bit3..7 为 0 | +| 3 | 有效标志 | bit0 当前任务,bit1 锁定,bit2 EBS,bit3 无人状态;1 有效,0 未知;bit4..7 为 0 | | 4 | 反馈计数 | 0..255,供观察;不去重,不作为请求 ACK | -| 5..6 | 保留 | 必须为 0 | -| 7 | 帧版本 | 固定 1 | +| 5 | 无人状态 | 0 AS OFF;1 AS Ready;2 AS Driving;3 AS Finished;4 AS Emergency;5 Manual Driving | +| 6 | 保留 | 必须为 0 | +| 7 | 帧版本 | 固定 2;旧版本 1 兼容规则见下文 | -例:`02 01 01 07 00 00 00 01` 表示当前直线加速、已锁定、EBS 正常。`00 00 00 07 01 00 00 01` 表示无任务、已解锁、EBS 故障。任务 1..6 为绿字,0 无任务为红字。各有效标志为 0 时,对应项立即灰色未知;连续超过 500 ms 无合规帧后三项均未知,其他 CAN 流量不能续期。错误 DLC、版本、枚举值、保留位或扩展/远程/FD 格式整帧拒绝,不改变状态、不续期。该反馈只驱动显示,EBS 安全动作及车辆任务裁决由 VCU 实现。 +例:`02 01 01 0F 00 01 00 02` 表示当前直线加速、已锁定、AS Ready、EBS 正常。`00 00 00 0F 01 00 00 02` 表示无任务、已解锁、AS OFF、EBS 故障。任务 1..6 为绿字,0 无任务为红字。各有效标志为 0 时,对应项立即灰色未知;连续超过 500 ms 无合规帧后四项均未知,其他 CAN 流量不能续期。错误 DLC、版本、枚举值、保留位或扩展/远程/FD 格式整帧拒绝,不改变状态、不续期。该反馈只驱动显示,EBS 安全动作及车辆任务裁决由 VCU 实现。 + +### 无人状态来源与兼容 + +状态语义依据用户提供 ASF 的 AMI 操作界面及 AS 状态描述。ASF 没有分配本帧的数值编码,上表 0..5 是 AMI 与 VCU 的自定义约定,VCU 需显式实现。Manual Driving 用于显示 ASF 的有人驾驶分支,不能由任务 6 自动推断。 + +主页面在已锁定/已解锁右侧显示独立状态:AS OFF 白色,AS Ready 黄色,AS Driving 黄色,AS Finished 蓝色,AS Emergency 红色,Manual Driving 绿色;未知灰色。文字不闪烁,颜色为仪表约定,不代替 ASSI 灯控制。 + +旧版本 1(byte7=01)仍接受原三项,要求 byte3 bit3..7=0、byte5=0、byte6=0,每次收到后无人状态立即置未知;不能保留上一条版本 2 的 AS 状态。旧 MCU 不能识别版本 2;新增状态需配套 v2.7 MCU 和包含 as_state 的屏幕工程。800×480 与 480×272 工程均已更新;小屏 AS=5 显示“有人驾驶”。任务、锁定、EBS 与 AS 独立反馈,AMI 不推断安全状态。 + +发送工具默认版本 2;指定 --as-state 时默认有效标志 15,未指定时为 7(AS 未知)。--valid 可单独清除各字段有效位;兼容预览可用 --version 1,不能同时指定 --as-state。 ### 当前任务发送对照 -下表第 1、2 字节均为 01,只用于展示已锁定、EBS 正常;VCU 必须填写实际状态。每条合规帧同时更新三项及其有效性,不能只改任务有效位而期望另外两项继续保留。 +下表第 1、2 字节均为 01,并且 byte5=01,只用于展示已锁定、AS Ready、EBS 正常;VCU 必须填写实际状态。每条合规帧同时更新四项及其有效性,不能只改任务有效位而期望其他项继续保留。 | 任务号 | 当前任务 | 标准 0x183 / DLC 8 数据 | | --- | --- | --- | -| 0 | 无(红) | `00 01 01 07 00 00 00 01` | -| 1 | 八字绕环 | `01 01 01 07 00 00 00 01` | -| 2 | 直线加速 | `02 01 01 07 00 00 00 01` | -| 3 | 高速循迹 | `03 01 01 07 00 00 00 01` | -| 4 | 车检测试 | `04 01 01 07 00 00 00 01` | -| 5 | EBS 测试 | `05 01 01 07 00 00 00 01` | -| 6 | 手动驾驶 | `06 01 01 07 00 00 00 01` | +| 0 | 无(红) | `00 01 01 0F 00 01 00 02` | +| 1 | 八字绕环 | `01 01 01 0F 00 01 00 02` | +| 2 | 直线加速 | `02 01 01 0F 00 01 00 02` | +| 3 | 高速循迹 | `03 01 01 0F 00 01 00 02` | +| 4 | 车检测试 | `04 01 01 0F 00 01 00 02` | +| 5 | EBS 测试 | `05 01 01 0F 00 01 00 02` | +| 6 | 手动驾驶 | `06 01 01 0F 00 01 00 02` | -任务未知通过 byte3 的 bit0=0 编码。例如 `00 01 01 06 00 00 00 01`显示任务未知、已锁定、EBS 正常;不要发送任务号 7,7 是屏内未知状态而不是 CAN 枚举。任务号、锁定、EBS 的数值范围始终校验,有效标志为 0 时也不能发送越界值。 +任务未知通过 byte3 的 bit0=0 编码。例如 `00 01 01 0E 00 01 00 02`显示任务未知、已锁定、AS Ready、EBS 正常;不要发送任务号 7,7 是屏内未知状态而不是 CAN 枚举。任务号、锁定、EBS、无人状态的数值范围始终校验,有效标志为 0 时也不能发送越界值。 发送顺序:AMI 确认按钮 -> UART 任务帧 -> MCU CAN `0x300` 请求 -> VCU 裁决 -> VCU 周期 CAN `0x183` 实际状态 -> AMI 显示。确认发送后可继续显示此前实际任务,直到 VCU 更新或反馈超时。 发送工具预览和实发示例: ```powershell -python scripts/send_vcu_status_can.py --task 2 --locked 1 --ebs-normal 1 --dry-run -python scripts/send_vcu_status_can.py --interface pcan --channel PCAN_USBBUS1 --bitrate 500000 --task 2 --locked 1 --ebs-normal 1 --duration 10 +python scripts/send_vcu_status_can.py --task 2 --locked 1 --ebs-normal 1 --as-state 1 --dry-run +python scripts/send_vcu_status_can.py --interface pcan --channel PCAN_USBBUS1 --bitrate 500000 --task 2 --locked 1 --ebs-normal 1 --as-state 1 --duration 10 # CAN2 改为 --bitrate 250000;Windows 适配器需要时添加 --dll-dir 指定 DLL 目录 ``` -屏内全局变量:`current_task=0..6`(7 未知)、`lock_state=0/1/2`、`ebs_state=0/1/2`(0 未知、1 绿、2 红)。MCU 更新这些变量,dash 后初始化和 100 ms 定时器更新文案、颜色和任务按钮;切页保留反馈。 +屏内全局变量:`current_task=0..6`(7 未知)、`lock_state=0/1/2`、`ebs_state=0/1/2`(0 未知、1 绿、2 红);`as_state=0..5`,6 未知。MCU 更新这些变量,dash 后初始化和 100 ms 定时器更新文案、颜色和任务按钮;切页保留反馈。 ## AMI 任务请求语义 @@ -281,6 +300,7 @@ python scripts/send_vcu_status_can.py --interface pcan --channel PCAN_USBBUS1 -- | 显示项 | 输入和显示规则 | 失效条件 | | --- | --- | --- | +| 车速 | `0x6A2 / DLC 4` 双前轮 uint16 mm/s 平均,`((左+右)*9+2500)/5000`,整数 km/h | 500 ms 无有效轮速帧;保留数字变灰 | | 低压电池 | `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 状态 | @@ -291,7 +311,7 @@ python scripts/send_vcu_status_can.py --interface pcan --channel PCAN_USBBUS1 -- 电流字段是带偏置的 uint16,不能按 int16 解码。温度原始 `0xFF` 为无效;DBC 枚举将其标为 Invalid。关闭枚举解码的工具可能显示 215,聚合时必须先排除 原始 255,不能把它当作 215 ℃。有效实际温度范围为 -40..214 ℃。第 9/10 路虚拟温度没有总线字段,最高温度也属于 MCU 派生结果,不新增虚构信号。 -BMS 扩展帧的其他字段没有纳入本 DBC,尤其字节 6..7 的低压电压不覆盖 SDC ADC。两类温度帧共用最高温度显示,后收到的温度帧更新该显示及有效性。SDC GPIO PD0..PD14 按顺序映射到 d0、d5、d2、d6、d7、d1、d3、d4、d8..d14;全部低电平正常、高电平故障,d15 无来源保持未知。心跳维持已有采样,用户最新纠正 PD1 / Safe_S 为左电机互锁(d5),屏幕已删除 BSPD/TSMS。心跳和 GPIO 均停止超过 500 ms 后全部未知,恢复需要新的 GPIO 采样;轮频 Hz 尚无周长和每圈脉冲数,不能直接当 km/h。 +BMS 扩展帧的其他字段没有纳入本 DBC,尤其字节 6..7 的低压电压不覆盖 SDC ADC。两类温度帧共用最高温度显示,后收到的温度帧更新该显示及有效性。SDC GPIO PD0..PD14 按顺序映射到 d0、d5、d2、d6、d7、d1、d3、d4、d8..d14;全部低电平正常、高电平故障,d15 无来源保持未知。心跳维持已有采样,用户最新纠正 PD1 / Safe_S 为左电机互锁(d5),屏幕已删除 BSPD/TSMS。心跳和 GPIO 均停止超过 500 ms 后全部未知,恢复需要新的 GPIO 采样;当前 0x6A6 每 1000 ms 上报一次,变化掩码累积期间变化;心跳继续维持已有采样。 有效值显示白色;未知、无效、超时显示深灰色,历史数值保留但不作为有效测量。各源独立超时,其他流量不续期。每 5 秒重新同步界面,刚连接需等待首轮同步。 @@ -300,11 +320,11 @@ BMS 扩展帧的其他字段没有纳入本 DBC,尤其字节 6..7 的低压电 | ID / DLC | 数据(十六进制) | 解码及仪表显示 | | --- | --- | --- | | `0x300 / 8` | `01 02 00 01 E8 03 00 00` | 直线加速请求、序号 0、来源 AMI、上电 1000 ms | -| `0x183 / 8` | `02 01 01 07 00 00 00 01` | 当前直线加速、已锁定、EBS 正常,三项有效 | +| `0x183 / 8` | `02 01 01 0F 00 01 00 02` | 当前直线加速、已锁定、AS Ready、EBS 正常,四项有效 | | `0x182 / 8` | `F4 01 C2 01 90 01 07 01` | 500‰、45.0 ℃、40.0 ℃,三个值有效 | | `0x182 / 8` | `0C FE 9B FF 33 FF 07 01` | -500‰、-10.1 ℃、-20.5 ℃;显示 -500 / -10 / -21 | | `0x6A1 / 2` | `0C 30` | ADC 12300 mV;低压 12.30 V | -| `0x6A2 / 8` | `32 00 64 00 96 00 C8 00` | PA0 / PA2 / PA6 / PB14:50 / 100 / 150 / 200 Hz | +| `0x6A2 / 4` | `10 27 F8 2A` | 左前 10.000 / 右前 11.000 m/s;平均 37.8 km/h,显示 38 | | `0x140 / 8` | `0F A0 14 03 00 00 00 05` | 400.0 V / +12.3 A;显示 400 / 12 | | `0x186040F3 / 8` 扩展 | `10 73 10 D1 00 00 00 05` | 421.1 V / -69.5 A;显示 421 / -70 | | `0x156 / 8` | `42 FF 43 47 37 0A 50 41` | 第二路无效,有效最高温度 40 ℃ | @@ -324,6 +344,6 @@ python scripts/verify_dbc.py --sdc-dbc ../SDC_ACQ_DAC/SDC_ACQ_DAC.dbc 校验覆盖严格 DBC 解析(长度、信号越界与重叠)、13 个 ID 与固件宏对应、标准/扩展格式、53 个信号、发送/接收节点、SDC / 自定义帧周期、已知报文解码、六个任务号与计数边界编码、大端偏置电流、无效温度枚举、全负温度和截短 DLC。已安装并验证 cantools 44.1.0,接口参考 [cantools 官方文档](https://cantools.readthedocs.io/en/latest/)。 -上述是静态及软件编解码验证,另校验两份 DBC 的速率、相同信号布局及源码 / CubeMX 位时序一致。v2.2 的烧录回读、新帧 CAN2 测试及串口显示核验状态见 [显示 CAN 测试报告](AMI自定义显示CAN测试报告.md)。v2.1 已完成烧录、完整 Flash 回读比对、CAN1 500K 与 CAN2 250K 到官方 HMI 调试器的实物测试,详见 [双 CAN 测试报告](CAN1_CAN2_v2.1测试报告.md)。之前 v2.0 的 CAN 盒 -> 实物 AMI CAN1 / MCU -> USART2 -> COM4 -> 官方 HMI 调试器的实际更新和六个任务回传见 [联调报告](SDC_BMS联调报告.md)。物理串口屏、真实 SDC/BMS 节点、两路同时接入和车辆执行动作尚未实测;文档生成和 DBC 解析不替代这些测试。 +上述是静态及软件编解码验证,另校验两份 DBC 的速率、相同信号布局及源码 / CubeMX 位时序一致。2026-10-07 v2.7 已完成 MCU 烧录及 16672 字节回读一致;真实 CAN1 / MCU / COM6 到大小屏官方模拟器的无人状态与触摸回传验收通过,见 [无人状态报告](无人状态显示验证报告.md) 与 [小屏报告](小屏无人状态验证报告.md)。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/SDC_BMS协议.md b/docs/SDC_BMS协议.md index 1c0044f..f685574 100644 --- a/docs/SDC_BMS协议.md +++ b/docs/SDC_BMS协议.md @@ -2,13 +2,13 @@ 2026-10-04:新增 AMI `0x301` 标准心跳帧(DLC 8),仅 CAN1(500 kbit/s)100 ms 一次,CAN2 不发送心跳,包含版本、uint16 序号和 uint32 运行毫秒值,小端。源码和 DBC 已更新,已烧录并全量回读一致;CAN1 实测 121 帧,间隔 99.952~100.180 ms。完整定义见 [DBC 说明](AMI_CAN_DBC说明.md)。 -版本 2.4,2026-10-03。CAN1 为 500 kbit/s,CAN2 为 250 kbit/s;两路均为 Classic CAN、87.5% 采样点,接收 ID、解码和任务发送功能相同,不转发原始帧。CAN1 使用 [AMI.dbc](../AMI.dbc),CAN2 使用 [AMI_CAN2_250k.dbc](../AMI_CAN2_250k.dbc)。当前固件不再接收旧 `0x180 / 0x181 / 0x280` 数据接口。 +版本 2.6,2026-10-05。CAN1 为 500 kbit/s,CAN2 为 250 kbit/s;两路均为 Classic CAN、87.5% 采样点,接收 ID、解码和任务发送功能相同,不转发原始帧。CAN1 使用 [AMI.dbc](../AMI.dbc),CAN2 使用 [AMI_CAN2_250k.dbc](../AMI_CAN2_250k.dbc)。当前固件不再接收旧 `0x180 / 0x181 / 0x280` 数据接口。 VCU 实际当前任务、锁定和 EBS 汇总显示由新增标准 `0x183 / DLC 8` 输入,独立超时 500 ms。任务按钮仅发送 0x300 请求,不更新实际任务;完整布局和颜色见 [VCU 反馈协议](AMI_CAN_DBC说明.md#vcu-状态反馈-0x183),验证边界见 [反馈报告](VCU状态反馈测试报告.md)。本页 SDC / BMS 采样与该 VCU 反馈独立。 v2.1 已通过源码 / CubeMX 位时序一致性检查及 Release 编译,已烧录并完整回读比对;CAN1 500K(SDC)与 CAN2 250K(BMS)分别通过数据更新、失效恢复和六个任务确认/取消测试,见 [双 CAN 测试报告](CAN1_CAN2_v2.1测试报告.md)。本文后面旧的实物联调引用属于两路均为 500K 的 v2.0。 -来源:`SDC_ACQ_DAC/SDC_ACQ_DAC.dbc` VERSION 1.1;[BmsMonitor-CANTest](https://git.acetaffy.ltd/acetaffy/BmsMonitor-CANTest) 的 `BmsMonitor.App/Protocol/BmsProtocolParser.cs`,核对提交 `e65c95203d1689df05343775982d7e85bd782646`,本机核对副本保存在 `tmp/BmsMonitor-CANTest`(不提交);远端来源使用上述仓库及提交号定位。 +来源:`SDC_ACQ_DAC/SDC_ACQ_DAC.dbc` VERSION 1.1,核对远端 master 提交 `7bc2d9f1eaaf19814957037bd097cd879cbf4cbf`(2026-10-05);[BmsMonitor-CANTest](https://git.acetaffy.ltd/acetaffy/BmsMonitor-CANTest) 的 `BmsMonitor.App/Protocol/BmsProtocolParser.cs`,核对提交 `e65c95203d1689df05343775982d7e85bd782646`,本机核对副本保存在 `tmp/BmsMonitor-CANTest`(不提交);远端来源使用上述仓库及提交号定位。 ## SDC 输入 @@ -16,13 +16,13 @@ v2.1 已通过源码 / CubeMX 位时序一致性检查及 Release 编译,已 | --- | --- | --- | | `0x6A0 / 8` | `A1 01` + 小端 uint16 序号 + 小端 uint32 上电 ms | 校验标识和版本,刷新 SDC 心跳 | | `0x6A1 / 2` | 小端 uint16 mV | **低压电池电压**,`dash.lvbat.val=(mV+5)/10`,虚拟浮点显示两位小数 | -| `0x6A2 / 8` | 四个小端 uint16 Hz,PA0 / PA2 / PA6 / PB14 | 保存原始频率;没有周长和每圈脉冲数,不直接当 km/h | +| `0x6A2 / 4` | 两个小端 uint16 mm/s,左前 PA0 / 右前 PA6 | 双前轮平均值换算整数 km/h,更新 `dash.speed.val`;独立超时 500 ms | | `0x6A4 / 4` | 结果、DAC 选择、小端 uint16 mV | 接收应答,不作为仪表电压 | | `0x6A6 / 8` | 小端 uint16 PD0..PD14 电平 + uint16 变化掩码 + uint32 ms | 保存原始电平、变化和时间,并按下表更新 DEBUG | `0x6A3` DAC 设置和 `0x6A5` ASSI 设置是发给 SDC 的控制,不属于本次显示输入。ADC 已由 SDC 校准为分压前物理输入电压,AMI 不再乘分压倍数。`08 20` = 8200 mV = 8.20 V;`0C 30` = 12300 mV = 12.30 V。DLC 必须为 2。 -GPIO 帧仅在启动和电平变化时发送,持续心跳维持已有采样。用户已确认按接线表从上到下对应 PD0~PD14,且全部低电平正常、高电平故障。映射如下(这是输入位序,屏幕变量编号保持原定义): +GPIO 帧每 1000 ms 发送,变化掩码累积上个周期内的变化;持续心跳维持已有采样。用户已确认按接线表从上到下对应 PD0~PD14,且全部低电平正常、高电平故障。映射如下(这是输入位序,屏幕变量编号保持原定义): | 输入 | 信号 | 屏幕变量 | | --- | --- | --- | @@ -57,7 +57,15 @@ MCU 内保存 0.1 V / 0.1 A 原始精度,仅显示层四舍五入。例 `0F A0 最高温度只取前八个实际通道,不能把 BmsMonitor 补出的第 9/10 路纳入最大值。`42 FF 43 47 37 0A 50 41` 的最大温度为 40 ℃。全为 `FF` 时立即失效。 -BmsMonitor 没有电机或逆变器温度协议;`dash.djwd` / `dash.mcuwd` 保持无效。扭矩和车速也缺少可直接使用的单位映射,保持无效。 +BmsMonitor 没有电机或逆变器温度协议;扭矩、电机及 MCU 温度由自定义 `0x182` 输入。车速由最新 SDC `0x6A2 / DLC 4` 输入,详见下节。 + +## 车速显示 + +SDC 已按每圈 49 脉冲、轮周长 1414 mm 将输入换算为 mm/s;AMI 不再做轮径标定。仪表采用双前轮平均轮速:`dash.speed.val=((左前_mm_s+右前_mm_s)*9+2500)/5000`,对应平均 m/s × 3.6,四舍五入到整数 km/h。 + +例如标准 `0x6A2`、DLC 4、数据 `10 27 F8 2A` 表示左前 10.000 m/s、右前 11.000 m/s;平均 37.8 km/h,显示白色 38。超过 500 ms 无合规轮速帧,保留数字变灰;新帧恢复。旧四路 Hz 的 DLC 8 帧拒绝且不续期。 + +SDC 未提供每轮有效标志或无效哨兵:0 是有效停止值,65535 是有效饱和值。SDC 超过 1 秒没有边沿会把对应轮速归零,AMI 无法区分停车和传感器断线;该显示是平均轮速,不是 VCU 融合车速。 ## 有效性与刷新 @@ -67,6 +75,7 @@ BmsMonitor 没有电机或逆变器温度协议;`dash.djwd` / `dash.mcuwd` 保 - SDC ADC 独立超时 1500 ms。 - BMS 电压/电流独立超时 2000 ms。 +- 车速独立超时 500 ms;SDC 心跳/GPIO、BMS、VCU 流量不能续期。 - BMS 最高温度独立超时 2000 ms;全通道无效时立即失效。 - 其他源的流量不会延长上述计时;有效报文恢复后自动转白。 - 只对数值或有效性变化排队,字段轮转和 UART DMA 发送最新值,避免高频字段阻塞其他字段。 @@ -94,3 +103,11 @@ PA0 LED 每 500 ms 翻转,PA1 为仪表/SDC 状态活动超时提示,默认 同时发送 SDC 20 ms 频率、100 ms 心跳、500 ms ADC 和 BMS 报文,验证标准/扩展 BMS、负电流、无效温度、独立超时、恢复、错误 DLC 和旧 ID 拒绝。原始帧、截图和 SWD 快照见 [发布的发送记录](evidence/2026-10-03/sdc-bms/sdc_bms_visual_results.json)。 上述 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 文案不能作为安全状态证明。 + +## 2026-10-07 无人状态显示 v2.7 + +按 ASF 补充独立无人状态,800×480 主页面在“已锁定/已解锁”右侧显示 AS OFF、AS Ready、AS Driving、AS Finished、AS Emergency 或 Manual Driving;无效或超过 500 ms 无反馈显示灰色“无人未知”。状态来自 VCU,不从任务、锁定、EBS 或灯色推断。 + +`0x183 / DLC 8` 版本 2:byte3 bit3 为 AS 有效标志,byte5 为状态 0..5(按上面顺序),byte6=0,byte7=2;其他字段位置不变。例 `02 01 01 0F 00 01 00 02` 表示直线加速、已锁定、AS Ready、EBS 正常。保留位和枚举错误整帧拒绝、不续期。旧版本 1 仍接收原三项,但 AS 立即未知。屏内新增 `as_state=0..5`(6 未知),串口命令仍使用真实 FF FF FF 结尾;全局变量在切页后保留,每 5 秒重同步。需配套包含 as_state 的新屏幕工程;480×272 AMI.HMI 与 800×480 工程均已加入 as_state;小屏 AS=5 显示“有人驾驶”。完整定义见 CAN DBC 说明的“VCU 状态反馈 0x183”。 + +本次源码、屏幕工程和构建产物的验证以 `docs/无人状态显示验证报告.md` 为准,历史烧录和联调记录不代表本次版本已下载到实物。 diff --git a/docs/SDC轮速接入验证报告.md b/docs/SDC轮速接入验证报告.md new file mode 100644 index 0000000..2bc0d73 --- /dev/null +++ b/docs/SDC轮速接入验证报告.md @@ -0,0 +1,96 @@ +# SDC 轮速接入验证报告 + +日期:2026-10-05。AMI CAN 接口 v2.6,屏幕接口保持 1.4。 + +## 协议来源 + +本次从 [SDC_ACQ_DAC](https://git.acetaffy.ltd/acetaffy/SDC_ACQ_DAC) 的远端 `master` 取得提交 `7bc2d9f1eaaf19814957037bd097cd879cbf4cbf`,与本机 `D:\YMR\SDC_ACQ_DAC` 的 HEAD 一致。该仓库 `main` 是较早的初始提交,当前固件开发分支为 `master`。核对 `SDC_ACQ_DAC.dbc`、`Src/main.c` 及 README;源仓库工作树未修改。 + +SDC DBC 的 VERSION 仍为 1.1,但 `0x6A2` 布局已经改变,须通过提交号定位版本。核对副本保存在 [来源 DBC](evidence/2026-10-05/wheel-speed/SDC_ACQ_DAC.dbc),来源与构建哈希见 [记录](evidence/2026-10-05/wheel-speed/source-and-build.json)。 + +| 项目 | 最新 SDC 定义 | +| --- | --- | +| ID / 类型 / 长度 | 标准 `0x6A2`,Classic CAN 数据帧,DLC 4 | +| 字节 0..1 | 左前 PA0/TIM5_CH1,小端 uint16,原始 mm/s | +| 字节 2..3 | 右前 PA6/TIM3_CH1,小端 uint16,原始 mm/s | +| 发送周期 | 20 ms | +| 标定 | SDC 已按每圈 49 脉冲、轮周长 1414 mm 换算 | +| 无边沿 | SDC 超过 1 秒无边沿时将该轮轮速归零 | +| 有效标志 | 没有每轮有效标志或无效哨兵;65535 是饱和值 | + +同时同步两份 AMI DBC 中 `0x6A6` 的 1000 ms 周期说明。其电平布局不变,原有心跳维持 GPIO 快照、超时清未知的处理仍适用。 + +## AMI 显示行为 + +AMI 取两前轮轮速的算术平均值作为仪表车速,换算后四舍五入至整数 km/h: + +```text +平均轮速(m/s) = (左前_raw + 右前_raw) / 2000 +车速(km/h) = 平均轮速(m/s) × 3.6 +dash.speed.val = ((左前_raw + 右前_raw) × 9 + 2500) / 5000 +``` + +实现采用 uint32 整数运算,先平均和换算,再取整;SDC 已完成轮速标定,AMI 不重复应用周长和脉冲数。 + +标准 `0x6A2 / DLC 4` 发送 `10 27 F8 2A`:左前 10.000 m/s、右前 11.000 m/s,平均 37.8 km/h,UART 输出 `dash.speed.val=38` 与有效白色 `dash.speed.pco=65535`。每条 ASCII 指令末尾为三个真实 `FF FF FF` 字节,使用原有 USART2 9600 8N1 TX DMA、变化排队及最新值合并。 + +超过 500 ms 无合规轮速帧时,数字保留并变灰(`pco=16904`);在 500 ms 边界仍有效,501 ms 时失效。SDC 心跳/GPIO、ADC、BMS 和 VCU 流量不能续期。新帧自动恢复白色,即使数值与历史值相同也会重新发送。初始为灰色 0;持续有效的零轮速帧显示白色 0。 + +旧 `0x6A2 / DLC 8` 四路 Hz 报文、其他错误长度、扩展帧、远程帧和 FD 帧均拒绝,不覆盖数值、不刷新轮速超时。需要与最新 SDC 固件配套。 + +## 已完成验证 + +Debug、Release 构建均通过,本次编译无警告。Release BIN 为 16632 字节,RAM 使用 2656 字节。当前 [发布 BIN](../output/firmware/AMI_Controller.bin) 的 SHA-256: + +```text +ac5cff0bd3a9e06499f2ebf4186863625ba8c664dcab67309f14acb7d83acabd +``` + +修改前的发布 BIN 已保存在 [v2.5 归档](../output/firmware/AMI_Controller_v2.5_500k_250k.bin)。 + +两份 DBC 严格解析通过,CAN1 为 13 条报文/51 个信号、CAN2 为 12 条报文/47 个信号;87 组已知报文检查通过,五条 SDC 输入的长度、位布局、单位、缩放和范围与最新来源 DBC 一致。源码/CubeMX 位时序一致性、CAN2 生成文件及 Markdown 文档一致性检查通过,见 [DBC 结果](evidence/2026-10-05/wheel-speed/dbc-checks.json)。 + +使用 Unicorn 执行本次编译的 Debug 和 Release ELF 中实际 ARM 指令,模拟 CAN RX 回调和主循环;HAL 时钟、GPIO、CAN FIFO 与 UART DMA 由测试环境替代。验证覆盖: + +- 两路 CAN 各 9 组停止、非对称轮速、取整边界和最大饱和值;原始两轮值保留。 +- 8 类异常长度/格式/历史帧,不覆盖数值且不延长超时。 +- 500/501 ms 失效边界、上电 tick=0 和 uint32 毫秒回绕。 +- 无关 SDC/BMS/VCU 流量不能续期;同值恢复及有效零显示。 +- 实际 UART 输出的数值、白/灰颜色以及三个 `0xFF` 结束字节。 + +原始结果见 [固件仿真记录](evidence/2026-10-05/wheel-speed/firmware-emulation.json)。这验证了实际固件指令的逻辑,不证明物理 CAN、UART 或屏幕行为。 + +CAN 说明 PDF 已按 v2.6 更新,17 页使用 Poppler 渲染并检查,轮速布局、换算和样例已核对。 + +## 复现 + +先按 [固件 README](../firmware/README.md#构建) 构建 Debug 和 Release,然后在仓库根目录运行: + +```powershell +python -m pip install -r scripts/requirements.txt -r scripts/requirements-test.txt +python scripts/verify_dbc.py --sdc-dbc docs/evidence/2026-10-05/wheel-speed/SDC_ACQ_DAC.dbc +python scripts/export_dbc_docs.py --check +python scripts/verify_wheel_speed_firmware.py +``` + +## 验证边界 + +2026-10-05 的开发验证未烧录 MCU;2026-10-06 已完成下面记录的烧录和回读。本次仍未进行真实 SDC 到 AMI 的 CAN 联调或物理串口屏测试,未提交或推送 Git。历史 v2.5 及更早实测记录不等于本次轮速版本已通过实物验证。 + +此显示是平均前轮轮速,不是 VCU 融合车速;SDC 没有每轮有效性,单轮丢脉冲或打滑会影响显示。接收到零轮速只能说明源帧提供了零值,不能区分停车和传感器故障。 + +## 2026-10-06 烧录与回读 + +按用户指令将已验证的 v2.6 发布 BIN 烧录到 `0x08000000`。烧录前核对应用源码、协议头、两份 DBC 和 BIN 的 SHA-256,均与 2026-10-05 的验证记录一致,没有重新生成不同版本。 + +ST-LINK 序列号 `37FF71064E573436188C1543`;SWD 识别 Device ID `0x467`、STM32G0B0xx/B1xx/C1xx 系列、128 KB Flash、Cortex-M0+,目标电压 3.24 V。芯片系列和容量与 AMI 目标一致,SWD 不能单独确认封装完整丝印。 + +烧录前通过 SWD 读取并保存完整 128 KB Flash 到 [备份](evidence/2026-10-06/wheel-speed-flash/before-flash-128k.bin)。Under Reset 写入,CubeProgrammer 返回 `Download verified successfully`。随后 Hot Plug 读取全部 16632 字节并逐字节比较,结果与发布 BIN 完全一致,SHA-256 为本报告列出的 `ac5cff0b...d83acabd`。最后执行软件复位,日志确认 `Software reset is performed`。 + +- [烧录与回读结果](evidence/2026-10-06/wheel-speed-flash/flash-verified.json) +- [烧录日志](evidence/2026-10-06/wheel-speed-flash/flash.log) +- [Flash 回读](evidence/2026-10-06/wheel-speed-flash/flash-readback.bin) +- [回读日志](evidence/2026-10-06/wheel-speed-flash/flash-readback.log) +- [最终复位日志](evidence/2026-10-06/wheel-speed-flash/reset.log) + +烧录校验、Flash 回读和复位已完成;这不替代真实 SDC/CAN/UART/物理屏幕的轮速功能联调。 diff --git a/docs/TJC8048X370移植说明.md b/docs/TJC8048X370移植说明.md new file mode 100644 index 0000000..bb14154 --- /dev/null +++ b/docs/TJC8048X370移植说明.md @@ -0,0 +1,59 @@ +# TJC8048X370_011 移植说明 + +日期:2026-10-07。 + +本版本将 AMI 的 480×272 界面适配至 TJC8048X370_011(X3 系列、7 寸、800×480)。原工程 `AMI.HMI` 保留,新工程为根目录的 `AMI_TJC8048X370_011.HMI`。 + +## 工程与资源 + +- 编辑器:USART HMI 1.68.1.3037。 +- 页面:`dash`、`debug`、`CONFIRM`。 +- 字库 ID 2:32 像素、GB2312 中文;用于任务按钮、状态与参数。 +- 字库 ID 3:96 像素、ASCII;用于车速数字。 +- 字库 ID 4:24 像素、GB2312 中文;用于 DEBUG 回路框中的长标签。 +- 绘图脚本另存于 `scripts/hmi/TJC8048X370_011/`,原 480×272 脚本保留。 + +主页面保留左侧六个任务按钮、中间车速及 VCU 实际任务/锁定状态、右侧车辆参数及 EBS 状态。DEBUG 保留原回路顺序和十五路映射,坐标与文字区域按新分辨率调整。确认页按钮和触摸范围同步放大。 + +## MCU 接口 + +保留现有控件名称、ID、作用域、数值缩放及定时器参数。换屏本身不要求修改 MCU 固件。 + +- 串口:9600、8N1,`recmod=0`。 +- MCU → 屏幕:原 ASCII 属性指令,末尾三个真实字节 `FF FF FF`。 +- 屏幕 → MCU:确认任务后输出 `AA 55 01 NN 0D 0A`,`NN=01..06`;取消不发送任务帧。 +- `dash.lvbat.val=1260` 仍表示 12.60 V。 +- DEBUG `d0..d15` 仍使用 0=未知、1=正常、2=故障。 +- 确认发送只提出任务请求,实际任务仍由 VCU 状态反馈更新。 + +CAN 协议和信号单位继续以当前 DBC 与 `通讯交接文档.md` 为准。 + +## 下载与实物验收 + +下载文件为 [`AMI_TJC8048X370_011.tft`](../output/hmi/AMI_TJC8048X370_011.tft)。将此 `.tft` 下载至对应屏幕。先按屏幕完整型号及规格书确认供电、触摸版本和 UART 电平/接口模式,再连接 MCU;工程型号选择不证明实际接线正确。 + +实物验收应检查:上电页面、六个任务按钮确认/取消、DEBUG 入口/返回、跨页数值更新、正常/故障/未知转换、低压电压小数、车速与状态反馈、重连恢复。模拟器结果只证明模拟界面和脚本行为,不能代替实物 UART、触摸及时延验证。 + +## 初始移植验证结果 + +- 编译通过:0 错误、0 警告,TFT 大小 8,862,596 字节。 +- 属性回读通过:控件 ID、名称、作用域、数值缩放、定时器参数和确认事件保持原接口,控件均在 800×480 范围内。 +- 模拟器触摸验证通过:六个任务分别回传 `AA 55 01 01..06 0D 0A`,取消无任务帧,确认请求不改变 VCU 实际任务。 +- 模拟器跨页验证通过:在 DEBUG 页更新 `dash.lvbat.val=1185` 和 `current_task=6`,触摸返回后显示 11.85 V、手动驾驶;数值查询与页 ID 回传正确。 +- DEBUG 的未知/正常/故障三种状态均完成截图及各状态控件像素颜色检查;长标签与底部状态完整可见。主页面数值、任务/锁定/EBS 状态和确认页完成视觉检查。 +- 原始 `AMI.HMI` 的 SHA-256 与移植前一致。新 HMI 和 TFT 哈希见下方清单。 +- 尚未下载至实物屏幕,实物 UART、触摸及时延待验收。 + +证据目录:[`docs/evidence/2026-10-07/tjc8048-migration/`](evidence/2026-10-07/tjc8048-migration/),包含 [编译日志](evidence/2026-10-07/tjc8048-migration/compile-final.log)、[模拟器记录](evidence/2026-10-07/tjc8048-migration/simulator-results.json)、[文件清单与哈希](evidence/2026-10-07/tjc8048-migration/manifest.json)、属性回读和页面截图。 + +![主页面模拟效果](evidence/2026-10-07/tjc8048-migration/dash-sample.png) + +![DEBUG 正常状态模拟效果](evidence/2026-10-07/tjc8048-migration/debug-normal.png) + +## 2026-10-07 无人状态扩展 + +当前 800×480 工程的屏幕接口升级为 1.5。在锁定状态右侧增加无人状态;`sd` 调整为宽 115、24 像素字库 ID 4,新增状态由 `xstr` 在 x=330、y=379、w=174、h=53 区域绘制,不改变原控件 ID。全局变量 `as_state` 上电为 6(未知),0..5 分别为 AS OFF、AS Ready、AS Driving、AS Finished、AS Emergency、Manual Driving。后初始化与 100 ms 定时器按变化更新,切页后重绘。 + +新增状态需要配套 v2.7 MCU 的 `0x183` 版本 2 解码;初始移植的“换屏不要求修改 MCU”仅适用于未增加状态的原接口。最新版 HMI/TFT 与初始移植哈希不同;当前 TFT 为 8,863,680 字节,编译 0 错误、0 警告。六种状态、未知、跨页恢复、任务确认保留实际状态均通过官方模拟器检查,详情及当前哈希见 [无人状态验证报告](无人状态显示验证报告.md)。实物屏幕尚未下载。 + +![新增无人状态模拟效果](evidence/2026-10-07/as-status/dash-as-ready-sample.png) diff --git a/docs/evidence/2026-10-05/wheel-speed/SDC_ACQ_DAC.dbc b/docs/evidence/2026-10-05/wheel-speed/SDC_ACQ_DAC.dbc new file mode 100644 index 0000000..b1887d5 --- /dev/null +++ b/docs/evidence/2026-10-05/wheel-speed/SDC_ACQ_DAC.dbc @@ -0,0 +1,84 @@ +VERSION "1.1" + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BS_: + +BU_: SDC_ACQ_DAC VehicleController + +BO_ 1696 SDC_Heartbeat: 8 SDC_ACQ_DAC + SG_ Board_Identifier : 0|8@1+ (1,0) [0|255] "" VehicleController + SG_ Protocol_Version : 8|8@1+ (1,0) [0|255] "" VehicleController + SG_ Heartbeat_Sequence : 16|16@1+ (1,0) [0|65535] "" VehicleController + SG_ Uptime : 32|32@1+ (0.001,0) [0|4294967.295] "s" VehicleController + +BO_ 1697 SDC_ADC_InputVoltage: 2 SDC_ACQ_DAC + SG_ Input_Voltage : 0|16@1+ (0.001,0) [0|65.535] "V" VehicleController + +BO_ 1698 SDC_WheelSpeed: 4 SDC_ACQ_DAC + SG_ WheelSpeed_LeftFront_PA0 : 0|16@1+ (0.001,0) [0|65.535] "m/s" VehicleController + SG_ WheelSpeed_RightFront_PA6 : 16|16@1+ (0.001,0) [0|65.535] "m/s" VehicleController + +BO_ 1699 SDC_DAC_Set: 3 VehicleController + SG_ DAC_Select : 0|8@1+ (1,0) [1|2] "" SDC_ACQ_DAC + SG_ DAC_Command_Voltage : 8|16@1+ (0.001,0) [0|5] "V" SDC_ACQ_DAC + +BO_ 1700 SDC_DAC_Ack: 4 SDC_ACQ_DAC + SG_ DAC_Set_Result : 0|8@1+ (1,0) [0|1] "" VehicleController + SG_ DAC_Select : 8|8@1+ (1,0) [1|2] "" VehicleController + SG_ DAC_Output_Voltage : 16|16@1+ (0.001,0) [0|5] "V" VehicleController + +BO_ 1701 ASSI_Lamp_Set: 1 VehicleController + SG_ ASSI_State : 0|8@1+ (1,0) [0|4] "" SDC_ACQ_DAC + +BO_ 1702 SDC_GPIO_Status: 8 SDC_ACQ_DAC + SG_ SDC_Input_State : 0|15@1+ (1,0) [0|32767] "" VehicleController + SG_ SDC_Changed_Mask : 16|15@1+ (1,0) [0|32767] "" VehicleController + SG_ Timestamp : 32|32@1+ (0.001,0) [0|4294967.295] "s" VehicleController + +VAL_ 1696 Board_Identifier 161 "A11_F407" ; +VAL_ 1699 DAC_Select 1 "DAC1" 2 "DAC2" ; +VAL_ 1700 DAC_Set_Result 0 "Failed" 1 "OK" ; +VAL_ 1700 DAC_Select 1 "DAC1" 2 "DAC2" ; +VAL_ 1701 ASSI_State 0 "AS_OFF" 1 "AS_READY" 2 "AS_DRIVING" 3 "AS_EMERGENCY" 4 "AS_FINISHED" ; + +CM_ BO_ 1696 "Standard ID 0x6A0. Sent every 100 ms on CAN1 and CAN2."; +CM_ BO_ 1697 "Standard ID 0x6A1. Filtered and calibrated physical input voltage before the hardware divider."; +CM_ BO_ 1698 "Standard ID 0x6A2. Sent every 20 ms with two wheel speeds: left-front PA0 then right-front PA6. Raw value is mm/s (physical scale 0.001 m/s), derived from 49 pulses/rev and 1414 mm wheel circumference."; +CM_ BO_ 1699 "Standard ID 0x6A3. Accepted on CAN1 and CAN2. The on-wire voltage is an unsigned mV value. Each DAC is reset to 0 mV if its own control frame is not received again within 100 ms."; +CM_ BO_ 1700 "Standard ID 0x6A4. Sent on CAN1 and CAN2 after a DAC command. Result 0 indicates the I2C write failed."; +CM_ BO_ 1701 "Standard ID 0x6A5. Accepted on CAN1 and CAN2. Byte 0 selects the latched ASSI RGB lamp state: AS_OFF, AS_READY, AS_DRIVING, AS_EMERGENCY, or AS_FINISHED."; +CM_ BO_ 1702 "Standard ID 0x6A6. Sent every 1000 ms on CAN1 and CAN2. Changed-mask bits accumulate PD0-PD14 transitions since the preceding report."; +CM_ SG_ 1696 Board_Identifier "Fixed board identifier 0xA1."; +CM_ SG_ 1698 WheelSpeed_LeftFront_PA0 "Left-front wheel speed. TIM5_CH1 input capture on PA0; 49 pulses/rev and 1414 mm circumference."; +CM_ SG_ 1698 WheelSpeed_RightFront_PA6 "Right-front wheel speed. TIM3_CH1 input capture on PA6; 49 pulses/rev and 1414 mm circumference."; +CM_ SG_ 1702 SDC_Input_State "Bit 0 through bit 14 map directly to PD0 through PD14."; +CM_ SG_ 1702 SDC_Changed_Mask "A set bit identifies an input that changed during the preceding 1000 ms reporting interval."; diff --git a/docs/evidence/2026-10-05/wheel-speed/dbc-checks.json b/docs/evidence/2026-10-05/wheel-speed/dbc-checks.json new file mode 100644 index 0000000..b8ada8d --- /dev/null +++ b/docs/evidence/2026-10-05/wheel-speed/dbc-checks.json @@ -0,0 +1,18 @@ +{ + "result": "passed", + "messages": 13, + "signals": 51, + "known_payload_checks": 87, + "all_task_ids_and_counter_edges": true, + "ports_bitrate": { + "CAN1": 500000, + "CAN2": 250000 + }, + "shared_dbc_layouts_and_payloads_match": true, + "heartbeat_can1_only": true, + "firmware_and_ioc_bit_timing_match": true, + "firmware_ids_match": true, + "sdc_source_layout_match": true, + "display_sender_known_bytes_and_argument_rejection": true, + "cantools_version": "44.1.0" +} diff --git a/docs/evidence/2026-10-05/wheel-speed/firmware-emulation.json b/docs/evidence/2026-10-05/wheel-speed/firmware-emulation.json new file mode 100644 index 0000000..8d4d704 --- /dev/null +++ b/docs/evidence/2026-10-05/wheel-speed/firmware-emulation.json @@ -0,0 +1,30 @@ +[ + { + "elf": "firmware\\build\\Debug\\AMI_Controller.elf", + "sha256": "cd3d9ce38757938a9ba898dd9f41dadbb0ee3b484e6de847d26b4c58be2f2d71", + "result": "passed", + "checks": [ + "boot unknown speed: grey zero, UART terminator verified", + "CAN1: 9 zero, asymmetric, rounding and saturation vectors", + "CAN2: 9 zero, asymmetric, rounding and saturation vectors", + "8 invalid DLC/format/legacy frames reject without overwriting or refreshing expiry", + "unrelated SDC/BMS/VCU traffic cannot renew; same-value recovery and white zero work", + "tick zero and uint32 wrap: independent timeout boundary works" + ], + "evidence": "ARM emulation with mocked HAL, not physical CAN/HMI" + }, + { + "elf": "firmware\\build\\Release\\AMI_Controller.elf", + "sha256": "4fd3023757769d6cf5ae7bc81f277082abbc4c3db77d779684d536707a206d08", + "result": "passed", + "checks": [ + "boot unknown speed: grey zero, UART terminator verified", + "CAN1: 9 zero, asymmetric, rounding and saturation vectors", + "CAN2: 9 zero, asymmetric, rounding and saturation vectors", + "8 invalid DLC/format/legacy frames reject without overwriting or refreshing expiry", + "unrelated SDC/BMS/VCU traffic cannot renew; same-value recovery and white zero work", + "tick zero and uint32 wrap: independent timeout boundary works" + ], + "evidence": "ARM emulation with mocked HAL, not physical CAN/HMI" + } +] diff --git a/docs/evidence/2026-10-05/wheel-speed/source-and-build.json b/docs/evidence/2026-10-05/wheel-speed/source-and-build.json new file mode 100644 index 0000000..5cb1ed6 --- /dev/null +++ b/docs/evidence/2026-10-05/wheel-speed/source-and-build.json @@ -0,0 +1,20 @@ +{ + "sdc_remote": "https://git.acetaffy.ltd/acetaffy/SDC_ACQ_DAC.git", + "branch": "master", + "commit": "7bc2d9f1eaaf19814957037bd097cd879cbf4cbf", + "verified_on": "2026-10-05", + "source_dbc_sha256": "3ec8f4bf25e4255265113752aba3c10e3d5f98291ae32e75a795130c3f3c2567", + "release_bin_bytes": 16632, + "ram_bytes": 2656, + "files": { + "firmware/Core/Src/ami_app.c": "397717546de6423872c3147aab3155bae483c722a759f5639628b957ca285057", + "firmware/Core/Inc/ami_protocol.h": "95c7ef20aa1101071acf0a57ae049e7f9c0b453d24cb9a377bb8ad2754ebac16", + "AMI.dbc": "843c2f59ee642b2ad047ca410474833c4cbce2c2708663f428d35e5a63c720c8", + "AMI_CAN2_250k.dbc": "4d7a1b887ca037f859f25e0ad34d88498fed99d0af57587fb1033d2f06e5fec7", + "output/firmware/AMI_Controller.bin": "ac5cff0bd3a9e06499f2ebf4186863625ba8c664dcab67309f14acb7d83acabd", + "output/firmware/AMI_Controller_v2.5_500k_250k.bin": "a772bd9d1a278ed061b659e7996d276ebfa59fcc65260d0c7fc8a34f67bf0293" + }, + "flash_performed": false, + "physical_can_test_performed": false, + "physical_hmi_test_performed": false +} diff --git a/docs/evidence/2026-10-06/wheel-speed-flash/before-flash-128k.bin b/docs/evidence/2026-10-06/wheel-speed-flash/before-flash-128k.bin new file mode 100644 index 0000000..770b4fc Binary files /dev/null and b/docs/evidence/2026-10-06/wheel-speed-flash/before-flash-128k.bin differ diff --git a/docs/evidence/2026-10-06/wheel-speed-flash/before-flash-readback.log b/docs/evidence/2026-10-06/wheel-speed-flash/before-flash-readback.log new file mode 100644 index 0000000..1a6de35 --- /dev/null +++ b/docs/evidence/2026-10-06/wheel-speed-flash/before-flash-readback.log @@ -0,0 +1,29 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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\docs\evidence\2026-10-06\wheel-speed-flash\before-flash-128k.bin + Size : 131072 Bytes + Address: : 0x8000000 +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Data read successfully +Time elapsed during read operation is: 00:00:02.114 diff --git a/docs/evidence/2026-10-06/wheel-speed-flash/flash-readback.bin b/docs/evidence/2026-10-06/wheel-speed-flash/flash-readback.bin new file mode 100644 index 0000000..405ae05 Binary files /dev/null and b/docs/evidence/2026-10-06/wheel-speed-flash/flash-readback.bin differ diff --git a/docs/evidence/2026-10-06/wheel-speed-flash/flash-readback.log b/docs/evidence/2026-10-06/wheel-speed-flash/flash-readback.log new file mode 100644 index 0000000..3af8529 --- /dev/null +++ b/docs/evidence/2026-10-06/wheel-speed-flash/flash-readback.log @@ -0,0 +1,29 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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\docs\evidence\2026-10-06\wheel-speed-flash\flash-readback.bin + Size : 16632 Bytes + Address: : 0x8000000 +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Data read successfully +Time elapsed during read operation is: 00:00:00.264 diff --git a/docs/evidence/2026-10-06/wheel-speed-flash/flash-verified.json b/docs/evidence/2026-10-06/wheel-speed-flash/flash-verified.json new file mode 100644 index 0000000..0f7348f --- /dev/null +++ b/docs/evidence/2026-10-06/wheel-speed-flash/flash-verified.json @@ -0,0 +1,21 @@ +{ + "date": "2026-10-06", + "version": "AMI v2.6", + "probe_serial": "37FF71064E573436188C1543", + "device_id": "0x467", + "device_family": "STM32G0B0xx/B1xx/C1xx", + "flash_kib": 128, + "target_voltage_v": 3.24, + "binary": "output/firmware/AMI_Controller.bin", + "address": "0x08000000", + "bytes": 16632, + "sha256": "ac5cff0bd3a9e06499f2ebf4186863625ba8c664dcab67309f14acb7d83acabd", + "flash_verified": true, + "full_readback_identical": true, + "reset_performed": true, + "backup_bytes": 131072, + "backup_sha256": "47ec0297087c1409e281c0fab0405fec89cd33ec462763f9e040155f886c74b9", + "readback_sha256": "ac5cff0bd3a9e06499f2ebf4186863625ba8c664dcab67309f14acb7d83acabd", + "physical_sdc_can_test_performed": false, + "physical_hmi_test_performed": false +} diff --git a/docs/evidence/2026-10-06/wheel-speed-flash/flash.log b/docs/evidence/2026-10-06/wheel-speed-flash/flash.log new file mode 100644 index 0000000..0afcd0b --- /dev/null +++ b/docs/evidence/2026-10-06/wheel-speed-flash/flash.log @@ -0,0 +1,56 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 16.24 KB + Address : 0x08000000 + + +Erasing memory corresponding to segment 0: +Erasing internal memory sectors [0 8] +Download in Progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +File download complete +Time elapsed during download operation: 00:00:00.798 + + + +Verifying... + + +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 50% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Time elapsed during verifying operation: 00:00:00.264 + + +Download verified successfully + + + +MCU Reset + +Software reset is performed diff --git a/docs/evidence/2026-10-06/wheel-speed-flash/reset.log b/docs/evidence/2026-10-06/wheel-speed-flash/reset.log new file mode 100644 index 0000000..01ee703 --- /dev/null +++ b/docs/evidence/2026-10-06/wheel-speed-flash/reset.log @@ -0,0 +1,23 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/accept_as_can_hmi.py b/docs/evidence/2026-10-07/as-status-flash/153558/accept_as_can_hmi.py new file mode 100644 index 0000000..83a51db --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/accept_as_can_hmi.py @@ -0,0 +1,78 @@ +exec(open('tmp/accept_as_hardware.py',encoding='utf-8').read().split('with can.Bus(')[0]) +import numpy as np,pyautogui as pg +from pywinauto import Desktop +W=461358 +w=Desktop(backend='win32').window(handle=W);u=Desktop(backend='uia').window(handle=W) +w.set_focus() +u.child_window(title='开始',control_type='Hyperlink').invoke();time.sleep(.4) +canvas=w.child_window(handle=330296).rectangle() +stop=threading.Event();payload=None;errors=[];checks=[];tx=[];frames=[] +with can.Bus(interface='pcan',channel='PCAN_USBBUS1',bitrate=500000) as bus: + def sender(): + try: + while not stop.is_set(): + msg=payload + if msg:bus.send(msg,timeout=.15);tx.append(dict(id=hex(msg.arbitration_id),data=msg.data.hex(' '))) + stop.wait(.1) + except Exception as e:errors.append(repr(e)) + def receiver(): + try: + while not stop.is_set(): + m=bus.recv(.1) + if m:frames.append(dict(id=hex(m.arbitration_id),data=m.data.hex(' '),timestamp=m.timestamp)) + except Exception as e:errors.append(repr(e)) + ts=[threading.Thread(target=fn) for fn in (sender,receiver)] + for t in ts:t.start() + def feedback(state,flags=15,version=2): + global payload + payload=can.Message(arbitration_id=0x183,is_extended_id=False,data=bytes([2,1,1,flags,0,state,0,version])) + def shotcheck(name,color,target=None): + time.sleep(1.3) + if target is not None: + snap=memory('hmi-'+name);assert snap['states']==target,(name,snap,target) + else:snap=None + im=pg.screenshot(region=(canvas.left,canvas.top,1200,720));im.save(str(O/('can-uart-hmi-'+name+'.png'))) + a=np.asarray(im)[int(379*1.5):int(432*1.5),int(330*1.5):int(504*1.5),:3].astype(np.int16) + r,g,b=a[:,:,0],a[:,:,1],a[:,:,2] + masks={'gray':(r>75)&(r<180)&(abs(r-g)<8)&(abs(r-b)<8), + 'white':(r>210)&(g>210)&(b>210),'yellow':(r>180)&(g>180)&(b<80), + 'blue':(b>180)&(g<80)&(r<80),'red':(r>180)&(g<80)&(b<80), + 'green':(g>180)&(r<80)&(b<80)} + count=int(masks[color].sum());assert count>30,(name,color,count) + assert bus.status()==0 and not errors + checks.append(dict(name=name,color=color,pixels=count,ram=snap,passed=True));print(name,'display passed',flush=True) + try: + for state,label,color in [(0,'off','white'),(1,'ready','yellow'),(2,'driving','yellow'),(3,'finished','blue'),(4,'emergency','red'),(5,'manual','green')]: + feedback(state);shotcheck(label,color,[2,1,1,state]) + feedback(1,7);shotcheck('as-invalid','gray',[2,1,1,6]) + feedback(1);shotcheck('before-legacy','yellow',[2,1,1,1]) + feedback(0,7,1);shotcheck('legacy-unknown','gray',[2,1,1,6]) + feedback(1);shotcheck('before-timeout','yellow',[2,1,1,1]) + payload=can.Message(arbitration_id=0x6a0,is_extended_id=False,data=bytes.fromhex('A1 01 00 00 00 00 00 00')) + shotcheck('timeout-other-traffic','gray',[7,0,0,6]) + feedback(1);shotcheck('recovery','yellow',[2,1,1,1]) + # Actual simulated touch; all displayed feedback still comes through physical UART. + def touch(x,y): + pg.moveTo(canvas.left+x*1.5,canvas.top+y*1.5);pg.mouseDown();time.sleep(.15);pg.mouseUp();time.sleep(.2) + props=json.loads((R/'docs/evidence/2026-10-07/tjc8048-migration/properties-verified.json').read_text(encoding='utf-8')) + def at(page,component): + p=next(p for k,p in props[page].items() if k.startswith(component+'(')) + touch(int(p['x'])+int(p['w'])/2,int(p['y'])+int(p['h'])/2) + at('dash','debug_entry');feedback(4);time.sleep(.8);at('debug','b0') + shotcheck('cross-page-latest-emergency','red',[2,1,1,4]) + feedback(1);shotcheck('before-touch-request','yellow',[2,1,1,1]) + before=len(frames);at('dash','bt4');at('CONFIRM','b0') + shotcheck('touch-request-keeps-as-ready','yellow',[2,1,1,1]) + request=next((m for m in frames[before:] if m['id']=='0x300' and bytes.fromhex(m['data'])[1]==5),None) + assert request,('touch -> physical UART RX -> CAN request absent',frames[before:]);checks[-1]['request']=request + payload=None;shotcheck('final-unknown','gray',[7,0,0,6]) + finally: + payload=None;stop.set() + for t in ts:t.join(timeout=2) + logs={str(c.handle):c.window_text() for c in w.descendants() if 'RichEdit' in c.class_name()} + (O/'can-uart-hmi-serial-panel.json').write_text(json.dumps(logs,ensure_ascii=False,indent=2),encoding='utf-8') + result=dict(result='passed' if len(checks)==16 and not errors else 'partial',scope='physical CAN1 -> MCU RAM -> USART2/COM6 -> official HMI simulator; touch UART RX -> real CAN1 request; no physical screen download',checks=checks,errors=errors) + (O/'can-uart-hmi-results.json').write_text(json.dumps(result,ensure_ascii=False,indent=2),encoding='utf-8') + (O/'can-uart-hmi-can.json').write_text(json.dumps(dict(sent=tx,received=frames),indent=2),encoding='utf-8') + u.child_window(title='停止',control_type='Hyperlink').invoke() +print('CAN/UART/HMI checks completed:',len(checks),flush=True) diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/accept_as_hardware.py b/docs/evidence/2026-10-07/as-status-flash/153558/accept_as_hardware.py new file mode 100644 index 0000000..f1514d3 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/accept_as_hardware.py @@ -0,0 +1,108 @@ +import os,json,re,struct,subprocess,threading,time +from pathlib import Path +R=Path('D:/YMR/AMI');O=Path((R/'tmp/as-flash-evidence-path.txt').read_text()) +DLL=R/'tmp/can1-test-20261002/pcan-basic/x64';os.environ['PATH']=str(DLL)+os.pathsep+os.environ['PATH'];dh=os.add_dll_directory(str(DLL)) +import can,serial +CLI='D:/STM32CubeCLT_1.19.0/STM32CubeProgrammer/bin/STM32_Programmer_CLI.exe' +NM='D:/STM32CubeCLT_1.19.0/GNU-tools-for-STM32/bin/arm-none-eabi-nm.exe' +nm=subprocess.check_output([NM,'-n',str(R/'firmware/build/Release/AMI_Controller.elf')]).decode().replace('\r','') +S={n:int(a,16) for a,k,n in re.findall(r'^(\w+)\s+(\w)\s+(\w+)$',nm,re.M)} +names=['vcu_display_state','vcu_status_last_rx_ms','vcu_status_received','can_rx_error_count','uart_rx_error_count','task_sequence','task_head','task_tail','task_queue','parser_pos','screen_tx_busy'] +base=min(S[n] for n in names)&~3 +length=((max(S[n]+4 for n in names)-base+3)//4)*4 +def memory(name): + p=subprocess.run([CLI,'-c','port=SWD','sn=37FF71064E573436188C1543','mode=HOTPLUG','freq=1000','-r32',hex(base),str(length)],capture_output=True,timeout=15) + (O/(name+'-ram.log')).write_bytes(p.stdout+p.stderr);assert p.returncode==0 + mem={} + for a,words in re.findall(r'0x([0-9A-Fa-f]+)\s*:\s*((?:[0-9A-Fa-f]{8}\s*)+)',p.stdout.decode(errors='replace')): + a=int(a,16) + for word in words.split(): + for i,b in enumerate(struct.pack('=10 and bus.status()==0,('CAN1 500K baseline heartbeat missing',len(heartbeat),bus.status()) + print('CAN1 500K baseline:',len(heartbeat),'heartbeats, status 0',flush=True) + def reader(): + try: + while not stop.is_set():uart.extend(port.read(512)) + except Exception as e:errors.append(repr(e)) + def sender(): + try: + while not stop.is_set(): + msg=payload + if msg:bus.send(msg,timeout=.15);tx.append(dict(id=hex(msg.arbitration_id),data=msg.data.hex(' '),monotonic=time.monotonic())) + stop.wait(.08) + except Exception as e:errors.append(repr(e)) + def receiver(): + try: + while not stop.is_set(): + m=bus.recv(.1) + if m:frames.append(dict(id=hex(m.arbitration_id),data=m.data.hex(' '),timestamp=m.timestamp)) + except Exception as e:errors.append(repr(e)) + ts=[threading.Thread(target=fn) for fn in (reader,sender,receiver)] + for t in ts:t.start() + try: + for state in range(6): + start=len(uart);set_payload([2,1,1,15,state,state,0,2]) + record('as_'+str(state),[2,1,1,state],.65) + expected='as_state='+str(state) + assert expected in commands(start),('physical UART state missing',state,commands(start)) + checks[-1]['physical_uart']=expected + for flags in range(16): + set_payload([2,1,1,flags,255,1,0,2]) + record('valid_'+str(flags),[2 if flags&1 else 7,1 if flags&2 else 0,1 if flags&4 else 0,1 if flags&8 else 6]) + set_payload([2,1,1,15,0,4,0,2]);record('before_legacy',[2,1,1,4]) + start=len(uart);set_payload([2,1,1,7,0,0,0,1]);record('legacy_clears_as',[2,1,1,6],.65) + assert 'as_state=6' in commands(start) + for label,data in [('bad_as',[2,1,1,15,0,6,0,2]),('bad_flag',[2,1,1,31,0,1,0,2]),('reserved',[2,1,1,15,0,1,1,2]),('bad_version',[2,1,1,15,0,1,0,3])]: + set_payload([2,1,1,15,0,1,0,2]);record(label+'_baseline',[2,1,1,1]) + payload=None;time.sleep(.1);before=memory(label+'_stopped') + start=len(uart);set_payload(data);after=record(label+'_expired',[7,0,0,6],.8) + assert after['timestamp']==before['timestamp'] + assert 'as_state=6' in commands(start) + set_payload([2,1,1,15,0,1,0,2]);record('before_timeout',[2,1,1,1]) + start=len(uart);payload=can.Message(arbitration_id=0x6a0,is_extended_id=False,data=bytes.fromhex('A1 01 00 00 00 00 00 00')) + record('other_can_cannot_renew',[7,0,0,6],.8) + assert all(c in commands(start) for c in ['current_task=7','lock_state=0','ebs_state=0','as_state=6']) + set_payload([2,1,1,15,0,1,0,2]);record('recovery',[2,1,1,1],.65) + before=memory('before_uart_request');port.write(bytes.fromhex('AA 55 01 05 0D 0A'));port.flush() + snap=record('physical_uart_task_request',[2,1,1,1],.65) + requests=[m for m in frames if m['id']=='0x300' and bytes.fromhex(m['data'])[1]==5] + assert requests and snap['task_sequence']!=before['task_sequence'],('UART RX to CAN request missing',requests,before,snap) + checks[-1]['can_request']=requests[-1] + print('UART COM6 -> MCU -> real CAN 0x300 verified',flush=True) + payload=None;record('final_unknown',[7,0,0,6],.8) + finally: + payload=None;stop.set() + for t in ts:t.join(timeout=2) + (O/'hardware-uart.bin').write_bytes(uart) + (O/'hardware-uart-commands.json').write_text(json.dumps(commands(),indent=2)) + (O/'hardware-can.json').write_text(json.dumps(dict(received=frames,sent=tx),indent=2)) + result=dict(result='passed' if len(checks)==37 and not errors else 'partial',scope='CAN1 500K -> actual MCU RAM -> physical USART2 COM6; physical UART task RX -> CAN1 0x300; physical screen not tested',checks=checks,errors=errors) + (O/'hardware-results.json').write_text(json.dumps(result,ensure_ascii=False,indent=2)+'\n',encoding='utf-8') +print('Physical checks:',len(checks),'completed') diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/acceptance-summary.json b/docs/evidence/2026-10-07/as-status-flash/153558/acceptance-summary.json new file mode 100644 index 0000000..eaa9100 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/acceptance-summary.json @@ -0,0 +1,21 @@ +{ + "date": "2026-10-07", + "firmware": "v2.7", + "binary_bytes": 16672, + "binary_sha256": "1951c63e779429d08a992d1171fc92173e4399307ff741fdc5d9b7646848855d", + "backup_bytes": 131072, + "full_readback_identical": true, + "reset_performed": true, + "can1_bitrate": 500000, + "physical_can1_passed": true, + "physical_uart_com6_passed": true, + "hardware_checks": 37, + "physical_uart_drives_official_hmi_simulator_passed": true, + "hmi_state_checks": 16, + "physical_hmi_downloaded": false, + "physical_hmi_tested": false, + "can2_tested": false, + "real_vcu_tested": false, + "physical_vehicle_actions_tested": false, + "git_pushed": false +} diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/as_0-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/as_0-ram.log new file mode 100644 index 0000000..c33f959 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/as_0-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 00010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00000F5F 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00000DAC +0x2000025C : 00000027 00000F3C 00000000 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF303D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00000F44 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00000F44 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/as_1-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/as_1-ram.log new file mode 100644 index 0000000..d0a4776 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/as_1-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000012E5 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00001194 +0x2000025C : 00000030 000012C0 00000000 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000012B9 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 000012B9 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/as_2-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/as_2-ram.log new file mode 100644 index 0000000..4eeaf0a --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/as_2-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 02010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00001669 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 0000157C +0x2000025C : 00000039 00001644 00001388 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF323D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0000162F 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0000162F + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/as_3-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/as_3-ram.log new file mode 100644 index 0000000..afbfbf8 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/as_3-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 03010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000019F3 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00001964 +0x2000025C : 00000042 000019C8 00001388 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF333D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000019F5 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 000019F5 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/as_4-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/as_4-ram.log new file mode 100644 index 0000000..4946ff3 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/as_4-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 04010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00001D77 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00001D4C +0x2000025C : 0000004B 00001D4C 00001388 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF343D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00001D69 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00001D69 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/as_5-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/as_5-ram.log new file mode 100644 index 0000000..6b5bc73 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/as_5-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 05010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00002100 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00001F40 +0x2000025C : 00000054 000020D0 00001388 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF353D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000020E1 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 000020E1 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/bad_as_baseline-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/bad_as_baseline-ram.log new file mode 100644 index 0000000..6a39a54 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/bad_as_baseline-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000525E 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00005208 +0x2000025C : 000000D2 00005208 00004E20 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0000523C 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0000523C + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/bad_as_expired-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/bad_as_expired-ram.log new file mode 100644 index 0000000..115bed9 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/bad_as_expired-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000057D6 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 000055F0 +0x2000025C : 000000E0 00005780 00004E20 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0000528D 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 0000528D + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/bad_as_stopped-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/bad_as_stopped-ram.log new file mode 100644 index 0000000..f881bb9 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/bad_as_stopped-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000053C0 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00005208 +0x2000025C : 000000D6 00005398 00004E20 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0000528D 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0000528D + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/bad_flag_baseline-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/bad_flag_baseline-ram.log new file mode 100644 index 0000000..3e15cc7 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/bad_flag_baseline-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00005A68 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 000059D8 +0x2000025C : 000000E7 00005A3C 00004E20 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00005A69 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00005A69 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/bad_flag_expired-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/bad_flag_expired-ram.log new file mode 100644 index 0000000..69e315f --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/bad_flag_expired-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00005FEF 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00005FB4 +0x2000025C : 000000F5 00005FB4 00004E20 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00005A69 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00005A69 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/bad_flag_stopped-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/bad_flag_stopped-ram.log new file mode 100644 index 0000000..a9da73b --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/bad_flag_stopped-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00005BD1 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00005BCC +0x2000025C : 000000EB 00005BCC 00004E20 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00005A69 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00005A69 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/bad_version_baseline-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/bad_version_baseline-ram.log new file mode 100644 index 0000000..fe248e8 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/bad_version_baseline-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00006A80 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00006978 +0x2000025C : 00000110 00006A40 000061A8 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00006A6D 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00006A6D + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/bad_version_expired-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/bad_version_expired-ram.log new file mode 100644 index 0000000..11ee414 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/bad_version_expired-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00006FF7 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00006F54 +0x2000025C : 0000011E 00006FB8 000061A8 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00006ABD 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00006ABD + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/bad_version_stopped-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/bad_version_stopped-ram.log new file mode 100644 index 0000000..8eca126 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/bad_version_stopped-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00006BDA 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00006B6C +0x2000025C : 00000114 00006BD0 000061A8 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00006ABD 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00006ABD + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/before-flash-128k.bin b/docs/evidence/2026-10-07/as-status-flash/153558/before-flash-128k.bin new file mode 100644 index 0000000..00ec4f1 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/before-flash-128k.bin differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/before-flash-backup.log b/docs/evidence/2026-10-07/as-status-flash/153558/before-flash-backup.log new file mode 100644 index 0000000..849cff5 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/before-flash-backup.log @@ -0,0 +1,29 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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\docs\evidence\2026-10-07\as-status-flash\153558\before-flash-128k.bin + Size : 131072 Bytes + Address: : 0x8000000 +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Data read successfully +Time elapsed during read operation is: 00:00:02.119 diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/before_legacy-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/before_legacy-ram.log new file mode 100644 index 0000000..67d3e1e --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/before_legacy-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 04010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00004C49 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00004C2C +0x2000025C : 000000C3 00004C2C 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF343D FFFF32FF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00004C42 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00004C42 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/before_timeout-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/before_timeout-ram.log new file mode 100644 index 0000000..f0f8d07 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/before_timeout-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00007286 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00007148 +0x2000025C : 00000125 00007274 000061A8 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00007248 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00007248 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/before_uart_request-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/before_uart_request-ram.log new file mode 100644 index 0000000..8c3c402 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/before_uart_request-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00007B31 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000008 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000018 00000001 00007B0C +0x2000025C : 0000013B 00007B0C 00007530 00000000 +0x2000026C : 00000000 00000000 00000000 3D353164 +0x2000027C : FFFFFF30 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00007B19 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00007B19 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-baseline.json b/docs/evidence/2026-10-07/as-status-flash/153558/can-baseline.json new file mode 100644 index 0000000..1e75afe --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/can-baseline.json @@ -0,0 +1,161 @@ +{ + "bitrate": 500000, + "status": 0, + "frames": [ + { + "id": "0x301", + "data": "01 00 00 00 64 00 00 00", + "timestamp": 1099993.927386 + }, + { + "id": "0x301", + "data": "01 00 01 00 c8 00 00 00", + "timestamp": 1099994.02748 + }, + { + "id": "0x301", + "data": "01 00 02 00 2c 01 00 00", + "timestamp": 1099994.127532 + }, + { + "id": "0x301", + "data": "01 00 03 00 90 01 00 00", + "timestamp": 1099994.227584 + }, + { + "id": "0x301", + "data": "01 00 04 00 f4 01 00 00", + "timestamp": 1099994.327636 + }, + { + "id": "0x301", + "data": "01 00 05 00 58 02 00 00", + "timestamp": 1099994.427687 + }, + { + "id": "0x301", + "data": "01 00 06 00 bc 02 00 00", + "timestamp": 1099994.527739 + }, + { + "id": "0x301", + "data": "01 00 07 00 20 03 00 00", + "timestamp": 1099994.627734 + }, + { + "id": "0x301", + "data": "01 00 08 00 84 03 00 00", + "timestamp": 1099994.727785 + }, + { + "id": "0x301", + "data": "01 00 09 00 e8 03 00 00", + "timestamp": 1099994.82788 + }, + { + "id": "0x301", + "data": "01 00 0a 00 4c 04 00 00", + "timestamp": 1099994.927932 + }, + { + "id": "0x301", + "data": "01 00 0b 00 b0 04 00 00", + "timestamp": 1099995.028026 + }, + { + "id": "0x301", + "data": "01 00 0c 00 14 05 00 00", + "timestamp": 1099995.128078 + }, + { + "id": "0x301", + "data": "01 00 0d 00 78 05 00 00", + "timestamp": 1099995.22813 + }, + { + "id": "0x301", + "data": "01 00 0e 00 dc 05 00 00", + "timestamp": 1099995.328224 + }, + { + "id": "0x301", + "data": "01 00 0f 00 40 06 00 00", + "timestamp": 1099995.428318 + }, + { + "id": "0x301", + "data": "01 00 10 00 a4 06 00 00", + "timestamp": 1099995.52837 + }, + { + "id": "0x301", + "data": "01 00 11 00 08 07 00 00", + "timestamp": 1099995.628365 + }, + { + "id": "0x301", + "data": "01 00 12 00 6c 07 00 00", + "timestamp": 1099995.728416 + }, + { + "id": "0x301", + "data": "01 00 13 00 d0 07 00 00", + "timestamp": 1099995.828511 + }, + { + "id": "0x301", + "data": "01 00 14 00 34 08 00 00", + "timestamp": 1099995.928605 + }, + { + "id": "0x301", + "data": "01 00 15 00 98 08 00 00", + "timestamp": 1099996.0287 + }, + { + "id": "0x301", + "data": "01 00 16 00 fc 08 00 00", + "timestamp": 1099996.128794 + }, + { + "id": "0x301", + "data": "01 00 17 00 60 09 00 00", + "timestamp": 1099996.228889 + }, + { + "id": "0x301", + "data": "01 00 18 00 c4 09 00 00", + "timestamp": 1099996.32894 + }, + { + "id": "0x301", + "data": "01 00 19 00 28 0a 00 00", + "timestamp": 1099996.429035 + }, + { + "id": "0x301", + "data": "01 00 1a 00 8c 0a 00 00", + "timestamp": 1099996.529087 + }, + { + "id": "0x301", + "data": "01 00 1b 00 f0 0a 00 00", + "timestamp": 1099996.628996 + }, + { + "id": "0x301", + "data": "01 00 1c 00 54 0b 00 00", + "timestamp": 1099996.72909 + }, + { + "id": "0x301", + "data": "01 00 1d 00 b8 0b 00 00", + "timestamp": 1099996.829142 + }, + { + "id": "0x301", + "data": "01 00 1e 00 1c 0c 00 00", + "timestamp": 1099996.929194 + } + ] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-as-invalid.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-as-invalid.png new file mode 100644 index 0000000..a237ef6 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-as-invalid.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-before-legacy.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-before-legacy.png new file mode 100644 index 0000000..b14a583 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-before-legacy.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-before-timeout.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-before-timeout.png new file mode 100644 index 0000000..b14a583 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-before-timeout.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-before-touch-request.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-before-touch-request.png new file mode 100644 index 0000000..b14a583 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-before-touch-request.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-can.json b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-can.json new file mode 100644 index 0000000..c656b12 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-can.json @@ -0,0 +1,2577 @@ +{ + "sent": [ + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + } + ], + "received": [ + { + "id": "0x301", + "data": "01 00 9b 03 f0 68 01 00", + "timestamp": 1100086.286733 + }, + { + "id": "0x301", + "data": "01 00 9c 03 54 69 01 00", + "timestamp": 1100086.386828 + }, + { + "id": "0x301", + "data": "01 00 9d 03 b8 69 01 00", + "timestamp": 1100086.486879 + }, + { + "id": "0x301", + "data": "01 00 9e 03 1c 6a 01 00", + "timestamp": 1100086.586974 + }, + { + "id": "0x301", + "data": "01 00 9f 03 80 6a 01 00", + "timestamp": 1100086.687068 + }, + { + "id": "0x301", + "data": "01 00 a0 03 e4 6a 01 00", + "timestamp": 1100086.78712 + }, + { + "id": "0x301", + "data": "01 00 a1 03 48 6b 01 00", + "timestamp": 1100086.887214 + }, + { + "id": "0x301", + "data": "01 00 a2 03 ac 6b 01 00", + "timestamp": 1100086.987309 + }, + { + "id": "0x301", + "data": "01 00 a3 03 10 6c 01 00", + "timestamp": 1100087.087361 + }, + { + "id": "0x301", + "data": "01 00 a4 03 74 6c 01 00", + "timestamp": 1100087.187412 + }, + { + "id": "0x301", + "data": "01 00 a5 03 d8 6c 01 00", + "timestamp": 1100087.287364 + }, + { + "id": "0x301", + "data": "01 00 a6 03 3c 6d 01 00", + "timestamp": 1100087.387459 + }, + { + "id": "0x301", + "data": "01 00 a7 03 a0 6d 01 00", + "timestamp": 1100087.487553 + }, + { + "id": "0x301", + "data": "01 00 a8 03 04 6e 01 00", + "timestamp": 1100087.587605 + }, + { + "id": "0x301", + "data": "01 00 a9 03 68 6e 01 00", + "timestamp": 1100087.687614 + }, + { + "id": "0x301", + "data": "01 00 aa 03 cc 6e 01 00", + "timestamp": 1100087.787666 + }, + { + "id": "0x301", + "data": "01 00 ab 03 30 6f 01 00", + "timestamp": 1100087.887718 + }, + { + "id": "0x301", + "data": "01 00 ac 03 94 6f 01 00", + "timestamp": 1100087.987727 + }, + { + "id": "0x301", + "data": "01 00 ad 03 f8 6f 01 00", + "timestamp": 1100088.087778 + }, + { + "id": "0x301", + "data": "01 00 ae 03 5c 70 01 00", + "timestamp": 1100088.187873 + }, + { + "id": "0x301", + "data": "01 00 af 03 c0 70 01 00", + "timestamp": 1100088.287867 + }, + { + "id": "0x301", + "data": "01 00 b0 03 24 71 01 00", + "timestamp": 1100088.387876 + }, + { + "id": "0x301", + "data": "01 00 b1 03 88 71 01 00", + "timestamp": 1100088.487971 + }, + { + "id": "0x301", + "data": "01 00 b2 03 ec 71 01 00", + "timestamp": 1100088.588065 + }, + { + "id": "0x301", + "data": "01 00 b3 03 50 72 01 00", + "timestamp": 1100088.688117 + }, + { + "id": "0x301", + "data": "01 00 b4 03 b4 72 01 00", + "timestamp": 1100088.788211 + }, + { + "id": "0x301", + "data": "01 00 b5 03 18 73 01 00", + "timestamp": 1100088.888263 + }, + { + "id": "0x301", + "data": "01 00 b6 03 7c 73 01 00", + "timestamp": 1100088.988358 + }, + { + "id": "0x301", + "data": "01 00 b7 03 e0 73 01 00", + "timestamp": 1100089.088409 + }, + { + "id": "0x301", + "data": "01 00 b8 03 44 74 01 00", + "timestamp": 1100089.188504 + }, + { + "id": "0x301", + "data": "01 00 b9 03 a8 74 01 00", + "timestamp": 1100089.288456 + }, + { + "id": "0x301", + "data": "01 00 ba 03 0c 75 01 00", + "timestamp": 1100089.38855 + }, + { + "id": "0x301", + "data": "01 00 bb 03 70 75 01 00", + "timestamp": 1100089.488602 + }, + { + "id": "0x301", + "data": "01 00 bc 03 d4 75 01 00", + "timestamp": 1100089.588654 + }, + { + "id": "0x301", + "data": "01 00 bd 03 38 76 01 00", + "timestamp": 1100089.688705 + }, + { + "id": "0x301", + "data": "01 00 be 03 9c 76 01 00", + "timestamp": 1100089.788757 + }, + { + "id": "0x301", + "data": "01 00 bf 03 00 77 01 00", + "timestamp": 1100089.888852 + }, + { + "id": "0x301", + "data": "01 00 c0 03 64 77 01 00", + "timestamp": 1100089.988903 + }, + { + "id": "0x301", + "data": "01 00 c1 03 c8 77 01 00", + "timestamp": 1100090.088998 + }, + { + "id": "0x301", + "data": "01 00 c2 03 2c 78 01 00", + "timestamp": 1100090.189092 + }, + { + "id": "0x301", + "data": "01 00 c3 03 90 78 01 00", + "timestamp": 1100090.289044 + }, + { + "id": "0x301", + "data": "01 00 c4 03 f4 78 01 00", + "timestamp": 1100090.389181 + }, + { + "id": "0x301", + "data": "01 00 c5 03 58 79 01 00", + "timestamp": 1100090.489233 + }, + { + "id": "0x301", + "data": "01 00 c6 03 bc 79 01 00", + "timestamp": 1100090.589327 + }, + { + "id": "0x301", + "data": "01 00 c7 03 20 7a 01 00", + "timestamp": 1100090.689422 + }, + { + "id": "0x301", + "data": "01 00 c8 03 84 7a 01 00", + "timestamp": 1100090.789516 + }, + { + "id": "0x301", + "data": "01 00 c9 03 e8 7a 01 00", + "timestamp": 1100090.889653 + }, + { + "id": "0x301", + "data": "01 00 ca 03 4c 7b 01 00", + "timestamp": 1100090.989748 + }, + { + "id": "0x301", + "data": "01 00 cb 03 b0 7b 01 00", + "timestamp": 1100091.089842 + }, + { + "id": "0x301", + "data": "01 00 cc 03 14 7c 01 00", + "timestamp": 1100091.189937 + }, + { + "id": "0x301", + "data": "01 00 cd 03 78 7c 01 00", + "timestamp": 1100091.289931 + }, + { + "id": "0x301", + "data": "01 00 ce 03 dc 7c 01 00", + "timestamp": 1100091.390025 + }, + { + "id": "0x301", + "data": "01 00 cf 03 40 7d 01 00", + "timestamp": 1100091.49012 + }, + { + "id": "0x301", + "data": "01 00 d0 03 a4 7d 01 00", + "timestamp": 1100091.590214 + }, + { + "id": "0x301", + "data": "01 00 d1 03 08 7e 01 00", + "timestamp": 1100091.690351 + }, + { + "id": "0x301", + "data": "01 00 d2 03 6c 7e 01 00", + "timestamp": 1100091.790489 + }, + { + "id": "0x301", + "data": "01 00 d3 03 d0 7e 01 00", + "timestamp": 1100091.890583 + }, + { + "id": "0x301", + "data": "01 00 d4 03 34 7f 01 00", + "timestamp": 1100091.990677 + }, + { + "id": "0x301", + "data": "01 00 d5 03 98 7f 01 00", + "timestamp": 1100092.090729 + }, + { + "id": "0x301", + "data": "01 00 d6 03 fc 7f 01 00", + "timestamp": 1100092.190866 + }, + { + "id": "0x301", + "data": "01 00 d7 03 60 80 01 00", + "timestamp": 1100092.290818 + }, + { + "id": "0x301", + "data": "01 00 d8 03 c4 80 01 00", + "timestamp": 1100092.390912 + }, + { + "id": "0x301", + "data": "01 00 d9 03 28 81 01 00", + "timestamp": 1100092.491007 + }, + { + "id": "0x301", + "data": "01 00 da 03 8c 81 01 00", + "timestamp": 1100092.591101 + }, + { + "id": "0x301", + "data": "01 00 db 03 f0 81 01 00", + "timestamp": 1100092.691196 + }, + { + "id": "0x301", + "data": "01 00 dc 03 54 82 01 00", + "timestamp": 1100092.79129 + }, + { + "id": "0x301", + "data": "01 00 dd 03 b8 82 01 00", + "timestamp": 1100092.891385 + }, + { + "id": "0x301", + "data": "01 00 de 03 1c 83 01 00", + "timestamp": 1100092.991479 + }, + { + "id": "0x301", + "data": "01 00 df 03 80 83 01 00", + "timestamp": 1100093.091574 + }, + { + "id": "0x301", + "data": "01 00 e0 03 e4 83 01 00", + "timestamp": 1100093.191668 + }, + { + "id": "0x301", + "data": "01 00 e1 03 48 84 01 00", + "timestamp": 1100093.291662 + }, + { + "id": "0x301", + "data": "01 00 e2 03 ac 84 01 00", + "timestamp": 1100093.391757 + }, + { + "id": "0x301", + "data": "01 00 e3 03 10 85 01 00", + "timestamp": 1100093.491809 + }, + { + "id": "0x301", + "data": "01 00 e4 03 74 85 01 00", + "timestamp": 1100093.591903 + }, + { + "id": "0x301", + "data": "01 00 e5 03 d8 85 01 00", + "timestamp": 1100093.691955 + }, + { + "id": "0x301", + "data": "01 00 e6 03 3c 86 01 00", + "timestamp": 1100093.792049 + }, + { + "id": "0x301", + "data": "01 00 e7 03 a0 86 01 00", + "timestamp": 1100093.892144 + }, + { + "id": "0x301", + "data": "01 00 e8 03 04 87 01 00", + "timestamp": 1100093.992238 + }, + { + "id": "0x301", + "data": "01 00 e9 03 68 87 01 00", + "timestamp": 1100094.092333 + }, + { + "id": "0x301", + "data": "01 00 ea 03 cc 87 01 00", + "timestamp": 1100094.19247 + }, + { + "id": "0x301", + "data": "01 00 eb 03 30 88 01 00", + "timestamp": 1100094.292464 + }, + { + "id": "0x301", + "data": "01 00 ec 03 94 88 01 00", + "timestamp": 1100094.392559 + }, + { + "id": "0x301", + "data": "01 00 ed 03 f8 88 01 00", + "timestamp": 1100094.492653 + }, + { + "id": "0x301", + "data": "01 00 ee 03 5c 89 01 00", + "timestamp": 1100094.59279 + }, + { + "id": "0x301", + "data": "01 00 ef 03 c0 89 01 00", + "timestamp": 1100094.692885 + }, + { + "id": "0x301", + "data": "01 00 f0 03 24 8a 01 00", + "timestamp": 1100094.793022 + }, + { + "id": "0x301", + "data": "01 00 f1 03 88 8a 01 00", + "timestamp": 1100094.893116 + }, + { + "id": "0x301", + "data": "01 00 f2 03 ec 8a 01 00", + "timestamp": 1100094.99321 + }, + { + "id": "0x301", + "data": "01 00 f3 03 50 8b 01 00", + "timestamp": 1100095.093305 + }, + { + "id": "0x301", + "data": "01 00 f4 03 b4 8b 01 00", + "timestamp": 1100095.193399 + }, + { + "id": "0x301", + "data": "01 00 f5 03 18 8c 01 00", + "timestamp": 1100095.293394 + }, + { + "id": "0x301", + "data": "01 00 f6 03 7c 8c 01 00", + "timestamp": 1100095.393488 + }, + { + "id": "0x301", + "data": "01 00 f7 03 e0 8c 01 00", + "timestamp": 1100095.493583 + }, + { + "id": "0x301", + "data": "01 00 f8 03 44 8d 01 00", + "timestamp": 1100095.593677 + }, + { + "id": "0x301", + "data": "01 00 f9 03 a8 8d 01 00", + "timestamp": 1100095.693772 + }, + { + "id": "0x301", + "data": "01 00 fa 03 0c 8e 01 00", + "timestamp": 1100095.793909 + }, + { + "id": "0x301", + "data": "01 00 fb 03 70 8e 01 00", + "timestamp": 1100095.894003 + }, + { + "id": "0x301", + "data": "01 00 fc 03 d4 8e 01 00", + "timestamp": 1100095.994098 + }, + { + "id": "0x301", + "data": "01 00 fd 03 38 8f 01 00", + "timestamp": 1100096.094192 + }, + { + "id": "0x301", + "data": "01 00 fe 03 9c 8f 01 00", + "timestamp": 1100096.194286 + }, + { + "id": "0x301", + "data": "01 00 ff 03 00 90 01 00", + "timestamp": 1100096.294281 + }, + { + "id": "0x301", + "data": "01 00 00 04 64 90 01 00", + "timestamp": 1100096.394418 + }, + { + "id": "0x301", + "data": "01 00 01 04 c8 90 01 00", + "timestamp": 1100096.494512 + }, + { + "id": "0x301", + "data": "01 00 02 04 2c 91 01 00", + "timestamp": 1100096.594607 + }, + { + "id": "0x301", + "data": "01 00 03 04 90 91 01 00", + "timestamp": 1100096.694701 + }, + { + "id": "0x301", + "data": "01 00 04 04 f4 91 01 00", + "timestamp": 1100096.794796 + }, + { + "id": "0x301", + "data": "01 00 05 04 58 92 01 00", + "timestamp": 1100096.894933 + }, + { + "id": "0x301", + "data": "01 00 06 04 bc 92 01 00", + "timestamp": 1100096.995027 + }, + { + "id": "0x301", + "data": "01 00 07 04 20 93 01 00", + "timestamp": 1100097.095079 + }, + { + "id": "0x301", + "data": "01 00 08 04 84 93 01 00", + "timestamp": 1100097.195116 + }, + { + "id": "0x301", + "data": "01 00 09 04 e8 93 01 00", + "timestamp": 1100097.295211 + }, + { + "id": "0x301", + "data": "01 00 0a 04 4c 94 01 00", + "timestamp": 1100097.395305 + }, + { + "id": "0x301", + "data": "01 00 0b 04 b0 94 01 00", + "timestamp": 1100097.495357 + }, + { + "id": "0x301", + "data": "01 00 0c 04 14 95 01 00", + "timestamp": 1100097.595451 + }, + { + "id": "0x301", + "data": "01 00 0d 04 78 95 01 00", + "timestamp": 1100097.695503 + }, + { + "id": "0x301", + "data": "01 00 0e 04 dc 95 01 00", + "timestamp": 1100097.795555 + }, + { + "id": "0x301", + "data": "01 00 0f 04 40 96 01 00", + "timestamp": 1100097.895649 + }, + { + "id": "0x301", + "data": "01 00 10 04 a4 96 01 00", + "timestamp": 1100097.995744 + }, + { + "id": "0x301", + "data": "01 00 11 04 08 97 01 00", + "timestamp": 1100098.095795 + }, + { + "id": "0x301", + "data": "01 00 12 04 6c 97 01 00", + "timestamp": 1100098.19579 + }, + { + "id": "0x301", + "data": "01 00 13 04 d0 97 01 00", + "timestamp": 1100098.295842 + }, + { + "id": "0x301", + "data": "01 00 14 04 34 98 01 00", + "timestamp": 1100098.395893 + }, + { + "id": "0x301", + "data": "01 00 15 04 98 98 01 00", + "timestamp": 1100098.495945 + }, + { + "id": "0x301", + "data": "01 00 16 04 fc 98 01 00", + "timestamp": 1100098.59604 + }, + { + "id": "0x301", + "data": "01 00 17 04 60 99 01 00", + "timestamp": 1100098.696049 + }, + { + "id": "0x301", + "data": "01 00 18 04 c4 99 01 00", + "timestamp": 1100098.7961 + }, + { + "id": "0x301", + "data": "01 00 19 04 28 9a 01 00", + "timestamp": 1100098.896195 + }, + { + "id": "0x301", + "data": "01 00 1a 04 8c 9a 01 00", + "timestamp": 1100098.996247 + }, + { + "id": "0x301", + "data": "01 00 1b 04 f0 9a 01 00", + "timestamp": 1100099.096298 + }, + { + "id": "0x301", + "data": "01 00 1c 04 54 9b 01 00", + "timestamp": 1100099.19625 + }, + { + "id": "0x301", + "data": "01 00 1d 04 b8 9b 01 00", + "timestamp": 1100099.296345 + }, + { + "id": "0x301", + "data": "01 00 1e 04 1c 9c 01 00", + "timestamp": 1100099.396396 + }, + { + "id": "0x301", + "data": "01 00 1f 04 80 9c 01 00", + "timestamp": 1100099.496491 + }, + { + "id": "0x301", + "data": "01 00 20 04 e4 9c 01 00", + "timestamp": 1100099.596585 + }, + { + "id": "0x301", + "data": "01 00 21 04 48 9d 01 00", + "timestamp": 1100099.69668 + }, + { + "id": "0x301", + "data": "01 00 22 04 ac 9d 01 00", + "timestamp": 1100099.796774 + }, + { + "id": "0x301", + "data": "01 00 23 04 10 9e 01 00", + "timestamp": 1100099.896826 + }, + { + "id": "0x301", + "data": "01 00 24 04 74 9e 01 00", + "timestamp": 1100099.996878 + }, + { + "id": "0x301", + "data": "01 00 25 04 d8 9e 01 00", + "timestamp": 1100100.096972 + }, + { + "id": "0x301", + "data": "01 00 26 04 3c 9f 01 00", + "timestamp": 1100100.196924 + }, + { + "id": "0x301", + "data": "01 00 27 04 a0 9f 01 00", + "timestamp": 1100100.297018 + }, + { + "id": "0x301", + "data": "01 00 28 04 04 a0 01 00", + "timestamp": 1100100.39707 + }, + { + "id": "0x301", + "data": "01 00 29 04 68 a0 01 00", + "timestamp": 1100100.497164 + }, + { + "id": "0x301", + "data": "01 00 2a 04 cc a0 01 00", + "timestamp": 1100100.597216 + }, + { + "id": "0x301", + "data": "01 00 2b 04 30 a1 01 00", + "timestamp": 1100100.697311 + }, + { + "id": "0x301", + "data": "01 00 2c 04 94 a1 01 00", + "timestamp": 1100100.797405 + }, + { + "id": "0x301", + "data": "01 00 2d 04 f8 a1 01 00", + "timestamp": 1100100.897542 + }, + { + "id": "0x301", + "data": "01 00 2e 04 5c a2 01 00", + "timestamp": 1100100.997637 + }, + { + "id": "0x301", + "data": "01 00 2f 04 c0 a2 01 00", + "timestamp": 1100101.097731 + }, + { + "id": "0x301", + "data": "01 00 30 04 24 a3 01 00", + "timestamp": 1100101.197683 + }, + { + "id": "0x301", + "data": "01 00 31 04 88 a3 01 00", + "timestamp": 1100101.297777 + }, + { + "id": "0x301", + "data": "01 00 32 04 ec a3 01 00", + "timestamp": 1100101.397829 + }, + { + "id": "0x301", + "data": "01 00 33 04 50 a4 01 00", + "timestamp": 1100101.497924 + }, + { + "id": "0x301", + "data": "01 00 34 04 b4 a4 01 00", + "timestamp": 1100101.597975 + }, + { + "id": "0x301", + "data": "01 00 35 04 18 a5 01 00", + "timestamp": 1100101.698027 + }, + { + "id": "0x301", + "data": "01 00 36 04 7c a5 01 00", + "timestamp": 1100101.798121 + }, + { + "id": "0x301", + "data": "01 00 37 04 e0 a5 01 00", + "timestamp": 1100101.898173 + }, + { + "id": "0x301", + "data": "01 00 38 04 44 a6 01 00", + "timestamp": 1100101.998225 + }, + { + "id": "0x301", + "data": "01 00 39 04 a8 a6 01 00", + "timestamp": 1100102.098277 + }, + { + "id": "0x301", + "data": "01 00 3a 04 0c a7 01 00", + "timestamp": 1100102.198271 + }, + { + "id": "0x301", + "data": "01 00 3b 04 70 a7 01 00", + "timestamp": 1100102.298366 + }, + { + "id": "0x301", + "data": "01 00 3c 04 d4 a7 01 00", + "timestamp": 1100102.398417 + }, + { + "id": "0x301", + "data": "01 00 3d 04 38 a8 01 00", + "timestamp": 1100102.498512 + }, + { + "id": "0x301", + "data": "01 00 3e 04 9c a8 01 00", + "timestamp": 1100102.598606 + }, + { + "id": "0x301", + "data": "01 00 3f 04 00 a9 01 00", + "timestamp": 1100102.698658 + }, + { + "id": "0x301", + "data": "01 00 40 04 64 a9 01 00", + "timestamp": 1100102.79871 + }, + { + "id": "0x301", + "data": "01 00 41 04 c8 a9 01 00", + "timestamp": 1100102.898804 + }, + { + "id": "0x301", + "data": "01 00 42 04 2c aa 01 00", + "timestamp": 1100102.998899 + }, + { + "id": "0x301", + "data": "01 00 43 04 90 aa 01 00", + "timestamp": 1100103.098993 + }, + { + "id": "0x301", + "data": "01 00 44 04 f4 aa 01 00", + "timestamp": 1100103.198988 + }, + { + "id": "0x301", + "data": "01 00 45 04 58 ab 01 00", + "timestamp": 1100103.299082 + }, + { + "id": "0x301", + "data": "01 00 46 04 bc ab 01 00", + "timestamp": 1100103.399176 + }, + { + "id": "0x301", + "data": "01 00 47 04 20 ac 01 00", + "timestamp": 1100103.499271 + }, + { + "id": "0x301", + "data": "01 00 48 04 84 ac 01 00", + "timestamp": 1100103.599365 + }, + { + "id": "0x301", + "data": "01 00 49 04 e8 ac 01 00", + "timestamp": 1100103.69946 + }, + { + "id": "0x301", + "data": "01 00 4a 04 4c ad 01 00", + "timestamp": 1100103.799512 + }, + { + "id": "0x301", + "data": "01 00 4b 04 b0 ad 01 00", + "timestamp": 1100103.899606 + }, + { + "id": "0x301", + "data": "01 00 4c 04 14 ae 01 00", + "timestamp": 1100103.999658 + }, + { + "id": "0x301", + "data": "01 00 4d 04 78 ae 01 00", + "timestamp": 1100104.099752 + }, + { + "id": "0x301", + "data": "01 00 4e 04 dc ae 01 00", + "timestamp": 1100104.199747 + }, + { + "id": "0x301", + "data": "01 00 4f 04 40 af 01 00", + "timestamp": 1100104.299841 + }, + { + "id": "0x301", + "data": "01 00 50 04 a4 af 01 00", + "timestamp": 1100104.399935 + }, + { + "id": "0x301", + "data": "01 00 51 04 08 b0 01 00", + "timestamp": 1100104.50003 + }, + { + "id": "0x301", + "data": "01 00 52 04 6c b0 01 00", + "timestamp": 1100104.600082 + }, + { + "id": "0x301", + "data": "01 00 53 04 d0 b0 01 00", + "timestamp": 1100104.700176 + }, + { + "id": "0x301", + "data": "01 00 54 04 34 b1 01 00", + "timestamp": 1100104.800228 + }, + { + "id": "0x301", + "data": "01 00 55 04 98 b1 01 00", + "timestamp": 1100104.900322 + }, + { + "id": "0x301", + "data": "01 00 56 04 fc b1 01 00", + "timestamp": 1100105.000374 + }, + { + "id": "0x301", + "data": "01 00 57 04 60 b2 01 00", + "timestamp": 1100105.100469 + }, + { + "id": "0x301", + "data": "01 00 58 04 c4 b2 01 00", + "timestamp": 1100105.200463 + }, + { + "id": "0x301", + "data": "01 00 59 04 28 b3 01 00", + "timestamp": 1100105.300515 + }, + { + "id": "0x301", + "data": "01 00 5a 04 8c b3 01 00", + "timestamp": 1100105.400567 + }, + { + "id": "0x301", + "data": "01 00 5b 04 f0 b3 01 00", + "timestamp": 1100105.500618 + }, + { + "id": "0x301", + "data": "01 00 5c 04 54 b4 01 00", + "timestamp": 1100105.600713 + }, + { + "id": "0x301", + "data": "01 00 5d 04 b8 b4 01 00", + "timestamp": 1100105.700807 + }, + { + "id": "0x301", + "data": "01 00 5e 04 1c b5 01 00", + "timestamp": 1100105.800859 + }, + { + "id": "0x301", + "data": "01 00 5f 04 80 b5 01 00", + "timestamp": 1100105.900911 + }, + { + "id": "0x301", + "data": "01 00 60 04 e4 b5 01 00", + "timestamp": 1100106.001005 + }, + { + "id": "0x301", + "data": "01 00 61 04 48 b6 01 00", + "timestamp": 1100106.101057 + }, + { + "id": "0x301", + "data": "01 00 62 04 ac b6 01 00", + "timestamp": 1100106.201009 + }, + { + "id": "0x301", + "data": "01 00 63 04 10 b7 01 00", + "timestamp": 1100106.30106 + }, + { + "id": "0x301", + "data": "01 00 64 04 74 b7 01 00", + "timestamp": 1100106.401112 + }, + { + "id": "0x301", + "data": "01 00 65 04 d8 b7 01 00", + "timestamp": 1100106.501164 + }, + { + "id": "0x301", + "data": "01 00 66 04 3c b8 01 00", + "timestamp": 1100106.601216 + }, + { + "id": "0x301", + "data": "01 00 67 04 a0 b8 01 00", + "timestamp": 1100106.70131 + }, + { + "id": "0x301", + "data": "01 00 68 04 04 b9 01 00", + "timestamp": 1100106.801362 + }, + { + "id": "0x301", + "data": "01 00 69 04 68 b9 01 00", + "timestamp": 1100106.901414 + }, + { + "id": "0x301", + "data": "01 00 6a 04 cc b9 01 00", + "timestamp": 1100107.001508 + }, + { + "id": "0x301", + "data": "01 00 6b 04 30 ba 01 00", + "timestamp": 1100107.10156 + }, + { + "id": "0x301", + "data": "01 00 6c 04 94 ba 01 00", + "timestamp": 1100107.201554 + }, + { + "id": "0x301", + "data": "01 00 6d 04 f8 ba 01 00", + "timestamp": 1100107.301606 + }, + { + "id": "0x301", + "data": "01 00 6e 04 5c bb 01 00", + "timestamp": 1100107.401701 + }, + { + "id": "0x301", + "data": "01 00 6f 04 c0 bb 01 00", + "timestamp": 1100107.501795 + }, + { + "id": "0x301", + "data": "01 00 70 04 24 bc 01 00", + "timestamp": 1100107.601889 + }, + { + "id": "0x301", + "data": "01 00 71 04 88 bc 01 00", + "timestamp": 1100107.701984 + }, + { + "id": "0x301", + "data": "01 00 72 04 ec bc 01 00", + "timestamp": 1100107.802036 + }, + { + "id": "0x301", + "data": "01 00 73 04 50 bd 01 00", + "timestamp": 1100107.90213 + }, + { + "id": "0x301", + "data": "01 00 74 04 b4 bd 01 00", + "timestamp": 1100108.002225 + }, + { + "id": "0x301", + "data": "01 00 75 04 18 be 01 00", + "timestamp": 1100108.102319 + }, + { + "id": "0x301", + "data": "01 00 76 04 7c be 01 00", + "timestamp": 1100108.202313 + }, + { + "id": "0x301", + "data": "01 00 77 04 e0 be 01 00", + "timestamp": 1100108.302365 + }, + { + "id": "0x301", + "data": "01 00 78 04 44 bf 01 00", + "timestamp": 1100108.40246 + }, + { + "id": "0x301", + "data": "01 00 79 04 a8 bf 01 00", + "timestamp": 1100108.502511 + }, + { + "id": "0x301", + "data": "01 00 7a 04 0c c0 01 00", + "timestamp": 1100108.602606 + }, + { + "id": "0x301", + "data": "01 00 7b 04 70 c0 01 00", + "timestamp": 1100108.7027 + }, + { + "id": "0x301", + "data": "01 00 7c 04 d4 c0 01 00", + "timestamp": 1100108.802795 + }, + { + "id": "0x301", + "data": "01 00 7d 04 38 c1 01 00", + "timestamp": 1100108.902846 + }, + { + "id": "0x301", + "data": "01 00 7e 04 9c c1 01 00", + "timestamp": 1100109.002941 + }, + { + "id": "0x301", + "data": "01 00 7f 04 00 c2 01 00", + "timestamp": 1100109.103035 + }, + { + "id": "0x301", + "data": "01 00 80 04 64 c2 01 00", + "timestamp": 1100109.20303 + }, + { + "id": "0x301", + "data": "01 00 81 04 c8 c2 01 00", + "timestamp": 1100109.303124 + }, + { + "id": "0x301", + "data": "01 00 82 04 2c c3 01 00", + "timestamp": 1100109.403219 + }, + { + "id": "0x301", + "data": "01 00 83 04 90 c3 01 00", + "timestamp": 1100109.503313 + }, + { + "id": "0x301", + "data": "01 00 84 04 f4 c3 01 00", + "timestamp": 1100109.603408 + }, + { + "id": "0x301", + "data": "01 00 85 04 58 c4 01 00", + "timestamp": 1100109.703502 + }, + { + "id": "0x301", + "data": "01 00 86 04 bc c4 01 00", + "timestamp": 1100109.803596 + }, + { + "id": "0x301", + "data": "01 00 87 04 20 c5 01 00", + "timestamp": 1100109.903691 + }, + { + "id": "0x301", + "data": "01 00 88 04 84 c5 01 00", + "timestamp": 1100110.003828 + }, + { + "id": "0x301", + "data": "01 00 89 04 e8 c5 01 00", + "timestamp": 1100110.103922 + }, + { + "id": "0x301", + "data": "01 00 8a 04 4c c6 01 00", + "timestamp": 1100110.203917 + }, + { + "id": "0x301", + "data": "01 00 8b 04 b0 c6 01 00", + "timestamp": 1100110.304011 + }, + { + "id": "0x301", + "data": "01 00 8c 04 14 c7 01 00", + "timestamp": 1100110.404063 + }, + { + "id": "0x301", + "data": "01 00 8d 04 78 c7 01 00", + "timestamp": 1100110.504157 + }, + { + "id": "0x301", + "data": "01 00 8e 04 dc c7 01 00", + "timestamp": 1100110.604209 + }, + { + "id": "0x301", + "data": "01 00 8f 04 40 c8 01 00", + "timestamp": 1100110.704304 + }, + { + "id": "0x301", + "data": "01 00 90 04 a4 c8 01 00", + "timestamp": 1100110.804398 + }, + { + "id": "0x301", + "data": "01 00 91 04 08 c9 01 00", + "timestamp": 1100110.904493 + }, + { + "id": "0x301", + "data": "01 00 92 04 6c c9 01 00", + "timestamp": 1100111.004587 + }, + { + "id": "0x301", + "data": "01 00 93 04 d0 c9 01 00", + "timestamp": 1100111.104724 + }, + { + "id": "0x301", + "data": "01 00 94 04 34 ca 01 00", + "timestamp": 1100111.204761 + }, + { + "id": "0x301", + "data": "01 00 95 04 98 ca 01 00", + "timestamp": 1100111.304856 + }, + { + "id": "0x301", + "data": "01 00 96 04 fc ca 01 00", + "timestamp": 1100111.40495 + }, + { + "id": "0x301", + "data": "01 00 97 04 60 cb 01 00", + "timestamp": 1100111.505087 + }, + { + "id": "0x301", + "data": "01 00 98 04 c4 cb 01 00", + "timestamp": 1100111.605182 + }, + { + "id": "0x301", + "data": "01 00 99 04 28 cc 01 00", + "timestamp": 1100111.705319 + }, + { + "id": "0x301", + "data": "01 00 9a 04 8c cc 01 00", + "timestamp": 1100111.805413 + }, + { + "id": "0x301", + "data": "01 00 9b 04 f0 cc 01 00", + "timestamp": 1100111.905508 + }, + { + "id": "0x301", + "data": "01 00 9c 04 54 cd 01 00", + "timestamp": 1100112.005602 + }, + { + "id": "0x300", + "data": "01 05 01 01 95 cd 01 00", + "timestamp": 1100112.070753 + }, + { + "id": "0x301", + "data": "01 00 9d 04 b8 cd 01 00", + "timestamp": 1100112.105654 + }, + { + "id": "0x301", + "data": "01 00 9e 04 1c ce 01 00", + "timestamp": 1100112.205648 + }, + { + "id": "0x301", + "data": "01 00 9f 04 80 ce 01 00", + "timestamp": 1100112.305743 + }, + { + "id": "0x301", + "data": "01 00 a0 04 e4 ce 01 00", + "timestamp": 1100112.405794 + }, + { + "id": "0x301", + "data": "01 00 a1 04 48 cf 01 00", + "timestamp": 1100112.505846 + }, + { + "id": "0x301", + "data": "01 00 a2 04 ac cf 01 00", + "timestamp": 1100112.605983 + }, + { + "id": "0x301", + "data": "01 00 a3 04 10 d0 01 00", + "timestamp": 1100112.706078 + }, + { + "id": "0x301", + "data": "01 00 a4 04 74 d0 01 00", + "timestamp": 1100112.806129 + }, + { + "id": "0x301", + "data": "01 00 a5 04 d8 d0 01 00", + "timestamp": 1100112.906224 + }, + { + "id": "0x301", + "data": "01 00 a6 04 3c d1 01 00", + "timestamp": 1100113.006276 + }, + { + "id": "0x301", + "data": "01 00 a7 04 a0 d1 01 00", + "timestamp": 1100113.106413 + }, + { + "id": "0x301", + "data": "01 00 a8 04 04 d2 01 00", + "timestamp": 1100113.206407 + }, + { + "id": "0x301", + "data": "01 00 a9 04 68 d2 01 00", + "timestamp": 1100113.306502 + }, + { + "id": "0x301", + "data": "01 00 aa 04 cc d2 01 00", + "timestamp": 1100113.406639 + }, + { + "id": "0x301", + "data": "01 00 ab 04 30 d3 01 00", + "timestamp": 1100113.506733 + }, + { + "id": "0x301", + "data": "01 00 ac 04 94 d3 01 00", + "timestamp": 1100113.606828 + }, + { + "id": "0x301", + "data": "01 00 ad 04 f8 d3 01 00", + "timestamp": 1100113.706879 + }, + { + "id": "0x301", + "data": "01 00 ae 04 5c d4 01 00", + "timestamp": 1100113.806974 + }, + { + "id": "0x301", + "data": "01 00 af 04 c0 d4 01 00", + "timestamp": 1100113.907068 + }, + { + "id": "0x301", + "data": "01 00 b0 04 24 d5 01 00", + "timestamp": 1100114.007163 + }, + { + "id": "0x301", + "data": "01 00 b1 04 88 d5 01 00", + "timestamp": 1100114.107257 + }, + { + "id": "0x301", + "data": "01 00 b2 04 ec d5 01 00", + "timestamp": 1100114.207252 + }, + { + "id": "0x301", + "data": "01 00 b3 04 50 d6 01 00", + "timestamp": 1100114.307389 + }, + { + "id": "0x301", + "data": "01 00 b4 04 b4 d6 01 00", + "timestamp": 1100114.407483 + }, + { + "id": "0x301", + "data": "01 00 b5 04 18 d7 01 00", + "timestamp": 1100114.50762 + }, + { + "id": "0x301", + "data": "01 00 b6 04 7c d7 01 00", + "timestamp": 1100114.607672 + }, + { + "id": "0x301", + "data": "01 00 b7 04 e0 d7 01 00", + "timestamp": 1100114.707766 + }, + { + "id": "0x301", + "data": "01 00 b8 04 44 d8 01 00", + "timestamp": 1100114.807904 + }, + { + "id": "0x301", + "data": "01 00 b9 04 a8 d8 01 00", + "timestamp": 1100114.908041 + }, + { + "id": "0x301", + "data": "01 00 ba 04 0c d9 01 00", + "timestamp": 1100115.008135 + }, + { + "id": "0x301", + "data": "01 00 bb 04 70 d9 01 00", + "timestamp": 1100115.108229 + }, + { + "id": "0x301", + "data": "01 00 bc 04 d4 d9 01 00", + "timestamp": 1100115.208267 + }, + { + "id": "0x301", + "data": "01 00 bd 04 38 da 01 00", + "timestamp": 1100115.308361 + }, + { + "id": "0x301", + "data": "01 00 be 04 9c da 01 00", + "timestamp": 1100115.408498 + }, + { + "id": "0x301", + "data": "01 00 bf 04 00 db 01 00", + "timestamp": 1100115.508593 + }, + { + "id": "0x301", + "data": "01 00 c0 04 64 db 01 00", + "timestamp": 1100115.608687 + } + ] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-cross-page-latest-emergency.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-cross-page-latest-emergency.png new file mode 100644 index 0000000..e4291ec Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-cross-page-latest-emergency.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-driving.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-driving.png new file mode 100644 index 0000000..79db828 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-driving.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-emergency.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-emergency.png new file mode 100644 index 0000000..e4291ec Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-emergency.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-final-unknown.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-final-unknown.png new file mode 100644 index 0000000..853d26d Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-final-unknown.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-finished.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-finished.png new file mode 100644 index 0000000..86b15b4 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-finished.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-legacy-unknown.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-legacy-unknown.png new file mode 100644 index 0000000..a237ef6 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-legacy-unknown.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-manual.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-manual.png new file mode 100644 index 0000000..6b78397 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-manual.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-off.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-off.png new file mode 100644 index 0000000..6386d4e Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-off.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-ready-settled.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-ready-settled.png new file mode 100644 index 0000000..b14a583 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-ready-settled.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-ready.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-ready.png new file mode 100644 index 0000000..22da21c Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-ready.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-recovery.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-recovery.png new file mode 100644 index 0000000..b14a583 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-recovery.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-results.json b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-results.json new file mode 100644 index 0000000..2974279 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-results.json @@ -0,0 +1,348 @@ +{ + "result": "passed", + "scope": "physical CAN1 -> MCU RAM -> USART2/COM6 -> official HMI simulator; touch UART RX -> real CAN1 request; no physical screen download", + "checks": [ + { + "name": "off", + "color": "white", + "pixels": 271, + "ram": { + "states": [ + 2, + 1, + 1, + 0 + ], + "timestamp": 93857, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "ready", + "color": "yellow", + "pixels": 431, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 95466, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "driving", + "color": "yellow", + "pixels": 468, + "ram": { + "states": [ + 2, + 1, + 1, + 2 + ], + "timestamp": 97080, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "finished", + "color": "blue", + "pixels": 569, + "ram": { + "states": [ + 2, + 1, + 1, + 3 + ], + "timestamp": 98695, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "emergency", + "color": "red", + "pixels": 612, + "ram": { + "states": [ + 2, + 1, + 1, + 4 + ], + "timestamp": 100311, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "manual", + "color": "green", + "pixels": 759, + "ram": { + "states": [ + 2, + 1, + 1, + 5 + ], + "timestamp": 101926, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "as-invalid", + "color": "gray", + "pixels": 629, + "ram": { + "states": [ + 2, + 1, + 1, + 6 + ], + "timestamp": 103542, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "before-legacy", + "color": "yellow", + "pixels": 431, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 105164, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "legacy-unknown", + "color": "gray", + "pixels": 629, + "ram": { + "states": [ + 2, + 1, + 1, + 6 + ], + "timestamp": 106788, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "before-timeout", + "color": "yellow", + "pixels": 431, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 108395, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "timeout-other-traffic", + "color": "gray", + "pixels": 629, + "ram": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 108510, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "recovery", + "color": "yellow", + "pixels": 431, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 111622, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "cross-page-latest-emergency", + "color": "red", + "pixels": 612, + "ram": { + "states": [ + 2, + 1, + 1, + 4 + ], + "timestamp": 115347, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "before-touch-request", + "color": "yellow", + "pixels": 431, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 116953, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + }, + { + "name": "touch-request-keeps-as-ready", + "color": "yellow", + "pixels": 431, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 119866, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 2, + "task_head": 2, + "task_tail": 2 + }, + "passed": true, + "request": { + "id": "0x300", + "data": "01 05 01 01 95 cd 01 00", + "timestamp": 1100112.070753 + } + }, + { + "name": "final-unknown", + "color": "gray", + "pixels": 629, + "ram": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 119971, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 2, + "task_head": 2, + "task_tail": 2 + }, + "passed": true + } + ], + "errors": [] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-serial-panel.json b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-serial-panel.json new file mode 100644 index 0000000..4415bab --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-serial-panel.json @@ -0,0 +1,4 @@ +{ + "789052": "63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 30 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 32 FF FF FF 61 73 5F 73 74 61 74 65 3D 33 FF FF FF 61 73 5F 73 74 61 74 65 3D 34 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 34 FF FF FF 61 73 5F 73 74 61 74 65 3D 35 FF FF FF 61 73 5F 73 74 61 74 65 3D 36 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 36 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 37 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 30 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 30 FF FF FF 61 73 5F 73 74 61 74 65 3D 36 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 61 73 5F 73 74 61 74 65 3D 34 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 34 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 30 FF FF FF 61 73 5F 73 74 61 74 65 3D 36 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 37 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 30 FF FF FF ", + "461376": "1A FF FF FF AA 55 01 05 0D 0A " +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-timeout-other-traffic.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-timeout-other-traffic.png new file mode 100644 index 0000000..853d26d Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-timeout-other-traffic.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-touch-request-keeps-as-ready.png b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-touch-request-keeps-as-ready.png new file mode 100644 index 0000000..f5eaf7c Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-touch-request-keeps-as-ready.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-after-send-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-after-send-ram.log new file mode 100644 index 0000000..3ec23a9 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-after-send-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00000CB2 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00000BB8 +0x2000025C : 00000020 00000C80 00000000 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00000000 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00000000 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-registers.log b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-registers.log new file mode 100644 index 0000000..d77aad5 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-registers.log @@ -0,0 +1,35 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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: : 0x40006418 + +0x40006418 : 00001000 + + + +Reading 32-bit memory content + Size : 8 Bytes + Address: : 0x40006440 + +0x40006440 : 0015FF00 00000771 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-reset.log b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-reset.log new file mode 100644 index 0000000..e8a2635 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-reset.log @@ -0,0 +1,23 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 + + +MCU Reset + +Software reset is performed diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-results.json b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-results.json new file mode 100644 index 0000000..c9d22b3 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-results.json @@ -0,0 +1,33 @@ +{ + "reset_code": 0, + "baseline_frames": [], + "after_send_status": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + "send_errors": [], + "ram_after_send": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 0, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "uart_ascii": "dash.speed.val=0���dash.ts.val=0���dash.mct.val=0���dash.dl.val=0���dash.djwd.val=0���dash.mcuwd.val=0���dash.dtwd.val=0���dash.lvbat.val=0���d0=0���d1=0���d2=0���d3=0���d4=0���d5=0���d6=0���d7=0���d8=0���d9=0���d10=0���d11=0���d12=0���d13=0���d14=0���d15=0���dash.speed.pco=16904���dash.ts.pco=16904���dash.mct.pco=16904���dash.dl.pco=16904���dash.djwd.pco=16904���dash.mcuwd.pco=16904���dash.dtwd.pco=16904���dash.lvbat.pco=16904���current_task=7���lock_state=0���ebs_state=0���as_state=6���", + "frames": [] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-uart.bin b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-uart.bin new file mode 100644 index 0000000..8832870 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/can1-probe-uart.bin @@ -0,0 +1 @@ +dash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿ \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/final_unknown-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/final_unknown-ram.log new file mode 100644 index 0000000..edec8fa --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/final_unknown-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000082DA 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003A0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 000082DC +0x2000025C : 0000014F 000082DC 00007530 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 050155AA +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00007EDF 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00007EDF + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/flash-and-uart-results.json b/docs/evidence/2026-10-07/as-status-flash/153558/flash-and-uart-results.json new file mode 100644 index 0000000..c1de458 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/flash-and-uart-results.json @@ -0,0 +1,136 @@ +{ + "date": "2026-10-07", + "firmware": "v2.7", + "evidence_dir": "D:\\YMR\\AMI\\docs\\evidence\\2026-10-07\\as-status-flash\\153558", + "probe_serial": "37FF71064E573436188C1543", + "binary_bytes": 16672, + "binary_sha256": "1951c63e779429d08a992d1171fc92173e4399307ff741fdc5d9b7646848855d", + "flash_verified": true, + "full_readback_identical": true, + "physical_can_test_performed": false, + "physical_hmi_test_performed": false, + "target_probe": " -------------------------------------------------------------------\r\n STM32CubeProgrammer v2.20.0 \r\n -------------------------------------------------------------------\r\n\r\nST-LINK SN : 37FF71064E573436188C1543\r\nST-LINK FW : V2J47S7\r\nBoard : --\r\nVoltage : 3.24V\r\nSWD freq : 950 KHz\r\nConnect mode: Hot Plug\r\nReset mode : Software reset\r\nDevice ID : 0x467\r\nRevision ID : Rev Z\r\nDevice name : STM32G0B0xx/B1xx/C1xx\r\nFlash size : 128 KBytes\r\nDevice type : MCU\r\nDevice CPU : Cortex-M0+\r\nBL Version : 0x92\r\n\r\n", + "backup_bytes": 131072, + "backup_sha256": "bfcbde31896b0dacbfc37f30158c6ff93fc6fd6da5226be76c834bd18cfa6842", + "readback_image_sha256": "1951c63e779429d08a992d1171fc92173e4399307ff741fdc5d9b7646848855d", + "readback_128k_sha256": "e313ddcd7c5f2d356391c2faaae3e771ddef0964dd80e550432a592b59adbffa", + "reset_performed": true, + "serial": { + "port": "COM6", + "baudrate": 9600, + "captured_bytes": 1479, + "complete_commands": [ + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6", + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6", + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6" + ], + "other_frames_hex": [], + "errors": [], + "boot_unknown_uart_verified": true + } +} diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/flash-readback-128k.bin b/docs/evidence/2026-10-07/as-status-flash/153558/flash-readback-128k.bin new file mode 100644 index 0000000..28883f1 Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/flash-readback-128k.bin differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/flash-readback.log b/docs/evidence/2026-10-07/as-status-flash/153558/flash-readback.log new file mode 100644 index 0000000..1ec5850 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/flash-readback.log @@ -0,0 +1,29 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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\docs\evidence\2026-10-07\as-status-flash\153558\flash-readback-128k.bin + Size : 131072 Bytes + Address: : 0x8000000 +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Data read successfully +Time elapsed during read operation is: 00:00:02.132 diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/flash.log b/docs/evidence/2026-10-07/as-status-flash/153558/flash.log new file mode 100644 index 0000000..54fef1c --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/flash.log @@ -0,0 +1,56 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 16.28 KB + Address : 0x08000000 + + +Erasing memory corresponding to segment 0: +Erasing internal memory sectors [0 8] +Download in Progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +File download complete +Time elapsed during download operation: 00:00:00.798 + + + +Verifying... + + +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 50% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Time elapsed during verifying operation: 00:00:00.266 + + +Download verified successfully + + + +MCU Reset + +Software reset is performed diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/flash_as_v27.py b/docs/evidence/2026-10-07/as-status-flash/153558/flash_as_v27.py new file mode 100644 index 0000000..fa8c9af --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/flash_as_v27.py @@ -0,0 +1,67 @@ +import hashlib,json,re,subprocess,threading,time +from datetime import datetime,timezone,timedelta +from pathlib import Path +import serial +R=Path('D:/YMR/AMI') +O=R/'docs/evidence/2026-10-07/as-status-flash'/datetime.now(timezone(timedelta(hours=8))).strftime('%H%M%S') +O.mkdir(parents=True) +CLI='D:/STM32CubeCLT_1.19.0/STM32CubeProgrammer/bin/STM32_Programmer_CLI.exe' +SN='37FF71064E573436188C1543' +binary=R/'output/firmware/AMI_Controller.bin';data=binary.read_bytes() +assert len(data)==16672 and hashlib.sha256(data).hexdigest()=='1951c63e779429d08a992d1171fc92173e4399307ff741fdc5d9b7646848855d' +report={'date':'2026-10-07','firmware':'v2.7','evidence_dir':str(O),'probe_serial':SN,'binary_bytes':len(data),'binary_sha256':hashlib.sha256(data).hexdigest(),'flash_verified':False,'full_readback_identical':False,'physical_can_test_performed':False,'physical_hmi_test_performed':False} +def run(name,args,mode='HOTPLUG'): + p=subprocess.run([CLI,'-c','port=SWD',f'sn={SN}','freq=1000',f'mode={mode}',*args],capture_output=True,timeout=45) + log=p.stdout+p.stderr;(O/(name+'.log')).write_bytes(log) + assert p.returncode==0,(name,log.decode(errors='replace')) + assert b'Device ID : 0x467' in log,(name,'unexpected target') + return log +report['target_probe']=run('target-probe',[]).decode(errors='replace') +assert 'Flash size : 128 KBytes' in report['target_probe'] +backup=O/'before-flash-128k.bin' +run('before-flash-backup',['-u','0x08000000','131072',str(backup)]) +assert backup.stat().st_size==131072 +report['backup_bytes']=backup.stat().st_size;report['backup_sha256']=hashlib.sha256(backup.read_bytes()).hexdigest() +print('Backup complete: 128 KB',flush=True) +capture=bytearray();errors=[];stop=threading.Event();port=None;thread=None +try: + port=serial.Serial(port=None,baudrate=9600,timeout=.05) + port.port='COM6';port.dtr=False;port.rts=False;port.open() + def reader(): + try: + while not stop.is_set():capture.extend(port.read(512)) + except Exception as exc:errors.append(repr(exc)) + thread=threading.Thread(target=reader);thread.start() +except Exception as exc:report['serial_open_error']=repr(exc) +try: + log=run('flash',['reset=HWrst','-w',str(binary),'0x08000000','-v','-rst'],'UR') + assert b'Download verified successfully' in log + report['flash_verified']=True + print('v2.7 programmed and verified',flush=True) + readback=O/'flash-readback-128k.bin' + run('flash-readback',['-u','0x08000000','131072',str(readback)]) + assert readback.stat().st_size==131072 + assert readback.read_bytes()[:len(data)]==data,'Flash image differs from published BIN' + report['full_readback_identical']=True + report['readback_image_sha256']=hashlib.sha256(readback.read_bytes()[:len(data)]).hexdigest() + report['readback_128k_sha256']=hashlib.sha256(readback.read_bytes()).hexdigest() + log=run('reset',['-rst']);assert b'reset is performed' in log.lower() + report['reset_performed']=True + time.sleep(8) +finally: + stop.set() + if thread:thread.join(timeout=2) + if port:port.close() + (O/'uart-com6.bin').write_bytes(capture) + commands=[];unknown=[] + for frame in bytes(capture).split(b'\xff\xff\xff'): + if not frame:continue + try: + command=frame.decode('ascii') + if re.fullmatch(r'(?:[A-Za-z_][A-Za-z_0-9]*\.){0,2}[A-Za-z_][A-Za-z_0-9]*=-?\d+',command):commands.append(command) + else:unknown.append(frame.hex(' ')) + except UnicodeDecodeError:unknown.append(frame.hex(' ')) + report['serial']={'port':'COM6','baudrate':9600,'captured_bytes':len(capture),'complete_commands':commands,'other_frames_hex':unknown,'errors':errors,'boot_unknown_uart_verified':all(c in commands for c in ['current_task=7','lock_state=0','ebs_state=0','as_state=6'])} + (O/'flash-and-uart-results.json').write_text(json.dumps(report,ensure_ascii=False,indent=2)+'\n',encoding='utf-8') + (R/'tmp/as-flash-evidence-path.txt').write_text(str(O),encoding='utf-8') +print(json.dumps(report,ensure_ascii=False,indent=2),flush=True) diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hardware-can.json b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-can.json new file mode 100644 index 0000000..8558181 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-can.json @@ -0,0 +1,3431 @@ +{ + "received": [ + { + "id": "0x301", + "data": "01 00 00 00 64 00 00 00", + "timestamp": 1099993.927386 + }, + { + "id": "0x301", + "data": "01 00 01 00 c8 00 00 00", + "timestamp": 1099994.02748 + }, + { + "id": "0x301", + "data": "01 00 02 00 2c 01 00 00", + "timestamp": 1099994.127532 + }, + { + "id": "0x301", + "data": "01 00 03 00 90 01 00 00", + "timestamp": 1099994.227584 + }, + { + "id": "0x301", + "data": "01 00 04 00 f4 01 00 00", + "timestamp": 1099994.327636 + }, + { + "id": "0x301", + "data": "01 00 05 00 58 02 00 00", + "timestamp": 1099994.427687 + }, + { + "id": "0x301", + "data": "01 00 06 00 bc 02 00 00", + "timestamp": 1099994.527739 + }, + { + "id": "0x301", + "data": "01 00 07 00 20 03 00 00", + "timestamp": 1099994.627734 + }, + { + "id": "0x301", + "data": "01 00 08 00 84 03 00 00", + "timestamp": 1099994.727785 + }, + { + "id": "0x301", + "data": "01 00 09 00 e8 03 00 00", + "timestamp": 1099994.82788 + }, + { + "id": "0x301", + "data": "01 00 0a 00 4c 04 00 00", + "timestamp": 1099994.927932 + }, + { + "id": "0x301", + "data": "01 00 0b 00 b0 04 00 00", + "timestamp": 1099995.028026 + }, + { + "id": "0x301", + "data": "01 00 0c 00 14 05 00 00", + "timestamp": 1099995.128078 + }, + { + "id": "0x301", + "data": "01 00 0d 00 78 05 00 00", + "timestamp": 1099995.22813 + }, + { + "id": "0x301", + "data": "01 00 0e 00 dc 05 00 00", + "timestamp": 1099995.328224 + }, + { + "id": "0x301", + "data": "01 00 0f 00 40 06 00 00", + "timestamp": 1099995.428318 + }, + { + "id": "0x301", + "data": "01 00 10 00 a4 06 00 00", + "timestamp": 1099995.52837 + }, + { + "id": "0x301", + "data": "01 00 11 00 08 07 00 00", + "timestamp": 1099995.628365 + }, + { + "id": "0x301", + "data": "01 00 12 00 6c 07 00 00", + "timestamp": 1099995.728416 + }, + { + "id": "0x301", + "data": "01 00 13 00 d0 07 00 00", + "timestamp": 1099995.828511 + }, + { + "id": "0x301", + "data": "01 00 14 00 34 08 00 00", + "timestamp": 1099995.928605 + }, + { + "id": "0x301", + "data": "01 00 15 00 98 08 00 00", + "timestamp": 1099996.0287 + }, + { + "id": "0x301", + "data": "01 00 16 00 fc 08 00 00", + "timestamp": 1099996.128794 + }, + { + "id": "0x301", + "data": "01 00 17 00 60 09 00 00", + "timestamp": 1099996.228889 + }, + { + "id": "0x301", + "data": "01 00 18 00 c4 09 00 00", + "timestamp": 1099996.32894 + }, + { + "id": "0x301", + "data": "01 00 19 00 28 0a 00 00", + "timestamp": 1099996.429035 + }, + { + "id": "0x301", + "data": "01 00 1a 00 8c 0a 00 00", + "timestamp": 1099996.529087 + }, + { + "id": "0x301", + "data": "01 00 1b 00 f0 0a 00 00", + "timestamp": 1099996.628996 + }, + { + "id": "0x301", + "data": "01 00 1c 00 54 0b 00 00", + "timestamp": 1099996.72909 + }, + { + "id": "0x301", + "data": "01 00 1d 00 b8 0b 00 00", + "timestamp": 1099996.829142 + }, + { + "id": "0x301", + "data": "01 00 1e 00 1c 0c 00 00", + "timestamp": 1099996.929194 + }, + { + "id": "0x301", + "data": "01 00 1f 00 80 0c 00 00", + "timestamp": 1099997.029288 + }, + { + "id": "0x301", + "data": "01 00 20 00 e4 0c 00 00", + "timestamp": 1099997.12934 + }, + { + "id": "0x301", + "data": "01 00 21 00 48 0d 00 00", + "timestamp": 1099997.229434 + }, + { + "id": "0x301", + "data": "01 00 22 00 ac 0d 00 00", + "timestamp": 1099997.329529 + }, + { + "id": "0x301", + "data": "01 00 23 00 10 0e 00 00", + "timestamp": 1099997.429623 + }, + { + "id": "0x301", + "data": "01 00 24 00 74 0e 00 00", + "timestamp": 1099997.529675 + }, + { + "id": "0x301", + "data": "01 00 25 00 d8 0e 00 00", + "timestamp": 1099997.629669 + }, + { + "id": "0x301", + "data": "01 00 26 00 3c 0f 00 00", + "timestamp": 1099997.729721 + }, + { + "id": "0x301", + "data": "01 00 27 00 a0 0f 00 00", + "timestamp": 1099997.829816 + }, + { + "id": "0x301", + "data": "01 00 28 00 04 10 00 00", + "timestamp": 1099997.929867 + }, + { + "id": "0x301", + "data": "01 00 29 00 68 10 00 00", + "timestamp": 1099998.029962 + }, + { + "id": "0x301", + "data": "01 00 2a 00 cc 10 00 00", + "timestamp": 1099998.130014 + }, + { + "id": "0x301", + "data": "01 00 2b 00 30 11 00 00", + "timestamp": 1099998.230108 + }, + { + "id": "0x301", + "data": "01 00 2c 00 94 11 00 00", + "timestamp": 1099998.330202 + }, + { + "id": "0x301", + "data": "01 00 2d 00 f8 11 00 00", + "timestamp": 1099998.430254 + }, + { + "id": "0x301", + "data": "01 00 2e 00 5c 12 00 00", + "timestamp": 1099998.530349 + }, + { + "id": "0x301", + "data": "01 00 2f 00 c0 12 00 00", + "timestamp": 1099998.630343 + }, + { + "id": "0x301", + "data": "01 00 30 00 24 13 00 00", + "timestamp": 1099998.730437 + }, + { + "id": "0x301", + "data": "01 00 31 00 88 13 00 00", + "timestamp": 1099998.830575 + }, + { + "id": "0x301", + "data": "01 00 32 00 ec 13 00 00", + "timestamp": 1099998.930626 + }, + { + "id": "0x301", + "data": "01 00 33 00 50 14 00 00", + "timestamp": 1099999.030721 + }, + { + "id": "0x301", + "data": "01 00 34 00 b4 14 00 00", + "timestamp": 1099999.130858 + }, + { + "id": "0x301", + "data": "01 00 35 00 18 15 00 00", + "timestamp": 1099999.23091 + }, + { + "id": "0x301", + "data": "01 00 36 00 7c 15 00 00", + "timestamp": 1099999.331004 + }, + { + "id": "0x301", + "data": "01 00 37 00 e0 15 00 00", + "timestamp": 1099999.431099 + }, + { + "id": "0x301", + "data": "01 00 38 00 44 16 00 00", + "timestamp": 1099999.531193 + }, + { + "id": "0x301", + "data": "01 00 39 00 a8 16 00 00", + "timestamp": 1099999.631145 + }, + { + "id": "0x301", + "data": "01 00 3a 00 0c 17 00 00", + "timestamp": 1099999.731239 + }, + { + "id": "0x301", + "data": "01 00 3b 00 70 17 00 00", + "timestamp": 1099999.831334 + }, + { + "id": "0x301", + "data": "01 00 3c 00 d4 17 00 00", + "timestamp": 1099999.931428 + }, + { + "id": "0x301", + "data": "01 00 3d 00 38 18 00 00", + "timestamp": 1100000.031565 + }, + { + "id": "0x301", + "data": "01 00 3e 00 9c 18 00 00", + "timestamp": 1100000.13166 + }, + { + "id": "0x301", + "data": "01 00 3f 00 00 19 00 00", + "timestamp": 1100000.231797 + }, + { + "id": "0x301", + "data": "01 00 40 00 64 19 00 00", + "timestamp": 1100000.331891 + }, + { + "id": "0x301", + "data": "01 00 41 00 c8 19 00 00", + "timestamp": 1100000.432028 + }, + { + "id": "0x301", + "data": "01 00 42 00 2c 1a 00 00", + "timestamp": 1100000.532165 + }, + { + "id": "0x301", + "data": "01 00 43 00 90 1a 00 00", + "timestamp": 1100000.63216 + }, + { + "id": "0x301", + "data": "01 00 44 00 f4 1a 00 00", + "timestamp": 1100000.732254 + }, + { + "id": "0x301", + "data": "01 00 45 00 58 1b 00 00", + "timestamp": 1100000.832391 + }, + { + "id": "0x301", + "data": "01 00 46 00 bc 1b 00 00", + "timestamp": 1100000.932486 + }, + { + "id": "0x301", + "data": "01 00 47 00 20 1c 00 00", + "timestamp": 1100001.032623 + }, + { + "id": "0x301", + "data": "01 00 48 00 84 1c 00 00", + "timestamp": 1100001.132717 + }, + { + "id": "0x301", + "data": "01 00 49 00 e8 1c 00 00", + "timestamp": 1100001.232854 + }, + { + "id": "0x301", + "data": "01 00 4a 00 4c 1d 00 00", + "timestamp": 1100001.332949 + }, + { + "id": "0x301", + "data": "01 00 4b 00 b0 1d 00 00", + "timestamp": 1100001.433043 + }, + { + "id": "0x301", + "data": "01 00 4c 00 14 1e 00 00", + "timestamp": 1100001.53318 + }, + { + "id": "0x301", + "data": "01 00 4d 00 78 1e 00 00", + "timestamp": 1100001.633217 + }, + { + "id": "0x301", + "data": "01 00 4e 00 dc 1e 00 00", + "timestamp": 1100001.733312 + }, + { + "id": "0x301", + "data": "01 00 4f 00 40 1f 00 00", + "timestamp": 1100001.833406 + }, + { + "id": "0x301", + "data": "01 00 50 00 a4 1f 00 00", + "timestamp": 1100001.933501 + }, + { + "id": "0x301", + "data": "01 00 51 00 08 20 00 00", + "timestamp": 1100002.033595 + }, + { + "id": "0x301", + "data": "01 00 52 00 6c 20 00 00", + "timestamp": 1100002.133647 + }, + { + "id": "0x301", + "data": "01 00 53 00 d0 20 00 00", + "timestamp": 1100002.233741 + }, + { + "id": "0x301", + "data": "01 00 54 00 34 21 00 00", + "timestamp": 1100002.333836 + }, + { + "id": "0x301", + "data": "01 00 55 00 98 21 00 00", + "timestamp": 1100002.43393 + }, + { + "id": "0x301", + "data": "01 00 56 00 fc 21 00 00", + "timestamp": 1100002.534025 + }, + { + "id": "0x301", + "data": "01 00 57 00 60 22 00 00", + "timestamp": 1100002.634062 + }, + { + "id": "0x301", + "data": "01 00 58 00 c4 22 00 00", + "timestamp": 1100002.734156 + }, + { + "id": "0x301", + "data": "01 00 59 00 28 23 00 00", + "timestamp": 1100002.834293 + }, + { + "id": "0x301", + "data": "01 00 5a 00 8c 23 00 00", + "timestamp": 1100002.934345 + }, + { + "id": "0x301", + "data": "01 00 5b 00 f0 23 00 00", + "timestamp": 1100003.03444 + }, + { + "id": "0x301", + "data": "01 00 5c 00 54 24 00 00", + "timestamp": 1100003.134534 + }, + { + "id": "0x301", + "data": "01 00 5d 00 b8 24 00 00", + "timestamp": 1100003.234628 + }, + { + "id": "0x301", + "data": "01 00 5e 00 1c 25 00 00", + "timestamp": 1100003.33468 + }, + { + "id": "0x301", + "data": "01 00 5f 00 80 25 00 00", + "timestamp": 1100003.434775 + }, + { + "id": "0x301", + "data": "01 00 60 00 e4 25 00 00", + "timestamp": 1100003.534869 + }, + { + "id": "0x301", + "data": "01 00 61 00 48 26 00 00", + "timestamp": 1100003.634864 + }, + { + "id": "0x301", + "data": "01 00 62 00 ac 26 00 00", + "timestamp": 1100003.734958 + }, + { + "id": "0x301", + "data": "01 00 63 00 10 27 00 00", + "timestamp": 1100003.835052 + }, + { + "id": "0x301", + "data": "01 00 64 00 74 27 00 00", + "timestamp": 1100003.935104 + }, + { + "id": "0x301", + "data": "01 00 65 00 d8 27 00 00", + "timestamp": 1100004.035199 + }, + { + "id": "0x301", + "data": "01 00 66 00 3c 28 00 00", + "timestamp": 1100004.13525 + }, + { + "id": "0x301", + "data": "01 00 67 00 a0 28 00 00", + "timestamp": 1100004.235345 + }, + { + "id": "0x301", + "data": "01 00 68 00 04 29 00 00", + "timestamp": 1100004.335397 + }, + { + "id": "0x301", + "data": "01 00 69 00 68 29 00 00", + "timestamp": 1100004.435491 + }, + { + "id": "0x301", + "data": "01 00 6a 00 cc 29 00 00", + "timestamp": 1100004.535585 + }, + { + "id": "0x301", + "data": "01 00 6b 00 30 2a 00 00", + "timestamp": 1100004.63558 + }, + { + "id": "0x301", + "data": "01 00 6c 00 94 2a 00 00", + "timestamp": 1100004.735674 + }, + { + "id": "0x301", + "data": "01 00 6d 00 f8 2a 00 00", + "timestamp": 1100004.835769 + }, + { + "id": "0x301", + "data": "01 00 6e 00 5c 2b 00 00", + "timestamp": 1100004.935821 + }, + { + "id": "0x301", + "data": "01 00 6f 00 c0 2b 00 00", + "timestamp": 1100005.035915 + }, + { + "id": "0x301", + "data": "01 00 70 00 24 2c 00 00", + "timestamp": 1100005.136009 + }, + { + "id": "0x301", + "data": "01 00 71 00 88 2c 00 00", + "timestamp": 1100005.236104 + }, + { + "id": "0x301", + "data": "01 00 72 00 ec 2c 00 00", + "timestamp": 1100005.336156 + }, + { + "id": "0x301", + "data": "01 00 73 00 50 2d 00 00", + "timestamp": 1100005.43625 + }, + { + "id": "0x301", + "data": "01 00 74 00 b4 2d 00 00", + "timestamp": 1100005.536344 + }, + { + "id": "0x301", + "data": "01 00 75 00 18 2e 00 00", + "timestamp": 1100005.636339 + }, + { + "id": "0x301", + "data": "01 00 76 00 7c 2e 00 00", + "timestamp": 1100005.736391 + }, + { + "id": "0x301", + "data": "01 00 77 00 e0 2e 00 00", + "timestamp": 1100005.836485 + }, + { + "id": "0x301", + "data": "01 00 78 00 44 2f 00 00", + "timestamp": 1100005.93658 + }, + { + "id": "0x301", + "data": "01 00 79 00 a8 2f 00 00", + "timestamp": 1100006.036674 + }, + { + "id": "0x301", + "data": "01 00 7a 00 0c 30 00 00", + "timestamp": 1100006.136768 + }, + { + "id": "0x301", + "data": "01 00 7b 00 70 30 00 00", + "timestamp": 1100006.236863 + }, + { + "id": "0x301", + "data": "01 00 7c 00 d4 30 00 00", + "timestamp": 1100006.336957 + }, + { + "id": "0x301", + "data": "01 00 7d 00 38 31 00 00", + "timestamp": 1100006.437094 + }, + { + "id": "0x301", + "data": "01 00 7e 00 9c 31 00 00", + "timestamp": 1100006.537189 + }, + { + "id": "0x301", + "data": "01 00 7f 00 00 32 00 00", + "timestamp": 1100006.637183 + }, + { + "id": "0x301", + "data": "01 00 80 00 64 32 00 00", + "timestamp": 1100006.737278 + }, + { + "id": "0x301", + "data": "01 00 81 00 c8 32 00 00", + "timestamp": 1100006.837415 + }, + { + "id": "0x301", + "data": "01 00 82 00 2c 33 00 00", + "timestamp": 1100006.937509 + }, + { + "id": "0x301", + "data": "01 00 83 00 90 33 00 00", + "timestamp": 1100007.037646 + }, + { + "id": "0x301", + "data": "01 00 84 00 f4 33 00 00", + "timestamp": 1100007.137783 + }, + { + "id": "0x301", + "data": "01 00 85 00 58 34 00 00", + "timestamp": 1100007.237921 + }, + { + "id": "0x301", + "data": "01 00 86 00 bc 34 00 00", + "timestamp": 1100007.338015 + }, + { + "id": "0x301", + "data": "01 00 87 00 20 35 00 00", + "timestamp": 1100007.438109 + }, + { + "id": "0x301", + "data": "01 00 88 00 84 35 00 00", + "timestamp": 1100007.538247 + }, + { + "id": "0x301", + "data": "01 00 89 00 e8 35 00 00", + "timestamp": 1100007.638241 + }, + { + "id": "0x301", + "data": "01 00 8a 00 4c 36 00 00", + "timestamp": 1100007.738378 + }, + { + "id": "0x301", + "data": "01 00 8b 00 b0 36 00 00", + "timestamp": 1100007.838472 + }, + { + "id": "0x301", + "data": "01 00 8c 00 14 37 00 00", + "timestamp": 1100007.93861 + }, + { + "id": "0x301", + "data": "01 00 8d 00 78 37 00 00", + "timestamp": 1100008.038704 + }, + { + "id": "0x301", + "data": "01 00 8e 00 dc 37 00 00", + "timestamp": 1100008.138841 + }, + { + "id": "0x301", + "data": "01 00 8f 00 40 38 00 00", + "timestamp": 1100008.238936 + }, + { + "id": "0x301", + "data": "01 00 90 00 a4 38 00 00", + "timestamp": 1100008.33903 + }, + { + "id": "0x301", + "data": "01 00 91 00 08 39 00 00", + "timestamp": 1100008.439167 + }, + { + "id": "0x301", + "data": "01 00 92 00 6c 39 00 00", + "timestamp": 1100008.539262 + }, + { + "id": "0x301", + "data": "01 00 93 00 d0 39 00 00", + "timestamp": 1100008.639299 + }, + { + "id": "0x301", + "data": "01 00 94 00 34 3a 00 00", + "timestamp": 1100008.739393 + }, + { + "id": "0x301", + "data": "01 00 95 00 98 3a 00 00", + "timestamp": 1100008.83953 + }, + { + "id": "0x301", + "data": "01 00 96 00 fc 3a 00 00", + "timestamp": 1100008.939667 + }, + { + "id": "0x301", + "data": "01 00 97 00 60 3b 00 00", + "timestamp": 1100009.039762 + }, + { + "id": "0x301", + "data": "01 00 98 00 c4 3b 00 00", + "timestamp": 1100009.139899 + }, + { + "id": "0x301", + "data": "01 00 99 00 28 3c 00 00", + "timestamp": 1100009.239993 + }, + { + "id": "0x301", + "data": "01 00 9a 00 8c 3c 00 00", + "timestamp": 1100009.34013 + }, + { + "id": "0x301", + "data": "01 00 9b 00 f0 3c 00 00", + "timestamp": 1100009.440225 + }, + { + "id": "0x301", + "data": "01 00 9c 00 54 3d 00 00", + "timestamp": 1100009.540319 + }, + { + "id": "0x301", + "data": "01 00 9d 00 b8 3d 00 00", + "timestamp": 1100009.640314 + }, + { + "id": "0x301", + "data": "01 00 9e 00 1c 3e 00 00", + "timestamp": 1100009.740408 + }, + { + "id": "0x301", + "data": "01 00 9f 00 80 3e 00 00", + "timestamp": 1100009.840503 + }, + { + "id": "0x301", + "data": "01 00 a0 00 e4 3e 00 00", + "timestamp": 1100009.940597 + }, + { + "id": "0x301", + "data": "01 00 a1 00 48 3f 00 00", + "timestamp": 1100010.040734 + }, + { + "id": "0x301", + "data": "01 00 a2 00 ac 3f 00 00", + "timestamp": 1100010.140829 + }, + { + "id": "0x301", + "data": "01 00 a3 00 10 40 00 00", + "timestamp": 1100010.240966 + }, + { + "id": "0x301", + "data": "01 00 a4 00 74 40 00 00", + "timestamp": 1100010.34106 + }, + { + "id": "0x301", + "data": "01 00 a5 00 d8 40 00 00", + "timestamp": 1100010.441154 + }, + { + "id": "0x301", + "data": "01 00 a6 00 3c 41 00 00", + "timestamp": 1100010.541249 + }, + { + "id": "0x301", + "data": "01 00 a7 00 a0 41 00 00", + "timestamp": 1100010.641201 + }, + { + "id": "0x301", + "data": "01 00 a8 00 04 42 00 00", + "timestamp": 1100010.741295 + }, + { + "id": "0x301", + "data": "01 00 a9 00 68 42 00 00", + "timestamp": 1100010.84139 + }, + { + "id": "0x301", + "data": "01 00 aa 00 cc 42 00 00", + "timestamp": 1100010.941484 + }, + { + "id": "0x301", + "data": "01 00 ab 00 30 43 00 00", + "timestamp": 1100011.041536 + }, + { + "id": "0x301", + "data": "01 00 ac 00 94 43 00 00", + "timestamp": 1100011.14163 + }, + { + "id": "0x301", + "data": "01 00 ad 00 f8 43 00 00", + "timestamp": 1100011.241682 + }, + { + "id": "0x301", + "data": "01 00 ae 00 5c 44 00 00", + "timestamp": 1100011.341776 + }, + { + "id": "0x301", + "data": "01 00 af 00 c0 44 00 00", + "timestamp": 1100011.441828 + }, + { + "id": "0x301", + "data": "01 00 b0 00 24 45 00 00", + "timestamp": 1100011.541923 + }, + { + "id": "0x301", + "data": "01 00 b1 00 88 45 00 00", + "timestamp": 1100011.641874 + }, + { + "id": "0x301", + "data": "01 00 b2 00 ec 45 00 00", + "timestamp": 1100011.741969 + }, + { + "id": "0x301", + "data": "01 00 b3 00 50 46 00 00", + "timestamp": 1100011.842063 + }, + { + "id": "0x301", + "data": "01 00 b4 00 b4 46 00 00", + "timestamp": 1100011.942115 + }, + { + "id": "0x301", + "data": "01 00 b5 00 18 47 00 00", + "timestamp": 1100012.042209 + }, + { + "id": "0x301", + "data": "01 00 b6 00 7c 47 00 00", + "timestamp": 1100012.142304 + }, + { + "id": "0x301", + "data": "01 00 b7 00 e0 47 00 00", + "timestamp": 1100012.242398 + }, + { + "id": "0x301", + "data": "01 00 b8 00 44 48 00 00", + "timestamp": 1100012.342493 + }, + { + "id": "0x301", + "data": "01 00 b9 00 a8 48 00 00", + "timestamp": 1100012.442587 + }, + { + "id": "0x301", + "data": "01 00 ba 00 0c 49 00 00", + "timestamp": 1100012.542682 + }, + { + "id": "0x301", + "data": "01 00 bb 00 70 49 00 00", + "timestamp": 1100012.642676 + }, + { + "id": "0x301", + "data": "01 00 bc 00 d4 49 00 00", + "timestamp": 1100012.742771 + }, + { + "id": "0x301", + "data": "01 00 bd 00 38 4a 00 00", + "timestamp": 1100012.842822 + }, + { + "id": "0x301", + "data": "01 00 be 00 9c 4a 00 00", + "timestamp": 1100012.942917 + }, + { + "id": "0x301", + "data": "01 00 bf 00 00 4b 00 00", + "timestamp": 1100013.042968 + }, + { + "id": "0x301", + "data": "01 00 c0 00 64 4b 00 00", + "timestamp": 1100013.143063 + }, + { + "id": "0x301", + "data": "01 00 c1 00 c8 4b 00 00", + "timestamp": 1100013.243115 + }, + { + "id": "0x301", + "data": "01 00 c2 00 2c 4c 00 00", + "timestamp": 1100013.343209 + }, + { + "id": "0x301", + "data": "01 00 c3 00 90 4c 00 00", + "timestamp": 1100013.443261 + }, + { + "id": "0x301", + "data": "01 00 c4 00 f4 4c 00 00", + "timestamp": 1100013.543355 + }, + { + "id": "0x301", + "data": "01 00 c5 00 58 4d 00 00", + "timestamp": 1100013.643307 + }, + { + "id": "0x301", + "data": "01 00 c6 00 bc 4d 00 00", + "timestamp": 1100013.743402 + }, + { + "id": "0x301", + "data": "01 00 c7 00 20 4e 00 00", + "timestamp": 1100013.843496 + }, + { + "id": "0x301", + "data": "01 00 c8 00 84 4e 00 00", + "timestamp": 1100013.94359 + }, + { + "id": "0x301", + "data": "01 00 c9 00 e8 4e 00 00", + "timestamp": 1100014.043642 + }, + { + "id": "0x301", + "data": "01 00 ca 00 4c 4f 00 00", + "timestamp": 1100014.143737 + }, + { + "id": "0x301", + "data": "01 00 cb 00 b0 4f 00 00", + "timestamp": 1100014.243831 + }, + { + "id": "0x301", + "data": "01 00 cc 00 14 50 00 00", + "timestamp": 1100014.343925 + }, + { + "id": "0x301", + "data": "01 00 cd 00 78 50 00 00", + "timestamp": 1100014.443977 + }, + { + "id": "0x301", + "data": "01 00 ce 00 dc 50 00 00", + "timestamp": 1100014.544072 + }, + { + "id": "0x301", + "data": "01 00 cf 00 40 51 00 00", + "timestamp": 1100014.644066 + }, + { + "id": "0x301", + "data": "01 00 d0 00 a4 51 00 00", + "timestamp": 1100014.744161 + }, + { + "id": "0x301", + "data": "01 00 d1 00 08 52 00 00", + "timestamp": 1100014.844255 + }, + { + "id": "0x301", + "data": "01 00 d2 00 6c 52 00 00", + "timestamp": 1100014.944349 + }, + { + "id": "0x301", + "data": "01 00 d3 00 d0 52 00 00", + "timestamp": 1100015.044401 + }, + { + "id": "0x301", + "data": "01 00 d4 00 34 53 00 00", + "timestamp": 1100015.144496 + }, + { + "id": "0x301", + "data": "01 00 d5 00 98 53 00 00", + "timestamp": 1100015.244547 + }, + { + "id": "0x301", + "data": "01 00 d6 00 fc 53 00 00", + "timestamp": 1100015.344642 + }, + { + "id": "0x301", + "data": "01 00 d7 00 60 54 00 00", + "timestamp": 1100015.444694 + }, + { + "id": "0x301", + "data": "01 00 d8 00 c4 54 00 00", + "timestamp": 1100015.544788 + }, + { + "id": "0x301", + "data": "01 00 d9 00 28 55 00 00", + "timestamp": 1100015.64474 + }, + { + "id": "0x301", + "data": "01 00 da 00 8c 55 00 00", + "timestamp": 1100015.744792 + }, + { + "id": "0x301", + "data": "01 00 db 00 f0 55 00 00", + "timestamp": 1100015.844843 + }, + { + "id": "0x301", + "data": "01 00 dc 00 54 56 00 00", + "timestamp": 1100015.944895 + }, + { + "id": "0x301", + "data": "01 00 dd 00 b8 56 00 00", + "timestamp": 1100016.04499 + }, + { + "id": "0x301", + "data": "01 00 de 00 1c 57 00 00", + "timestamp": 1100016.145084 + }, + { + "id": "0x301", + "data": "01 00 df 00 80 57 00 00", + "timestamp": 1100016.245136 + }, + { + "id": "0x301", + "data": "01 00 e0 00 e4 57 00 00", + "timestamp": 1100016.345188 + }, + { + "id": "0x301", + "data": "01 00 e1 00 48 58 00 00", + "timestamp": 1100016.445239 + }, + { + "id": "0x301", + "data": "01 00 e2 00 ac 58 00 00", + "timestamp": 1100016.545291 + }, + { + "id": "0x301", + "data": "01 00 e3 00 10 59 00 00", + "timestamp": 1100016.645243 + }, + { + "id": "0x301", + "data": "01 00 e4 00 74 59 00 00", + "timestamp": 1100016.745295 + }, + { + "id": "0x301", + "data": "01 00 e5 00 d8 59 00 00", + "timestamp": 1100016.845346 + }, + { + "id": "0x301", + "data": "01 00 e6 00 3c 5a 00 00", + "timestamp": 1100016.945441 + }, + { + "id": "0x301", + "data": "01 00 e7 00 a0 5a 00 00", + "timestamp": 1100017.045493 + }, + { + "id": "0x301", + "data": "01 00 e8 00 04 5b 00 00", + "timestamp": 1100017.145544 + }, + { + "id": "0x301", + "data": "01 00 e9 00 68 5b 00 00", + "timestamp": 1100017.245639 + }, + { + "id": "0x301", + "data": "01 00 ea 00 cc 5b 00 00", + "timestamp": 1100017.345691 + }, + { + "id": "0x301", + "data": "01 00 eb 00 30 5c 00 00", + "timestamp": 1100017.445785 + }, + { + "id": "0x301", + "data": "01 00 ec 00 94 5c 00 00", + "timestamp": 1100017.545837 + }, + { + "id": "0x301", + "data": "01 00 ed 00 f8 5c 00 00", + "timestamp": 1100017.645831 + }, + { + "id": "0x301", + "data": "01 00 ee 00 5c 5d 00 00", + "timestamp": 1100017.745968 + }, + { + "id": "0x301", + "data": "01 00 ef 00 c0 5d 00 00", + "timestamp": 1100017.84602 + }, + { + "id": "0x301", + "data": "01 00 f0 00 24 5e 00 00", + "timestamp": 1100017.946115 + }, + { + "id": "0x301", + "data": "01 00 f1 00 88 5e 00 00", + "timestamp": 1100018.046209 + }, + { + "id": "0x301", + "data": "01 00 f2 00 ec 5e 00 00", + "timestamp": 1100018.146346 + }, + { + "id": "0x301", + "data": "01 00 f3 00 50 5f 00 00", + "timestamp": 1100018.246441 + }, + { + "id": "0x301", + "data": "01 00 f4 00 b4 5f 00 00", + "timestamp": 1100018.346578 + }, + { + "id": "0x301", + "data": "01 00 f5 00 18 60 00 00", + "timestamp": 1100018.446672 + }, + { + "id": "0x301", + "data": "01 00 f6 00 7c 60 00 00", + "timestamp": 1100018.546724 + }, + { + "id": "0x301", + "data": "01 00 f7 00 e0 60 00 00", + "timestamp": 1100018.646718 + }, + { + "id": "0x301", + "data": "01 00 f8 00 44 61 00 00", + "timestamp": 1100018.746813 + }, + { + "id": "0x301", + "data": "01 00 f9 00 a8 61 00 00", + "timestamp": 1100018.846907 + }, + { + "id": "0x301", + "data": "01 00 fa 00 0c 62 00 00", + "timestamp": 1100018.946959 + }, + { + "id": "0x301", + "data": "01 00 fb 00 70 62 00 00", + "timestamp": 1100019.047053 + }, + { + "id": "0x301", + "data": "01 00 fc 00 d4 62 00 00", + "timestamp": 1100019.147105 + }, + { + "id": "0x301", + "data": "01 00 fd 00 38 63 00 00", + "timestamp": 1100019.2472 + }, + { + "id": "0x301", + "data": "01 00 fe 00 9c 63 00 00", + "timestamp": 1100019.347294 + }, + { + "id": "0x301", + "data": "01 00 ff 00 00 64 00 00", + "timestamp": 1100019.447388 + }, + { + "id": "0x301", + "data": "01 00 00 01 64 64 00 00", + "timestamp": 1100019.54744 + }, + { + "id": "0x301", + "data": "01 00 01 01 c8 64 00 00", + "timestamp": 1100019.647435 + }, + { + "id": "0x301", + "data": "01 00 02 01 2c 65 00 00", + "timestamp": 1100019.747529 + }, + { + "id": "0x301", + "data": "01 00 03 01 90 65 00 00", + "timestamp": 1100019.847623 + }, + { + "id": "0x301", + "data": "01 00 04 01 f4 65 00 00", + "timestamp": 1100019.947675 + }, + { + "id": "0x301", + "data": "01 00 05 01 58 66 00 00", + "timestamp": 1100020.047983 + }, + { + "id": "0x301", + "data": "01 00 06 01 bc 66 00 00", + "timestamp": 1100020.147907 + }, + { + "id": "0x301", + "data": "01 00 07 01 20 67 00 00", + "timestamp": 1100020.248001 + }, + { + "id": "0x301", + "data": "01 00 08 01 84 67 00 00", + "timestamp": 1100020.348096 + }, + { + "id": "0x301", + "data": "01 00 09 01 e8 67 00 00", + "timestamp": 1100020.44819 + }, + { + "id": "0x301", + "data": "01 00 0a 01 4c 68 00 00", + "timestamp": 1100020.548285 + }, + { + "id": "0x301", + "data": "01 00 0b 01 b0 68 00 00", + "timestamp": 1100020.648236 + }, + { + "id": "0x301", + "data": "01 00 0c 01 14 69 00 00", + "timestamp": 1100020.748331 + }, + { + "id": "0x301", + "data": "01 00 0d 01 78 69 00 00", + "timestamp": 1100020.848383 + }, + { + "id": "0x301", + "data": "01 00 0e 01 dc 69 00 00", + "timestamp": 1100020.948434 + }, + { + "id": "0x301", + "data": "01 00 0f 01 40 6a 00 00", + "timestamp": 1100021.048529 + }, + { + "id": "0x301", + "data": "01 00 10 01 a4 6a 00 00", + "timestamp": 1100021.14858 + }, + { + "id": "0x301", + "data": "01 00 11 01 08 6b 00 00", + "timestamp": 1100021.248632 + }, + { + "id": "0x301", + "data": "01 00 12 01 6c 6b 00 00", + "timestamp": 1100021.348727 + }, + { + "id": "0x301", + "data": "01 00 13 01 d0 6b 00 00", + "timestamp": 1100021.448778 + }, + { + "id": "0x301", + "data": "01 00 14 01 34 6c 00 00", + "timestamp": 1100021.54883 + }, + { + "id": "0x301", + "data": "01 00 15 01 98 6c 00 00", + "timestamp": 1100021.648782 + }, + { + "id": "0x301", + "data": "01 00 16 01 fc 6c 00 00", + "timestamp": 1100021.748876 + }, + { + "id": "0x301", + "data": "01 00 17 01 60 6d 00 00", + "timestamp": 1100021.848928 + }, + { + "id": "0x301", + "data": "01 00 18 01 c4 6d 00 00", + "timestamp": 1100021.94898 + }, + { + "id": "0x301", + "data": "01 00 19 01 28 6e 00 00", + "timestamp": 1100022.049032 + }, + { + "id": "0x301", + "data": "01 00 1a 01 8c 6e 00 00", + "timestamp": 1100022.149084 + }, + { + "id": "0x301", + "data": "01 00 1b 01 f0 6e 00 00", + "timestamp": 1100022.249178 + }, + { + "id": "0x301", + "data": "01 00 1c 01 54 6f 00 00", + "timestamp": 1100022.34923 + }, + { + "id": "0x301", + "data": "01 00 1d 01 b8 6f 00 00", + "timestamp": 1100022.449324 + }, + { + "id": "0x301", + "data": "01 00 1e 01 1c 70 00 00", + "timestamp": 1100022.549419 + }, + { + "id": "0x301", + "data": "01 00 1f 01 80 70 00 00", + "timestamp": 1100022.649413 + }, + { + "id": "0x301", + "data": "01 00 20 01 e4 70 00 00", + "timestamp": 1100022.749507 + }, + { + "id": "0x301", + "data": "01 00 21 01 48 71 00 00", + "timestamp": 1100022.849602 + }, + { + "id": "0x301", + "data": "01 00 22 01 ac 71 00 00", + "timestamp": 1100022.949696 + }, + { + "id": "0x301", + "data": "01 00 23 01 10 72 00 00", + "timestamp": 1100023.049791 + }, + { + "id": "0x301", + "data": "01 00 24 01 74 72 00 00", + "timestamp": 1100023.149885 + }, + { + "id": "0x301", + "data": "01 00 25 01 d8 72 00 00", + "timestamp": 1100023.24998 + }, + { + "id": "0x301", + "data": "01 00 26 01 3c 73 00 00", + "timestamp": 1100023.350074 + }, + { + "id": "0x301", + "data": "01 00 27 01 a0 73 00 00", + "timestamp": 1100023.450126 + }, + { + "id": "0x301", + "data": "01 00 28 01 04 74 00 00", + "timestamp": 1100023.550178 + }, + { + "id": "0x301", + "data": "01 00 29 01 68 74 00 00", + "timestamp": 1100023.650172 + }, + { + "id": "0x301", + "data": "01 00 2a 01 cc 74 00 00", + "timestamp": 1100023.750224 + }, + { + "id": "0x301", + "data": "01 00 2b 01 30 75 00 00", + "timestamp": 1100023.850318 + }, + { + "id": "0x301", + "data": "01 00 2c 01 94 75 00 00", + "timestamp": 1100023.95037 + }, + { + "id": "0x301", + "data": "01 00 2d 01 f8 75 00 00", + "timestamp": 1100024.050422 + }, + { + "id": "0x301", + "data": "01 00 2e 01 5c 76 00 00", + "timestamp": 1100024.150474 + }, + { + "id": "0x301", + "data": "01 00 2f 01 c0 76 00 00", + "timestamp": 1100024.250568 + }, + { + "id": "0x301", + "data": "01 00 30 01 24 77 00 00", + "timestamp": 1100024.35062 + }, + { + "id": "0x301", + "data": "01 00 31 01 88 77 00 00", + "timestamp": 1100024.450714 + }, + { + "id": "0x301", + "data": "01 00 32 01 ec 77 00 00", + "timestamp": 1100024.550766 + }, + { + "id": "0x301", + "data": "01 00 33 01 50 78 00 00", + "timestamp": 1100024.65076 + }, + { + "id": "0x301", + "data": "01 00 34 01 b4 78 00 00", + "timestamp": 1100024.750812 + }, + { + "id": "0x301", + "data": "01 00 35 01 18 79 00 00", + "timestamp": 1100024.850864 + }, + { + "id": "0x301", + "data": "01 00 36 01 7c 79 00 00", + "timestamp": 1100024.950958 + }, + { + "id": "0x301", + "data": "01 00 37 01 e0 79 00 00", + "timestamp": 1100025.051053 + }, + { + "id": "0x301", + "data": "01 00 38 01 44 7a 00 00", + "timestamp": 1100025.151147 + }, + { + "id": "0x301", + "data": "01 00 39 01 a8 7a 00 00", + "timestamp": 1100025.251199 + }, + { + "id": "0x301", + "data": "01 00 3a 01 0c 7b 00 00", + "timestamp": 1100025.351293 + }, + { + "id": "0x301", + "data": "01 00 3b 01 70 7b 00 00", + "timestamp": 1100025.451388 + }, + { + "id": "0x300", + "data": "01 05 00 01 81 7b 00 00", + "timestamp": 1100025.46854 + }, + { + "id": "0x301", + "data": "01 00 3c 01 d4 7b 00 00", + "timestamp": 1100025.55144 + }, + { + "id": "0x301", + "data": "01 00 3d 01 38 7c 00 00", + "timestamp": 1100025.651434 + }, + { + "id": "0x301", + "data": "01 00 3e 01 9c 7c 00 00", + "timestamp": 1100025.751486 + }, + { + "id": "0x301", + "data": "01 00 3f 01 00 7d 00 00", + "timestamp": 1100025.85158 + }, + { + "id": "0x301", + "data": "01 00 40 01 64 7d 00 00", + "timestamp": 1100025.951632 + }, + { + "id": "0x301", + "data": "01 00 41 01 c8 7d 00 00", + "timestamp": 1100026.051684 + }, + { + "id": "0x301", + "data": "01 00 42 01 2c 7e 00 00", + "timestamp": 1100026.151736 + }, + { + "id": "0x301", + "data": "01 00 43 01 90 7e 00 00", + "timestamp": 1100026.251787 + }, + { + "id": "0x301", + "data": "01 00 44 01 f4 7e 00 00", + "timestamp": 1100026.351839 + }, + { + "id": "0x301", + "data": "01 00 45 01 58 7f 00 00", + "timestamp": 1100026.451891 + }, + { + "id": "0x301", + "data": "01 00 46 01 bc 7f 00 00", + "timestamp": 1100026.551943 + }, + { + "id": "0x301", + "data": "01 00 47 01 20 80 00 00", + "timestamp": 1100026.651852 + }, + { + "id": "0x301", + "data": "01 00 48 01 84 80 00 00", + "timestamp": 1100026.751904 + }, + { + "id": "0x301", + "data": "01 00 49 01 e8 80 00 00", + "timestamp": 1100026.851955 + }, + { + "id": "0x301", + "data": "01 00 4a 01 4c 81 00 00", + "timestamp": 1100026.95205 + }, + { + "id": "0x301", + "data": "01 00 4b 01 b0 81 00 00", + "timestamp": 1100027.052102 + }, + { + "id": "0x301", + "data": "01 00 4c 01 14 82 00 00", + "timestamp": 1100027.152153 + }, + { + "id": "0x301", + "data": "01 00 4d 01 78 82 00 00", + "timestamp": 1100027.252205 + }, + { + "id": "0x301", + "data": "01 00 4e 01 dc 82 00 00", + "timestamp": 1100027.3523 + }, + { + "id": "0x301", + "data": "01 00 4f 01 40 83 00 00", + "timestamp": 1100027.452351 + } + ], + "sent": [ + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.0122953 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.0921972 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.1729179 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.253324 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.3341388 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.414504 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.4948484 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.575578 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.6558224 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.7366378 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02", + "monotonic": 1099997.817017 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099997.8970698 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099997.9778163 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099998.0584445 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099998.1388891 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099998.2192201 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099998.2998871 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099998.3805869 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099998.4613185 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099998.5421328 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099998.6222711 + }, + { + "id": "0x183", + "data": "02 01 01 0f 01 01 00 02", + "monotonic": 1099998.7025271 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099998.7834968 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099998.8643131 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099998.9444261 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099999.024778 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099999.1057745 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099999.1860594 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099999.2669622 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099999.3472147 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099999.4279962 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099999.508619 + }, + { + "id": "0x183", + "data": "02 01 01 0f 02 02 00 02", + "monotonic": 1099999.5887331 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1099999.6695051 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1099999.7500486 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1099999.8309671 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1099999.911486 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1099999.9918619 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1100000.072397 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1100000.1528272 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1100000.2333299 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1100000.3139876 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1100000.3950195 + }, + { + "id": "0x183", + "data": "02 01 01 0f 03 03 00 02", + "monotonic": 1100000.4752865 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100000.5556734 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100000.6362057 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100000.7163398 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100000.7964945 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100000.8773023 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100000.9575946 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100001.0381615 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100001.1191281 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100001.1993732 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100001.2802899 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100001.3603372 + }, + { + "id": "0x183", + "data": "02 01 01 0f 04 04 00 02", + "monotonic": 1100001.4408624 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100001.5218074 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100001.6026805 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100001.6835767 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100001.7637024 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100001.8445711 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100001.9250431 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100002.0053456 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100002.0863208 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100002.1677457 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100002.2482019 + }, + { + "id": "0x183", + "data": "02 01 01 0f 05 05 00 02", + "monotonic": 1100002.3286171 + }, + { + "id": "0x183", + "data": "02 01 01 00 ff 01 00 02", + "monotonic": 1100002.408848 + }, + { + "id": "0x183", + "data": "02 01 01 00 ff 01 00 02", + "monotonic": 1100002.4897951 + }, + { + "id": "0x183", + "data": "02 01 01 00 ff 01 00 02", + "monotonic": 1100002.570186 + }, + { + "id": "0x183", + "data": "02 01 01 00 ff 01 00 02", + "monotonic": 1100002.6502164 + }, + { + "id": "0x183", + "data": "02 01 01 00 ff 01 00 02", + "monotonic": 1100002.730852 + }, + { + "id": "0x183", + "data": "02 01 01 00 ff 01 00 02", + "monotonic": 1100002.8110659 + }, + { + "id": "0x183", + "data": "02 01 01 00 ff 01 00 02", + "monotonic": 1100002.8914869 + }, + { + "id": "0x183", + "data": "02 01 01 00 ff 01 00 02", + "monotonic": 1100002.9718152 + }, + { + "id": "0x183", + "data": "02 01 01 01 ff 01 00 02", + "monotonic": 1100003.0524756 + }, + { + "id": "0x183", + "data": "02 01 01 01 ff 01 00 02", + "monotonic": 1100003.1330613 + }, + { + "id": "0x183", + "data": "02 01 01 01 ff 01 00 02", + "monotonic": 1100003.213619 + }, + { + "id": "0x183", + "data": "02 01 01 01 ff 01 00 02", + "monotonic": 1100003.2941715 + }, + { + "id": "0x183", + "data": "02 01 01 01 ff 01 00 02", + "monotonic": 1100003.3755585 + }, + { + "id": "0x183", + "data": "02 01 01 01 ff 01 00 02", + "monotonic": 1100003.456572 + }, + { + "id": "0x183", + "data": "02 01 01 01 ff 01 00 02", + "monotonic": 1100003.5371867 + }, + { + "id": "0x183", + "data": "02 01 01 01 ff 01 00 02", + "monotonic": 1100003.6185696 + }, + { + "id": "0x183", + "data": "02 01 01 02 ff 01 00 02", + "monotonic": 1100003.6989515 + }, + { + "id": "0x183", + "data": "02 01 01 02 ff 01 00 02", + "monotonic": 1100003.7793475 + }, + { + "id": "0x183", + "data": "02 01 01 02 ff 01 00 02", + "monotonic": 1100003.8594885 + }, + { + "id": "0x183", + "data": "02 01 01 02 ff 01 00 02", + "monotonic": 1100003.939814 + }, + { + "id": "0x183", + "data": "02 01 01 02 ff 01 00 02", + "monotonic": 1100004.020172 + }, + { + "id": "0x183", + "data": "02 01 01 02 ff 01 00 02", + "monotonic": 1100004.1005031 + }, + { + "id": "0x183", + "data": "02 01 01 02 ff 01 00 02", + "monotonic": 1100004.180901 + }, + { + "id": "0x183", + "data": "02 01 01 02 ff 01 00 02", + "monotonic": 1100004.2618648 + }, + { + "id": "0x183", + "data": "02 01 01 03 ff 01 00 02", + "monotonic": 1100004.342117 + }, + { + "id": "0x183", + "data": "02 01 01 03 ff 01 00 02", + "monotonic": 1100004.4222024 + }, + { + "id": "0x183", + "data": "02 01 01 03 ff 01 00 02", + "monotonic": 1100004.5025411 + }, + { + "id": "0x183", + "data": "02 01 01 03 ff 01 00 02", + "monotonic": 1100004.5830179 + }, + { + "id": "0x183", + "data": "02 01 01 03 ff 01 00 02", + "monotonic": 1100004.6635929 + }, + { + "id": "0x183", + "data": "02 01 01 03 ff 01 00 02", + "monotonic": 1100004.7445505 + }, + { + "id": "0x183", + "data": "02 01 01 03 ff 01 00 02", + "monotonic": 1100004.8248231 + }, + { + "id": "0x183", + "data": "02 01 01 03 ff 01 00 02", + "monotonic": 1100004.9057298 + }, + { + "id": "0x183", + "data": "02 01 01 04 ff 01 00 02", + "monotonic": 1100004.9868689 + }, + { + "id": "0x183", + "data": "02 01 01 04 ff 01 00 02", + "monotonic": 1100005.0679538 + }, + { + "id": "0x183", + "data": "02 01 01 04 ff 01 00 02", + "monotonic": 1100005.1486719 + }, + { + "id": "0x183", + "data": "02 01 01 04 ff 01 00 02", + "monotonic": 1100005.2294524 + }, + { + "id": "0x183", + "data": "02 01 01 04 ff 01 00 02", + "monotonic": 1100005.3097436 + }, + { + "id": "0x183", + "data": "02 01 01 04 ff 01 00 02", + "monotonic": 1100005.3907415 + }, + { + "id": "0x183", + "data": "02 01 01 04 ff 01 00 02", + "monotonic": 1100005.4708775 + }, + { + "id": "0x183", + "data": "02 01 01 04 ff 01 00 02", + "monotonic": 1100005.5509429 + }, + { + "id": "0x183", + "data": "02 01 01 05 ff 01 00 02", + "monotonic": 1100005.6313971 + }, + { + "id": "0x183", + "data": "02 01 01 05 ff 01 00 02", + "monotonic": 1100005.7116035 + }, + { + "id": "0x183", + "data": "02 01 01 05 ff 01 00 02", + "monotonic": 1100005.7918679 + }, + { + "id": "0x183", + "data": "02 01 01 05 ff 01 00 02", + "monotonic": 1100005.8720921 + }, + { + "id": "0x183", + "data": "02 01 01 05 ff 01 00 02", + "monotonic": 1100005.9524597 + }, + { + "id": "0x183", + "data": "02 01 01 05 ff 01 00 02", + "monotonic": 1100006.0329311 + }, + { + "id": "0x183", + "data": "02 01 01 05 ff 01 00 02", + "monotonic": 1100006.1134035 + }, + { + "id": "0x183", + "data": "02 01 01 05 ff 01 00 02", + "monotonic": 1100006.1935366 + }, + { + "id": "0x183", + "data": "02 01 01 06 ff 01 00 02", + "monotonic": 1100006.2746296 + }, + { + "id": "0x183", + "data": "02 01 01 06 ff 01 00 02", + "monotonic": 1100006.3552577 + }, + { + "id": "0x183", + "data": "02 01 01 06 ff 01 00 02", + "monotonic": 1100006.4353696 + }, + { + "id": "0x183", + "data": "02 01 01 06 ff 01 00 02", + "monotonic": 1100006.5162621 + }, + { + "id": "0x183", + "data": "02 01 01 06 ff 01 00 02", + "monotonic": 1100006.5966109 + }, + { + "id": "0x183", + "data": "02 01 01 06 ff 01 00 02", + "monotonic": 1100006.6771364 + }, + { + "id": "0x183", + "data": "02 01 01 06 ff 01 00 02", + "monotonic": 1100006.7580323 + }, + { + "id": "0x183", + "data": "02 01 01 06 ff 01 00 02", + "monotonic": 1100006.8380814 + }, + { + "id": "0x183", + "data": "02 01 01 07 ff 01 00 02", + "monotonic": 1100006.9195926 + }, + { + "id": "0x183", + "data": "02 01 01 07 ff 01 00 02", + "monotonic": 1100007.0002326 + }, + { + "id": "0x183", + "data": "02 01 01 07 ff 01 00 02", + "monotonic": 1100007.0806842 + }, + { + "id": "0x183", + "data": "02 01 01 07 ff 01 00 02", + "monotonic": 1100007.1613048 + }, + { + "id": "0x183", + "data": "02 01 01 07 ff 01 00 02", + "monotonic": 1100007.2412636 + }, + { + "id": "0x183", + "data": "02 01 01 07 ff 01 00 02", + "monotonic": 1100007.321947 + }, + { + "id": "0x183", + "data": "02 01 01 07 ff 01 00 02", + "monotonic": 1100007.4022186 + }, + { + "id": "0x183", + "data": "02 01 01 07 ff 01 00 02", + "monotonic": 1100007.4831292 + }, + { + "id": "0x183", + "data": "02 01 01 08 ff 01 00 02", + "monotonic": 1100007.5640168 + }, + { + "id": "0x183", + "data": "02 01 01 08 ff 01 00 02", + "monotonic": 1100007.6443667 + }, + { + "id": "0x183", + "data": "02 01 01 08 ff 01 00 02", + "monotonic": 1100007.7249198 + }, + { + "id": "0x183", + "data": "02 01 01 08 ff 01 00 02", + "monotonic": 1100007.8055645 + }, + { + "id": "0x183", + "data": "02 01 01 08 ff 01 00 02", + "monotonic": 1100007.8861447 + }, + { + "id": "0x183", + "data": "02 01 01 08 ff 01 00 02", + "monotonic": 1100007.9672982 + }, + { + "id": "0x183", + "data": "02 01 01 08 ff 01 00 02", + "monotonic": 1100008.0477615 + }, + { + "id": "0x183", + "data": "02 01 01 08 ff 01 00 02", + "monotonic": 1100008.1285137 + }, + { + "id": "0x183", + "data": "02 01 01 08 ff 01 00 02", + "monotonic": 1100008.2087992 + }, + { + "id": "0x183", + "data": "02 01 01 09 ff 01 00 02", + "monotonic": 1100008.2892307 + }, + { + "id": "0x183", + "data": "02 01 01 09 ff 01 00 02", + "monotonic": 1100008.3694701 + }, + { + "id": "0x183", + "data": "02 01 01 09 ff 01 00 02", + "monotonic": 1100008.4503791 + }, + { + "id": "0x183", + "data": "02 01 01 09 ff 01 00 02", + "monotonic": 1100008.5311796 + }, + { + "id": "0x183", + "data": "02 01 01 09 ff 01 00 02", + "monotonic": 1100008.6120205 + }, + { + "id": "0x183", + "data": "02 01 01 09 ff 01 00 02", + "monotonic": 1100008.6926729 + }, + { + "id": "0x183", + "data": "02 01 01 09 ff 01 00 02", + "monotonic": 1100008.7734796 + }, + { + "id": "0x183", + "data": "02 01 01 09 ff 01 00 02", + "monotonic": 1100008.85371 + }, + { + "id": "0x183", + "data": "02 01 01 0a ff 01 00 02", + "monotonic": 1100008.934203 + }, + { + "id": "0x183", + "data": "02 01 01 0a ff 01 00 02", + "monotonic": 1100009.0147776 + }, + { + "id": "0x183", + "data": "02 01 01 0a ff 01 00 02", + "monotonic": 1100009.0947643 + }, + { + "id": "0x183", + "data": "02 01 01 0a ff 01 00 02", + "monotonic": 1100009.1750829 + }, + { + "id": "0x183", + "data": "02 01 01 0a ff 01 00 02", + "monotonic": 1100009.2559069 + }, + { + "id": "0x183", + "data": "02 01 01 0a ff 01 00 02", + "monotonic": 1100009.3361635 + }, + { + "id": "0x183", + "data": "02 01 01 0a ff 01 00 02", + "monotonic": 1100009.4164334 + }, + { + "id": "0x183", + "data": "02 01 01 0a ff 01 00 02", + "monotonic": 1100009.4963385 + }, + { + "id": "0x183", + "data": "02 01 01 0b ff 01 00 02", + "monotonic": 1100009.5764843 + }, + { + "id": "0x183", + "data": "02 01 01 0b ff 01 00 02", + "monotonic": 1100009.6565356 + }, + { + "id": "0x183", + "data": "02 01 01 0b ff 01 00 02", + "monotonic": 1100009.7371627 + }, + { + "id": "0x183", + "data": "02 01 01 0b ff 01 00 02", + "monotonic": 1100009.8177623 + }, + { + "id": "0x183", + "data": "02 01 01 0b ff 01 00 02", + "monotonic": 1100009.8982775 + }, + { + "id": "0x183", + "data": "02 01 01 0b ff 01 00 02", + "monotonic": 1100009.9792842 + }, + { + "id": "0x183", + "data": "02 01 01 0b ff 01 00 02", + "monotonic": 1100010.059462 + }, + { + "id": "0x183", + "data": "02 01 01 0b ff 01 00 02", + "monotonic": 1100010.1408226 + }, + { + "id": "0x183", + "data": "02 01 01 0c ff 01 00 02", + "monotonic": 1100010.2211201 + }, + { + "id": "0x183", + "data": "02 01 01 0c ff 01 00 02", + "monotonic": 1100010.301691 + }, + { + "id": "0x183", + "data": "02 01 01 0c ff 01 00 02", + "monotonic": 1100010.3816954 + }, + { + "id": "0x183", + "data": "02 01 01 0c ff 01 00 02", + "monotonic": 1100010.4617738 + }, + { + "id": "0x183", + "data": "02 01 01 0c ff 01 00 02", + "monotonic": 1100010.542655 + }, + { + "id": "0x183", + "data": "02 01 01 0c ff 01 00 02", + "monotonic": 1100010.6228269 + }, + { + "id": "0x183", + "data": "02 01 01 0c ff 01 00 02", + "monotonic": 1100010.7028404 + }, + { + "id": "0x183", + "data": "02 01 01 0c ff 01 00 02", + "monotonic": 1100010.7835577 + }, + { + "id": "0x183", + "data": "02 01 01 0d ff 01 00 02", + "monotonic": 1100010.8637411 + }, + { + "id": "0x183", + "data": "02 01 01 0d ff 01 00 02", + "monotonic": 1100010.9445269 + }, + { + "id": "0x183", + "data": "02 01 01 0d ff 01 00 02", + "monotonic": 1100011.0252905 + }, + { + "id": "0x183", + "data": "02 01 01 0d ff 01 00 02", + "monotonic": 1100011.1054993 + }, + { + "id": "0x183", + "data": "02 01 01 0d ff 01 00 02", + "monotonic": 1100011.1856941 + }, + { + "id": "0x183", + "data": "02 01 01 0d ff 01 00 02", + "monotonic": 1100011.2666652 + }, + { + "id": "0x183", + "data": "02 01 01 0d ff 01 00 02", + "monotonic": 1100011.3474032 + }, + { + "id": "0x183", + "data": "02 01 01 0d ff 01 00 02", + "monotonic": 1100011.4274414 + }, + { + "id": "0x183", + "data": "02 01 01 0e ff 01 00 02", + "monotonic": 1100011.5078011 + }, + { + "id": "0x183", + "data": "02 01 01 0e ff 01 00 02", + "monotonic": 1100011.5881698 + }, + { + "id": "0x183", + "data": "02 01 01 0e ff 01 00 02", + "monotonic": 1100011.6683083 + }, + { + "id": "0x183", + "data": "02 01 01 0e ff 01 00 02", + "monotonic": 1100011.748596 + }, + { + "id": "0x183", + "data": "02 01 01 0e ff 01 00 02", + "monotonic": 1100011.8293578 + }, + { + "id": "0x183", + "data": "02 01 01 0e ff 01 00 02", + "monotonic": 1100011.9095128 + }, + { + "id": "0x183", + "data": "02 01 01 0e ff 01 00 02", + "monotonic": 1100011.9895168 + }, + { + "id": "0x183", + "data": "02 01 01 0e ff 01 00 02", + "monotonic": 1100012.0697591 + }, + { + "id": "0x183", + "data": "02 01 01 0f ff 01 00 02", + "monotonic": 1100012.1502067 + }, + { + "id": "0x183", + "data": "02 01 01 0f ff 01 00 02", + "monotonic": 1100012.23111 + }, + { + "id": "0x183", + "data": "02 01 01 0f ff 01 00 02", + "monotonic": 1100012.3120152 + }, + { + "id": "0x183", + "data": "02 01 01 0f ff 01 00 02", + "monotonic": 1100012.3927568 + }, + { + "id": "0x183", + "data": "02 01 01 0f ff 01 00 02", + "monotonic": 1100012.4734949 + }, + { + "id": "0x183", + "data": "02 01 01 0f ff 01 00 02", + "monotonic": 1100012.5544133 + }, + { + "id": "0x183", + "data": "02 01 01 0f ff 01 00 02", + "monotonic": 1100012.634947 + }, + { + "id": "0x183", + "data": "02 01 01 0f ff 01 00 02", + "monotonic": 1100012.7151759 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02", + "monotonic": 1100012.7958209 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02", + "monotonic": 1100012.8761107 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02", + "monotonic": 1100012.9569723 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02", + "monotonic": 1100013.0376439 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02", + "monotonic": 1100013.1183812 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02", + "monotonic": 1100013.1993505 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02", + "monotonic": 1100013.2802492 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02", + "monotonic": 1100013.3610915 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100013.4422083 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100013.5229644 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100013.6040392 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100013.684507 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100013.7645861 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100013.8455979 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100013.9258948 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100014.0061037 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100014.086325 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100014.16676 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100014.2475338 + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01", + "monotonic": 1100014.3276219 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100014.4081953 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100014.4891681 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100014.569689 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100014.6503039 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100014.7304037 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100014.811276 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100014.891814 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100014.9728318 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100015.3752013 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100015.4552316 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100015.536157 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100015.6165836 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100015.6974688 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100015.7784149 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100015.8586352 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100015.9396752 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100016.0197467 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100016.1007237 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100016.1808525 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100016.261441 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 06 00 02", + "monotonic": 1100016.3416806 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100016.4225609 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100016.5028965 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100016.5833783 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100016.6639077 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100016.7447477 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100016.8250788 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100016.9052786 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100016.9861284 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100017.4684928 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100017.5494257 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100017.6295376 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100017.7095167 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100017.7899835 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100017.8699825 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100017.9504093 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100018.0307039 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100018.1109426 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100018.1912177 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100018.2723043 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100018.352611 + }, + { + "id": "0x183", + "data": "02 01 01 1f 00 01 00 02", + "monotonic": 1100018.4336422 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100018.514083 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100018.594734 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100018.6755985 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100018.7561592 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100018.8371262 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100018.9180059 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100018.9984665 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100019.0788706 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100019.4810842 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100019.5613216 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100019.6419218 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100019.7223298 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100019.8028192 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100019.8829967 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100019.9632323 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100020.0433003 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100020.1245206 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100020.2052796 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100020.2859142 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100020.3664785 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 01 02", + "monotonic": 1100020.446795 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100020.527242 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100020.6075653 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100020.6878665 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100020.7685688 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100020.8486769 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100020.9287602 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100021.0091062 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100021.0893045 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100021.1692633 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100021.5722088 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100021.6527464 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100021.7328819 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100021.8136199 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100021.8945207 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100021.9751485 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100022.0558408 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100022.136678 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100022.2166971 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100022.2970322 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100022.3773476 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100022.4578132 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 03", + "monotonic": 1100022.5378463 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100022.6183278 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100022.6988197 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100022.7788929 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100022.8592905 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100022.9399307 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100023.0204423 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100023.1012937 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100023.1820705 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.2622605 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.3432407 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.4240829 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.5047278 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.5857084 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.6661016 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.7469499 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.8279564 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.9085072 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100023.9888419 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100024.0696224 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100024.1499229 + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00", + "monotonic": 1100024.2303973 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100024.3117367 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100024.3920281 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100024.4726396 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100024.5535472 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100024.6345272 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100024.7153075 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100024.7954799 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100024.8759793 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100024.9564413 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.0374318 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.1180919 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.1983211 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.2791575 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.3600034 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.4409743 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.5212792 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.6018088 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.6828191 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.7632786 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.8441299 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100025.924398 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100026.0055855 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100026.0856269 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100026.1658722 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100026.2460263 + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02", + "monotonic": 1100026.3267486 + } + ] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hardware-reset-active-can.log b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-reset-active-can.log new file mode 100644 index 0000000..01ee703 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-reset-active-can.log @@ -0,0 +1,23 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hardware-results.json b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-results.json new file mode 100644 index 0000000..91b99e5 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-results.json @@ -0,0 +1,943 @@ +{ + "result": "passed", + "scope": "CAN1 500K -> actual MCU RAM -> physical USART2 COM6; physical UART task RX -> CAN1 0x300; physical screen not tested", + "checks": [ + { + "name": "as_0", + "expected": [ + 2, + 1, + 1, + 0 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 0 + ], + "timestamp": 3908, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true, + "physical_uart": "as_state=0" + }, + { + "name": "as_1", + "expected": [ + 2, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 4793, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true, + "physical_uart": "as_state=1" + }, + { + "name": "as_2", + "expected": [ + 2, + 1, + 1, + 2 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 2 + ], + "timestamp": 5679, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true, + "physical_uart": "as_state=2" + }, + { + "name": "as_3", + "expected": [ + 2, + 1, + 1, + 3 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 3 + ], + "timestamp": 6645, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true, + "physical_uart": "as_state=3" + }, + { + "name": "as_4", + "expected": [ + 2, + 1, + 1, + 4 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 4 + ], + "timestamp": 7529, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true, + "physical_uart": "as_state=4" + }, + { + "name": "as_5", + "expected": [ + 2, + 1, + 1, + 5 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 5 + ], + "timestamp": 8417, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true, + "physical_uart": "as_state=5" + }, + { + "name": "valid_0", + "expected": [ + 7, + 0, + 0, + 6 + ], + "snapshot": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 9059, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_1", + "expected": [ + 2, + 0, + 0, + 6 + ], + "snapshot": { + "states": [ + 2, + 0, + 0, + 6 + ], + "timestamp": 9705, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_2", + "expected": [ + 7, + 1, + 0, + 6 + ], + "snapshot": { + "states": [ + 7, + 1, + 0, + 6 + ], + "timestamp": 10348, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_3", + "expected": [ + 2, + 1, + 0, + 6 + ], + "snapshot": { + "states": [ + 2, + 1, + 0, + 6 + ], + "timestamp": 10992, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_4", + "expected": [ + 7, + 0, + 1, + 6 + ], + "snapshot": { + "states": [ + 7, + 0, + 1, + 6 + ], + "timestamp": 11638, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_5", + "expected": [ + 2, + 0, + 1, + 6 + ], + "snapshot": { + "states": [ + 2, + 0, + 1, + 6 + ], + "timestamp": 12360, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_6", + "expected": [ + 7, + 1, + 1, + 6 + ], + "snapshot": { + "states": [ + 7, + 1, + 1, + 6 + ], + "timestamp": 13004, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_7", + "expected": [ + 2, + 1, + 1, + 6 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 6 + ], + "timestamp": 13649, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_8", + "expected": [ + 7, + 0, + 0, + 1 + ], + "snapshot": { + "states": [ + 7, + 0, + 0, + 1 + ], + "timestamp": 14293, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_9", + "expected": [ + 2, + 0, + 0, + 1 + ], + "snapshot": { + "states": [ + 2, + 0, + 0, + 1 + ], + "timestamp": 14938, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_10", + "expected": [ + 7, + 1, + 0, + 1 + ], + "snapshot": { + "states": [ + 7, + 1, + 0, + 1 + ], + "timestamp": 15580, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_11", + "expected": [ + 2, + 1, + 0, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 0, + 1 + ], + "timestamp": 16223, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_12", + "expected": [ + 7, + 0, + 1, + 1 + ], + "snapshot": { + "states": [ + 7, + 0, + 1, + 1 + ], + "timestamp": 16866, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_13", + "expected": [ + 2, + 0, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 0, + 1, + 1 + ], + "timestamp": 17510, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_14", + "expected": [ + 7, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 7, + 1, + 1, + 1 + ], + "timestamp": 18232, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "valid_15", + "expected": [ + 2, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 18877, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "before_legacy", + "expected": [ + 2, + 1, + 1, + 4 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 4 + ], + "timestamp": 19522, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "legacy_clears_as", + "expected": [ + 2, + 1, + 1, + 6 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 6 + ], + "timestamp": 20408, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "bad_as_baseline", + "expected": [ + 2, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 21052, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "bad_as_expired", + "expected": [ + 7, + 0, + 0, + 6 + ], + "snapshot": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 21133, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "bad_flag_baseline", + "expected": [ + 2, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 23145, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "bad_flag_expired", + "expected": [ + 7, + 0, + 0, + 6 + ], + "snapshot": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 23145, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "reserved_baseline", + "expected": [ + 2, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 25156, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "reserved_expired", + "expected": [ + 7, + 0, + 0, + 6 + ], + "snapshot": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 25236, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "bad_version_baseline", + "expected": [ + 2, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 27245, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "bad_version_expired", + "expected": [ + 7, + 0, + 0, + 6 + ], + "snapshot": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 27325, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "before_timeout", + "expected": [ + 2, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 29256, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "other_can_cannot_renew", + "expected": [ + 7, + 0, + 0, + 6 + ], + "snapshot": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 29336, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "recovery", + "expected": [ + 2, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 31271, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "physical_uart_task_request", + "expected": [ + 2, + 1, + 1, + 1 + ], + "snapshot": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 32398, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true, + "can_request": { + "id": "0x300", + "data": "01 05 00 01 81 7b 00 00", + "timestamp": 1100025.46854 + } + }, + { + "name": "final_unknown", + "expected": [ + 7, + 0, + 0, + 6 + ], + "snapshot": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 32479, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + } + ], + "errors": [] +} diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hardware-uart-commands.json b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-uart-commands.json new file mode 100644 index 0000000..8e78345 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-uart-commands.json @@ -0,0 +1,352 @@ +[ + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6", + "current_task=2", + "lock_state=1", + "ebs_state=1", + "as_state=0", + "as_state=1", + "as_state=2", + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=2", + "lock_state=1", + "ebs_state=1", + "as_state=2", + "as_state=3", + "as_state=4", + "as_state=5", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6", + "current_task=2", + "lock_state=1", + "current_task=7", + "lock_state=1", + "ebs_state=0", + "as_state=6", + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=7", + "current_task=2", + "lock_state=0", + "ebs_state=1", + "current_task=7", + "current_task=2", + "lock_state=1", + "current_task=7", + "current_task=2", + "lock_state=0", + "ebs_state=0", + "as_state=1", + "current_task=7", + "current_task=2", + "lock_state=0", + "ebs_state=0", + "as_state=1", + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=7", + "lock_state=1", + "current_task=2", + "lock_state=0", + "ebs_state=1", + "current_task=7", + "current_task=2", + "lock_state=1", + "current_task=7", + "current_task=2", + "as_state=4", + "as_state=6", + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=2", + "lock_state=1", + "ebs_state=1", + "as_state=6", + "as_state=1", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6", + "current_task=2", + "lock_state=1", + "ebs_state=1", + "as_state=1", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6", + "current_task=2", + "lock_state=1", + "ebs_state=1", + "as_state=1", + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=2", + "lock_state=1", + "ebs_state=1", + "as_state=1", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6", + "current_task=2", + "lock_state=1", + "ebs_state=1", + "as_state=1", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6", + "current_task=2", + "lock_state=1", + "ebs_state=1", + "as_state=1", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6", + "dash.speed.val=0", + "dash.ts.val=0", + "dash.mct.val=0", + "dash.dl.val=0", + "dash.djwd.val=0", + "dash.mcuwd.val=0", + "dash.dtwd.val=0", + "dash.lvbat.val=0", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "dash.speed.pco=16904", + "dash.ts.pco=16904", + "dash.mct.pco=16904", + "dash.dl.pco=16904", + "dash.djwd.pco=16904", + "dash.mcuwd.pco=16904", + "dash.dtwd.pco=16904", + "dash.lvbat.pco=16904", + "current_task=7", + "lock_state=1", + "ebs_state=1", + "as_state=1", + "current_task=2", + "d0=0", + "d1=0", + "d2=0", + "d3=0", + "d4=0", + "d5=0", + "d6=0", + "d7=0", + "d8=0", + "d9=0", + "d10=0", + "d11=0", + "d12=0", + "d13=0", + "d14=0", + "d15=0", + "current_task=7", + "lock_state=0", + "ebs_state=0", + "as_state=6" +] \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hardware-uart.bin b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-uart.bin new file mode 100644 index 0000000..2123a93 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hardware-uart.bin @@ -0,0 +1 @@ +dash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿebs_state=1ÿÿÿas_state=0ÿÿÿas_state=1ÿÿÿas_state=2ÿÿÿdash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿebs_state=1ÿÿÿas_state=2ÿÿÿas_state=3ÿÿÿas_state=4ÿÿÿas_state=5ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿcurrent_task=7ÿÿÿlock_state=1ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿdash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=7ÿÿÿcurrent_task=2ÿÿÿlock_state=0ÿÿÿebs_state=1ÿÿÿcurrent_task=7ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿcurrent_task=7ÿÿÿcurrent_task=2ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=1ÿÿÿcurrent_task=7ÿÿÿcurrent_task=2ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=1ÿÿÿdash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=7ÿÿÿlock_state=1ÿÿÿcurrent_task=2ÿÿÿlock_state=0ÿÿÿebs_state=1ÿÿÿcurrent_task=7ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿcurrent_task=7ÿÿÿcurrent_task=2ÿÿÿas_state=4ÿÿÿas_state=6ÿÿÿdash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿebs_state=1ÿÿÿas_state=6ÿÿÿas_state=1ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿebs_state=1ÿÿÿas_state=1ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿebs_state=1ÿÿÿas_state=1ÿÿÿdash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿebs_state=1ÿÿÿas_state=1ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿebs_state=1ÿÿÿas_state=1ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿcurrent_task=2ÿÿÿlock_state=1ÿÿÿebs_state=1ÿÿÿas_state=1ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿdash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=7ÿÿÿlock_state=1ÿÿÿebs_state=1ÿÿÿas_state=1ÿÿÿcurrent_task=2ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿ \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-as-invalid-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-as-invalid-ram.log new file mode 100644 index 0000000..7f326d5 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-as-invalid-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00019482 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 0001944C +0x2000025C : 0000040B 0001944C 000186A0 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00019476 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00019476 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-before-legacy-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-before-legacy-ram.log new file mode 100644 index 0000000..3212f8c --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-before-legacy-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00019AD7 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00070007 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 0000000D 00000001 00019A28 +0x2000025C : 0000041B 00019A8C 00019A28 00000000 +0x2000026C : 01010000 00000501 01000500 303D3464 +0x2000027C : 62FFFFFF 762E7461 303D6C61 34FFFFFF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00019ACC 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F010000 00019ACC + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-before-timeout-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-before-timeout-ram.log new file mode 100644 index 0000000..c57750b --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-before-timeout-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0001A773 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 0001A5E0 +0x2000025C : 0000043C 0001A770 00019A28 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0001A76B 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0001A76B + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-before-touch-request-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-before-touch-request-ram.log new file mode 100644 index 0000000..7688c81 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-before-touch-request-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0001C8DA 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 0001C714 +0x2000025C : 00000491 0001C8A4 0001C138 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0001C8D9 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0001C8D9 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-cross-page-latest-emergency-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-cross-page-latest-emergency-ram.log new file mode 100644 index 0000000..7be119e --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-cross-page-latest-emergency-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 04010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0001C295 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00140014 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 0000001C 00000001 0001C138 +0x2000025C : 00000481 0001C264 0001C138 00000000 +0x2000026C : 01010000 00000501 01000500 68736164 +0x2000027C : 2E6C642E 3D6F6370 30393631 FFFFFF34 +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0001C293 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F010000 0001C293 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-driving-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-driving-ram.log new file mode 100644 index 0000000..35ee163 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-driving-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 02010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00017B42 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00017AE8 +0x2000025C : 000003CA 00017AE8 00017318 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF323D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00017B38 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00017B38 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-emergency-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-emergency-ram.log new file mode 100644 index 0000000..1f37ac8 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-emergency-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 04010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000187DC 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00150015 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 0000001B 00000001 000186A0 +0x2000025C : 000003EB 000187CC 000186A0 00000000 +0x2000026C : 01010000 00000501 01000500 68736164 +0x2000027C : 74636D2E 6F63702E 3936313D FFFF3430 +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000187D7 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F010000 000187D7 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-final-unknown-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-final-unknown-ram.log new file mode 100644 index 0000000..292e6f0 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-final-unknown-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0001DA87 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000F 20000298 003A0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000022 00000001 0001D8A8 +0x2000025C : 000004BE 0001DA38 0001D4C0 00000000 +0x2000026C : 02020000 00050502 00000500 6B636F6C +0x2000027C : 6174735F 303D6574 FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 050155AA +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0001D4A3 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 0001D4A3 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-finished-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-finished-ram.log new file mode 100644 index 0000000..255f89c --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-finished-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 03010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00018190 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 000180C4 +0x2000025C : 000003DB 0001818C 00017318 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF333D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00018187 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00018187 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-legacy-unknown-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-legacy-unknown-ram.log new file mode 100644 index 0000000..6ddb1e3 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-legacy-unknown-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0001A125 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 0001A004 +0x2000025C : 0000042B 0001A0CC 00019A28 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0001A124 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0001A124 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-manual-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-manual-ram.log new file mode 100644 index 0000000..6cde93a --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-manual-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 05010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00018E2E 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00018C7C +0x2000025C : 000003FB 00018E0C 000186A0 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF353D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00018E26 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00018E26 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-off-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-off-ram.log new file mode 100644 index 0000000..a8033c4 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-off-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 00010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00016E99 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00016D3C +0x2000025C : 000003AA 00016E68 00015F90 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF303D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00016EA1 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00016EA1 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-ready-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-ready-ram.log new file mode 100644 index 0000000..493fa7c --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-ready-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000174F4 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 000F000F 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 00000022 00000001 00017318 +0x2000025C : 000003BA 000174A8 00017318 00000000 +0x2000026C : 01010000 00000501 01000500 6B636F6C +0x2000027C : 6174735F 313D6574 FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000174EA 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 08010000 000174EA + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-reconnect-panel.json b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-reconnect-panel.json new file mode 100644 index 0000000..433610b --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-reconnect-panel.json @@ -0,0 +1,4 @@ +{ + "789052": "65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF ", + "461376": "" +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-recovery-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-recovery-ram.log new file mode 100644 index 0000000..ba6434d --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-recovery-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0001B410 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000008 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000018 00000001 0001B38C +0x2000025C : 0000045C 0001B3F0 0001ADB0 00000000 +0x2000026C : 01010000 00000501 00000500 3D353164 +0x2000027C : FFFFFF30 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0001B406 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0001B406 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-timeout-other-traffic-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-timeout-other-traffic-ram.log new file mode 100644 index 0000000..6e4c236 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-timeout-other-traffic-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0001ADC1 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00100010 20000298 003C0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 00000002 00000000 0001ADB0 +0x2000025C : 0000044C 0001ADB0 0001ADB0 00000000 +0x2000026C : 01010000 00000501 01000500 68736164 +0x2000027C : 2E73742E 3D6C6176 FFFFFF30 34FFFFFF +0x2000028C : 00FFFFFF 00000000 00000000 FFFFFF1A +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0001ADBF 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F000000 0001A7DE + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/hmi-touch-request-keeps-as-ready-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-touch-request-keeps-as-ready-ram.log new file mode 100644 index 0000000..94ac8aa --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/hmi-touch-request-keeps-as-ready-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0001D444 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003A0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 0001D2CC +0x2000025C : 000004AE 0001D3F8 0001C138 00000000 +0x2000026C : 02020000 00050502 00000500 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 050155AA +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0001D43A 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0001D43A + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/legacy_clears_as-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/legacy_clears_as-ram.log new file mode 100644 index 0000000..17d0412 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/legacy_clears_as-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00004FD5 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00170017 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 00000020 00000001 00004E20 +0x2000025C : 000000CC 00004FB0 00004E20 00000000 +0x2000026C : 00000000 00000000 01000000 68736164 +0x2000027C : 62766C2E 702E7461 313D6F63 34303936 +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00004FB8 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F010000 00004FB8 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/mcu-uart-hmi-unknown.png b/docs/evidence/2026-10-07/as-status-flash/153558/mcu-uart-hmi-unknown.png new file mode 100644 index 0000000..853d26d Binary files /dev/null and b/docs/evidence/2026-10-07/as-status-flash/153558/mcu-uart-hmi-unknown.png differ diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/other_can_cannot_renew-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/other_can_cannot_renew-ram.log new file mode 100644 index 0000000..858b677 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/other_can_cannot_renew-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000076A7 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000016 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 0000001E 00000000 00007530 +0x2000025C : 0000012F 0000765C 00007530 00000000 +0x2000026C : 00000000 00000000 01000000 68736164 +0x2000027C : 75636D2E 702E6477 313D6F63 34303936 +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000076B0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F000000 00007298 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/physical_uart_task_request-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/physical_uart_task_request-ram.log new file mode 100644 index 0000000..126a047 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/physical_uart_task_request-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00007EBD 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000008 20000298 003A0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000018 00000001 00007D00 +0x2000025C : 00000144 00007E90 00007530 00000000 +0x2000026C : 01010000 00000501 00000500 3D353164 +0x2000027C : FFFFFF30 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 050155AA +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00007E8E 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00007E8E + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/recovery-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/recovery-ram.log new file mode 100644 index 0000000..9bb96d3 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/recovery-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00007A32 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000008 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000018 00000001 00007918 +0x2000025C : 00000138 000079E0 00007530 00000000 +0x2000026C : 00000000 00000000 00000000 3D353164 +0x2000027C : FFFFFF30 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00007A27 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00007A27 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/reserved_baseline-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/reserved_baseline-ram.log new file mode 100644 index 0000000..4259604 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/reserved_baseline-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000627B 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00070007 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 00000012 00000001 000061A8 +0x2000025C : 000000FC 00006270 000061A8 00000000 +0x2000026C : 00000000 00000000 01000000 303D3964 +0x2000027C : 62FFFFFF 762E7461 303D6C61 34FFFFFF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00006244 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F010000 00006244 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/reserved_expired-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/reserved_expired-ram.log new file mode 100644 index 0000000..03c1c45 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/reserved_expired-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000067F1 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00006784 +0x2000025C : 0000010A 000067E8 000061A8 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00006294 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00006294 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/reserved_stopped-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/reserved_stopped-ram.log new file mode 100644 index 0000000..dd5edac --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/reserved_stopped-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000063D9 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 0000639C +0x2000025C : 000000FF 0000639C 000061A8 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00006294 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00006294 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/reset.log b/docs/evidence/2026-10-07/as-status-flash/153558/reset.log new file mode 100644 index 0000000..01ee703 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/reset.log @@ -0,0 +1,23 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/target-probe.log b/docs/evidence/2026-10-07/as-status-flash/153558/target-probe.log new file mode 100644 index 0000000..55a0042 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/target-probe.log @@ -0,0 +1,19 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/uart-com6.bin b/docs/evidence/2026-10-07/as-status-flash/153558/uart-com6.bin new file mode 100644 index 0000000..23cd6ef --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/uart-com6.bin @@ -0,0 +1 @@ +dash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿdash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿdash.speed.val=0ÿÿÿdash.ts.val=0ÿÿÿdash.mct.val=0ÿÿÿdash.dl.val=0ÿÿÿdash.djwd.val=0ÿÿÿdash.mcuwd.val=0ÿÿÿdash.dtwd.val=0ÿÿÿdash.lvbat.val=0ÿÿÿd0=0ÿÿÿd1=0ÿÿÿd2=0ÿÿÿd3=0ÿÿÿd4=0ÿÿÿd5=0ÿÿÿd6=0ÿÿÿd7=0ÿÿÿd8=0ÿÿÿd9=0ÿÿÿd10=0ÿÿÿd11=0ÿÿÿd12=0ÿÿÿd13=0ÿÿÿd14=0ÿÿÿd15=0ÿÿÿdash.speed.pco=16904ÿÿÿdash.ts.pco=16904ÿÿÿdash.mct.pco=16904ÿÿÿdash.dl.pco=16904ÿÿÿdash.djwd.pco=16904ÿÿÿdash.mcuwd.pco=16904ÿÿÿdash.dtwd.pco=16904ÿÿÿdash.lvbat.pco=16904ÿÿÿcurrent_task=7ÿÿÿlock_state=0ÿÿÿebs_state=0ÿÿÿas_state=6ÿÿÿ \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_0-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_0-ram.log new file mode 100644 index 0000000..0a07e47 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_0-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00002388 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00002328 +0x2000025C : 0000005B 0000238C 00001388 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00002363 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00002363 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_1-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_1-ram.log new file mode 100644 index 0000000..5a4d8aa --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_1-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000002 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00002612 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 0000251C +0x2000025C : 00000061 000025E4 00001388 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000025E9 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 000025E9 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_10-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_10-ram.log new file mode 100644 index 0000000..2611ec5 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_10-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01000107 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00003CFE 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000F 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000022 00000001 00003C8C +0x2000025C : 0000009C 00003CF0 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 6B636F6C +0x2000027C : 6174735F 313D6574 FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00003CDC 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00003CDC + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_11-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_11-ram.log new file mode 100644 index 0000000..b090f1d --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_11-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01000102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00003F8B 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 00003E80 +0x2000025C : 000000A2 00003F48 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00003F5F 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00003F5F + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_12-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_12-ram.log new file mode 100644 index 0000000..99b42cc --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_12-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000421B 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 00004074 +0x2000025C : 000000A9 00004204 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF373D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000041E2 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 000041E2 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_13-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_13-ram.log new file mode 100644 index 0000000..bfc7301 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_13-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010002 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000044AB 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 0000445C +0x2000025C : 000000AF 0000445C 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00004466 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00004466 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_14-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_14-ram.log new file mode 100644 index 0000000..3332d35 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_14-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010107 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00004734 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 00004650 +0x2000025C : 000000B6 00004718 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF373D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00004738 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00004738 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_15-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_15-ram.log new file mode 100644 index 0000000..fe1a904 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_15-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000049C0 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 00004844 +0x2000025C : 000000BC 00004970 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000049BD 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 000049BD + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_2-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_2-ram.log new file mode 100644 index 0000000..b94750a --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_2-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000107 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000028A0 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00160016 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 0000001D 00000001 00002710 +0x2000025C : 00000068 000028A0 00002710 00000000 +0x2000026C : 00000000 00000000 01000000 68736164 +0x2000027C : 776A642E 63702E64 36313D6F FF343039 +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0000286C 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 01010000 0000286C + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_3-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_3-ram.log new file mode 100644 index 0000000..c99b4d0 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_3-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00002B2E 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 00002AF8 +0x2000025C : 0000006E 00002AF8 00002710 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00002AF0 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00002AF0 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_4-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_4-ram.log new file mode 100644 index 0000000..23a3002 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_4-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06010007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00002DB8 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 00002CEC +0x2000025C : 00000075 00002DB4 00002710 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF373D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00002D76 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00002D76 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_5-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_5-ram.log new file mode 100644 index 0000000..cf78492 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_5-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06010002 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00003044 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 00002EE0 +0x2000025C : 0000007B 0000300C 00002710 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00003048 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00003048 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_6-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_6-ram.log new file mode 100644 index 0000000..47ef25b --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_6-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06010107 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000032CC 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 000032C8 +0x2000025C : 00000082 000032C8 00002710 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF373D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000032CC 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 000032CC + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_7-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_7-ram.log new file mode 100644 index 0000000..35dfb7a --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_7-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000355B 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 000034BC +0x2000025C : 00000088 00003520 00002710 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00003551 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00003551 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_8-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_8-ram.log new file mode 100644 index 0000000..f6a69d2 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_8-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000037E6 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 000036B0 +0x2000025C : 0000008F 000037DC 00002710 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF373D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000037D5 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 000037D5 + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/valid_9-ram.log b/docs/evidence/2026-10-07/as-status-flash/153558/valid_9-ram.log new file mode 100644 index 0000000..6eeea6d --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/valid_9-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01000002 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00003A76 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000021 00000001 000038A4 +0x2000025C : 00000095 00003A34 00002710 00000000 +0x2000026C : 00000000 00000000 00000000 72727563 +0x2000027C : 5F746E65 6B736174 FFFF323D 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00003A5A 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00003A5A + + diff --git a/docs/evidence/2026-10-07/as-status-flash/153558/verify_hmi_reconnect.py b/docs/evidence/2026-10-07/as-status-flash/153558/verify_hmi_reconnect.py new file mode 100644 index 0000000..a056e36 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status-flash/153558/verify_hmi_reconnect.py @@ -0,0 +1,20 @@ +exec(open('tmp/accept_as_hardware.py',encoding='utf-8').read().split('with can.Bus(')[0]) +import pyautogui as pg +from pywinauto import Desktop +u=Desktop(backend='uia').window(handle=461358);w=Desktop(backend='win32').window(handle=461358) +w.set_focus() +pg.click(1600,1090);pg.click(2060,1090) +u.child_window(title='开始',control_type='Hyperlink').invoke() +with can.Bus(interface='pcan',channel='PCAN_USBBUS1',bitrate=500000) as bus: + end=time.monotonic()+8 + while time.monotonic()500 ms, tick zero and wrap verified; all four unknown transmitted", + "other CAN cannot renew AS; same-value recovery and periodic resync UART work" + ], + "evidence": "ARM emulation with mocked HAL; no physical CAN/HMI" + }, + { + "elf": "firmware\\build\\Release\\AMI_Controller.elf", + "sha256": "778cd5be96cc932a7ad13b971a9af96a449e680352687f044a95c975c998baa7", + "result": "passed", + "checks": [ + "boot: all four unknown; complete UART commands end in real FF FF FF", + "CAN1: all 7 tasks x 6 AS states x 16 independent validity combinations; UART checked", + "CAN2: all 7 tasks x 6 AS states x 16 independent validity combinations; UART checked", + "legacy v1 always clears previous v2 AS to unknown; all 8 legacy flags accepted", + "both ports: malformed DLC/version/enum/reserved/extended/remote/FD rejected without timeout renewal", + "timeout at >500 ms, tick zero and wrap verified; all four unknown transmitted", + "other CAN cannot renew AS; same-value recovery and periodic resync UART work" + ], + "evidence": "ARM emulation with mocked HAL; no physical CAN/HMI" + } +] diff --git a/docs/evidence/2026-10-07/as-status/lock-properties.json b/docs/evidence/2026-10-07/as-status/lock-properties.json new file mode 100644 index 0000000..55103ea --- /dev/null +++ b/docs/evidence/2026-10-07/as-status/lock-properties.json @@ -0,0 +1,25 @@ +{ + "type": "116", + "id": "4", + "objname": "sd", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "4", + "pco": "1048", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "已锁定", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "210", + "y": "379", + "w": "115", + "h": "53" +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status/manifest.json b/docs/evidence/2026-10-07/as-status/manifest.json new file mode 100644 index 0000000..d7dd9a4 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status/manifest.json @@ -0,0 +1,56 @@ +{ + "date": "2026-10-07", + "firmware": "2.7", + "screen_interface": "1.5", + "original_480x272_unchanged": true, + "physical_mcu_flashed": true, + "physical_hmi_downloaded": false, + "files": [ + { + "path": "AMI.HMI", + "bytes": 12732432, + "sha256": "2f59e1e3d757a06bbd882cd92bb78ed4bfd0336eb14872e5b33a15ea6f69f65b" + }, + { + "path": "AMI_TJC8048X370_011.HMI", + "bytes": 15448751, + "sha256": "97b00ceb452f120d6f01afd100aed5b41284830b66fe886fbb6e9c47acf7e56b" + }, + { + "path": "AMI.dbc", + "bytes": 15287, + "sha256": "47e827d391532abe08066e16292bee2c794577633f863902563e1d5dd1e08616" + }, + { + "path": "AMI_CAN2_250k.dbc", + "bytes": 14395, + "sha256": "2c818210366720a948720e52cc5d2841433cd21b87dcf59db45950e20bd73670" + }, + { + "path": "output/hmi/AMI_TJC8048X370_011.tft", + "bytes": 8863680, + "sha256": "6007a83691fa9f655af037ec5a8276bd843a0e6a51cf9056b7cf4c60ecf04472" + }, + { + "path": "output/firmware/AMI_Controller.bin", + "bytes": 16672, + "sha256": "1951c63e779429d08a992d1171fc92173e4399307ff741fdc5d9b7646848855d" + }, + { + "path": "output/pdf/AMI_CAN报文说明.pdf", + "bytes": 137007, + "sha256": "5e08e725ab8585373e7cc6bd6cd091b61c677464b1f9e8b74059409affa1e967" + } + ], + "saved_hmi_reload_verified": true, + "source_asf": { + "path": "D:/QQ download/A11.盐城工学院野马车队ASF9.2最终版.docx", + "sha256": "d78bdd8a03c0caffc2df63fdbc47b36bdec658fdc9061bd09bd5a5dcafe1b17b", + "modified": false + }, + "physical_can1_tested": true, + "physical_uart_com6_tested": true, + "official_hmi_simulator_via_physical_uart_tested": true, + "acceptance_evidence": "docs/evidence/2026-10-07/as-status-flash/153558", + "snapshot_scope": "Initial large-screen phase; hashes are historical, before small-screen update and final DBC comment cleanup. Current release hashes: ../release-v2.7/manifest.json" +} diff --git a/docs/evidence/2026-10-07/as-status/saved-engineering-readback.json b/docs/evidence/2026-10-07/as-status/saved-engineering-readback.json new file mode 100644 index 0000000..75e0788 --- /dev/null +++ b/docs/evidence/2026-10-07/as-status/saved-engineering-readback.json @@ -0,0 +1,30 @@ +{ + "saved_lock_properties": { + "type": "116", + "id": "4", + "objname": "sd", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "4", + "pco": "1048", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "已锁定", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "210", + "y": "379", + "w": "115", + "h": "53" + }, + "dash-postinit.txt": "saved file reload matches source", + "dash-status-render.txt": "saved file reload matches source", + "Program.s": "saved file reload matches source" +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status/simulator-results.json b/docs/evidence/2026-10-07/as-status/simulator-results.json new file mode 100644 index 0000000..4d53e2e --- /dev/null +++ b/docs/evidence/2026-10-07/as-status/simulator-results.json @@ -0,0 +1,69 @@ +{ + "scope": "official HMI simulator, no physical UART/CAN", + "checks": [ + { + "state": 6, + "label": "unknown", + "color": "gray", + "pixels": 629, + "rendered_state_query": "71 06 00 00 00 FF FF FF 71 06 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 0, + "label": "off", + "color": "white", + "pixels": 271, + "rendered_state_query": "71 00 00 00 00 FF FF FF 71 00 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 1, + "label": "ready", + "color": "yellow", + "pixels": 431, + "rendered_state_query": "71 01 00 00 00 FF FF FF 71 01 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 2, + "label": "driving", + "color": "yellow", + "pixels": 468, + "rendered_state_query": "71 02 00 00 00 FF FF FF 71 02 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 3, + "label": "finished", + "color": "blue", + "pixels": 569, + "rendered_state_query": "71 03 00 00 00 FF FF FF 71 03 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 4, + "label": "emergency", + "color": "red", + "pixels": 612, + "rendered_state_query": "71 04 00 00 00 FF FF FF 71 04 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 5, + "label": "manual", + "color": "green", + "pixels": 759, + "rendered_state_query": "71 05 00 00 00 FF FF FF 71 05 00 00 00 FF FF FF", + "passed": true + }, + { + "name": "cross-page latest state and postinit redraw", + "passed": true + }, + { + "name": "task confirmation preserves actual AS feedback", + "passed": true + } + ] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/as-status/wheel-speed-regression.json b/docs/evidence/2026-10-07/as-status/wheel-speed-regression.json new file mode 100644 index 0000000..b2d21fa --- /dev/null +++ b/docs/evidence/2026-10-07/as-status/wheel-speed-regression.json @@ -0,0 +1,30 @@ +[ + { + "elf": "firmware\\build\\Debug\\AMI_Controller.elf", + "sha256": "551c32ec0707295dc2393a97fa03ab860479725b72fd6a49bc08f9bc5506d8fb", + "result": "passed", + "checks": [ + "boot unknown speed: grey zero, UART terminator verified", + "CAN1: 9 zero, asymmetric, rounding and saturation vectors", + "CAN2: 9 zero, asymmetric, rounding and saturation vectors", + "8 invalid DLC/format/legacy frames reject without overwriting or refreshing expiry", + "unrelated SDC/BMS/VCU traffic cannot renew; same-value recovery and white zero work", + "tick zero and uint32 wrap: independent timeout boundary works" + ], + "evidence": "ARM emulation with mocked HAL, not physical CAN/HMI" + }, + { + "elf": "firmware\\build\\Release\\AMI_Controller.elf", + "sha256": "778cd5be96cc932a7ad13b971a9af96a449e680352687f044a95c975c998baa7", + "result": "passed", + "checks": [ + "boot unknown speed: grey zero, UART terminator verified", + "CAN1: 9 zero, asymmetric, rounding and saturation vectors", + "CAN2: 9 zero, asymmetric, rounding and saturation vectors", + "8 invalid DLC/format/legacy frames reject without overwriting or refreshing expiry", + "unrelated SDC/BMS/VCU traffic cannot renew; same-value recovery and white zero work", + "tick zero and uint32 wrap: independent timeout boundary works" + ], + "evidence": "ARM emulation with mocked HAL, not physical CAN/HMI" + } +] diff --git a/docs/evidence/2026-10-07/release-v2.7/as-firmware-emulation.json b/docs/evidence/2026-10-07/release-v2.7/as-firmware-emulation.json new file mode 100644 index 0000000..8ab57c5 --- /dev/null +++ b/docs/evidence/2026-10-07/release-v2.7/as-firmware-emulation.json @@ -0,0 +1,32 @@ +[ + { + "elf": "firmware\\build\\Debug\\AMI_Controller.elf", + "sha256": "551c32ec0707295dc2393a97fa03ab860479725b72fd6a49bc08f9bc5506d8fb", + "result": "passed", + "checks": [ + "boot: all four unknown; complete UART commands end in real FF FF FF", + "CAN1: all 7 tasks x 6 AS states x 16 independent validity combinations; UART checked", + "CAN2: all 7 tasks x 6 AS states x 16 independent validity combinations; UART checked", + "legacy v1 always clears previous v2 AS to unknown; all 8 legacy flags accepted", + "both ports: malformed DLC/version/enum/reserved/extended/remote/FD rejected without timeout renewal", + "timeout at >500 ms, tick zero and wrap verified; all four unknown transmitted", + "other CAN cannot renew AS; same-value recovery and periodic resync UART work" + ], + "evidence": "ARM emulation with mocked HAL; no physical CAN/HMI" + }, + { + "elf": "firmware\\build\\Release\\AMI_Controller.elf", + "sha256": "778cd5be96cc932a7ad13b971a9af96a449e680352687f044a95c975c998baa7", + "result": "passed", + "checks": [ + "boot: all four unknown; complete UART commands end in real FF FF FF", + "CAN1: all 7 tasks x 6 AS states x 16 independent validity combinations; UART checked", + "CAN2: all 7 tasks x 6 AS states x 16 independent validity combinations; UART checked", + "legacy v1 always clears previous v2 AS to unknown; all 8 legacy flags accepted", + "both ports: malformed DLC/version/enum/reserved/extended/remote/FD rejected without timeout renewal", + "timeout at >500 ms, tick zero and wrap verified; all four unknown transmitted", + "other CAN cannot renew AS; same-value recovery and periodic resync UART work" + ], + "evidence": "ARM emulation with mocked HAL; no physical CAN/HMI" + } +] diff --git a/docs/evidence/2026-10-07/release-v2.7/dbc-checks.log b/docs/evidence/2026-10-07/release-v2.7/dbc-checks.log new file mode 100644 index 0000000..19e8e08 --- /dev/null +++ b/docs/evidence/2026-10-07/release-v2.7/dbc-checks.log @@ -0,0 +1,18 @@ +{ + "result": "passed", + "messages": 13, + "signals": 53, + "known_payload_checks": 183, + "all_task_ids_and_counter_edges": true, + "ports_bitrate": { + "CAN1": 500000, + "CAN2": 250000 + }, + "shared_dbc_layouts_and_payloads_match": true, + "heartbeat_can1_only": true, + "firmware_and_ioc_bit_timing_match": true, + "firmware_ids_match": true, + "sdc_source_layout_match": true, + "display_sender_known_bytes_and_argument_rejection": true, + "cantools_version": "44.1.0" +} diff --git a/docs/evidence/2026-10-07/release-v2.7/generated-docs-check.log b/docs/evidence/2026-10-07/release-v2.7/generated-docs-check.log new file mode 100644 index 0000000..ef50929 --- /dev/null +++ b/docs/evidence/2026-10-07/release-v2.7/generated-docs-check.log @@ -0,0 +1 @@ +DBC documentation and CAN2 DBC match AMI.dbc diff --git a/docs/evidence/2026-10-07/release-v2.7/manifest.json b/docs/evidence/2026-10-07/release-v2.7/manifest.json new file mode 100644 index 0000000..82852a8 --- /dev/null +++ b/docs/evidence/2026-10-07/release-v2.7/manifest.json @@ -0,0 +1,43 @@ +{ + "version": "AMI-2.7-2026-10-07", + "screen_interface": "1.5", + "scope": "MCU flashed and byte-for-byte verified; physical CAN1/UART and official 480x272/800x480 simulators tested; no physical HMI download", + "files": { + "AMI.dbc": { + "bytes": 15095, + "sha256": "73e07d06e1c3689636e5dd67eb7ccae2df8f2bc73ca616bef56c3286b49f5070" + }, + "AMI_CAN2_250k.dbc": { + "bytes": 14405, + "sha256": "76d2cfb6f5cf356a9e56b20371a885b4a67cf7342c33dde4f46552ddc37775a2" + }, + "AMI.HMI": { + "bytes": 12732432, + "sha256": "6772d1fb6e1b53ebbdf46f63fafc04522663cc341962f026772ced7da3002849" + }, + "AMI_TJC8048X370_011.HMI": { + "bytes": 15448751, + "sha256": "97b00ceb452f120d6f01afd100aed5b41284830b66fe886fbb6e9c47acf7e56b" + }, + "output/firmware/AMI_Controller.bin": { + "bytes": 16672, + "sha256": "1951c63e779429d08a992d1171fc92173e4399307ff741fdc5d9b7646848855d" + }, + "output/hmi/AMI.tft": { + "bytes": 6242220, + "sha256": "274c7edabb5e92a70231e3db63fe1fc29139a750c8d23ec7681b24941d00bd53" + }, + "output/hmi/AMI_TJC8048X370_011.tft": { + "bytes": 8863680, + "sha256": "6007a83691fa9f655af037ec5a8276bd843a0e6a51cf9056b7cf4c60ecf04472" + }, + "output/pdf/AMI_CAN报文说明.pdf": { + "bytes": 138860, + "sha256": "8fa260a60146390ab467183fe962904147e916b7a66814ba4dfb5d24a4a5b2c3" + }, + "docs/AMI_CAN_DBC说明.md": { + "bytes": 27193, + "sha256": "13a55e054b1f0a6def5f3e8794a63ad05c0a02a2f4950e6ccbb12db0125d455b" + } + } +} diff --git a/docs/evidence/2026-10-07/release-v2.7/wheel-firmware-emulation.json b/docs/evidence/2026-10-07/release-v2.7/wheel-firmware-emulation.json new file mode 100644 index 0000000..b2d21fa --- /dev/null +++ b/docs/evidence/2026-10-07/release-v2.7/wheel-firmware-emulation.json @@ -0,0 +1,30 @@ +[ + { + "elf": "firmware\\build\\Debug\\AMI_Controller.elf", + "sha256": "551c32ec0707295dc2393a97fa03ab860479725b72fd6a49bc08f9bc5506d8fb", + "result": "passed", + "checks": [ + "boot unknown speed: grey zero, UART terminator verified", + "CAN1: 9 zero, asymmetric, rounding and saturation vectors", + "CAN2: 9 zero, asymmetric, rounding and saturation vectors", + "8 invalid DLC/format/legacy frames reject without overwriting or refreshing expiry", + "unrelated SDC/BMS/VCU traffic cannot renew; same-value recovery and white zero work", + "tick zero and uint32 wrap: independent timeout boundary works" + ], + "evidence": "ARM emulation with mocked HAL, not physical CAN/HMI" + }, + { + "elf": "firmware\\build\\Release\\AMI_Controller.elf", + "sha256": "778cd5be96cc932a7ad13b971a9af96a449e680352687f044a95c975c998baa7", + "result": "passed", + "checks": [ + "boot unknown speed: grey zero, UART terminator verified", + "CAN1: 9 zero, asymmetric, rounding and saturation vectors", + "CAN2: 9 zero, asymmetric, rounding and saturation vectors", + "8 invalid DLC/format/legacy frames reject without overwriting or refreshing expiry", + "unrelated SDC/BMS/VCU traffic cannot renew; same-value recovery and white zero work", + "tick zero and uint32 wrap: independent timeout boundary works" + ], + "evidence": "ARM emulation with mocked HAL, not physical CAN/HMI" + } +] diff --git a/docs/evidence/2026-10-07/small-as-status/AMI-before.HMI b/docs/evidence/2026-10-07/small-as-status/AMI-before.HMI new file mode 100644 index 0000000..ccfc7da Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/AMI-before.HMI differ diff --git a/docs/evidence/2026-10-07/small-as-status/accept_small_can_hmi.py b/docs/evidence/2026-10-07/small-as-status/accept_small_can_hmi.py new file mode 100644 index 0000000..dd6480e --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/accept_small_can_hmi.py @@ -0,0 +1,84 @@ +exec(open('tmp/accept_as_hardware.py',encoding='utf-8').read().split('with can.Bus(')[0]) +import numpy as np,pyautogui as pg +from pywinauto import Desktop +O=R/'docs/evidence/2026-10-07/small-as-status' +W=526764 +w=Desktop(backend='win32').window(handle=W);u=Desktop(backend='uia').window(handle=W) +w.set_focus() +u.child_window(title='开始',control_type='Hyperlink').invoke();time.sleep(.4) +canvas=w.child_window(handle=526860).rectangle() +stop=threading.Event();payload=None;errors=[];checks=[];tx=[];frames=[] +with can.Bus(interface='pcan',channel='PCAN_USBBUS1',bitrate=500000) as bus: + assert bus.reset() + q=subprocess.run([CLI,'-c','port=SWD','sn=37FF71064E573436188C1543','mode=HOTPLUG','freq=1000','-rst'],capture_output=True,timeout=15) + assert q.returncode==0 + (O/'mcu-reset.log').write_bytes(q.stdout+q.stderr) + time.sleep(.5) + def sender(): + try: + while not stop.is_set(): + msg=payload + if msg:bus.send(msg,timeout=.15);tx.append(dict(id=hex(msg.arbitration_id),data=msg.data.hex(' '))) + stop.wait(.1) + except Exception as e:errors.append(repr(e)) + def receiver(): + try: + while not stop.is_set(): + m=bus.recv(.1) + if m:frames.append(dict(id=hex(m.arbitration_id),data=m.data.hex(' '),timestamp=m.timestamp)) + except Exception as e:errors.append(repr(e)) + ts=[threading.Thread(target=fn) for fn in (sender,receiver)] + for t in ts:t.start() + def feedback(state,flags=15,version=2): + global payload + payload=can.Message(arbitration_id=0x183,is_extended_id=False,data=bytes([2,1,1,flags,0,state,0,version])) + def shotcheck(name,color,target=None): + time.sleep(1.3) + if target is not None: + snap=memory('hmi-'+name);assert snap['states']==target,(name,snap,target) + else:snap=None + im=pg.screenshot(region=(canvas.left,canvas.top,720,408));im.save(str(O/('can-uart-hmi-'+name+'.png'))) + a=np.asarray(im)[int(215*1.5):int(245*1.5),int(194*1.5):int(302*1.5),:3].astype(np.int16) + r,g,b=a[:,:,0],a[:,:,1],a[:,:,2] + masks={'gray':(r>75)&(r<180)&(abs(r-g)<8)&(abs(r-b)<8), + 'white':(r>210)&(g>210)&(b>210),'yellow':(r>180)&(g>180)&(b<80), + 'blue':(b>180)&(g<80)&(r<80),'red':(r>180)&(g<80)&(b<80), + 'green':(g>180)&(r<80)&(b<80)} + count=int(masks[color].sum());assert count>30,(name,color,count) + assert bus.status()==0 and not errors + checks.append(dict(name=name,color=color,pixels=count,ram=snap,passed=True));print(name,'display passed',flush=True) + try: + for state,label,color in [(0,'off','white'),(1,'ready','yellow'),(2,'driving','yellow'),(3,'finished','blue'),(4,'emergency','red'),(5,'manual','green')]: + feedback(state);shotcheck(label,color,[2,1,1,state]) + feedback(1,7);shotcheck('as-invalid','gray',[2,1,1,6]) + feedback(1);shotcheck('before-legacy','yellow',[2,1,1,1]) + feedback(0,7,1);shotcheck('legacy-unknown','gray',[2,1,1,6]) + feedback(1);shotcheck('before-timeout','yellow',[2,1,1,1]) + payload=can.Message(arbitration_id=0x6a0,is_extended_id=False,data=bytes.fromhex('A1 01 00 00 00 00 00 00')) + shotcheck('timeout-other-traffic','gray',[7,0,0,6]) + feedback(1);shotcheck('recovery','yellow',[2,1,1,1]) + # Actual simulated touch; all displayed feedback still comes through physical UART. + def touch(x,y): + pg.moveTo(canvas.left+x*1.5,canvas.top+y*1.5);pg.mouseDown();time.sleep(.15);pg.mouseUp();time.sleep(.2) + props=json.loads((R/'tmp/migrate-8048/properties-before.json').read_text(encoding='utf-8')) + def at(page,component): + p=next(p for k,p in props[page].items() if k.startswith(component+'(')) + touch(int(p['x'])+int(p['w'])/2,int(p['y'])+int(p['h'])/2) + at('dash','debug_entry');feedback(4);time.sleep(.8);at('debug','b0') + shotcheck('cross-page-latest-emergency','red',[2,1,1,4]) + feedback(1);shotcheck('before-touch-request','yellow',[2,1,1,1]) + before=len(frames);at('dash','bt4');at('CONFIRM','b0') + shotcheck('touch-request-keeps-as-ready','yellow',[2,1,1,1]) + request=next((m for m in frames[before:] if m['id']=='0x300' and bytes.fromhex(m['data'])[1]==5),None) + assert request,('touch -> physical UART RX -> CAN request absent',frames[before:]);checks[-1]['request']=request + payload=None;shotcheck('final-unknown','gray',[7,0,0,6]) + finally: + payload=None;stop.set() + for t in ts:t.join(timeout=2) + logs={str(c.handle):c.window_text() for c in w.descendants() if 'RichEdit' in c.class_name()} + (O/'can-uart-hmi-serial-panel.json').write_text(json.dumps(logs,ensure_ascii=False,indent=2),encoding='utf-8') + result=dict(result='passed' if len(checks)==16 and not errors else 'partial',scope='physical CAN1 -> MCU RAM -> USART2/COM6 -> official HMI simulator; touch UART RX -> real CAN1 request; no physical screen download',checks=checks,errors=errors) + (O/'can-uart-hmi-results.json').write_text(json.dumps(result,ensure_ascii=False,indent=2),encoding='utf-8') + (O/'can-uart-hmi-can.json').write_text(json.dumps(dict(sent=tx,received=frames),indent=2),encoding='utf-8') + u.child_window(title='停止',control_type='Hyperlink').invoke() +print('CAN/UART/HMI checks completed:',len(checks),flush=True) diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-as-invalid.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-as-invalid.png new file mode 100644 index 0000000..f59224e Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-as-invalid.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-before-legacy.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-before-legacy.png new file mode 100644 index 0000000..d9d9bb6 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-before-legacy.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-before-timeout.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-before-timeout.png new file mode 100644 index 0000000..d9d9bb6 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-before-timeout.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-before-touch-request.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-before-touch-request.png new file mode 100644 index 0000000..d9d9bb6 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-before-touch-request.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-can.json b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-can.json new file mode 100644 index 0000000..aea8012 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-can.json @@ -0,0 +1,2597 @@ +{ + "sent": [ + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 00 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 02 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 03 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 05 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 07 00 00 00 01" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x6a0", + "data": "a1 01 00 00 00 00 00 00" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 04 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + }, + { + "id": "0x183", + "data": "02 01 01 0f 00 01 00 02" + } + ], + "received": [ + { + "id": "0x301", + "data": "01 00 00 00 64 00 00 00", + "timestamp": 1102332.963311 + }, + { + "id": "0x301", + "data": "01 00 01 00 c8 00 00 00", + "timestamp": 1102333.063405 + }, + { + "id": "0x301", + "data": "01 00 02 00 2c 01 00 00", + "timestamp": 1102333.163542 + }, + { + "id": "0x301", + "data": "01 00 03 00 90 01 00 00", + "timestamp": 1102333.263594 + }, + { + "id": "0x301", + "data": "01 00 04 00 f4 01 00 00", + "timestamp": 1102333.363688 + }, + { + "id": "0x301", + "data": "01 00 05 00 58 02 00 00", + "timestamp": 1102333.46374 + }, + { + "id": "0x301", + "data": "01 00 06 00 bc 02 00 00", + "timestamp": 1102333.563835 + }, + { + "id": "0x301", + "data": "01 00 07 00 20 03 00 00", + "timestamp": 1102333.663829 + }, + { + "id": "0x301", + "data": "01 00 08 00 84 03 00 00", + "timestamp": 1102333.763924 + }, + { + "id": "0x301", + "data": "01 00 09 00 e8 03 00 00", + "timestamp": 1102333.864018 + }, + { + "id": "0x301", + "data": "01 00 0a 00 4c 04 00 00", + "timestamp": 1102333.96407 + }, + { + "id": "0x301", + "data": "01 00 0b 00 b0 04 00 00", + "timestamp": 1102334.064164 + }, + { + "id": "0x301", + "data": "01 00 0c 00 14 05 00 00", + "timestamp": 1102334.164259 + }, + { + "id": "0x301", + "data": "01 00 0d 00 78 05 00 00", + "timestamp": 1102334.26431 + }, + { + "id": "0x301", + "data": "01 00 0e 00 dc 05 00 00", + "timestamp": 1102334.364405 + }, + { + "id": "0x301", + "data": "01 00 0f 00 40 06 00 00", + "timestamp": 1102334.464457 + }, + { + "id": "0x301", + "data": "01 00 10 00 a4 06 00 00", + "timestamp": 1102334.564508 + }, + { + "id": "0x301", + "data": "01 00 11 00 08 07 00 00", + "timestamp": 1102334.66446 + }, + { + "id": "0x301", + "data": "01 00 12 00 6c 07 00 00", + "timestamp": 1102334.764555 + }, + { + "id": "0x301", + "data": "01 00 13 00 d0 07 00 00", + "timestamp": 1102334.864649 + }, + { + "id": "0x301", + "data": "01 00 14 00 34 08 00 00", + "timestamp": 1102334.964701 + }, + { + "id": "0x301", + "data": "01 00 15 00 98 08 00 00", + "timestamp": 1102335.064795 + }, + { + "id": "0x301", + "data": "01 00 16 00 fc 08 00 00", + "timestamp": 1102335.16489 + }, + { + "id": "0x301", + "data": "01 00 17 00 60 09 00 00", + "timestamp": 1102335.264984 + }, + { + "id": "0x301", + "data": "01 00 18 00 c4 09 00 00", + "timestamp": 1102335.365121 + }, + { + "id": "0x301", + "data": "01 00 19 00 28 0a 00 00", + "timestamp": 1102335.465216 + }, + { + "id": "0x301", + "data": "01 00 1a 00 8c 0a 00 00", + "timestamp": 1102335.56531 + }, + { + "id": "0x301", + "data": "01 00 1b 00 f0 0a 00 00", + "timestamp": 1102335.665347 + }, + { + "id": "0x301", + "data": "01 00 1c 00 54 0b 00 00", + "timestamp": 1102335.765442 + }, + { + "id": "0x301", + "data": "01 00 1d 00 b8 0b 00 00", + "timestamp": 1102335.865493 + }, + { + "id": "0x301", + "data": "01 00 1e 00 1c 0c 00 00", + "timestamp": 1102335.965588 + }, + { + "id": "0x301", + "data": "01 00 1f 00 80 0c 00 00", + "timestamp": 1102336.065725 + }, + { + "id": "0x301", + "data": "01 00 20 00 e4 0c 00 00", + "timestamp": 1102336.165819 + }, + { + "id": "0x301", + "data": "01 00 21 00 48 0d 00 00", + "timestamp": 1102336.265914 + }, + { + "id": "0x301", + "data": "01 00 22 00 ac 0d 00 00", + "timestamp": 1102336.366008 + }, + { + "id": "0x301", + "data": "01 00 23 00 10 0e 00 00", + "timestamp": 1102336.466103 + }, + { + "id": "0x301", + "data": "01 00 24 00 74 0e 00 00", + "timestamp": 1102336.56624 + }, + { + "id": "0x301", + "data": "01 00 25 00 d8 0e 00 00", + "timestamp": 1102336.666234 + }, + { + "id": "0x301", + "data": "01 00 26 00 3c 0f 00 00", + "timestamp": 1102336.766286 + }, + { + "id": "0x301", + "data": "01 00 27 00 a0 0f 00 00", + "timestamp": 1102336.86638 + }, + { + "id": "0x301", + "data": "01 00 28 00 04 10 00 00", + "timestamp": 1102336.966475 + }, + { + "id": "0x301", + "data": "01 00 29 00 68 10 00 00", + "timestamp": 1102337.066569 + }, + { + "id": "0x301", + "data": "01 00 2a 00 cc 10 00 00", + "timestamp": 1102337.166664 + }, + { + "id": "0x301", + "data": "01 00 2b 00 30 11 00 00", + "timestamp": 1102337.266758 + }, + { + "id": "0x301", + "data": "01 00 2c 00 94 11 00 00", + "timestamp": 1102337.366853 + }, + { + "id": "0x301", + "data": "01 00 2d 00 f8 11 00 00", + "timestamp": 1102337.466904 + }, + { + "id": "0x301", + "data": "01 00 2e 00 5c 12 00 00", + "timestamp": 1102337.566999 + }, + { + "id": "0x301", + "data": "01 00 2f 00 c0 12 00 00", + "timestamp": 1102337.666993 + }, + { + "id": "0x301", + "data": "01 00 30 00 24 13 00 00", + "timestamp": 1102337.767088 + }, + { + "id": "0x301", + "data": "01 00 31 00 88 13 00 00", + "timestamp": 1102337.867182 + }, + { + "id": "0x301", + "data": "01 00 32 00 ec 13 00 00", + "timestamp": 1102337.967276 + }, + { + "id": "0x301", + "data": "01 00 33 00 50 14 00 00", + "timestamp": 1102338.067371 + }, + { + "id": "0x301", + "data": "01 00 34 00 b4 14 00 00", + "timestamp": 1102338.167465 + }, + { + "id": "0x301", + "data": "01 00 35 00 18 15 00 00", + "timestamp": 1102338.26756 + }, + { + "id": "0x301", + "data": "01 00 36 00 7c 15 00 00", + "timestamp": 1102338.367654 + }, + { + "id": "0x301", + "data": "01 00 37 00 e0 15 00 00", + "timestamp": 1102338.467791 + }, + { + "id": "0x301", + "data": "01 00 38 00 44 16 00 00", + "timestamp": 1102338.567886 + }, + { + "id": "0x301", + "data": "01 00 39 00 a8 16 00 00", + "timestamp": 1102338.66788 + }, + { + "id": "0x301", + "data": "01 00 3a 00 0c 17 00 00", + "timestamp": 1102338.767975 + }, + { + "id": "0x301", + "data": "01 00 3b 00 70 17 00 00", + "timestamp": 1102338.868069 + }, + { + "id": "0x301", + "data": "01 00 3c 00 d4 17 00 00", + "timestamp": 1102338.968206 + }, + { + "id": "0x301", + "data": "01 00 3d 00 38 18 00 00", + "timestamp": 1102339.068258 + }, + { + "id": "0x301", + "data": "01 00 3e 00 9c 18 00 00", + "timestamp": 1102339.168395 + }, + { + "id": "0x301", + "data": "01 00 3f 00 00 19 00 00", + "timestamp": 1102339.268489 + }, + { + "id": "0x301", + "data": "01 00 40 00 64 19 00 00", + "timestamp": 1102339.368584 + }, + { + "id": "0x301", + "data": "01 00 41 00 c8 19 00 00", + "timestamp": 1102339.468678 + }, + { + "id": "0x301", + "data": "01 00 42 00 2c 1a 00 00", + "timestamp": 1102339.568815 + }, + { + "id": "0x301", + "data": "01 00 43 00 90 1a 00 00", + "timestamp": 1102339.66881 + }, + { + "id": "0x301", + "data": "01 00 44 00 f4 1a 00 00", + "timestamp": 1102339.768947 + }, + { + "id": "0x301", + "data": "01 00 45 00 58 1b 00 00", + "timestamp": 1102339.869084 + }, + { + "id": "0x301", + "data": "01 00 46 00 bc 1b 00 00", + "timestamp": 1102339.969179 + }, + { + "id": "0x301", + "data": "01 00 47 00 20 1c 00 00", + "timestamp": 1102340.069316 + }, + { + "id": "0x301", + "data": "01 00 48 00 84 1c 00 00", + "timestamp": 1102340.16941 + }, + { + "id": "0x301", + "data": "01 00 49 00 e8 1c 00 00", + "timestamp": 1102340.269547 + }, + { + "id": "0x301", + "data": "01 00 4a 00 4c 1d 00 00", + "timestamp": 1102340.369642 + }, + { + "id": "0x301", + "data": "01 00 4b 00 b0 1d 00 00", + "timestamp": 1102340.469779 + }, + { + "id": "0x301", + "data": "01 00 4c 00 14 1e 00 00", + "timestamp": 1102340.569916 + }, + { + "id": "0x301", + "data": "01 00 4d 00 78 1e 00 00", + "timestamp": 1102340.66991 + }, + { + "id": "0x301", + "data": "01 00 4e 00 dc 1e 00 00", + "timestamp": 1102340.770047 + }, + { + "id": "0x301", + "data": "01 00 4f 00 40 1f 00 00", + "timestamp": 1102340.870184 + }, + { + "id": "0x301", + "data": "01 00 50 00 a4 1f 00 00", + "timestamp": 1102340.970279 + }, + { + "id": "0x301", + "data": "01 00 51 00 08 20 00 00", + "timestamp": 1102341.070416 + }, + { + "id": "0x301", + "data": "01 00 52 00 6c 20 00 00", + "timestamp": 1102341.17051 + }, + { + "id": "0x301", + "data": "01 00 53 00 d0 20 00 00", + "timestamp": 1102341.270648 + }, + { + "id": "0x301", + "data": "01 00 54 00 34 21 00 00", + "timestamp": 1102341.370699 + }, + { + "id": "0x301", + "data": "01 00 55 00 98 21 00 00", + "timestamp": 1102341.470751 + }, + { + "id": "0x301", + "data": "01 00 56 00 fc 21 00 00", + "timestamp": 1102341.570888 + }, + { + "id": "0x301", + "data": "01 00 57 00 60 22 00 00", + "timestamp": 1102341.670883 + }, + { + "id": "0x301", + "data": "01 00 58 00 c4 22 00 00", + "timestamp": 1102341.77102 + }, + { + "id": "0x301", + "data": "01 00 59 00 28 23 00 00", + "timestamp": 1102341.871114 + }, + { + "id": "0x301", + "data": "01 00 5a 00 8c 23 00 00", + "timestamp": 1102341.971251 + }, + { + "id": "0x301", + "data": "01 00 5b 00 f0 23 00 00", + "timestamp": 1102342.071431 + }, + { + "id": "0x301", + "data": "01 00 5c 00 54 24 00 00", + "timestamp": 1102342.171568 + }, + { + "id": "0x301", + "data": "01 00 5d 00 b8 24 00 00", + "timestamp": 1102342.271705 + }, + { + "id": "0x301", + "data": "01 00 5e 00 1c 25 00 00", + "timestamp": 1102342.371757 + }, + { + "id": "0x301", + "data": "01 00 5f 00 80 25 00 00", + "timestamp": 1102342.471937 + }, + { + "id": "0x301", + "data": "01 00 60 00 e4 25 00 00", + "timestamp": 1102342.572074 + }, + { + "id": "0x301", + "data": "01 00 61 00 48 26 00 00", + "timestamp": 1102342.672111 + }, + { + "id": "0x301", + "data": "01 00 62 00 ac 26 00 00", + "timestamp": 1102342.772248 + }, + { + "id": "0x301", + "data": "01 00 63 00 10 27 00 00", + "timestamp": 1102342.872428 + }, + { + "id": "0x301", + "data": "01 00 64 00 74 27 00 00", + "timestamp": 1102342.972565 + }, + { + "id": "0x301", + "data": "01 00 65 00 d8 27 00 00", + "timestamp": 1102343.072702 + }, + { + "id": "0x301", + "data": "01 00 66 00 3c 28 00 00", + "timestamp": 1102343.172839 + }, + { + "id": "0x301", + "data": "01 00 67 00 a0 28 00 00", + "timestamp": 1102343.272976 + }, + { + "id": "0x301", + "data": "01 00 68 00 04 29 00 00", + "timestamp": 1102343.373071 + }, + { + "id": "0x301", + "data": "01 00 69 00 68 29 00 00", + "timestamp": 1102343.473165 + }, + { + "id": "0x301", + "data": "01 00 6a 00 cc 29 00 00", + "timestamp": 1102343.573302 + }, + { + "id": "0x301", + "data": "01 00 6b 00 30 2a 00 00", + "timestamp": 1102343.673297 + }, + { + "id": "0x301", + "data": "01 00 6c 00 94 2a 00 00", + "timestamp": 1102343.773391 + }, + { + "id": "0x301", + "data": "01 00 6d 00 f8 2a 00 00", + "timestamp": 1102343.873528 + }, + { + "id": "0x301", + "data": "01 00 6e 00 5c 2b 00 00", + "timestamp": 1102343.973623 + }, + { + "id": "0x301", + "data": "01 00 6f 00 c0 2b 00 00", + "timestamp": 1102344.073717 + }, + { + "id": "0x301", + "data": "01 00 70 00 24 2c 00 00", + "timestamp": 1102344.173854 + }, + { + "id": "0x301", + "data": "01 00 71 00 88 2c 00 00", + "timestamp": 1102344.273949 + }, + { + "id": "0x301", + "data": "01 00 72 00 ec 2c 00 00", + "timestamp": 1102344.374043 + }, + { + "id": "0x301", + "data": "01 00 73 00 50 2d 00 00", + "timestamp": 1102344.474095 + }, + { + "id": "0x301", + "data": "01 00 74 00 b4 2d 00 00", + "timestamp": 1102344.574189 + }, + { + "id": "0x301", + "data": "01 00 75 00 18 2e 00 00", + "timestamp": 1102344.674184 + }, + { + "id": "0x301", + "data": "01 00 76 00 7c 2e 00 00", + "timestamp": 1102344.774278 + }, + { + "id": "0x301", + "data": "01 00 77 00 e1 2e 00 00", + "timestamp": 1102344.875354 + }, + { + "id": "0x301", + "data": "01 00 78 00 45 2f 00 00", + "timestamp": 1102344.975448 + }, + { + "id": "0x301", + "data": "01 00 79 00 a9 2f 00 00", + "timestamp": 1102345.075543 + }, + { + "id": "0x301", + "data": "01 00 7a 00 0d 30 00 00", + "timestamp": 1102345.17568 + }, + { + "id": "0x301", + "data": "01 00 7b 00 71 30 00 00", + "timestamp": 1102345.275774 + }, + { + "id": "0x301", + "data": "01 00 7c 00 d5 30 00 00", + "timestamp": 1102345.375869 + }, + { + "id": "0x301", + "data": "01 00 7d 00 39 31 00 00", + "timestamp": 1102345.476006 + }, + { + "id": "0x301", + "data": "01 00 7e 00 9d 31 00 00", + "timestamp": 1102345.576058 + }, + { + "id": "0x301", + "data": "01 00 7f 00 01 32 00 00", + "timestamp": 1102345.676052 + }, + { + "id": "0x301", + "data": "01 00 80 00 65 32 00 00", + "timestamp": 1102345.776189 + }, + { + "id": "0x301", + "data": "01 00 81 00 c9 32 00 00", + "timestamp": 1102345.876284 + }, + { + "id": "0x301", + "data": "01 00 82 00 2d 33 00 00", + "timestamp": 1102345.976378 + }, + { + "id": "0x301", + "data": "01 00 83 00 91 33 00 00", + "timestamp": 1102346.076472 + }, + { + "id": "0x301", + "data": "01 00 84 00 f5 33 00 00", + "timestamp": 1102346.176567 + }, + { + "id": "0x301", + "data": "01 00 85 00 59 34 00 00", + "timestamp": 1102346.276661 + }, + { + "id": "0x301", + "data": "01 00 86 00 bd 34 00 00", + "timestamp": 1102346.376798 + }, + { + "id": "0x301", + "data": "01 00 87 00 21 35 00 00", + "timestamp": 1102346.476893 + }, + { + "id": "0x301", + "data": "01 00 88 00 85 35 00 00", + "timestamp": 1102346.576987 + }, + { + "id": "0x301", + "data": "01 00 89 00 e9 35 00 00", + "timestamp": 1102346.676982 + }, + { + "id": "0x301", + "data": "01 00 8a 00 4d 36 00 00", + "timestamp": 1102346.777119 + }, + { + "id": "0x301", + "data": "01 00 8b 00 b1 36 00 00", + "timestamp": 1102346.877213 + }, + { + "id": "0x301", + "data": "01 00 8c 00 15 37 00 00", + "timestamp": 1102346.977308 + }, + { + "id": "0x301", + "data": "01 00 8d 00 79 37 00 00", + "timestamp": 1102347.077402 + }, + { + "id": "0x301", + "data": "01 00 8e 00 dd 37 00 00", + "timestamp": 1102347.177539 + }, + { + "id": "0x301", + "data": "01 00 8f 00 41 38 00 00", + "timestamp": 1102347.277634 + }, + { + "id": "0x301", + "data": "01 00 90 00 a5 38 00 00", + "timestamp": 1102347.377728 + }, + { + "id": "0x301", + "data": "01 00 91 00 09 39 00 00", + "timestamp": 1102347.477865 + }, + { + "id": "0x301", + "data": "01 00 92 00 6d 39 00 00", + "timestamp": 1102347.57796 + }, + { + "id": "0x301", + "data": "01 00 93 00 d1 39 00 00", + "timestamp": 1102347.677954 + }, + { + "id": "0x301", + "data": "01 00 94 00 35 3a 00 00", + "timestamp": 1102347.778091 + }, + { + "id": "0x301", + "data": "01 00 95 00 99 3a 00 00", + "timestamp": 1102347.878186 + }, + { + "id": "0x301", + "data": "01 00 96 00 fd 3a 00 00", + "timestamp": 1102347.97828 + }, + { + "id": "0x301", + "data": "01 00 97 00 61 3b 00 00", + "timestamp": 1102348.078417 + }, + { + "id": "0x301", + "data": "01 00 98 00 c5 3b 00 00", + "timestamp": 1102348.178512 + }, + { + "id": "0x301", + "data": "01 00 99 00 29 3c 00 00", + "timestamp": 1102348.278606 + }, + { + "id": "0x301", + "data": "01 00 9a 00 8d 3c 00 00", + "timestamp": 1102348.3787 + }, + { + "id": "0x301", + "data": "01 00 9b 00 f1 3c 00 00", + "timestamp": 1102348.478795 + }, + { + "id": "0x301", + "data": "01 00 9c 00 55 3d 00 00", + "timestamp": 1102348.578932 + }, + { + "id": "0x301", + "data": "01 00 9d 00 b9 3d 00 00", + "timestamp": 1102348.678926 + }, + { + "id": "0x301", + "data": "01 00 9e 00 1d 3e 00 00", + "timestamp": 1102348.779064 + }, + { + "id": "0x301", + "data": "01 00 9f 00 81 3e 00 00", + "timestamp": 1102348.879158 + }, + { + "id": "0x301", + "data": "01 00 a0 00 e5 3e 00 00", + "timestamp": 1102348.979252 + }, + { + "id": "0x301", + "data": "01 00 a1 00 49 3f 00 00", + "timestamp": 1102349.07939 + }, + { + "id": "0x301", + "data": "01 00 a2 00 ad 3f 00 00", + "timestamp": 1102349.179484 + }, + { + "id": "0x301", + "data": "01 00 a3 00 11 40 00 00", + "timestamp": 1102349.279578 + }, + { + "id": "0x301", + "data": "01 00 a4 00 75 40 00 00", + "timestamp": 1102349.379715 + }, + { + "id": "0x301", + "data": "01 00 a5 00 d9 40 00 00", + "timestamp": 1102349.479767 + }, + { + "id": "0x301", + "data": "01 00 a6 00 3d 41 00 00", + "timestamp": 1102349.579904 + }, + { + "id": "0x301", + "data": "01 00 a7 00 a1 41 00 00", + "timestamp": 1102349.679941 + }, + { + "id": "0x301", + "data": "01 00 a8 00 05 42 00 00", + "timestamp": 1102349.780036 + }, + { + "id": "0x301", + "data": "01 00 a9 00 69 42 00 00", + "timestamp": 1102349.88013 + }, + { + "id": "0x301", + "data": "01 00 aa 00 cd 42 00 00", + "timestamp": 1102349.980225 + }, + { + "id": "0x301", + "data": "01 00 ab 00 31 43 00 00", + "timestamp": 1102350.080319 + }, + { + "id": "0x301", + "data": "01 00 ac 00 95 43 00 00", + "timestamp": 1102350.180414 + }, + { + "id": "0x301", + "data": "01 00 ad 00 f9 43 00 00", + "timestamp": 1102350.280508 + }, + { + "id": "0x301", + "data": "01 00 ae 00 5d 44 00 00", + "timestamp": 1102350.380603 + }, + { + "id": "0x301", + "data": "01 00 af 00 c1 44 00 00", + "timestamp": 1102350.48074 + }, + { + "id": "0x301", + "data": "01 00 b0 00 25 45 00 00", + "timestamp": 1102350.580834 + }, + { + "id": "0x301", + "data": "01 00 b1 00 89 45 00 00", + "timestamp": 1102350.680828 + }, + { + "id": "0x301", + "data": "01 00 b2 00 ed 45 00 00", + "timestamp": 1102350.780923 + }, + { + "id": "0x301", + "data": "01 00 b3 00 51 46 00 00", + "timestamp": 1102350.88106 + }, + { + "id": "0x301", + "data": "01 00 b4 00 b5 46 00 00", + "timestamp": 1102350.981154 + }, + { + "id": "0x301", + "data": "01 00 b5 00 19 47 00 00", + "timestamp": 1102351.081249 + }, + { + "id": "0x301", + "data": "01 00 b6 00 7d 47 00 00", + "timestamp": 1102351.181343 + }, + { + "id": "0x301", + "data": "01 00 b7 00 e1 47 00 00", + "timestamp": 1102351.281395 + }, + { + "id": "0x301", + "data": "01 00 b8 00 46 48 00 00", + "timestamp": 1102351.382514 + }, + { + "id": "0x301", + "data": "01 00 b9 00 aa 48 00 00", + "timestamp": 1102351.482608 + }, + { + "id": "0x301", + "data": "01 00 ba 00 0e 49 00 00", + "timestamp": 1102351.582702 + }, + { + "id": "0x301", + "data": "01 00 bb 00 72 49 00 00", + "timestamp": 1102351.682739 + }, + { + "id": "0x301", + "data": "01 00 bc 00 d6 49 00 00", + "timestamp": 1102351.782834 + }, + { + "id": "0x301", + "data": "01 00 bd 00 3a 4a 00 00", + "timestamp": 1102351.882928 + }, + { + "id": "0x301", + "data": "01 00 be 00 9e 4a 00 00", + "timestamp": 1102351.983023 + }, + { + "id": "0x301", + "data": "01 00 bf 00 02 4b 00 00", + "timestamp": 1102352.083117 + }, + { + "id": "0x301", + "data": "01 00 c0 00 66 4b 00 00", + "timestamp": 1102352.183212 + }, + { + "id": "0x301", + "data": "01 00 c1 00 ca 4b 00 00", + "timestamp": 1102352.283306 + }, + { + "id": "0x301", + "data": "01 00 c2 00 2e 4c 00 00", + "timestamp": 1102352.383443 + }, + { + "id": "0x301", + "data": "01 00 c3 00 92 4c 00 00", + "timestamp": 1102352.483538 + }, + { + "id": "0x301", + "data": "01 00 c4 00 f6 4c 00 00", + "timestamp": 1102352.583632 + }, + { + "id": "0x301", + "data": "01 00 c5 00 5a 4d 00 00", + "timestamp": 1102352.683669 + }, + { + "id": "0x301", + "data": "01 00 c6 00 be 4d 00 00", + "timestamp": 1102352.783764 + }, + { + "id": "0x301", + "data": "01 00 c7 00 22 4e 00 00", + "timestamp": 1102352.883858 + }, + { + "id": "0x301", + "data": "01 00 c8 00 86 4e 00 00", + "timestamp": 1102352.983952 + }, + { + "id": "0x301", + "data": "01 00 c9 00 ea 4e 00 00", + "timestamp": 1102353.084047 + }, + { + "id": "0x301", + "data": "01 00 ca 00 4e 4f 00 00", + "timestamp": 1102353.184141 + }, + { + "id": "0x301", + "data": "01 00 cb 00 b2 4f 00 00", + "timestamp": 1102353.284236 + }, + { + "id": "0x301", + "data": "01 00 cc 00 16 50 00 00", + "timestamp": 1102353.38433 + }, + { + "id": "0x301", + "data": "01 00 cd 00 7a 50 00 00", + "timestamp": 1102353.484467 + }, + { + "id": "0x301", + "data": "01 00 ce 00 de 50 00 00", + "timestamp": 1102353.584519 + }, + { + "id": "0x301", + "data": "01 00 cf 00 42 51 00 00", + "timestamp": 1102353.684514 + }, + { + "id": "0x301", + "data": "01 00 d0 00 a6 51 00 00", + "timestamp": 1102353.784608 + }, + { + "id": "0x301", + "data": "01 00 d1 00 0a 52 00 00", + "timestamp": 1102353.884745 + }, + { + "id": "0x301", + "data": "01 00 d2 00 6e 52 00 00", + "timestamp": 1102353.98484 + }, + { + "id": "0x301", + "data": "01 00 d3 00 d2 52 00 00", + "timestamp": 1102354.084934 + }, + { + "id": "0x301", + "data": "01 00 d4 00 36 53 00 00", + "timestamp": 1102354.185028 + }, + { + "id": "0x301", + "data": "01 00 d5 00 9a 53 00 00", + "timestamp": 1102354.285123 + }, + { + "id": "0x301", + "data": "01 00 d6 00 fe 53 00 00", + "timestamp": 1102354.38526 + }, + { + "id": "0x301", + "data": "01 00 d7 00 62 54 00 00", + "timestamp": 1102354.485354 + }, + { + "id": "0x301", + "data": "01 00 d8 00 c6 54 00 00", + "timestamp": 1102354.585449 + }, + { + "id": "0x301", + "data": "01 00 d9 00 2a 55 00 00", + "timestamp": 1102354.685486 + }, + { + "id": "0x301", + "data": "01 00 da 00 8e 55 00 00", + "timestamp": 1102354.78558 + }, + { + "id": "0x301", + "data": "01 00 db 00 f2 55 00 00", + "timestamp": 1102354.885675 + }, + { + "id": "0x301", + "data": "01 00 dc 00 56 56 00 00", + "timestamp": 1102354.985812 + }, + { + "id": "0x301", + "data": "01 00 dd 00 ba 56 00 00", + "timestamp": 1102355.085906 + }, + { + "id": "0x301", + "data": "01 00 de 00 1e 57 00 00", + "timestamp": 1102355.186001 + }, + { + "id": "0x301", + "data": "01 00 df 00 82 57 00 00", + "timestamp": 1102355.286138 + }, + { + "id": "0x301", + "data": "01 00 e0 00 e6 57 00 00", + "timestamp": 1102355.386275 + }, + { + "id": "0x301", + "data": "01 00 e1 00 4a 58 00 00", + "timestamp": 1102355.486369 + }, + { + "id": "0x301", + "data": "01 00 e2 00 ae 58 00 00", + "timestamp": 1102355.586506 + }, + { + "id": "0x301", + "data": "01 00 e3 00 12 59 00 00", + "timestamp": 1102355.686501 + }, + { + "id": "0x301", + "data": "01 00 e4 00 76 59 00 00", + "timestamp": 1102355.786638 + }, + { + "id": "0x301", + "data": "01 00 e5 00 da 59 00 00", + "timestamp": 1102355.886732 + }, + { + "id": "0x301", + "data": "01 00 e6 00 3e 5a 00 00", + "timestamp": 1102355.986827 + }, + { + "id": "0x301", + "data": "01 00 e7 00 a2 5a 00 00", + "timestamp": 1102356.086964 + }, + { + "id": "0x301", + "data": "01 00 e8 00 06 5b 00 00", + "timestamp": 1102356.187058 + }, + { + "id": "0x301", + "data": "01 00 e9 00 6a 5b 00 00", + "timestamp": 1102356.28711 + }, + { + "id": "0x301", + "data": "01 00 ea 00 ce 5b 00 00", + "timestamp": 1102356.387205 + }, + { + "id": "0x301", + "data": "01 00 eb 00 32 5c 00 00", + "timestamp": 1102356.487299 + }, + { + "id": "0x301", + "data": "01 00 ec 00 96 5c 00 00", + "timestamp": 1102356.587394 + }, + { + "id": "0x301", + "data": "01 00 ed 00 fa 5c 00 00", + "timestamp": 1102356.687345 + }, + { + "id": "0x301", + "data": "01 00 ee 00 5e 5d 00 00", + "timestamp": 1102356.787482 + }, + { + "id": "0x301", + "data": "01 00 ef 00 c2 5d 00 00", + "timestamp": 1102356.887577 + }, + { + "id": "0x301", + "data": "01 00 f0 00 26 5e 00 00", + "timestamp": 1102356.987671 + }, + { + "id": "0x301", + "data": "01 00 f1 00 8a 5e 00 00", + "timestamp": 1102357.087766 + }, + { + "id": "0x301", + "data": "01 00 f2 00 ee 5e 00 00", + "timestamp": 1102357.187903 + }, + { + "id": "0x301", + "data": "01 00 f3 00 52 5f 00 00", + "timestamp": 1102357.287955 + }, + { + "id": "0x301", + "data": "01 00 f4 00 b6 5f 00 00", + "timestamp": 1102357.388049 + }, + { + "id": "0x301", + "data": "01 00 f5 00 1a 60 00 00", + "timestamp": 1102357.488143 + }, + { + "id": "0x301", + "data": "01 00 f6 00 7e 60 00 00", + "timestamp": 1102357.588238 + }, + { + "id": "0x301", + "data": "01 00 f7 00 e2 60 00 00", + "timestamp": 1102357.688275 + }, + { + "id": "0x301", + "data": "01 00 f8 00 46 61 00 00", + "timestamp": 1102357.788369 + }, + { + "id": "0x301", + "data": "01 00 f9 00 aa 61 00 00", + "timestamp": 1102357.888507 + }, + { + "id": "0x301", + "data": "01 00 fa 00 0e 62 00 00", + "timestamp": 1102357.988601 + }, + { + "id": "0x301", + "data": "01 00 fb 00 72 62 00 00", + "timestamp": 1102358.088738 + }, + { + "id": "0x301", + "data": "01 00 fc 00 d6 62 00 00", + "timestamp": 1102358.188875 + }, + { + "id": "0x301", + "data": "01 00 fd 00 3a 63 00 00", + "timestamp": 1102358.28897 + }, + { + "id": "0x301", + "data": "01 00 fe 00 9e 63 00 00", + "timestamp": 1102358.389064 + }, + { + "id": "0x301", + "data": "01 00 ff 00 02 64 00 00", + "timestamp": 1102358.489158 + }, + { + "id": "0x301", + "data": "01 00 00 01 66 64 00 00", + "timestamp": 1102358.589253 + }, + { + "id": "0x301", + "data": "01 00 01 01 ca 64 00 00", + "timestamp": 1102358.689247 + }, + { + "id": "0x301", + "data": "01 00 02 01 2e 65 00 00", + "timestamp": 1102358.789299 + }, + { + "id": "0x301", + "data": "01 00 03 01 92 65 00 00", + "timestamp": 1102358.889394 + }, + { + "id": "0x301", + "data": "01 00 04 01 f6 65 00 00", + "timestamp": 1102358.989488 + }, + { + "id": "0x301", + "data": "01 00 05 01 5a 66 00 00", + "timestamp": 1102359.089582 + }, + { + "id": "0x301", + "data": "01 00 06 01 be 66 00 00", + "timestamp": 1102359.189677 + }, + { + "id": "0x301", + "data": "01 00 07 01 22 67 00 00", + "timestamp": 1102359.289771 + }, + { + "id": "0x300", + "data": "01 05 00 01 40 67 00 00", + "timestamp": 1102359.320704 + }, + { + "id": "0x301", + "data": "01 00 08 01 86 67 00 00", + "timestamp": 1102359.389908 + }, + { + "id": "0x301", + "data": "01 00 09 01 ea 67 00 00", + "timestamp": 1102359.48996 + }, + { + "id": "0x301", + "data": "01 00 0a 01 4e 68 00 00", + "timestamp": 1102359.590097 + }, + { + "id": "0x301", + "data": "01 00 0b 01 b2 68 00 00", + "timestamp": 1102359.690092 + }, + { + "id": "0x301", + "data": "01 00 0c 01 16 69 00 00", + "timestamp": 1102359.790186 + }, + { + "id": "0x301", + "data": "01 00 0d 01 7a 69 00 00", + "timestamp": 1102359.890281 + }, + { + "id": "0x301", + "data": "01 00 0e 01 de 69 00 00", + "timestamp": 1102359.990375 + }, + { + "id": "0x301", + "data": "01 00 0f 01 42 6a 00 00", + "timestamp": 1102360.090469 + }, + { + "id": "0x301", + "data": "01 00 10 01 a6 6a 00 00", + "timestamp": 1102360.190564 + }, + { + "id": "0x301", + "data": "01 00 11 01 0a 6b 00 00", + "timestamp": 1102360.290658 + }, + { + "id": "0x301", + "data": "01 00 12 01 6e 6b 00 00", + "timestamp": 1102360.39071 + }, + { + "id": "0x301", + "data": "01 00 13 01 d2 6b 00 00", + "timestamp": 1102360.490805 + }, + { + "id": "0x301", + "data": "01 00 14 01 36 6c 00 00", + "timestamp": 1102360.590856 + }, + { + "id": "0x301", + "data": "01 00 15 01 9a 6c 00 00", + "timestamp": 1102360.690851 + }, + { + "id": "0x301", + "data": "01 00 16 01 fe 6c 00 00", + "timestamp": 1102360.790945 + }, + { + "id": "0x301", + "data": "01 00 17 01 62 6d 00 00", + "timestamp": 1102360.890997 + }, + { + "id": "0x301", + "data": "01 00 18 01 c6 6d 00 00", + "timestamp": 1102360.991091 + }, + { + "id": "0x301", + "data": "01 00 19 01 2a 6e 00 00", + "timestamp": 1102361.091143 + }, + { + "id": "0x301", + "data": "01 00 1a 01 8e 6e 00 00", + "timestamp": 1102361.191238 + }, + { + "id": "0x301", + "data": "01 00 1b 01 f2 6e 00 00", + "timestamp": 1102361.291289 + }, + { + "id": "0x301", + "data": "01 00 1c 01 56 6f 00 00", + "timestamp": 1102361.391426 + }, + { + "id": "0x301", + "data": "01 00 1d 01 ba 6f 00 00", + "timestamp": 1102361.491521 + }, + { + "id": "0x301", + "data": "01 00 1e 01 1e 70 00 00", + "timestamp": 1102361.591615 + }, + { + "id": "0x301", + "data": "01 00 1f 01 82 70 00 00", + "timestamp": 1102361.691652 + }, + { + "id": "0x301", + "data": "01 00 20 01 e6 70 00 00", + "timestamp": 1102361.791747 + }, + { + "id": "0x301", + "data": "01 00 21 01 4a 71 00 00", + "timestamp": 1102361.891841 + }, + { + "id": "0x301", + "data": "01 00 22 01 ae 71 00 00", + "timestamp": 1102361.991936 + }, + { + "id": "0x301", + "data": "01 00 23 01 12 72 00 00", + "timestamp": 1102362.09203 + }, + { + "id": "0x301", + "data": "01 00 24 01 76 72 00 00", + "timestamp": 1102362.192125 + }, + { + "id": "0x301", + "data": "01 00 25 01 da 72 00 00", + "timestamp": 1102362.292219 + }, + { + "id": "0x301", + "data": "01 00 26 01 3e 73 00 00", + "timestamp": 1102362.392313 + }, + { + "id": "0x301", + "data": "01 00 27 01 a2 73 00 00", + "timestamp": 1102362.492365 + }, + { + "id": "0x301", + "data": "01 00 28 01 06 74 00 00", + "timestamp": 1102362.59246 + }, + { + "id": "0x301", + "data": "01 00 29 01 6a 74 00 00", + "timestamp": 1102362.692411 + } + ] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-cross-page-latest-emergency.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-cross-page-latest-emergency.png new file mode 100644 index 0000000..1254467 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-cross-page-latest-emergency.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-driving.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-driving.png new file mode 100644 index 0000000..1667af3 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-driving.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-emergency.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-emergency.png new file mode 100644 index 0000000..1254467 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-emergency.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-final-unknown.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-final-unknown.png new file mode 100644 index 0000000..8cb6d79 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-final-unknown.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-finished.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-finished.png new file mode 100644 index 0000000..64792c0 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-finished.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-legacy-unknown.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-legacy-unknown.png new file mode 100644 index 0000000..f59224e Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-legacy-unknown.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-manual.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-manual.png new file mode 100644 index 0000000..4cef368 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-manual.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-off.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-off.png new file mode 100644 index 0000000..fd326aa Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-off.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-ready.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-ready.png new file mode 100644 index 0000000..d9d9bb6 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-ready.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-recovery.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-recovery.png new file mode 100644 index 0000000..d9d9bb6 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-recovery.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-results.json b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-results.json new file mode 100644 index 0000000..6e3653e --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-results.json @@ -0,0 +1,348 @@ +{ + "result": "passed", + "scope": "physical CAN1 -> MCU RAM -> USART2/COM6 -> official HMI simulator; touch UART RX -> real CAN1 request; no physical screen download", + "checks": [ + { + "name": "off", + "color": "white", + "pixels": 141, + "ram": { + "states": [ + 2, + 1, + 1, + 0 + ], + "timestamp": 1974, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "ready", + "color": "yellow", + "pixels": 212, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 3681, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "driving", + "color": "yellow", + "pixels": 258, + "ram": { + "states": [ + 2, + 1, + 1, + 2 + ], + "timestamp": 5290, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "finished", + "color": "blue", + "pixels": 302, + "ram": { + "states": [ + 2, + 1, + 1, + 3 + ], + "timestamp": 6920, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "emergency", + "color": "red", + "pixels": 312, + "ram": { + "states": [ + 2, + 1, + 1, + 4 + ], + "timestamp": 8538, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "manual", + "color": "green", + "pixels": 292, + "ram": { + "states": [ + 2, + 1, + 1, + 5 + ], + "timestamp": 10156, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "as-invalid", + "color": "gray", + "pixels": 275, + "ram": { + "states": [ + 2, + 1, + 1, + 6 + ], + "timestamp": 11775, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "before-legacy", + "color": "yellow", + "pixels": 212, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 13405, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "legacy-unknown", + "color": "gray", + "pixels": 275, + "ram": { + "states": [ + 2, + 1, + 1, + 6 + ], + "timestamp": 15031, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "before-timeout", + "color": "yellow", + "pixels": 212, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 16649, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "timeout-other-traffic", + "color": "gray", + "pixels": 275, + "ram": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 16762, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "recovery", + "color": "yellow", + "pixels": 212, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 19892, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "cross-page-latest-emergency", + "color": "red", + "pixels": 312, + "ram": { + "states": [ + 2, + 1, + 1, + 4 + ], + "timestamp": 23619, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "before-touch-request", + "color": "yellow", + "pixels": 212, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 25227, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 0, + "task_head": 0, + "task_tail": 0 + }, + "passed": true + }, + { + "name": "touch-request-keeps-as-ready", + "color": "yellow", + "pixels": 212, + "ram": { + "states": [ + 2, + 1, + 1, + 1 + ], + "timestamp": 28149, + "received": 1, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true, + "request": { + "id": "0x300", + "data": "01 05 00 01 40 67 00 00", + "timestamp": 1102359.320704 + } + }, + { + "name": "final-unknown", + "color": "gray", + "pixels": 275, + "ram": { + "states": [ + 7, + 0, + 0, + 6 + ], + "timestamp": 28254, + "received": 0, + "can_errors": 0, + "uart_errors": 0, + "task_sequence": 1, + "task_head": 1, + "task_tail": 1 + }, + "passed": true + } + ], + "errors": [] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-serial-panel.json b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-serial-panel.json new file mode 100644 index 0000000..20312ff --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-serial-panel.json @@ -0,0 +1,4 @@ +{ + "1508942": "64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 30 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 32 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 32 FF FF FF 61 73 5F 73 74 61 74 65 3D 33 FF FF FF 61 73 5F 73 74 61 74 65 3D 34 FF FF FF 61 73 5F 73 74 61 74 65 3D 35 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 36 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 36 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 37 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 30 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 30 FF FF FF 61 73 5F 73 74 61 74 65 3D 36 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 61 73 5F 73 74 61 74 65 3D 34 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 74 73 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 74 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6C 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 76 61 6C 3D 30 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 76 61 6C 3D 30 FF FF FF 64 30 3D 30 FF FF FF 64 31 3D 30 FF FF FF 64 32 3D 30 FF FF FF 64 33 3D 30 FF FF FF 64 34 3D 30 FF FF FF 64 35 3D 30 FF FF FF 64 36 3D 30 FF FF FF 64 37 3D 30 FF FF FF 64 38 3D 30 FF FF FF 64 39 3D 30 FF FF FF 64 31 30 3D 30 FF FF FF 64 31 31 3D 30 FF FF FF 64 31 32 3D 30 FF FF FF 64 31 33 3D 30 FF FF FF 64 31 34 3D 30 FF FF FF 64 31 35 3D 30 FF FF FF 64 61 73 68 2E 73 70 65 65 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 74 73 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6C 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 6A 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6D 63 75 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 64 74 77 64 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 64 61 73 68 2E 6C 76 62 61 74 2E 70 63 6F 3D 31 36 39 30 34 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 32 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 31 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 31 FF FF FF 61 73 5F 73 74 61 74 65 3D 31 FF FF FF 63 75 72 72 65 6E 74 5F 74 61 73 6B 3D 37 FF FF FF 6C 6F 63 6B 5F 73 74 61 74 65 3D 30 FF FF FF 65 62 73 5F 73 74 61 74 65 3D 30 FF FF FF 61 73 5F 73 74 61 74 65 3D 36 FF FF FF ", + "592784": "AA 55 01 05 0D 0A " +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-timeout-other-traffic.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-timeout-other-traffic.png new file mode 100644 index 0000000..8cb6d79 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-timeout-other-traffic.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-touch-request-keeps-as-ready.png b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-touch-request-keeps-as-ready.png new file mode 100644 index 0000000..d9d9bb6 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/can-uart-hmi-touch-request-keeps-as-ready.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/compile.log b/docs/evidence/2026-10-07/small-as-status/compile.log new file mode 100644 index 0000000..2013d54 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/compile.log @@ -0,0 +1,9 @@ +总可用内存:524288 +全局内存占用:2524 +图片总大小:12,781 +字库总大小:5,255,658 +页面:dash 占用内存:2524+2260=4784 +页面:debug 占用内存:2524+288=2812 +页面:CONFIRM 占用内存:2524+608=3132 +File Check Finish +编译成功! 0个错误, 0个警告,文件大小:6,242,220 diff --git a/docs/evidence/2026-10-07/small-as-status/current-mcu-readback.bin b/docs/evidence/2026-10-07/small-as-status/current-mcu-readback.bin new file mode 100644 index 0000000..546a2c3 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/current-mcu-readback.bin differ diff --git a/docs/evidence/2026-10-07/small-as-status/current-mcu-readback.log b/docs/evidence/2026-10-07/small-as-status/current-mcu-readback.log new file mode 100644 index 0000000..50b49be --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/current-mcu-readback.log @@ -0,0 +1,29 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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\docs\evidence\2026-10-07\small-as-status\current-mcu-readback.bin + Size : 16672 Bytes + Address: : 0x8000000 +Read progress: +±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± 0% ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ 100% + +Data read successfully +Time elapsed during read operation is: 00:00:00.266 diff --git a/docs/evidence/2026-10-07/small-as-status/dash-as-cross-page.png b/docs/evidence/2026-10-07/small-as-status/dash-as-cross-page.png new file mode 100644 index 0000000..70a96dc Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/dash-as-cross-page.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/dash-as-driving.png b/docs/evidence/2026-10-07/small-as-status/dash-as-driving.png new file mode 100644 index 0000000..e3f3062 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/dash-as-driving.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/dash-as-emergency.png b/docs/evidence/2026-10-07/small-as-status/dash-as-emergency.png new file mode 100644 index 0000000..97744a4 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/dash-as-emergency.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/dash-as-finished.png b/docs/evidence/2026-10-07/small-as-status/dash-as-finished.png new file mode 100644 index 0000000..3c381d1 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/dash-as-finished.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/dash-as-manual.png b/docs/evidence/2026-10-07/small-as-status/dash-as-manual.png new file mode 100644 index 0000000..9fe17cd Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/dash-as-manual.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/dash-as-off.png b/docs/evidence/2026-10-07/small-as-status/dash-as-off.png new file mode 100644 index 0000000..201d589 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/dash-as-off.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/dash-as-ready-sample.png b/docs/evidence/2026-10-07/small-as-status/dash-as-ready-sample.png new file mode 100644 index 0000000..15e1b46 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/dash-as-ready-sample.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/dash-as-ready.png b/docs/evidence/2026-10-07/small-as-status/dash-as-ready.png new file mode 100644 index 0000000..70a96dc Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/dash-as-ready.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/dash-as-unknown.png b/docs/evidence/2026-10-07/small-as-status/dash-as-unknown.png new file mode 100644 index 0000000..0731a40 Binary files /dev/null and b/docs/evidence/2026-10-07/small-as-status/dash-as-unknown.png differ diff --git a/docs/evidence/2026-10-07/small-as-status/edit_small_as.py b/docs/evidence/2026-10-07/small-as-status/edit_small_as.py new file mode 100644 index 0000000..f25eef2 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/edit_small_as.py @@ -0,0 +1,35 @@ +from pathlib import Path +import sys,time,json +sys.path.insert(0,'D:/YMR/AMI/tmp') +import migrate_hmi as h +R=Path('D:/YMR/AMI');O=R/'docs/evidence/2026-10-07/small-as-status' +large=(R/'scripts/hmi/TJC8048X370_011/dash-status-render.txt').read_text(encoding='utf-8') +ascode=large[large.index('if(as_state!=shown_as)'):].replace('330,379,174,53,4,','194,215,108,30,0,').replace('Manual Driving','有人驾驶') +renderer=(R/'scripts/hmi/dash-status-render.txt').read_text(encoding='utf-8') +if 'if(as_state!=shown_as)' not in renderer:renderer=renderer.rstrip()+'\n'+ascode +(R/'scripts/hmi/dash-status-render.txt').write_text(renderer,encoding='utf-8') +post='shown_task=-1\nshown_lock=-1\nshown_ebs=-1\nshown_as=-1\n'+renderer +(R/'scripts/hmi/dash-postinit.txt').write_text(post,encoding='utf-8') +h.N.set_focus();h.page(0);h.select('sd(文本)') +(O/'lock-before.json').write_text(json.dumps(h.props(),ensure_ascii=False,indent=2),encoding='utf-8') +for k,v in [('x',126),('w',66)]: + h.G.element_info.element.SetFocus();h.pg.hotkey('ctrl','end');time.sleep(.4);h.refresh_cells() + cell=h.CELL_MAP[k];r=cell.rectangle();h.pg.doubleClick((r.left+r.right)//2,(r.top+r.bottom)//2,interval=.1);time.sleep(.4);h.pg.hotkey('ctrl','a');h.pg.write(str(v));h.pg.press('enter');time.sleep(.2) + h.refresh_cells();assert h.props()[k]==str(v),(k,h.props()) +(O/'lock-after.json').write_text(json.dumps(h.props(),ensure_ascii=False,indent=2),encoding='utf-8') +for item,tab,code in [('dash(页面)',1550,post),('tm0(定时器)',1330,renderer)]: + h.select(item);actual=h.event_text(tab,code);assert ''.join(actual.split())==''.join(code.split()) +h.W.child_window(title='Program.s',control_type='Button').click_input();time.sleep(.3) +code=(R/'scripts/hmi/Program.s').read_text(encoding='utf-8') +h.pg.click(1100,600);h.pg.hotkey('ctrl','a');h.clipset(code.replace('\n','\r\n'));h.pg.hotkey('ctrl','v');time.sleep(.5) +h.pg.hotkey('ctrl','a');h.clipset('__PENDING__');h.pg.hotkey('ctrl','c');time.sleep(.3) +h.win32clipboard.OpenClipboard() +try:actual=h.win32clipboard.GetClipboardData(h.win32clipboard.CF_UNICODETEXT) +finally:h.win32clipboard.CloseClipboard() +assert ''.join(actual.split())==''.join(code.split()) +h.W.child_window(title='保存',control_type='Button').click_input();time.sleep(.5) +h.W.child_window(title='编译',control_type='Button').click_input();time.sleep(3) +logs='\n'.join(c.window_text() for c in h.N.descendants() if 'RichEdit' in c.class_name() and '编译' in c.window_text()) +(O/'compile.log').write_text(logs,encoding='utf-8');print(logs[-1800:]) +h.W.child_window(title='调试',control_type='Button').click_input();time.sleep(4) +h.pg.screenshot().save(str(R/'tmp/small-simulator.png')) diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-as-invalid-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-as-invalid-ram.log new file mode 100644 index 0000000..bb87b58 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-as-invalid-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00002DFF 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00002CEC +0x2000025C : 00000075 00002DB4 00002710 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00002DFF 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00002DFF + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-before-legacy-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-before-legacy-ram.log new file mode 100644 index 0000000..ce5701c --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-before-legacy-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000345D 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 000032C9 +0x2000025C : 00000086 00003459 00002710 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0000345D 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0000345D + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-before-timeout-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-before-timeout-ram.log new file mode 100644 index 0000000..d3d066a --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-before-timeout-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000410C 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00004075 +0x2000025C : 000000A6 000040D9 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00004109 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00004109 + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-before-touch-request-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-before-touch-request-ram.log new file mode 100644 index 0000000..6fc0591 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-before-touch-request-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000628F 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00080008 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 00000015 00000001 000061A9 +0x2000025C : 000000FC 00006272 000061A8 00000000 +0x2000026C : 00000000 00000000 01000000 3D323164 +0x2000027C : FFFFFF30 762E7461 303D6C61 34FFFFFF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0000628B 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F010000 0000628B + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-cross-page-latest-emergency-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-cross-page-latest-emergency-ram.log new file mode 100644 index 0000000..948d5e1 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-cross-page-latest-emergency-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 04010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00005C43 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00005BCD +0x2000025C : 000000EC 00005C32 00004E20 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF343D 303D6CFF 34FFFFFF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00005C43 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00005C43 + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-driving-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-driving-ram.log new file mode 100644 index 0000000..159b941 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-driving-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 02010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000014AD 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00140014 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 0000001A 00000001 00001388 +0x2000025C : 00000035 000014B4 00001388 00000000 +0x2000026C : 00000000 00000000 01000000 68736164 +0x2000027C : 2E73742E 3D6F6370 30393631 FFFFFF34 +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000014AA 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F010000 000014AA + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-emergency-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-emergency-ram.log new file mode 100644 index 0000000..23008b6 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-emergency-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 04010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000215C 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00002134 +0x2000025C : 00000055 00002134 00001388 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF343D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0000215A 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 0000215A + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-final-unknown-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-final-unknown-ram.log new file mode 100644 index 0000000..728c21b --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-final-unknown-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000743C 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000001 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003A0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 0000733D +0x2000025C : 00000129 00007406 000061A8 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 050155AA +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00006E5E 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 00006E5E + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-finished-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-finished-ram.log new file mode 100644 index 0000000..4ab893b --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-finished-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 03010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00001B0C 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00001964 +0x2000025C : 00000045 00001AF4 00001388 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF333D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00001B08 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00001B08 + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-legacy-unknown-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-legacy-unknown-ram.log new file mode 100644 index 0000000..0e0183c --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-legacy-unknown-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00003AB8 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000201 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00110011 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 00000003 00000001 00003A99 +0x2000025C : 00000096 00003A99 00003A98 00000000 +0x2000026C : 00000000 00000000 01000000 68736164 +0x2000027C : 74636D2E 6C61762E FFFF303D 34FFFFFF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00003AB7 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F010000 00003AB7 + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-manual-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-manual-ram.log new file mode 100644 index 0000000..24e623a --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-manual-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 05010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 000027B3 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00070007 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000021 00000022 +0x2000024C : 00000000 0000000C 00000001 00002710 +0x2000025C : 00000065 00002774 00002710 00000000 +0x2000026C : 00000000 00000000 01000000 303D3364 +0x2000027C : 62FFFFFF 762E7461 303D6C61 34FFFFFF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000027AC 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 0F010000 000027AC + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-off-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-off-ram.log new file mode 100644 index 0000000..633ea78 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-off-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 00010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 0000080A 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 000007D0 +0x2000025C : 00000014 000007D0 00000000 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF303D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 000007B6 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 000007B6 + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-ready-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-ready-ram.log new file mode 100644 index 0000000..5726f34 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-ready-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00000E63 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00000DAC +0x2000025C : 00000024 00000E10 00000000 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00000E61 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00000E61 + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-recovery-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-recovery-ram.log new file mode 100644 index 0000000..56ca3b9 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-recovery-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00004DBA 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 00000008 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000018 00000001 00004C2D +0x2000025C : 000000C7 00004DBE 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 3D353164 +0x2000027C : FFFFFF30 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00004DB4 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00004DB4 + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-timeout-other-traffic-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-timeout-other-traffic-ram.log new file mode 100644 index 0000000..551085f --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-timeout-other-traffic-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 06000007 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00004760 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000002 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 00000040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000000 00004651 +0x2000025C : 000000B6 00004719 00003A98 00000000 +0x2000026C : 00000000 00000000 00000000 735F7361 +0x2000027C : 65746174 FFFF363D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 00000000 +0x2000029C : 00000000 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 0000475B 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00000000 0000417A + + diff --git a/docs/evidence/2026-10-07/small-as-status/hmi-touch-request-keeps-as-ready-ram.log b/docs/evidence/2026-10-07/small-as-status/hmi-touch-request-keeps-as-ready-ram.log new file mode 100644 index 0000000..37ab40f --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/hmi-touch-request-keeps-as-ready-ram.log @@ -0,0 +1,74 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 : 760 Bytes + Address: : 0x2000000C + +0x2000000C : 01010102 00000000 00000000 00000000 +0x2000001C : 00000000 00000000 00000000 00000000 +0x2000002C : 00006DFD 00000002 40006800 00000000 +0x2000003C : 00000000 00000000 00000001 00000010 +0x2000004C : 00000001 0000000D 00000002 00000010 +0x2000005C : 00000001 0000000D 00000002 00000004 +0x2000006C : 00000001 00000000 4000B750 4000B7C0 +0x2000007C : 4000B800 4000B8D8 4000B9B0 4000B9C8 +0x2000008C : 00000000 00000002 00000000 40006400 +0x2000009C : 00000000 00000000 00000000 00000001 +0x200000AC : 00000008 00000001 0000000D 00000002 +0x200000BC : 00000008 00000001 0000000D 00000002 +0x200000CC : 00000004 00000001 00000000 4000B400 +0x200000DC : 4000B470 4000B4B0 4000B588 4000B660 +0x200000EC : 4000B678 00000004 00000002 00000000 +0x200000FC : 4002001C 00000034 00000000 00000000 +0x2000010C : 00000080 00000000 00000000 00000000 +0x2000011C : 00002000 00000201 200001BC 080023D1 +0x2000012C : 080023AD 08002005 00000000 00000000 +0x2000013C : 40020000 00000004 40020804 40020880 +0x2000014C : 00000002 00000000 00000000 00000000 +0x2000015C : 40020008 00000035 00000010 00000000 +0x2000016C : 00000080 00000000 00000000 00000000 +0x2000017C : 00002000 00000100 200001BC 08001FA5 +0x2000018C : 08001FF7 08002005 00000000 00000000 +0x2000019C : 40020000 00000000 40020800 40020880 +0x200001AC : 00000001 00000000 00000000 00000000 +0x200001BC : 40004400 00002580 00000000 00000000 +0x200001CC : 00000000 0000000C 00000000 00000000 +0x200001DC : 00000000 00000000 00000000 00000000 +0x200001EC : 00000000 00000000 00000000 00000000 +0x200001FC : 00000000 00000000 00000000 00000000 +0x2000020C : 20000278 0000000D 20000298 003A0040 +0x2000021C : 00000000 00000000 00010001 00000001 +0x2000022C : 00000000 00000000 00000000 2000015C +0x2000023C : 200000FC 00000000 00000020 00000022 +0x2000024C : 00000000 00000000 00000001 00006D61 +0x2000025C : 00000119 00006DC6 000061A8 00000000 +0x2000026C : 01010000 00000501 00000500 735F7361 +0x2000027C : 65746174 FFFF313D FFFFFFFF 343039FF +0x2000028C : 00FFFFFF 00000000 00000000 050155AA +0x2000029C : 00000A0D 00000000 00000000 00000000 +0x200002AC : 00000000 00000000 00000000 00000000 +0x200002BC : 00000000 00000000 00000000 00000000 +0x200002CC : 00000000 00000000 00000000 00000000 +0x200002DC : 00000000 00006DF5 00000000 00000000 +0x200002EC : 00000000 00000000 00000000 00000000 +0x200002FC : 00010000 00006DF5 + + diff --git a/docs/evidence/2026-10-07/small-as-status/lock-after.json b/docs/evidence/2026-10-07/small-as-status/lock-after.json new file mode 100644 index 0000000..124b82a --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/lock-after.json @@ -0,0 +1,25 @@ +{ + "type": "116", + "id": "4", + "objname": "sd", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "0", + "pco": "1048", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "已锁定", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "126", + "y": "215", + "w": "66", + "h": "30" +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/small-as-status/lock-before.json b/docs/evidence/2026-10-07/small-as-status/lock-before.json new file mode 100644 index 0000000..1c825b7 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/lock-before.json @@ -0,0 +1,25 @@ +{ + "type": "116", + "id": "4", + "objname": "sd", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "0", + "pco": "1048", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "已锁定", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "160", + "y": "215", + "w": "100", + "h": "30" +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/small-as-status/manifest.json b/docs/evidence/2026-10-07/small-as-status/manifest.json new file mode 100644 index 0000000..e2fd84c --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/manifest.json @@ -0,0 +1,23 @@ +{ + "files": { + "AMI.HMI": { + "size": 12732432, + "sha256": "6772d1fb6e1b53ebbdf46f63fafc04522663cc341962f026772ced7da3002849" + }, + "output/hmi/AMI.tft": { + "size": 6242220, + "sha256": "274c7edabb5e92a70231e3db63fe1fc29139a750c8d23ec7681b24941d00bd53" + }, + "output/firmware/AMI_Controller.bin": { + "size": 16672, + "sha256": "1951c63e779429d08a992d1171fc92173e4399307ff741fdc5d9b7646848855d" + } + }, + "physical_mcu": true, + "physical_can1": true, + "physical_uart": true, + "official_small_hmi_simulator": true, + "physical_hmi": false, + "current_mcu_readback_bytes": 16672, + "current_mcu_readback_matches": true +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/small-as-status/mcu-reset.log b/docs/evidence/2026-10-07/small-as-status/mcu-reset.log new file mode 100644 index 0000000..01ee703 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/mcu-reset.log @@ -0,0 +1,23 @@ + ------------------------------------------------------------------- + STM32CubeProgrammer v2.20.0 + ------------------------------------------------------------------- + +ST-LINK SN : 37FF71064E573436188C1543 +ST-LINK FW : V2J47S7 +Board : -- +Voltage : 3.24V +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 diff --git a/docs/evidence/2026-10-07/small-as-status/saved-engineering-readback.json b/docs/evidence/2026-10-07/small-as-status/saved-engineering-readback.json new file mode 100644 index 0000000..cde86ff --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/saved-engineering-readback.json @@ -0,0 +1,30 @@ +{ + "saved_lock_properties": { + "type": "116", + "id": "4", + "objname": "sd", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "0", + "pco": "1048", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "已锁定", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "126", + "y": "215", + "w": "66", + "h": "30" + }, + "dash-postinit.txt": "saved file reload matches source", + "dash-status-render.txt": "saved file reload matches source", + "Program.s": "saved file reload matches source" +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/small-as-status/simulator-results.json b/docs/evidence/2026-10-07/small-as-status/simulator-results.json new file mode 100644 index 0000000..843f269 --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/simulator-results.json @@ -0,0 +1,69 @@ +{ + "scope": "official HMI simulator, no physical UART/CAN", + "checks": [ + { + "state": 6, + "label": "unknown", + "color": "gray", + "pixels": 275, + "rendered_state_query": "71 06 00 00 00 FF FF FF 71 06 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 0, + "label": "off", + "color": "white", + "pixels": 141, + "rendered_state_query": "71 00 00 00 00 FF FF FF 71 00 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 1, + "label": "ready", + "color": "yellow", + "pixels": 212, + "rendered_state_query": "71 01 00 00 00 FF FF FF 71 01 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 2, + "label": "driving", + "color": "yellow", + "pixels": 258, + "rendered_state_query": "71 02 00 00 00 FF FF FF 71 02 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 3, + "label": "finished", + "color": "blue", + "pixels": 302, + "rendered_state_query": "71 03 00 00 00 FF FF FF 71 03 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 4, + "label": "emergency", + "color": "red", + "pixels": 312, + "rendered_state_query": "71 04 00 00 00 FF FF FF 71 04 00 00 00 FF FF FF", + "passed": true + }, + { + "state": 5, + "label": "manual", + "color": "green", + "pixels": 292, + "rendered_state_query": "71 05 00 00 00 FF FF FF 71 05 00 00 00 FF FF FF", + "passed": true + }, + { + "name": "cross-page latest state and postinit redraw", + "passed": true + }, + { + "name": "task confirmation preserves actual AS feedback", + "passed": true + } + ] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/small-as-status/test_small_as.py b/docs/evidence/2026-10-07/small-as-status/test_small_as.py new file mode 100644 index 0000000..91cd4db --- /dev/null +++ b/docs/evidence/2026-10-07/small-as-status/test_small_as.py @@ -0,0 +1,39 @@ +import time,json +from pathlib import Path +import pyautogui as pg,win32clipboard +import numpy as np +from pywinauto import Desktop +R=Path('D:/YMR/AMI');O=R/'docs/evidence/2026-10-07/small-as-status' +w=Desktop(backend='win32').window(handle=1116782);w.set_focus() +out=Desktop(backend='win32').window(handle=592104) +pg.PAUSE=.12 +checks=[] +def execute(code): + pg.click(700,1160);pg.hotkey('ctrl','a') + win32clipboard.OpenClipboard();win32clipboard.EmptyClipboard();win32clipboard.SetClipboardText(code.replace('\n','\r\n'),win32clipboard.CF_UNICODETEXT);win32clipboard.CloseClipboard() + pg.hotkey('ctrl','v');time.sleep(.2);pg.click(1070,1260);time.sleep(.4) +def output():return ' '.join(out.window_text().split()).upper() +def clear():pg.click(1600,1090);time.sleep(.1) +def shot(name): + a=pg.screenshot(region=(920,492,720,408));a.save(str(O/(name+'.png')));return np.asarray(a) +for state,label,color in [(6,'unknown','gray'),(0,'off','white'),(1,'ready','yellow'),(2,'driving','yellow'),(3,'finished','blue'),(4,'emergency','red'),(5,'manual','green')]: + execute(f'current_task=2\nlock_state=1\nebs_state=1\nas_state={state}') + clear();execute('get as_state\nget shown_as') + expected=f'71 {state:02X} 00 00 00 FF FF FF' + assert output().count(expected)==2,(state,output()) + a=shot('dash-as-'+label)[int(215*1.5):int(245*1.5),int(194*1.5):int(302*1.5),:3].astype(np.int16) + r,g,b=a[:,:,0],a[:,:,1],a[:,:,2] + masks={'gray':(r>75)&(r<180)&(abs(r-g)<8)&(abs(r-b)<8), + 'white':(r>210)&(g>210)&(b>210),'yellow':(r>180)&(g>180)&(b<80), + 'blue':(b>180)&(g<80)&(r<80),'red':(r>180)&(g<80)&(b<80), + 'green':(g>180)&(r<80)&(b<80)} + count=int(masks[color].sum());assert count>30,(state,color,count) + checks.append(dict(state=state,label=label,color=color,pixels=count,rendered_state_query=output(),passed=True)) + print(label,'passed',flush=True) +execute('as_state=4\npage debug\nas_state=1\npage dash');clear();execute('get as_state\nget shown_as');assert output().count('71 01 00 00 00 FF FF FF')==2 +shot('dash-as-cross-page');checks.append(dict(name='cross-page latest state and postinit redraw',passed=True)) +execute('click bt4,1\nclick bt4,0\nclick b0,1\nclick b0,0');clear();execute('get as_state\nget shown_as');assert output().count('71 01 00 00 00 FF FF FF')==2 +checks.append(dict(name='task confirmation preserves actual AS feedback',passed=True)) +execute('current_task=2\nlock_state=1\nebs_state=1\nas_state=1\ndash.speed.val=38\ndash.lvbat.val=1260') +shot('dash-as-ready-sample') +(O/'simulator-results.json').write_text(json.dumps(dict(scope='official HMI simulator, no physical UART/CAN',checks=checks),ensure_ascii=False,indent=2),encoding='utf-8') diff --git a/docs/evidence/2026-10-07/tjc8048-migration/compile-final.log b/docs/evidence/2026-10-07/tjc8048-migration/compile-final.log new file mode 100644 index 0000000..3b4395f --- /dev/null +++ b/docs/evidence/2026-10-07/tjc8048-migration/compile-final.log @@ -0,0 +1,9 @@ +总可用内存:524288 +全局内存占用:2516 +图片总大小:12,781 +字库总大小:7,920,938 +页面:dash 占用内存:2516+2260=4776 +页面:debug 占用内存:2516+288=2804 +页面:CONFIRM 占用内存:2516+608=3124 +File Check Finish +编译成功! 0个错误, 0个警告,文件大小:8,862,596 diff --git a/docs/evidence/2026-10-07/tjc8048-migration/confirm-event-verified.txt b/docs/evidence/2026-10-07/tjc8048-migration/confirm-event-verified.txt new file mode 100644 index 0000000..2fda686 --- /dev/null +++ b/docs/evidence/2026-10-07/tjc8048-migration/confirm-event-verified.txt @@ -0,0 +1,29 @@ +if(pending_task>=1&&pending_task<=6) +{ + if(pending_task==1) + { + printh AA 55 01 01 0D 0A + } + if(pending_task==2) + { + printh AA 55 01 02 0D 0A + } + if(pending_task==3) + { + printh AA 55 01 03 0D 0A + } + if(pending_task==4) + { + printh AA 55 01 04 0D 0A + } + if(pending_task==5) + { + printh AA 55 01 05 0D 0A + } + if(pending_task==6) + { + printh AA 55 01 06 0D 0A + } + pending_task=0 + page dash +} diff --git a/docs/evidence/2026-10-07/tjc8048-migration/confirm.png b/docs/evidence/2026-10-07/tjc8048-migration/confirm.png new file mode 100644 index 0000000..973bdb6 Binary files /dev/null and b/docs/evidence/2026-10-07/tjc8048-migration/confirm.png differ diff --git a/docs/evidence/2026-10-07/tjc8048-migration/dash-cross-page.png b/docs/evidence/2026-10-07/tjc8048-migration/dash-cross-page.png new file mode 100644 index 0000000..5509300 Binary files /dev/null and b/docs/evidence/2026-10-07/tjc8048-migration/dash-cross-page.png differ diff --git a/docs/evidence/2026-10-07/tjc8048-migration/dash-fault.png b/docs/evidence/2026-10-07/tjc8048-migration/dash-fault.png new file mode 100644 index 0000000..0082d72 Binary files /dev/null and b/docs/evidence/2026-10-07/tjc8048-migration/dash-fault.png differ diff --git a/docs/evidence/2026-10-07/tjc8048-migration/dash-sample.png b/docs/evidence/2026-10-07/tjc8048-migration/dash-sample.png new file mode 100644 index 0000000..9931207 Binary files /dev/null and b/docs/evidence/2026-10-07/tjc8048-migration/dash-sample.png differ diff --git a/docs/evidence/2026-10-07/tjc8048-migration/dash-unknown.png b/docs/evidence/2026-10-07/tjc8048-migration/dash-unknown.png new file mode 100644 index 0000000..4dd4332 Binary files /dev/null and b/docs/evidence/2026-10-07/tjc8048-migration/dash-unknown.png differ diff --git a/docs/evidence/2026-10-07/tjc8048-migration/debug-fault.png b/docs/evidence/2026-10-07/tjc8048-migration/debug-fault.png new file mode 100644 index 0000000..2c9e1b0 Binary files /dev/null and b/docs/evidence/2026-10-07/tjc8048-migration/debug-fault.png differ diff --git a/docs/evidence/2026-10-07/tjc8048-migration/debug-normal.png b/docs/evidence/2026-10-07/tjc8048-migration/debug-normal.png new file mode 100644 index 0000000..f8dac20 Binary files /dev/null and b/docs/evidence/2026-10-07/tjc8048-migration/debug-normal.png differ diff --git a/docs/evidence/2026-10-07/tjc8048-migration/debug-unknown.png b/docs/evidence/2026-10-07/tjc8048-migration/debug-unknown.png new file mode 100644 index 0000000..b731cde Binary files /dev/null and b/docs/evidence/2026-10-07/tjc8048-migration/debug-unknown.png differ diff --git a/docs/evidence/2026-10-07/tjc8048-migration/manifest.json b/docs/evidence/2026-10-07/tjc8048-migration/manifest.json new file mode 100644 index 0000000..cce4b29 --- /dev/null +++ b/docs/evidence/2026-10-07/tjc8048-migration/manifest.json @@ -0,0 +1,34 @@ +{ + "date": "2026-10-07", + "target": "TJC8048X370_011", + "editor": "1.68.1.3037", + "resolution": [ + 800, + 480 + ], + "compile": { + "errors": 0, + "warnings": 0, + "bytes": 8862596 + }, + "original_unchanged": true, + "physical_screen_downloaded": false, + "physical_uart_touch_verified": false, + "files": [ + { + "path": "AMI.HMI", + "bytes": 12732432, + "sha256": "2f59e1e3d757a06bbd882cd92bb78ed4bfd0336eb14872e5b33a15ea6f69f65b" + }, + { + "path": "AMI_TJC8048X370_011.HMI", + "bytes": 15416175, + "sha256": "884990c8927b18c5b4b5d7d30bfe5d209ef676cafa2d10a7554ffcf52e88197b" + }, + { + "path": "output/hmi/AMI_TJC8048X370_011.tft", + "bytes": 8862596, + "sha256": "08f994b0bf0de51c8890cf697bf219448091246931900cead903d3e6b208745a" + } + ] +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/tjc8048-migration/properties-verified.json b/docs/evidence/2026-10-07/tjc8048-migration/properties-verified.json new file mode 100644 index 0000000..01c30ab --- /dev/null +++ b/docs/evidence/2026-10-07/tjc8048-migration/properties-verified.json @@ -0,0 +1,1431 @@ +{ + "dash": { + "dash(页面)": { + "type": "121", + "id": "0", + "vscope": "私有", + "effect": "立即加载", + "up": "255", + "down": "255", + "left": "255", + "right": "255", + "sta": "单色", + "bco": "0", + "x": "0", + "y": "0", + "w": "800", + "h": "480" + }, + "t0(文本)": { + "type": "116", + "id": "1", + "objname": "t0", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "2047", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "当前车速", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "210", + "y": "55", + "w": "275", + "h": "37" + }, + "t1(文本)": { + "type": "116", + "id": "2", + "objname": "t1", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "2047", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "当前任务", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "210", + "y": "270", + "w": "275", + "h": "53" + }, + "rw(文本)": { + "type": "116", + "id": "3", + "objname": "rw", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "34800", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "无", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "210", + "y": "314", + "w": "275", + "h": "53" + }, + "sd(文本)": { + "type": "116", + "id": "4", + "objname": "sd", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "1048", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "已锁定", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "210", + "y": "379", + "w": "275", + "h": "53" + }, + "t4(文本)": { + "type": "116", + "id": "5", + "objname": "t4", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "高压电压", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "540", + "y": "53", + "w": "132", + "h": "53" + }, + "t5(文本)": { + "type": "116", + "id": "6", + "objname": "t5", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "扭矩千分", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "540", + "y": "108", + "w": "132", + "h": "53" + }, + "t6(文本)": { + "type": "116", + "id": "7", + "objname": "t6", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "borderc": "65535", + "borderw": "2", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "高压电流", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "540", + "y": "168", + "w": "132", + "h": "53" + }, + "t7(文本)": { + "type": "116", + "id": "8", + "objname": "t7", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "电机温度", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "540", + "y": "221", + "w": "132", + "h": "53" + }, + "t8(文本)": { + "type": "116", + "id": "9", + "objname": "t8", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "MCU温度", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "540", + "y": "279", + "w": "132", + "h": "53" + }, + "t9(文本)": { + "type": "116", + "id": "10", + "objname": "t9", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "最高单体", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "540", + "y": "337", + "w": "132", + "h": "53" + }, + "speed(数字)": { + "type": "54", + "id": "11", + "objname": "speed", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "3", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "lenth": "0", + "format": "数字", + "isbr": "是", + "spax": "0", + "spay": "0", + "x": "235", + "y": "88", + "w": "225", + "h": "124" + }, + "t10(文本)": { + "type": "116", + "id": "12", + "objname": "t10", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "2047", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "km/h", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "210", + "y": "199", + "w": "275", + "h": "53" + }, + "ts(数字)": { + "type": "54", + "id": "13", + "objname": "ts", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "lenth": "0", + "format": "数字", + "isbr": "是", + "spax": "0", + "spay": "0", + "x": "680", + "y": "46", + "w": "104", + "h": "53" + }, + "mct(数字)": { + "type": "54", + "id": "14", + "objname": "mct", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "lenth": "0", + "format": "数字", + "isbr": "是", + "spax": "0", + "spay": "0", + "x": "680", + "y": "99", + "w": "104", + "h": "53" + }, + "dl(数字)": { + "type": "54", + "id": "15", + "objname": "dl", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "lenth": "0", + "format": "数字", + "isbr": "是", + "spax": "0", + "spay": "0", + "x": "680", + "y": "161", + "w": "104", + "h": "53" + }, + "djwd(数字)": { + "type": "54", + "id": "16", + "objname": "djwd", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "lenth": "0", + "format": "数字", + "isbr": "是", + "spax": "0", + "spay": "0", + "x": "680", + "y": "221", + "w": "104", + "h": "53" + }, + "mcuwd(数字)": { + "type": "54", + "id": "17", + "objname": "mcuwd", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "lenth": "0", + "format": "数字", + "isbr": "是", + "spax": "0", + "spay": "0", + "x": "680", + "y": "277", + "w": "104", + "h": "53" + }, + "dtwd(数字)": { + "type": "54", + "id": "18", + "objname": "dtwd", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "透明", + "key": "无", + "font": "2", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "lenth": "0", + "format": "数字", + "isbr": "是", + "spax": "0", + "spay": "0", + "x": "680", + "y": "341", + "w": "104", + "h": "53" + }, + "EBS(文本)": { + "type": "116", + "id": "19", + "objname": "EBS", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "EBS 正常", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "540", + "y": "411", + "w": "244", + "h": "53" + }, + "bt0(双态按钮)": { + "type": "53", + "id": "20", + "objname": "bt0", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "font": "2", + "bco": "23243", + "bco2": "4942", + "pco": "65535", + "pco2": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "txt": "八字绕环", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "16", + "y": "35", + "w": "144", + "h": "54" + }, + "bt1(双态按钮)": { + "type": "53", + "id": "21", + "objname": "bt1", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "font": "2", + "bco": "23243", + "bco2": "4942", + "pco": "65535", + "pco2": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "txt": "直线加速", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "16", + "y": "106", + "w": "144", + "h": "54" + }, + "bt2(双态按钮)": { + "type": "53", + "id": "22", + "objname": "bt2", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "font": "2", + "bco": "23243", + "bco2": "4942", + "pco": "65535", + "pco2": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "txt": "高速循迹", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "16", + "y": "176", + "w": "144", + "h": "54" + }, + "bt3(双态按钮)": { + "type": "53", + "id": "23", + "objname": "bt3", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "font": "2", + "bco": "23243", + "bco2": "4942", + "pco": "65535", + "pco2": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "txt": "车检测试", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "16", + "y": "247", + "w": "144", + "h": "54" + }, + "bt4(双态按钮)": { + "type": "53", + "id": "24", + "objname": "bt4", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "font": "2", + "bco": "23243", + "bco2": "4942", + "pco": "65535", + "pco2": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "txt": "EBS测试", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "16", + "y": "318", + "w": "144", + "h": "54" + }, + "bt5(双态按钮)": { + "type": "53", + "id": "25", + "objname": "bt5", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "font": "2", + "bco": "23243", + "bco2": "4942", + "pco": "65535", + "pco2": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "txt": "手动驾驶", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "16", + "y": "388", + "w": "144", + "h": "54" + }, + "debug_entry(触摸热区)": { + "type": "109", + "id": "26", + "objname": "debug_entry", + "vscope": "私有", + "x": "728", + "y": "0", + "w": "72", + "h": "48" + }, + "t2(文本)": { + "type": "116", + "id": "27", + "objname": "t2", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "2047", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "低压电池电压", + "txt_maxl": "32", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "205", + "y": "4", + "w": "192", + "h": "40" + }, + "t3(文本)": { + "type": "116", + "id": "28", + "objname": "t3", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "2047", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "V", + "txt_maxl": "32", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "499", + "y": "4", + "w": "24", + "h": "40" + }, + "lvbat(虚拟浮点数)": { + "type": "59", + "id": "29", + "objname": "lvbat", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "val": "0", + "vvs0": "0", + "vvs1": "2", + "isbr": "是", + "spax": "0", + "spay": "0", + "x": "397", + "y": "4", + "w": "98", + "h": "40" + }, + "tm0(定时器)": { + "type": "51", + "id": "30", + "objname": "tm0", + "vscope": "私有", + "tim": "100", + "en": "1" + } + }, + "debug": { + "debug(页面)": { + "type": "121", + "id": "0", + "vscope": "私有", + "effect": "立即加载", + "up": "255", + "down": "255", + "left": "255", + "right": "255", + "sta": "单色", + "bco": "0", + "x": "0", + "y": "0", + "w": "800", + "h": "480" + }, + "t0(文本)": { + "type": "116", + "id": "1", + "objname": "t0", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "67", + "y": "101", + "w": "67", + "h": "32" + }, + "t1(文本)": { + "type": "116", + "id": "2", + "objname": "t1", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "467", + "y": "101", + "w": "67", + "h": "32" + }, + "t2(文本)": { + "type": "116", + "id": "3", + "objname": "t2", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "667", + "y": "101", + "w": "67", + "h": "32" + }, + "t3(文本)": { + "type": "116", + "id": "4", + "objname": "t3", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "667", + "y": "189", + "w": "67", + "h": "32" + }, + "t4(文本)": { + "type": "116", + "id": "5", + "objname": "t4", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "467", + "y": "189", + "w": "67", + "h": "32" + }, + "t5(文本)": { + "type": "116", + "id": "6", + "objname": "t5", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "267", + "y": "189", + "w": "67", + "h": "32" + }, + "t6(文本)": { + "type": "116", + "id": "7", + "objname": "t6", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "267", + "y": "101", + "w": "67", + "h": "32" + }, + "t7(文本)": { + "type": "116", + "id": "8", + "objname": "t7", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "167", + "y": "288", + "w": "67", + "h": "32" + }, + "t8(文本)": { + "type": "116", + "id": "9", + "objname": "t8", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "567", + "y": "288", + "w": "67", + "h": "32" + }, + "t9(文本)": { + "type": "116", + "id": "10", + "objname": "t9", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "67", + "y": "372", + "w": "67", + "h": "32" + }, + "t10(文本)": { + "type": "116", + "id": "11", + "objname": "t10", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "267", + "y": "372", + "w": "67", + "h": "32" + }, + "t11(文本)": { + "type": "116", + "id": "12", + "objname": "t11", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "467", + "y": "372", + "w": "67", + "h": "32" + }, + "t12(文本)": { + "type": "116", + "id": "13", + "objname": "t12", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "667", + "y": "372", + "w": "67", + "h": "32" + }, + "t13(文本)": { + "type": "116", + "id": "14", + "objname": "t13", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "67", + "y": "446", + "w": "67", + "h": "32" + }, + "t14(文本)": { + "type": "116", + "id": "15", + "objname": "t14", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "267", + "y": "446", + "w": "67", + "h": "32" + }, + "t15(文本)": { + "type": "116", + "id": "16", + "objname": "t15", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "467", + "y": "446", + "w": "67", + "h": "32" + }, + "t16(文本)": { + "type": "116", + "id": "17", + "objname": "t16", + "vscope": "全局", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "未知", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "667", + "y": "446", + "w": "67", + "h": "32" + }, + "b0(按钮)": { + "type": "98", + "id": "18", + "objname": "b0", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "3D_Auto", + "font": "2", + "bco": "10565", + "bco2": "23243", + "pco": "65535", + "pco2": "65535", + "xcen": "居中", + "ycen": "居中", + "txt": "返回", + "txt_maxl": "16", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "693", + "y": "2", + "w": "107", + "h": "46" + }, + "tm0(定时器)": { + "type": "51", + "id": "19", + "objname": "tm0", + "vscope": "私有", + "tim": "250", + "en": "1" + } + }, + "CONFIRM": { + "CONFIRM(页面)": { + "type": "121", + "id": "0", + "vscope": "私有", + "effect": "立即加载", + "up": "255", + "down": "255", + "left": "255", + "right": "255", + "sta": "单色", + "bco": "0", + "x": "0", + "y": "0", + "w": "800", + "h": "480" + }, + "title(文本)": { + "type": "116", + "id": "1", + "objname": "title", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "2047", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "确认任务", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "67", + "y": "44", + "w": "667", + "h": "62" + }, + "t0(文本)": { + "type": "116", + "id": "2", + "objname": "t0", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "2113", + "pco": "65535", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "八字绕环", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "67", + "y": "150", + "w": "667", + "h": "88" + }, + "t1(文本)": { + "type": "116", + "id": "3", + "objname": "t1", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "平面", + "key": "无", + "font": "2", + "bco": "0", + "pco": "33840", + "xcen": "居中", + "ycen": "居中", + "pw": "否", + "txt": "确认后发送任务指令", + "txt_maxl": "40", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "67", + "y": "265", + "w": "667", + "h": "53" + }, + "b0(按钮)": { + "type": "98", + "id": "4", + "objname": "b0", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "3D_Auto", + "font": "2", + "bco": "1024", + "bco2": "2016", + "pco": "65535", + "pco2": "65535", + "xcen": "居中", + "ycen": "居中", + "txt": "确认发送", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "117", + "y": "353", + "w": "233", + "h": "88" + }, + "b1(按钮)": { + "type": "98", + "id": "5", + "objname": "b1", + "vscope": "私有", + "drag": "否", + "aph": "127", + "effect": "立即加载", + "sta": "单色", + "style": "3D_Auto", + "font": "2", + "bco": "23243", + "bco2": "33840", + "pco": "65535", + "pco2": "65535", + "xcen": "居中", + "ycen": "居中", + "txt": "取消返回", + "txt_maxl": "10", + "isbr": "否", + "spax": "0", + "spay": "0", + "x": "450", + "y": "353", + "w": "233", + "h": "88" + } + } +} \ No newline at end of file diff --git a/docs/evidence/2026-10-07/tjc8048-migration/simulator-results.json b/docs/evidence/2026-10-07/tjc8048-migration/simulator-results.json new file mode 100644 index 0000000..ec7c4a3 --- /dev/null +++ b/docs/evidence/2026-10-07/tjc8048-migration/simulator-results.json @@ -0,0 +1,331 @@ +[ + { + "name": "numeric-values", + "passed": true, + "output": "71 EC 04 00 00 FF FF FF 71 7B 00 00 00 FF FF FF 71 02 00 00 00 FF FF FF" + }, + { + "name": "task-confirm-1", + "passed": true, + "output": "AA 55 01 01 0D 0A", + "method": "actual resized touch coordinates" + }, + { + "name": "task-confirm-2", + "passed": true, + "output": "AA 55 01 02 0D 0A", + "method": "actual resized touch coordinates" + }, + { + "name": "task-confirm-3", + "passed": true, + "output": "AA 55 01 03 0D 0A", + "method": "actual resized touch coordinates" + }, + { + "name": "task-confirm-4", + "passed": true, + "output": "AA 55 01 04 0D 0A", + "method": "actual resized touch coordinates" + }, + { + "name": "task-confirm-5", + "passed": true, + "output": "AA 55 01 05 0D 0A", + "method": "actual resized touch coordinates" + }, + { + "name": "task-confirm-6", + "passed": true, + "output": "AA 55 01 06 0D 0A", + "method": "actual resized touch coordinates" + }, + { + "name": "request-preserves-vcu-task", + "passed": true, + "output": "71 02 00 00 00 FF FF FF" + }, + { + "name": "cancel-no-frame", + "passed": true, + "output": "" + }, + { + "name": "cross-page-update-and-return", + "passed": true, + "output": "71 A1 04 00 00 FF FF FF 71 06 00 00 00 FF FF FF 66 00 FF FF FF" + }, + { + "name": "debug-unknown", + "passed": true, + "status_color_pixel_counts": { + "t0(文本)": [ + 513, + 0, + 0 + ], + "t1(文本)": [ + 504, + 0, + 0 + ], + "t2(文本)": [ + 513, + 0, + 0 + ], + "t3(文本)": [ + 511, + 0, + 0 + ], + "t4(文本)": [ + 499, + 0, + 0 + ], + "t5(文本)": [ + 512, + 0, + 0 + ], + "t6(文本)": [ + 512, + 0, + 0 + ], + "t7(文本)": [ + 478, + 0, + 0 + ], + "t8(文本)": [ + 496, + 0, + 0 + ], + "t9(文本)": [ + 481, + 0, + 0 + ], + "t10(文本)": [ + 480, + 0, + 0 + ], + "t11(文本)": [ + 465, + 0, + 0 + ], + "t12(文本)": [ + 477, + 0, + 0 + ], + "t13(文本)": [ + 482, + 0, + 0 + ], + "t14(文本)": [ + 478, + 0, + 0 + ], + "t15(文本)": [ + 464, + 0, + 0 + ], + "t16(文本)": [ + 474, + 0, + 0 + ] + } + }, + { + "name": "debug-normal", + "passed": true, + "status_color_pixel_counts": { + "t0(文本)": [ + 0, + 247, + 0 + ], + "t1(文本)": [ + 0, + 238, + 0 + ], + "t2(文本)": [ + 0, + 256, + 0 + ], + "t3(文本)": [ + 0, + 256, + 0 + ], + "t4(文本)": [ + 0, + 241, + 0 + ], + "t5(文本)": [ + 0, + 245, + 0 + ], + "t6(文本)": [ + 0, + 238, + 0 + ], + "t7(文本)": [ + 0, + 344, + 0 + ], + "t8(文本)": [ + 0, + 350, + 0 + ], + "t9(文本)": [ + 0, + 258, + 0 + ], + "t10(文本)": [ + 0, + 260, + 0 + ], + "t11(文本)": [ + 0, + 260, + 0 + ], + "t12(文本)": [ + 0, + 266, + 0 + ], + "t13(文本)": [ + 0, + 258, + 0 + ], + "t14(文本)": [ + 0, + 257, + 0 + ], + "t15(文本)": [ + 0, + 256, + 0 + ], + "t16(文本)": [ + 0, + 261, + 0 + ] + } + }, + { + "name": "debug-fault", + "passed": true, + "status_color_pixel_counts": { + "t0(文本)": [ + 0, + 0, + 415 + ], + "t1(文本)": [ + 0, + 0, + 391 + ], + "t2(文本)": [ + 0, + 0, + 374 + ], + "t3(文本)": [ + 0, + 0, + 375 + ], + "t4(文本)": [ + 0, + 0, + 396 + ], + "t5(文本)": [ + 0, + 0, + 391 + ], + "t6(文本)": [ + 0, + 0, + 388 + ], + "t7(文本)": [ + 0, + 0, + 412 + ], + "t8(文本)": [ + 0, + 0, + 427 + ], + "t9(文本)": [ + 0, + 0, + 404 + ], + "t10(文本)": [ + 0, + 0, + 379 + ], + "t11(文本)": [ + 0, + 0, + 373 + ], + "t12(文本)": [ + 0, + 0, + 360 + ], + "t13(文本)": [ + 0, + 0, + 413 + ], + "t14(文本)": [ + 0, + 0, + 378 + ], + "t15(文本)": [ + 0, + 0, + 374 + ], + "t16(文本)": [ + 0, + 0, + 357 + ] + } + } +] \ No newline at end of file diff --git a/docs/小屏无人状态验证报告.md b/docs/小屏无人状态验证报告.md new file mode 100644 index 0000000..c6983aa --- /dev/null +++ b/docs/小屏无人状态验证报告.md @@ -0,0 +1,15 @@ +# 480×272 小屏无人状态验证 + +2026-10-07,TJC4827X543_011,工程 AMI.HMI,接口 1.5,配套 MCU v2.7。 + +锁定状态位于 x=126、y=215、w=66、h=30;无人状态位于 x=194、y=215、w=108、h=30,使用原 16 像素字体。保留当前任务名称;AS=5 显示“有人驾驶”。CAN 0x183、UART as_state 与大屏共用同一协议,不需要单独 MCU 固件。 + +编辑器编译 0 错误、0 警告。官方模拟器的七种状态、颜色、切页刷新和任务确认保持反馈,共 9 项通过。 + +真实 PCAN CAN1 500 kbit/s → 已烧录 MCU → PA2/PA3、COM6 9600 → 官方小屏模拟器,共 16 项通过:六种有效状态、无效标志、旧版本清未知、超时及恢复、跨页最新状态、触摸任务确认反向 UART → MCU → CAN 0x300。结束时停止测试反馈,恢复未知状态。MCU 复位后再联调,消除 PCAN 长时间断开造成的总线错误状态。 + +范围为真实 MCU/CAN/UART 与官方小屏模拟器,未下载到实物小屏。MCU v2.7 已在此前完成备份、烧录和逐字节回读验证。 + +交付 [AMI.HMI](../AMI.HMI)、[AMI.tft](../output/hmi/AMI.tft)。证据位于 [small-as-status](evidence/2026-10-07/small-as-status/),包含编译日志、9 项模拟器检查、16 项硬件联调、CAN 抓帧、MCU RAM、截图及 SHA256 清单。 + +本轮再次读取 MCU Flash,16672 字节与发布 BIN 完全一致;小屏工程关闭重开后,锁定控件属性、Program.s、页面初始化和定时器脚本均与源码一致。 diff --git a/docs/无人状态显示验证报告.md b/docs/无人状态显示验证报告.md new file mode 100644 index 0000000..ed83edb --- /dev/null +++ b/docs/无人状态显示验证报告.md @@ -0,0 +1,59 @@ +# AMI 无人状态显示验证报告 + +日期:2026-10-07。固件 v2.7,800×480 屏幕接口 1.5。 + +主页面在“已锁定/已解锁”右侧增加独立无人状态。修改包含 MCU `0x183` 解码、非阻塞 UART 状态同步、当前 `AMI_TJC8048X370_011.HMI`、配套 TFT、两份 DBC、CAN 说明与发送工具。保留已有双前轮轮速接入、CAN1 心跳及换屏成果;本报告初次大屏验证时,原 480×272 `AMI.HMI` 未修改;后续小屏同步见 [小屏验证报告](小屏无人状态验证报告.md)。 + +## 需求依据与状态定义 + +只读核对用户提供的 `D:/QQ download/A11.盐城工学院野马车队ASF9.2最终版.docx`:AMI“操作界面”要求显示 AS Ready 等状态,系统 AS 状态描述包含 AS OFF、AS Ready、AS Driving、AS Finished、AS Emergency 和 Manual Driving 分支。原 ASF 未修改。 + +ASF 说明状态含义,未分配本次自定义 CAN 字节或枚举。AMI/VCU 接口约定 byte5=0..5 对应上述顺序,byte3 bit3=1 表示 AS 有效,byte7=2;byte6 保留为零。VCU 必须发送实际状态,AMI 不从任务号、锁定、EBS 或 ASSI 灯色推断。 + +标准 `0x183 / DLC 8` 示例:`02 01 01 0F 00 01 00 02` = 直线加速、已锁定、AS Ready、EBS 正常。旧版本 1 仍按原规则接受,但无人状态立即显示未知。连续超过 500 ms 无合规反馈后四项均未知;非法帧不续期。完整字节布局、兼容及枚举见 [CAN 说明](AMI_CAN_DBC说明.md#vcu-状态反馈-0x183)。 + +## 软件验证结果 + +| 检查 | 结果与证据边界 | +| --- | --- | +| Debug / Release 构建 | 均通过,Debug Flash 28,728 字节、Release Flash 16,672 字节、RAM 2,656 字节 | +| 实际 ARM 固件仿真 | 两个 ELF 均通过。每个 ELF、每路 CAN 覆盖 7 个任务 × 6 个 AS 状态 × 16 种有效标志,合计 2,688 组;并检查 UART 命令、旧版兼容、非法 DLC/版本/枚举/保留/扩展/远程/FD、超时边界、tick 回绕、其他流量不续期、恢复及周期重同步 | +| 双前轮轮速回归 | 两个 ELF 均通过原轮速解码、舍入、非法格式及独立超时检查 | +| DBC 与文档 | 两份 DBC 严格解析、共用布局、固件宏、位时序、183 条已知报文检查通过;CAN1 13 报文/53 信号,CAN2 12 报文/49 信号;原 SDC DBC 对照通过,生成文档一致性通过 | +| HMI 编译 | 当前 800×480 工程编译成功,0 错误、0 警告,TFT 8,863,680 字节 | +| 官方模拟器 | AS OFF/Ready/Driving/Finished/Emergency/Manual Driving 及未知共 7 种显示通过状态回读、颜色像素和截图检查;跨页最新状态重绘、任务确认不改写 AS 通过 | +| CAN PDF | 已重新生成,17 页;渲染检查全页版面及新增 VCU 字节表,无溢出或重叠 | + +构建及 ARM 仿真不证明物理 CAN/UART、触摸或车辆状态正确。模拟器通过不等于下载实物屏幕;首次软件交付时未烧录 MCU、未下载屏幕、未发送现场 CAN 测试帧;后续烧录和 CAN1 实测结果见下方新增验收节。 + +证据目录:[as-status](evidence/2026-10-07/as-status/),包含 [固件仿真](evidence/2026-10-07/as-status/firmware-results.json)、[轮速回归](evidence/2026-10-07/as-status/wheel-speed-regression.json)、[DBC 检查](evidence/2026-10-07/as-status/dbc-results.json)、[HMI 编译](evidence/2026-10-07/as-status/compile.log)、[模拟器记录](evidence/2026-10-07/as-status/simulator-results.json) 和 [当前产物清单](evidence/2026-10-07/as-status/manifest.json)。 + +![锁定状态右侧的 AS Ready](evidence/2026-10-07/as-status/dash-as-ready-sample.png) + +## 实物接入 + +使用 [新版 MCU BIN](../output/firmware/AMI_Controller.bin) 和 [新版屏幕 TFT](../output/hmi/AMI_TJC8048X370_011.tft),同时让 VCU 按版本 2 发送真实状态;CAN1 500 kbit/s,CAN2 250 kbit/s。实物验收分别检查原始 `0x183`、MCU 解码、USART2 输出和实际页面;停止反馈应在 500 ms 后变为未知,恢复后重现实际状态。 + +本次未提交或推送 Git;历史提交、烧录和联调报告保留原日期与版本。 + +## 2026-10-07 烧录与实际 CAN1 串口验收 + +v2.7 已通过 SWD 写入并复位。ST-LINK `37FF71064E573436188C1543`,Device ID `0x467`,128 KB Flash,读取供电 3.24 V。烧录前保存完整 131,072 字节 Flash;烧录后读取完整 128 KB,其中程序区 16,672 字节与发布 BIN 逐字节一致,SHA-256 为 `1951c63e779429d08a992d1171fc92173e4399307ff741fdc5d9b7646848855d`。 + +最初 CAN1 无心跳且进入 bus-off,用户确认遗漏板子 5 V 供电;补上 5 V 后复位,CAN1 500 kbit/s 恢复。基线捕获 31 帧 `0x301`,间隔 99.909~100.095 ms,PCAN 状态为 0。此结果不能外推为自动 bus-off 恢复测试。 + +| 验收层 | 结果 | +| --- | --- | +| 实际 CAN1 → MCU | 37 项检查通过,SWD 回读实际 RAM:AS 0..5、16 种有效标志、旧版 1 清除 AS、非法 AS/保留位/标志/版本不续期、其他 CAN 流量不延长 500 ms 有效期及恢复 | +| MCU → USART2 → COM6 | 9600 8N1;首次烧录捕获 1,479 字节,完整未知状态命令可见;硬件状态验收捕获 4,796 字节、350 条完整命令。六种 AS 值及超时未知命令含真实 `FF FF FF` 结束字节 | +| COM6 → MCU → 实际 CAN1 | 输入 `AA 55 01 05 0D 0A` 后抓到真实 `0x300` 任务 5 请求,实际任务/AS 仍由 VCU 反馈决定 | +| 实际 CAN1 → MCU → COM6 → 官方 HMI 调试器 | 16 项新增状态检查通过:六种 AS 显示、无效、旧版、超时、恢复、跨页最新状态;触摸确认经物理 UART 和 MCU 输出实际 CAN 请求 | +| 串口重连 | 初次串口中途接入出现一次 `1A` 变量名无效返回;清空日志并重新连接后,8 秒持续反馈及重同步期间无错误返回,PCAN 状态为 0 | + +显示检查采用实际 RAM、AS 区域颜色像素和截图联合验证。部分全屏截图捕获了模拟器重绘中的缺字/裁切画面,整页稳定刷新仍需实物屏幕确认;此次新增状态区域与数据链路检查通过。测试数据由 PCAN 注入,未接入真实 VCU 进行车辆状态裁决;未测试车辆执行动作。 + +**本次尚未下载或验收实物串口屏,CAN2 亦未接入测试。** 本次烧录后没有修改固件 BIN,未提交或推送 Git。 + +证据:[验收汇总](evidence/2026-10-07/as-status-flash/153558/acceptance-summary.json)、[烧录与 COM6 抓取](evidence/2026-10-07/as-status-flash/153558/flash-and-uart-results.json)、[完整 Flash 备份](evidence/2026-10-07/as-status-flash/153558/before-flash-128k.bin)、[烧录后完整回读](evidence/2026-10-07/as-status-flash/153558/flash-readback-128k.bin)、[37 项硬件检查](evidence/2026-10-07/as-status-flash/153558/hardware-results.json)、[16 项实际串口显示检查](evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-results.json)、[串口重连记录](evidence/2026-10-07/as-status-flash/153558/hmi-reconnect-panel.json)。 + +![CAN 与实际串口驱动的无人状态超时画面](evidence/2026-10-07/as-status-flash/153558/can-uart-hmi-final-unknown.png) diff --git a/docs/通讯交接文档.md b/docs/通讯交接文档.md index 9fbb12b..85b401f 100644 --- a/docs/通讯交接文档.md +++ b/docs/通讯交接文档.md @@ -1,8 +1,8 @@ # AMI 仪表通讯交接文档 -屏幕接口 1.4;MCU CAN 协议 2.4(CAN1 500K / CAN2 250K) | 2026-10-03 +当前屏幕接口 1.5;MCU CAN 协议 2.7(CAN1 500K / CAN2 250K) | 2026-10-07 -适用工程:AMI.HMI;屏幕 TJC4827X543_011,480 × 272;编辑器 USART HMI 1.68.1.3037。本文以随附的精简指令版工程为准。 +当前工程:AMI_TJC8048X370_011.HMI;屏幕 TJC8048X370_011,800 × 480;编辑器 USART HMI 1.68.1.3037。AMI.HMI 为 480 × 272 小屏工程,现已同步新增无人状态。下文 1.4 的原接口与历史测试保留;无人状态扩展见末尾 v2.7 节及 CAN DBC 说明。 v2.4 新增 VCU 标准状态反馈 `0x183 / DLC 8`,建议周期 100 ms,独立超时 500 ms。只有 VCU 反馈更新当前任务、锁定和 EBS,确认发送不会改写实际任务。字节定义、颜色及样例见 [VCU 状态反馈](AMI_CAN_DBC说明.md#vcu-状态反馈-0x183),验证见 [反馈测试报告](VCU状态反馈测试报告.md)。 @@ -134,7 +134,7 @@ Program.s 上电通过 printh 发出 00 00 00 FF FF FF 88 FF FF FF。该启动 低压电池电压放在车速上方,保留两位小数。主控若采集为 mV,应先换算为 0.01 V 整数(例如 12600 mV → 1260)。指令 dash.lvbat.val=1260 后仍追加 FF FF FF。该值为全局,切页保留,上电设计初值 0.00 V;初值和断线后的旧值不代表有效测量,也没有自动低压告警。 -数值 val 按有符号 32 位整数使用。当前 CAN 来源、单位、缩放、独立超时和有效颜色已在 [AMI_CAN_DBC说明.md](AMI_CAN_DBC说明.md) 定义。扭矩、电机与 MCU 温度由 VCU/适配节点通过自定义 0x182 提供;实际电机控制器原生协议及车速标定仍需上游定义。 +数值 val 按有符号 32 位整数使用。当前 CAN 来源、单位、缩放、独立超时和有效颜色已在 [AMI_CAN_DBC说明.md](AMI_CAN_DBC说明.md) 定义。扭矩、电机与 MCU 温度由 VCU/适配节点通过自定义 0x182 提供;实际电机控制器原生协议仍需上游定义。车速已采用最新 SDC `0x6A2 / DLC 4` 双前轮已标定轮速的平均值,整数 km/h,独立超时 500 ms 后变灰;SDC 的每圈 49 脉冲、轮周长 1414 mm 不在 AMI 重复应用。 ## 页面指令 @@ -209,3 +209,13 @@ int ami_set_debug(unsigned id, unsigned state) 旧版工程不能与本版 dN 接口混用。配套文件包括 AMI.HMI、AMI.dbc、DBC 说明、通讯交接文档.md 和 ami_debug_send.c;旧 PDF 保留为 v1.2 历史资料,其中 Markdown 为可编辑文字源,C 文件为参考发送函数。仓库中的实际位置见 README。 官方协议依据:wiki.tjc1688.com/commands/index.html;wiki.tjc1688.com/return/index.html;wiki.tjc1688.com/variables/bkcmd.html。项目自定义任务帧和 dN 编号以本文及配套工程为准。 + +## 2026-10-07 无人状态显示 v2.7 + +按 ASF 补充独立无人状态,800×480 主页面在“已锁定/已解锁”右侧显示 AS OFF、AS Ready、AS Driving、AS Finished、AS Emergency 或 Manual Driving;无效或超过 500 ms 无反馈显示灰色“无人未知”。状态来自 VCU,不从任务、锁定、EBS 或灯色推断。 + +`0x183 / DLC 8` 版本 2:byte3 bit3 为 AS 有效标志,byte5 为状态 0..5(按上面顺序),byte6=0,byte7=2;其他字段位置不变。例 `02 01 01 0F 00 01 00 02` 表示直线加速、已锁定、AS Ready、EBS 正常。保留位和枚举错误整帧拒绝、不续期。旧版本 1 仍接收原三项,但 AS 立即未知。屏内新增 `as_state=0..5`(6 未知),串口命令仍使用真实 FF FF FF 结尾;全局变量在切页后保留,每 5 秒重同步。需配套包含 as_state 的新屏幕工程;480×272 AMI.HMI 与 800×480 工程均已加入 as_state;小屏 AS=5 显示“有人驾驶”。完整定义见 CAN DBC 说明的“VCU 状态反馈 0x183”。 + +本次源码、屏幕工程和构建产物的验证以 `docs/无人状态显示验证报告.md` 为准,历史烧录和联调记录不代表本次版本已下载到实物。 + +2026-10-07:v2.7 已烧录并完整回读程序区 16,672 字节一致,保留 128 KB 烧录前备份;CAN1 500K→MCU RAM→COM6 实际链路 37 项通过,实际串口驱动官方 HMI 调试器新增状态 16 项通过,含触摸请求→UART→MCU→CAN 0x300。实物串口屏、CAN2、真实 VCU 和车辆动作未测试。详见 [无人状态验收报告](无人状态显示验证报告.md)。 diff --git a/docs/验证说明.txt b/docs/验证说明.txt index 02c6640..b31da18 100644 --- a/docs/验证说明.txt +++ b/docs/验证说明.txt @@ -1,3 +1,10 @@ +2026-10-07 小屏接口1.5:AMI.HMI 编译0错误0警告;真实CAN1/MCU/COM6/官方480×272模拟器16项验收通过;本轮MCU Flash回读16672字节一致。未烧录实物屏,详见docs/小屏无人状态验证报告.md。 +2026-10-07 后续验收:v2.7 已烧录,程序区 16672 字节完整回读一致、MCU 已复位;CAN1 500K/COM6 实物链路 37 项、物理串口驱动官方 HMI 调试器 16 项通过。实物屏幕未下载,CAN2、真实VCU/车辆未测试。证据见 docs/无人状态显示验证报告.md 的烧录验收节。下文未烧录描述是早先软件交付时的状态。 +2026-10-07 当前固件v2.7、800×480屏幕接口1.5:锁定右侧新增独立无人状态,0x183版本2使用byte5=AS状态0..5、byte3 bit3=有效、byte7=2;旧版本1显示AS未知。500ms超时、双CAN ARM仿真、轮速回归、DBC 183条检查、HMI编译与7种显示模拟器均通过。CAN1 13报文/53信号,CAN2 12报文/49信号。尚未烧录MCU或下载实物屏幕,详见docs/无人状态显示验证报告.md。 +以下记录均按原日期与版本保留,不表示当前v2.7已经烧录或实物联调。 +2026-10-06:v2.6 已通过 SWD 烧录至0x08000000,CubeProgrammer校验成功,16632字节Flash全量回读与发布BIN完全一致,MCU已复位。烧录前保留完整128KB Flash备份,证据见docs/evidence/2026-10-06/wheel-speed-flash;真实SDC/CAN/物理屏幕轮速联调仍未完成。 +2026-10-05 当前 MCU CAN 协议 v2.6:按 SDC master 7bc2d9f1eaaf19814957037bd097cd879cbf4cbf 接入 0x6A2/DLC4 双前轮 mm/s;双轮平均后换算整数 km/h,独立 500ms 超时变灰,旧 DLC8 拒绝。当前软件/编译验证和实物验证边界见 docs/SDC轮速接入验证报告.md。 +当前 CAN1 DBC 13 条报文/51 个信号;CAN2 DBC 12 条报文/47 个信号,CAN1 独有 0x301 心跳。以下 v2.4 及此前烧录/联调结论均为历史记录。 当前屏幕接口1.4、MCU CAN协议2.4:VCU 0x183反馈当前任务、锁定及EBS显示,绿/红两色;无效或超过500ms无反馈为灰色未知。按钮确认仅产生0x300请求,不能修改实际任务。详情及当前链路证据见docs/VCU状态反馈测试报告.md。 每份当前DBC包含12条报文、49个信号,两路布局相同;以下1.3、v2.3及更早内容为历史记录。 屏幕接口1.3按用户纠正:PD1/Safe_S为左电机互锁,d5移到顶行第二格;删除BSPD/TSMS,编译0错误0警告。页面验证见docs/DEBUG页面修正测试报告.md。 diff --git a/firmware/Core/Inc/ami_protocol.h b/firmware/Core/Inc/ami_protocol.h index c5719c4..fb76455 100644 --- a/firmware/Core/Inc/ami_protocol.h +++ b/firmware/Core/Inc/ami_protocol.h @@ -6,7 +6,7 @@ #define AMI_CAN_ID_VCU_STATUS 0x183U #define AMI_CAN_ID_SDC_HEARTBEAT 0x6A0U #define AMI_CAN_ID_SDC_ADC 0x6A1U -#define AMI_CAN_ID_SDC_FREQUENCY 0x6A2U +#define AMI_CAN_ID_SDC_WHEEL_SPEED 0x6A2U #define AMI_CAN_ID_SDC_DAC_ACK 0x6A4U #define AMI_CAN_ID_SDC_GPIO 0x6A6U #define AMI_CAN_ID_BMS_STATUS 0x140U @@ -19,6 +19,7 @@ #define AMI_HEARTBEAT_PERIOD_MS 100U #define AMI_CAN_DATA_TIMEOUT_MS 500U +#define AMI_WHEEL_SPEED_TIMEOUT_MS 500U #define AMI_ADC_TIMEOUT_MS 1500U #define AMI_BMS_TIMEOUT_MS 2000U #define AMI_DRIVETRAIN_TIMEOUT_MS 2000U diff --git a/firmware/Core/Src/ami_app.c b/firmware/Core/Src/ami_app.c index d102478..307b261 100644 --- a/firmware/Core/Src/ami_app.c +++ b/firmware/Core/Src/ami_app.c @@ -38,18 +38,22 @@ static volatile AmiDisplayState display_state; static volatile uint32_t display_dirty; static volatile uint32_t dash_last_rx_ms; static volatile uint32_t debug_last_rx_ms; +static volatile uint32_t wheel_speed_last_rx_ms; +static volatile bool wheel_speed_received; 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; static volatile uint32_t vcu_status_last_rx_ms; /* Task 7 = unknown; lock/EBS 0 = unknown, 1 = green, 2 = red. */ -static volatile uint8_t vcu_display_state[3] = {7U, 0U, 0U}; +/* AS 0..5 = OFF/Ready/Driving/Finished/Emergency/Manual; 6 = unknown. */ +static volatile uint8_t vcu_display_state[4] = {7U, 0U, 0U, 6U}; static volatile uint8_t vcu_display_dirty; static volatile bool vcu_status_received; /* 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]; +/* SDC 7bc2d9f: left-front PA0 and right-front PA6, already calibrated mm/s. */ +static volatile uint16_t sdc_wheel_speed_mm_s[2]; static volatile uint16_t sdc_gpio_state; static volatile uint16_t sdc_gpio_changed; static volatile uint32_t sdc_gpio_timestamp_ms; @@ -281,18 +285,20 @@ static bool DecodeCan(uint32_t identifier, uint32_t id_type, if (identifier == AMI_CAN_ID_VCU_STATUS) { /* Custom VCU feedback; requests never update these actual states. */ - if ((length != 8U) || (data[7] != 1U) || (data[0] > 6U) || - (data[1] > 1U) || (data[2] > 1U) || ((data[3] & 0xF8U) != 0U) || - (data[5] != 0U) || (data[6] != 0U)) + if ((length != 8U) || (data[0] > 6U) || + (data[1] > 1U) || (data[2] > 1U) || (data[6] != 0U) || + !(((data[7] == 1U) && ((data[3] & 0xF8U) == 0U) && (data[5] == 0U)) || + ((data[7] == 2U) && ((data[3] & 0xF0U) == 0U) && (data[5] <= 5U)))) { return false; } - uint8_t states[3] = { + uint8_t states[4] = { (data[3] & 1U) ? data[0] : 7U, (data[3] & 2U) ? (data[1] ? 1U : 2U) : 0U, - (data[3] & 4U) ? (data[2] ? 1U : 2U) : 0U + (data[3] & 4U) ? (data[2] ? 1U : 2U) : 0U, + ((data[7] == 2U) && (data[3] & 8U)) ? data[5] : 6U }; - for (uint32_t i = 0U; i < 3U; ++i) + for (uint32_t i = 0U; i < 4U; ++i) { if (vcu_display_state[i] != states[i]) { @@ -340,13 +346,19 @@ static bool DecodeCan(uint32_t identifier, uint32_t id_type, debug_last_rx_ms = now; return true; } - if ((identifier == AMI_CAN_ID_SDC_FREQUENCY) && (length == 8U)) + if ((identifier == AMI_CAN_ID_SDC_WHEEL_SPEED) && (length == 4U)) { - for (uint32_t i = 0U; i < 4U; ++i) - { - sdc_frequency_hz[i] = (uint16_t)ReadLeU16(&data[i * 2U]); - } - /* Hz is not km/h; wheel circumference and pulses/rev are undefined. */ + uint32_t left = ReadLeU16(data); + uint32_t right = ReadLeU16(&data[2]); + sdc_wheel_speed_mm_s[0] = (uint16_t)left; + sdc_wheel_speed_mm_s[1] = (uint16_t)right; + /* Mean front-wheel mm/s * 0.0036 -> whole km/h, rounded once. + SDC already applies 49 pulses/rev and 1414 mm circumference. + Zero and 0xFFFF are valid values; the source defines no sentinel. */ + SetDashValue(0U, (int32_t)(((left + right) * 9U + 2500U) / 5000U)); + wheel_speed_last_rx_ms = now; + wheel_speed_received = true; + dash_last_rx_ms = now; return true; } if ((identifier == AMI_CAN_ID_SDC_GPIO) && (length == 8U)) @@ -602,13 +614,20 @@ static void UpdateTimeoutsAndLeds(void) __disable_irq(); /* Sample time after excluding RX IRQs: a newer timestamp must not underflow. */ now = HAL_GetTick(); + if (wheel_speed_received && + ((now - wheel_speed_last_rx_ms) > AMI_WHEEL_SPEED_TIMEOUT_MS)) + { + SetDashValid(0U, false); + wheel_speed_received = false; + } if (vcu_status_received && ((now - vcu_status_last_rx_ms) > AMI_VCU_STATUS_TIMEOUT_MS)) { vcu_display_state[0] = 7U; vcu_display_state[1] = 0U; vcu_display_state[2] = 0U; - vcu_display_dirty |= 7U; + vcu_display_state[3] = 6U; + vcu_display_dirty |= 15U; vcu_status_received = false; } if ((adc_last_rx_ms == 0U) || ((now - adc_last_rx_ms) > AMI_ADC_TIMEOUT_MS)) @@ -654,8 +673,8 @@ static void UpdateTimeoutsAndLeds(void) static void SendNextDirtyValue(void) { - static const char *const vcu_prefix[3] = { - "current_task=", "lock_state=", "ebs_state=" + static const char *const vcu_prefix[4] = { + "current_task=", "lock_state=", "ebs_state=", "as_state=" }; static const char *const dash_prefix[8] = { "dash.speed.val=", "dash.ts.val=", "dash.mct.val=", "dash.dl.val=", @@ -689,14 +708,14 @@ static void SendNextDirtyValue(void) } /* Fair rotation prevents rapid source updates from starving other fields. */ - for (uint32_t offset = 0U; offset < 35U; ++offset) + for (uint32_t offset = 0U; offset < 36U; ++offset) { - index = (cursor + offset) % 35U; + index = (cursor + offset) % 36U; if ((index < 32U) ? ((dirty & (1UL << index)) != 0U) : ((vcu_dirty & (1U << (index - 32U))) != 0U)) { break; } } bit = 1UL << ((index < 32U) ? index : index - 32U); - cursor = (index + 1U) % 35U; + cursor = (index + 1U) % 36U; __disable_irq(); if (index >= 32U) @@ -750,7 +769,7 @@ void AMI_App_Init(void) HAL_GPIO_WritePin(STATUS_LED1_GPIO_Port, STATUS_LED1_Pin, LedInactiveLevel()); HAL_GPIO_WritePin(STATUS_LED2_GPIO_Port, STATUS_LED2_Pin, AMI_LED_ACTIVE_LEVEL); display_dirty = DIRTY_DASH_ALL | DIRTY_DEBUG_ALL | DIRTY_COLOR_ALL; - vcu_display_dirty = 7U; + vcu_display_dirty = 15U; ConfigureCan(); RestartScreenRx(); } @@ -768,7 +787,7 @@ void AMI_App_Service(void) { __disable_irq(); display_dirty |= DIRTY_DASH_ALL | DIRTY_DEBUG_ALL | DIRTY_COLOR_ALL; - vcu_display_dirty |= 7U; + vcu_display_dirty |= 15U; __enable_irq(); last_screen_sync_ms = now; } diff --git a/firmware/README.md b/firmware/README.md index 235af7e..008ed8c 100644 --- a/firmware/README.md +++ b/firmware/README.md @@ -21,12 +21,18 @@ LED 默认按高电平点亮。如果硬件是低电平点亮,将 `Core/Inc/am CAN1 为 500 kbit/s、CAN2 为 250 kbit/s。FDCAN 时钟为 64 MHz,两路 ClockDivider=1,NominalPrescaler 分别为 8 / 16;TimeSeg1=13、TimeSeg2=2、SJW=1,采样点均为 87.5%。CAN1 使用根目录 `AMI.dbc`,CAN2 使用 `AMI_CAN2_250k.dbc`。MCU 不在两路之间转发原始 CAN 报文。 +当前版本 v2.7(2026-10-07)在 v2.6 双前轮轮速基础上增加独立无人状态反馈。v2.6(2026-10-05)接入 SDC 最新双前轮轮速 `0x6A2 / DLC 4`;本次 v2.7 已于 2026-10-07 烧录,CAN1/COM6 验收见文末记录,历史轮速记录仍不证明本次已连接真实 SDC 节点。 + +2026-10-06:v2.6 已写入 `0x08000000`,CubeProgrammer 校验成功,16632 字节 Flash 全量回读与发布 BIN 一致,MCU 已复位。烧录前保存完整 128 KB Flash 备份;真实 SDC/物理屏幕轮速联调尚未完成,见 [轮速验证报告](../docs/SDC轮速接入验证报告.md#2026-10-06-烧录与回读)。 + ## 数据路径 - 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。 - v2.4 标准 0x183 / DLC 8:VCU 实际任务、锁定、EBS 显示反馈,各有有效标志,独立超时 500 ms;错误帧不刷新超时。过滤器 3 使用双 ID 接收 0x182/0x183,两路共用解码。UART 更新 current_task/lock_state/ebs_state,任务请求不改写实际状态;屏幕接口需配套 1.4。 - 标准 0x6A6 的 PD0~PD14 按用户表顺序映射为 d0,d5,d2,d6,d7,d1,d3,d4,d8..d14;全部低电平正常、高电平故障,d15 保持未知。有效心跳维持已有状态;SDC 心跳/GPIO 均超过 500 ms 未接收后置未知,恢复需新 GPIO 采样。 +- SDC `0x6A2 / DLC 4`:左前 PA0、右前 PA6 小端 uint16 mm/s,20 ms;平均轮速换算整数 km/h,`((left+right)*9+2500)/5000`。独立超时 500 ms 保留值变灰,旧 DLC 8 拒绝。 +- SDC GPIO 当前每 1000 ms 周期上报,心跳仍维持已有状态。 - SDC ADC 为低压电池电压;BMS 总压、偏置电流和最高有效实际温度按源协议解码。旧 0x180 / 0x181 / 0x280 不再接收。 - 主循环通过 USART2 TX DMA 一次发送一条完整 TJC 指令,末尾为三个真实字节 `FF FF FF`。 - 仅变化后的数值排队,字段轮转和 DMA 合并最新值,避免刷新饥饿;白色为有效数值,灰色为未知/失效,ADC 和 BMS 各自计时。 @@ -62,4 +68,14 @@ 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)。 -当前 v2.4 BIN 已烧录并完整回读 16428 字节一致,RAM 2640 字节,详见 [VCU 状态反馈报告](../docs/VCU状态反馈测试报告.md)。此前 v2.3 BIN 已归档,十五路映射历史实测见 [映射报告](../docs/DEBUG十五路CAN映射测试报告.md)。v2.2 的 0x182 CAN2 250K 历史实测见 [显示 CAN 测试报告](../docs/AMI自定义显示CAN测试报告.md)。v2.1 双 CAN 分别联调及 v2.0 历史证据保留;SDC 仍为 500K。 +历史 v2.4 BIN 已烧录并完整回读 16428 字节一致,RAM 2640 字节,详见 [VCU 状态反馈报告](../docs/VCU状态反馈测试报告.md)。此前 v2.3 BIN 已归档,十五路映射历史实测见 [映射报告](../docs/DEBUG十五路CAN映射测试报告.md)。v2.2 的 0x182 CAN2 250K 历史实测见 [显示 CAN 测试报告](../docs/AMI自定义显示CAN测试报告.md)。v2.1 双 CAN 分别联调及 v2.0 历史证据保留;SDC 仍为 500K。 + +## 2026-10-07 无人状态显示 v2.7 + +按 ASF 补充独立无人状态,800×480 主页面在“已锁定/已解锁”右侧显示 AS OFF、AS Ready、AS Driving、AS Finished、AS Emergency 或 Manual Driving;无效或超过 500 ms 无反馈显示灰色“无人未知”。状态来自 VCU,不从任务、锁定、EBS 或灯色推断。 + +`0x183 / DLC 8` 版本 2:byte3 bit3 为 AS 有效标志,byte5 为状态 0..5(按上面顺序),byte6=0,byte7=2;其他字段位置不变。例 `02 01 01 0F 00 01 00 02` 表示直线加速、已锁定、AS Ready、EBS 正常。保留位和枚举错误整帧拒绝、不续期。旧版本 1 仍接收原三项,但 AS 立即未知。屏内新增 `as_state=0..5`(6 未知),串口命令仍使用真实 FF FF FF 结尾;全局变量在切页后保留,每 5 秒重同步。需配套包含 as_state 的新屏幕工程;480×272 AMI.HMI 与 800×480 工程均已加入 as_state;小屏 AS=5 显示“有人驾驶”。完整定义见 CAN DBC 说明的“VCU 状态反馈 0x183”。 + +本次源码、屏幕工程和构建产物的验证以 `docs/无人状态显示验证报告.md` 为准,历史烧录和联调记录不代表本次版本已下载到实物。 + +2026-10-07:v2.7 已烧录并完整回读程序区 16,672 字节一致,保留 128 KB 烧录前备份;CAN1 500K→MCU RAM→COM6 实际链路 37 项通过,实际串口驱动官方 HMI 调试器新增状态 16 项通过,含触摸请求→UART→MCU→CAN 0x300。实物串口屏、CAN2、真实 VCU 和车辆动作未测试。详见 [无人状态验收报告](../docs/无人状态显示验证报告.md)。 diff --git a/output/firmware/AMI_Controller.bin b/output/firmware/AMI_Controller.bin index 32b0db5..546a2c3 100644 Binary files a/output/firmware/AMI_Controller.bin and b/output/firmware/AMI_Controller.bin differ diff --git a/output/firmware/AMI_Controller_v2.5_500k_250k.bin b/output/firmware/AMI_Controller_v2.5_500k_250k.bin new file mode 100644 index 0000000..32b0db5 Binary files /dev/null and b/output/firmware/AMI_Controller_v2.5_500k_250k.bin differ diff --git a/output/hmi/AMI.tft b/output/hmi/AMI.tft new file mode 100644 index 0000000..c86052e Binary files /dev/null and b/output/hmi/AMI.tft differ diff --git a/output/hmi/AMI_TJC8048X370_011.tft b/output/hmi/AMI_TJC8048X370_011.tft new file mode 100644 index 0000000..b567110 Binary files /dev/null and b/output/hmi/AMI_TJC8048X370_011.tft differ diff --git a/output/hmi/fonts/AMI24.zi b/output/hmi/fonts/AMI24.zi new file mode 100644 index 0000000..84db077 Binary files /dev/null and b/output/hmi/fonts/AMI24.zi differ diff --git a/output/hmi/fonts/AMI32.zi b/output/hmi/fonts/AMI32.zi new file mode 100644 index 0000000..cdac52b Binary files /dev/null and b/output/hmi/fonts/AMI32.zi differ diff --git a/output/hmi/fonts/AMI96.zi b/output/hmi/fonts/AMI96.zi new file mode 100644 index 0000000..f35a23f Binary files /dev/null and b/output/hmi/fonts/AMI96.zi differ diff --git a/output/pdf/AMI_CAN报文说明.pdf b/output/pdf/AMI_CAN报文说明.pdf index ebf7b39..571d350 100644 Binary files a/output/pdf/AMI_CAN报文说明.pdf and b/output/pdf/AMI_CAN报文说明.pdf differ diff --git a/scripts/export_can_pdf.py b/scripts/export_can_pdf.py index 6fc1458..183ff5e 100644 --- a/scripts/export_can_pdf.py +++ b/scripts/export_can_pdf.py @@ -39,7 +39,8 @@ def export(font_path): page_width, page_height = landscape(A4) width = page_width - 80 body = ParagraphStyle('Body', fontName='AMIChinese', fontSize=9.3, - leading=15, spaceAfter=8, wordWrap='CJK', alignment=TA_LEFT) + leading=14, spaceAfter=6, wordWrap='CJK', alignment=TA_LEFT, + allowWidows=0, allowOrphans=0) heading = ParagraphStyle('Heading', parent=body, fontSize=16, leading=23, textColor=colors.HexColor('#12485E'), spaceBefore=3, spaceAfter=12, keepWithNext=True) @@ -127,7 +128,7 @@ def export(font_path): canvas.line(40, 31, page_width-40, 31) canvas.setFont('AMIChinese', 8) canvas.setFillColor(colors.HexColor('#506775')) - canvas.drawString(40, 19, 'AMI-2.5 | 2026-10-04 | CAN1 500K / CAN2 250K') + canvas.drawString(40, 19, 'AMI-2.7 | 2026-10-07 | CAN1 500K / CAN2 250K') canvas.drawRightString(page_width-40, 19, f'{doc.page}') canvas.restoreState() @@ -136,7 +137,7 @@ def export(font_path): leftMargin=40, rightMargin=40, topMargin=36, bottomMargin=44, title='AMI CAN 报文说明', author='AMI / YMR', - subject='AMI CAN DBC v2.5: CAN1 500K / CAN2 250K') + subject='AMI CAN DBC v2.7: CAN1 500K / CAN2 250K') document.build(story, onFirstPage=footer, onLaterPages=footer) print(OUTPUT) diff --git a/scripts/export_dbc_docs.py b/scripts/export_dbc_docs.py index 740bc97..7449f77 100644 --- a/scripts/export_dbc_docs.py +++ b/scripts/export_dbc_docs.py @@ -30,12 +30,12 @@ def can2_dbc_text(): PURPOSE = { 0x301: 'AMI -> VCU(仅 CAN1):版本、序号、运行时间', - 0x183: 'VCU -> AMI:实际当前任务、锁定状态、EBS 状态', + 0x183: 'VCU -> AMI:实际当前任务、锁定状态、无人状态、EBS 状态', 0x182: 'VCU / 测试器 -> AMI:扭矩千分、电机温度、MCU 温度', 0x300: 'AMI -> VCU:用户确认后的任务选择请求', 0x6A0: 'SDC -> AMI:板标识、版本、序号、上电时间', 0x6A1: 'SDC -> AMI:低压电池电压,精确 DLC=2', - 0x6A2: 'SDC -> AMI:PA0 / PA2 / PA6 / PB14 原始频率', + 0x6A2: 'SDC -> AMI:左前 PA0 / 右前 PA6 已标定轮速', 0x6A4: 'SDC -> AMI:DAC 设置应答,识别但不显示', 0x6A6: 'SDC -> AMI:PD0..PD14 原始电平和变化掩码', 0x140: 'BMS -> AMI:高压总电压、带偏置的总电流', @@ -67,9 +67,9 @@ def render(): '本 DBC 包含 AMI 发送的 `0x300` 任务请求和 `0x301` 周期心跳,以及 AMI 当前识别的 SDC / BMS 和自定义显示输入。' 'SDC `0x6A3` DAC 控制、`0x6A5` ASSI 控制、BMS 其他电芯/故障字段不属于此接口子集。' '`0x182` 新增扭矩千分、电机温度和电机控制器 MCU 温度的仪表显示输入;' - '发送者负责转换实际电机控制器协议。`0x183` 为新增 VCU 状态反馈,需 VCU 按此自定义接口发送;未定义标定后的车速。' + '发送者负责转换实际电机控制器协议。`0x183` 为新增 VCU 状态反馈,需 VCU 按此自定义接口发送;车速取 SDC 双前轮轮速平均值。' '旧 `0x180 / 0x181 / 0x280` 输入已停用。', '', - 'SDC 字段依据 `SDC_ACQ_DAC.dbc` VERSION 1.1,保持其信号名、位布局、缩放和单位;' + 'SDC 字段依据 `SDC_ACQ_DAC.dbc` VERSION 1.1,核对远端 master 提交 `7bc2d9f1eaaf19814957037bd097cd879cbf4cbf`(2026-10-05),保持其信号名、位布局、缩放和单位;' '仅将输入接收节点设为 AMI。BMS 字段依据 ' '[BmsMonitor-CANTest](https://git.acetaffy.ltd/acetaffy/BmsMonitor-CANTest) ' '提交 `e65c95203d1689df05343775982d7e85bd782646` 的 `BmsProtocolParser.cs`。', '', @@ -81,7 +81,7 @@ def render(): '| CAN ID | 类型 | DLC | 报文名 | 方向和作用 | 周期 / 触发 |', '| --- | --- | --- | --- | --- | --- |', ] - triggers = {0x300:'确认任务触发',0x6A4:'DAC 设置后应答',0x6A6:'启动 / 电平变化'} + triggers = {0x300:'确认任务触发',0x6A4:'DAC 设置后应答'} for m in db.messages: cycle = f'{m.cycle_time} ms' if m.cycle_time else triggers.get(m.frame_id, '源协议未指定') lines.append(f'| `0x{m.frame_id:X}` | {"扩展" if m.is_extended_frame else "标准"} | ' @@ -90,7 +90,7 @@ def render(): '', '扩展帧在 DBC 的 `BO_` 十进制 ID 中设置 bit31:' '`0x186040F3 -> 2556444915`,`0x186140F3 -> 2556510451`。' 'CAN 工具中使用实际 29 位仲裁 ID 并选择扩展帧;bit31 不是总线上发送的仲裁 ID。', '', - '`GenMsgCycleTime` 填写已确认的 SDC 周期 100 / 500 / 20 ms,以及 `0x182`、`0x183` 和 `0x301` 的约定周期 100 ms。' + '`GenMsgCycleTime` 填写已确认的 SDC 周期 100 / 500 / 20 / 1000 ms,以及 `0x182`、`0x183` 和 `0x301` 的约定周期 100 ms。' '其余帧未填写周期,默认 0 表示未指定,不据此推断 BMS 周期。', '', '## 信号布局', '', 'Start 为 DBC 起始位,位号从 0 开始。Intel `@1` 从最低有效位起算;' @@ -112,6 +112,17 @@ def render(): lines += ['', ';'.join(choices) + '。'] lines += [''] lines += [ + '## SDC 轮速与车速显示 0x6A2', '', + '2026-10-05 的 SDC master 将旧四路 Hz 改为双前轮已标定轮速:标准 Classic CAN 数据帧,DLC 必须为 4,每 20 ms 一帧。' + '字节 0..1 为左前 PA0,字节 2..3 为右前 PA6,均为小端 uint16 mm/s(DBC 0.001 m/s)。' + 'SDC 已使用每圈 49 脉冲、轮周长 1414 mm,AMI 不再次标定。', '', + 'AMI 用双前轮平均轮速作为仪表车速,转换为 km/h 后一次四舍五入:' + '`dash.speed.val=((left_raw+right_raw)*9+2500)/5000`,全部采用 uint32 整数运算。' + '有效时白色;超过 500 ms 没有合规轮速帧时保留历史值并变灰;新帧自动恢复。' + '其他 SDC 心跳、GPIO、BMS 或 VCU 流量不延长车速有效期。旧 DLC 8、扩展、远程或 FD 帧拒绝。', '', + '该源未提供每轮有效标志,0 为有效停止读数,65535 为有效饱和值;不能据此判断传感器健康。' + 'SDC 超过 1 秒没有边沿会把对应轮速归零;AMI 仍会把持续收到的零作为有效数值。' + '平均轮速不是 VCU 融合车速,单轮丢脉冲或打滑会影响显示。接收长度变更与旧固件不兼容,需配套 SDC 最新版本。', '', '## 自定义动力显示输入 0x182', '', '标准数据帧,DLC 必须为 8;CAN1 500K 或 CAN2 250K 均可接收,建议每 100 ms 发送。' '这是一条 AMI 仪表显示设置接口;扭矩千分以发送者定义的基准扭矩归一化,500 表示 500‰。' @@ -136,44 +147,55 @@ def render(): '```', '', '## VCU 状态反馈 0x183', '', '新增自定义标准数据帧,DLC 必须为 8,建议周期 100 ms;CAN1 500K 与 CAN2 250K 共用布局。' - '只有该帧更新当前任务、锁定、EBS 主页面显示。AMI 发出任务请求后保留 VCU 上次反馈,等待新的实际状态。', '', + 'v2.7 扩展此帧为版本 2,只有该帧更新当前任务、锁定、无人状态和 EBS 主页面显示。AMI 发出任务请求后保留 VCU 上次反馈,等待新的实际状态。', '', '| 字节 | 字段 | 编码与规则 |', '| --- | --- | --- |', '| 0 | 当前任务 | 0 无;1 八字绕环;2 直线加速;3 高速循迹;4 车检测试;5 EBS 测试;6 手动驾驶 |', '| 1 | 锁定 | 0 已解锁(红);1 已锁定(绿) |', '| 2 | EBS 正常 | 0 故障(红底);1 正常(绿底) |', - '| 3 | 有效标志 | bit0 当前任务,bit1 锁定,bit2 EBS;1 有效,0 未知;bit3..7 为 0 |', + '| 3 | 有效标志 | bit0 当前任务,bit1 锁定,bit2 EBS,bit3 无人状态;1 有效,0 未知;bit4..7 为 0 |', '| 4 | 反馈计数 | 0..255,供观察;不去重,不作为请求 ACK |', - '| 5..6 | 保留 | 必须为 0 |', - '| 7 | 帧版本 | 固定 1 |', '', - '例:`02 01 01 07 00 00 00 01` 表示当前直线加速、已锁定、EBS 正常。' - '`00 00 00 07 01 00 00 01` 表示无任务、已解锁、EBS 故障。任务 1..6 为绿字,0 无任务为红字。' - '各有效标志为 0 时,对应项立即灰色未知;连续超过 500 ms 无合规帧后三项均未知,其他 CAN 流量不能续期。' + '| 5 | 无人状态 | 0 AS OFF;1 AS Ready;2 AS Driving;3 AS Finished;4 AS Emergency;5 Manual Driving |', + '| 6 | 保留 | 必须为 0 |', + '| 7 | 帧版本 | 固定 2;旧版本 1 兼容规则见下文 |', '', + '例:`02 01 01 0F 00 01 00 02` 表示当前直线加速、已锁定、AS Ready、EBS 正常。' + '`00 00 00 0F 01 00 00 02` 表示无任务、已解锁、AS OFF、EBS 故障。任务 1..6 为绿字,0 无任务为红字。' + '各有效标志为 0 时,对应项立即灰色未知;连续超过 500 ms 无合规帧后四项均未知,其他 CAN 流量不能续期。' '错误 DLC、版本、枚举值、保留位或扩展/远程/FD 格式整帧拒绝,不改变状态、不续期。' '该反馈只驱动显示,EBS 安全动作及车辆任务裁决由 VCU 实现。', '', + '### 无人状态来源与兼容', '', + '状态语义依据用户提供 ASF 的 AMI 操作界面及 AS 状态描述。ASF 没有分配本帧的数值编码,' + '上表 0..5 是 AMI 与 VCU 的自定义约定,VCU 需显式实现。Manual Driving 用于显示 ASF 的有人驾驶分支,不能由任务 6 自动推断。', '', + '主页面在已锁定/已解锁右侧显示独立状态:AS OFF 白色,AS Ready 黄色,AS Driving 黄色,' + 'AS Finished 蓝色,AS Emergency 红色,Manual Driving 绿色;未知灰色。文字不闪烁,颜色为仪表约定,不代替 ASSI 灯控制。', '', + '旧版本 1(byte7=01)仍接受原三项,要求 byte3 bit3..7=0、byte5=0、byte6=0,' + '每次收到后无人状态立即置未知;不能保留上一条版本 2 的 AS 状态。旧 MCU 不能识别版本 2;' + '新增状态需配套 v2.7 MCU 和包含 as_state 的屏幕工程。800×480 与 480×272 工程均已更新;小屏 AS=5 显示“有人驾驶”。任务、锁定、EBS 与 AS 独立反馈,AMI 不推断安全状态。', '', + '发送工具默认版本 2;指定 --as-state 时默认有效标志 15,未指定时为 7(AS 未知)。' + '--valid 可单独清除各字段有效位;兼容预览可用 --version 1,不能同时指定 --as-state。', '', '### 当前任务发送对照', '', - '下表第 1、2 字节均为 01,只用于展示已锁定、EBS 正常;VCU 必须填写实际状态。' - '每条合规帧同时更新三项及其有效性,不能只改任务有效位而期望另外两项继续保留。', '', + '下表第 1、2 字节均为 01,并且 byte5=01,只用于展示已锁定、AS Ready、EBS 正常;VCU 必须填写实际状态。' + '每条合规帧同时更新四项及其有效性,不能只改任务有效位而期望其他项继续保留。', '', '| 任务号 | 当前任务 | 标准 0x183 / DLC 8 数据 |', '| --- | --- | --- |', - '| 0 | 无(红) | `00 01 01 07 00 00 00 01` |', - '| 1 | 八字绕环 | `01 01 01 07 00 00 00 01` |', - '| 2 | 直线加速 | `02 01 01 07 00 00 00 01` |', - '| 3 | 高速循迹 | `03 01 01 07 00 00 00 01` |', - '| 4 | 车检测试 | `04 01 01 07 00 00 00 01` |', - '| 5 | EBS 测试 | `05 01 01 07 00 00 00 01` |', - '| 6 | 手动驾驶 | `06 01 01 07 00 00 00 01` |', '', - '任务未知通过 byte3 的 bit0=0 编码。例如 `00 01 01 06 00 00 00 01`' - '显示任务未知、已锁定、EBS 正常;不要发送任务号 7,7 是屏内未知状态而不是 CAN 枚举。' - '任务号、锁定、EBS 的数值范围始终校验,有效标志为 0 时也不能发送越界值。', '', + '| 0 | 无(红) | `00 01 01 0F 00 01 00 02` |', + '| 1 | 八字绕环 | `01 01 01 0F 00 01 00 02` |', + '| 2 | 直线加速 | `02 01 01 0F 00 01 00 02` |', + '| 3 | 高速循迹 | `03 01 01 0F 00 01 00 02` |', + '| 4 | 车检测试 | `04 01 01 0F 00 01 00 02` |', + '| 5 | EBS 测试 | `05 01 01 0F 00 01 00 02` |', + '| 6 | 手动驾驶 | `06 01 01 0F 00 01 00 02` |', '', + '任务未知通过 byte3 的 bit0=0 编码。例如 `00 01 01 0E 00 01 00 02`' + '显示任务未知、已锁定、AS Ready、EBS 正常;不要发送任务号 7,7 是屏内未知状态而不是 CAN 枚举。' + '任务号、锁定、EBS、无人状态的数值范围始终校验,有效标志为 0 时也不能发送越界值。', '', '发送顺序:AMI 确认按钮 -> UART 任务帧 -> MCU CAN `0x300` 请求 -> VCU 裁决 -> ' 'VCU 周期 CAN `0x183` 实际状态 -> AMI 显示。确认发送后可继续显示此前实际任务,' '直到 VCU 更新或反馈超时。', '', '发送工具预览和实发示例:', '', '```powershell', - 'python scripts/send_vcu_status_can.py --task 2 --locked 1 --ebs-normal 1 --dry-run', - 'python scripts/send_vcu_status_can.py --interface pcan --channel PCAN_USBBUS1 --bitrate 500000 --task 2 --locked 1 --ebs-normal 1 --duration 10', + 'python scripts/send_vcu_status_can.py --task 2 --locked 1 --ebs-normal 1 --as-state 1 --dry-run', + 'python scripts/send_vcu_status_can.py --interface pcan --channel PCAN_USBBUS1 --bitrate 500000 --task 2 --locked 1 --ebs-normal 1 --as-state 1 --duration 10', '# CAN2 改为 --bitrate 250000;Windows 适配器需要时添加 --dll-dir 指定 DLL 目录', '```', '', '屏内全局变量:`current_task=0..6`(7 未知)、`lock_state=0/1/2`、`ebs_state=0/1/2`' - '(0 未知、1 绿、2 红)。MCU 更新这些变量,dash 后初始化和 100 ms 定时器更新文案、颜色和任务按钮;切页保留反馈。', '', + '(0 未知、1 绿、2 红);`as_state=0..5`,6 未知。MCU 更新这些变量,dash 后初始化和 100 ms 定时器更新文案、颜色和任务按钮;切页保留反馈。', '', '## AMI 任务请求语义', '', '| Task_ID | 任务 |', '| --- | --- |', '| 1 | 八字绕环 |', '| 2 | 直线加速 |', '| 3 | 高速循迹 |', @@ -188,6 +210,7 @@ def render(): '当前实际任务由 `0x183` 反馈,不按请求立即显示;未定义逐请求 ACK 或运行完成报文,也不把任务号换成 ASSI 灯状态。', '', '## 显示缩放与失效规则', '', '| 显示项 | 输入和显示规则 | 失效条件 |', '| --- | --- | --- |', + '| 车速 | `0x6A2 / DLC 4` 双前轮 uint16 mm/s 平均,`((左+右)*9+2500)/5000`,整数 km/h | 500 ms 无有效轮速帧;保留数字变灰 |', '| 低压电池 | `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 状态 |', @@ -205,17 +228,17 @@ def render(): '全部低电平正常、高电平故障,d15 无来源保持未知。心跳维持已有采样,' '用户最新纠正 PD1 / Safe_S 为左电机互锁(d5),屏幕已删除 BSPD/TSMS。' '心跳和 GPIO 均停止超过 500 ms 后全部未知,恢复需要新的 GPIO 采样;' - '轮频 Hz 尚无周长和每圈脉冲数,不能直接当 km/h。', '', + '当前 0x6A6 每 1000 ms 上报一次,变化掩码累积期间变化;心跳继续维持已有采样。', '', '有效值显示白色;未知、无效、超时显示深灰色,历史数值保留但不作为有效测量。' '各源独立超时,其他流量不续期。每 5 秒重新同步界面,刚连接需等待首轮同步。', '', '## 报文样例', '', '| ID / DLC | 数据(十六进制) | 解码及仪表显示 |', '| --- | --- | --- |', '| `0x300 / 8` | `01 02 00 01 E8 03 00 00` | 直线加速请求、序号 0、来源 AMI、上电 1000 ms |', - '| `0x183 / 8` | `02 01 01 07 00 00 00 01` | 当前直线加速、已锁定、EBS 正常,三项有效 |', + '| `0x183 / 8` | `02 01 01 0F 00 01 00 02` | 当前直线加速、已锁定、AS Ready、EBS 正常,四项有效 |', '| `0x182 / 8` | `F4 01 C2 01 90 01 07 01` | 500‰、45.0 ℃、40.0 ℃,三个值有效 |', '| `0x182 / 8` | `0C FE 9B FF 33 FF 07 01` | -500‰、-10.1 ℃、-20.5 ℃;显示 -500 / -10 / -21 |', '| `0x6A1 / 2` | `0C 30` | ADC 12300 mV;低压 12.30 V |', - '| `0x6A2 / 8` | `32 00 64 00 96 00 C8 00` | PA0 / PA2 / PA6 / PB14:50 / 100 / 150 / 200 Hz |', + '| `0x6A2 / 4` | `10 27 F8 2A` | 左前 10.000 / 右前 11.000 m/s;平均 37.8 km/h,显示 38 |', '| `0x140 / 8` | `0F A0 14 03 00 00 00 05` | 400.0 V / +12.3 A;显示 400 / 12 |', '| `0x186040F3 / 8` 扩展 | `10 73 10 D1 00 00 00 05` | 421.1 V / -69.5 A;显示 421 / -70 |', '| `0x156 / 8` | `42 FF 43 47 37 0A 50 41` | 第二路无效,有效最高温度 40 ℃ |', @@ -233,6 +256,8 @@ def render(): '六个任务号与计数边界编码、大端偏置电流、无效温度枚举、全负温度和截短 DLC。' '已安装并验证 cantools 44.1.0,接口参考 [cantools 官方文档](https://cantools.readthedocs.io/en/latest/)。', '', '上述是静态及软件编解码验证,另校验两份 DBC 的速率、相同信号布局及源码 / CubeMX 位时序一致。' + '2026-10-07 v2.7 已完成 MCU 烧录及 16672 字节回读一致;真实 CAN1 / MCU / COM6 到大小屏官方模拟器的无人状态与触摸回传验收通过,' + '见 [无人状态报告](无人状态显示验证报告.md) 与 [小屏报告](小屏无人状态验证报告.md)。' 'v2.2 的烧录回读、新帧 CAN2 测试及串口显示核验状态见 [显示 CAN 测试报告](AMI自定义显示CAN测试报告.md)。' 'v2.1 已完成烧录、完整 Flash 回读比对、CAN1 500K 与 CAN2 250K 到官方 HMI 调试器的' '实物测试,详见 [双 CAN 测试报告](CAN1_CAN2_v2.1测试报告.md)。' diff --git a/scripts/hmi/Program.s b/scripts/hmi/Program.s index 8b7b9ca..708957e 100644 --- a/scripts/hmi/Program.s +++ b/scripts/hmi/Program.s @@ -1,8 +1,8 @@ //以下代码只在上电时运行一次,一般用于全局变量定义和上电初始化数据 int sys0=0,sys1=0,sys2=0 //全局变量定义目前仅支持4字节有符号整形(int),不支持其他类型的全局变量声明,如需使用字符串类型可以在页面中使用变量控件来实现 int pending_task=0,current_task=7 -int lock_state=0,ebs_state=0 -int shown_task=-1,shown_lock=-1,shown_ebs=-1 +int lock_state=0,ebs_state=0,as_state=6 +int shown_task=-1,shown_lock=-1,shown_ebs=-1,shown_as=-1 int d0=0,d1=0,d2=0,d3=0,d4=0,d5=0,d6=0,d7=0,d8=0,d9=0,d10=0,d11=0,d12=0,d13=0,d14=0,d15=0 baud=9600//配置波特率 dim=100//配置屏幕背光 diff --git a/scripts/hmi/TJC8048X370_011/dash-postinit.txt b/scripts/hmi/TJC8048X370_011/dash-postinit.txt new file mode 100644 index 0000000..7634a92 --- /dev/null +++ b/scripts/hmi/TJC8048X370_011/dash-postinit.txt @@ -0,0 +1,142 @@ +draw 0,0,799,479,10565 +line 180,30,180,456,10565 +line 524,30,524,456,10565 +line 210,96,484,96,2047 +shown_task=-1 +shown_lock=-1 +shown_ebs=-1 +shown_as=-1 +if(current_task!=shown_task) +{ + rw.txt="未知" + rw.pco=33840 + if(current_task==0) + { + rw.txt="无" + rw.pco=63488 + } + if(current_task>=1&¤t_task<=6) + { + rw.pco=2016 + } + if(current_task==1) + { + rw.txt="八字绕环" + } + if(current_task==2) + { + rw.txt="直线加速" + } + if(current_task==3) + { + rw.txt="高速循迹" + } + if(current_task==4) + { + rw.txt="车检测试" + } + if(current_task==5) + { + rw.txt="EBS测试" + } + if(current_task==6) + { + rw.txt="手动驾驶" + } + bt0.val=0 + if(current_task==1) + { + bt0.val=1 + } + bt1.val=0 + if(current_task==2) + { + bt1.val=1 + } + bt2.val=0 + if(current_task==3) + { + bt2.val=1 + } + bt3.val=0 + if(current_task==4) + { + bt3.val=1 + } + bt4.val=0 + if(current_task==5) + { + bt4.val=1 + } + bt5.val=0 + if(current_task==6) + { + bt5.val=1 + } + shown_task=current_task +} +if(lock_state!=shown_lock) +{ + sd.txt="锁定未知" + sd.pco=33840 + if(lock_state==1) + { + sd.txt="已锁定" + sd.pco=2016 + } + if(lock_state==2) + { + sd.txt="已解锁" + sd.pco=63488 + } + shown_lock=lock_state +} +if(ebs_state!=shown_ebs) +{ + EBS.txt="EBS 未知" + EBS.pco=33840 + EBS.bco=0 + if(ebs_state==1) + { + EBS.txt="EBS 正常" + EBS.pco=65535 + EBS.bco=2016 + } + if(ebs_state==2) + { + EBS.txt="EBS 故障" + EBS.pco=65535 + EBS.bco=63488 + } + shown_ebs=ebs_state +} + +if(as_state!=shown_as) +{ + xstr 330,379,174,53,4,33840,0,1,1,1,"无人未知" + if(as_state==0) + { + xstr 330,379,174,53,4,65535,0,1,1,1,"AS OFF" + } + if(as_state==1) + { + xstr 330,379,174,53,4,65504,0,1,1,1,"AS Ready" + } + if(as_state==2) + { + xstr 330,379,174,53,4,65504,0,1,1,1,"AS Driving" + } + if(as_state==3) + { + xstr 330,379,174,53,4,31,0,1,1,1,"AS Finished" + } + if(as_state==4) + { + xstr 330,379,174,53,4,63488,0,1,1,1,"AS Emergency" + } + if(as_state==5) + { + xstr 330,379,174,53,4,2016,0,1,1,1,"Manual Driving" + } + shown_as=as_state +} diff --git a/scripts/hmi/TJC8048X370_011/dash-status-render.txt b/scripts/hmi/TJC8048X370_011/dash-status-render.txt new file mode 100644 index 0000000..3fc6a6b --- /dev/null +++ b/scripts/hmi/TJC8048X370_011/dash-status-render.txt @@ -0,0 +1,133 @@ +if(current_task!=shown_task) +{ + rw.txt="未知" + rw.pco=33840 + if(current_task==0) + { + rw.txt="无" + rw.pco=63488 + } + if(current_task>=1&¤t_task<=6) + { + rw.pco=2016 + } + if(current_task==1) + { + rw.txt="八字绕环" + } + if(current_task==2) + { + rw.txt="直线加速" + } + if(current_task==3) + { + rw.txt="高速循迹" + } + if(current_task==4) + { + rw.txt="车检测试" + } + if(current_task==5) + { + rw.txt="EBS测试" + } + if(current_task==6) + { + rw.txt="手动驾驶" + } + bt0.val=0 + if(current_task==1) + { + bt0.val=1 + } + bt1.val=0 + if(current_task==2) + { + bt1.val=1 + } + bt2.val=0 + if(current_task==3) + { + bt2.val=1 + } + bt3.val=0 + if(current_task==4) + { + bt3.val=1 + } + bt4.val=0 + if(current_task==5) + { + bt4.val=1 + } + bt5.val=0 + if(current_task==6) + { + bt5.val=1 + } + shown_task=current_task +} +if(lock_state!=shown_lock) +{ + sd.txt="锁定未知" + sd.pco=33840 + if(lock_state==1) + { + sd.txt="已锁定" + sd.pco=2016 + } + if(lock_state==2) + { + sd.txt="已解锁" + sd.pco=63488 + } + shown_lock=lock_state +} +if(ebs_state!=shown_ebs) +{ + EBS.txt="EBS 未知" + EBS.pco=33840 + EBS.bco=0 + if(ebs_state==1) + { + EBS.txt="EBS 正常" + EBS.pco=65535 + EBS.bco=2016 + } + if(ebs_state==2) + { + EBS.txt="EBS 故障" + EBS.pco=65535 + EBS.bco=63488 + } + shown_ebs=ebs_state +} +if(as_state!=shown_as) +{ + xstr 330,379,174,53,4,33840,0,1,1,1,"无人未知" + if(as_state==0) + { + xstr 330,379,174,53,4,65535,0,1,1,1,"AS OFF" + } + if(as_state==1) + { + xstr 330,379,174,53,4,65504,0,1,1,1,"AS Ready" + } + if(as_state==2) + { + xstr 330,379,174,53,4,65504,0,1,1,1,"AS Driving" + } + if(as_state==3) + { + xstr 330,379,174,53,4,31,0,1,1,1,"AS Finished" + } + if(as_state==4) + { + xstr 330,379,174,53,4,63488,0,1,1,1,"AS Emergency" + } + if(as_state==5) + { + xstr 330,379,174,53,4,2016,0,1,1,1,"Manual Driving" + } + shown_as=as_state +} diff --git a/scripts/hmi/TJC8048X370_011/debug-postinit.txt b/scripts/hmi/TJC8048X370_011/debug-postinit.txt new file mode 100644 index 0000000..e866208 --- /dev/null +++ b/scripts/hmi/TJC8048X370_011/debug-postinit.txt @@ -0,0 +1,316 @@ +xstr 13,4,267,42,2,2047,0,1,1,1,"DEBUG 安全回路" +xstr 283,4,392,42,2,33840,0,1,1,1,"灰未知 绿正常 红故障" +draw 13,60,185,139,10565 +xstr 15,64,170,32,4,65535,0,1,1,1,"配电箱" +draw 213,60,385,139,10565 +xstr 215,64,170,32,4,65535,0,1,1,1,"左电机互锁" +draw 413,60,585,139,10565 +xstr 415,64,170,32,4,65535,0,1,1,1,"左急停" +draw 613,60,785,139,10565 +xstr 615,64,170,32,4,65535,0,1,1,1,"电池箱" +draw 213,148,385,228,10565 +xstr 215,152,170,32,4,65535,0,1,1,1,"回路末端" +draw 413,148,585,228,10565 +xstr 415,152,170,32,4,65535,0,1,1,1,"驾舱/右急停" +draw 613,148,785,228,10565 +xstr 615,152,170,32,4,65535,0,1,1,1,"行程/惯性" +line 187,99,213,99,2047 +line 207,94,213,99,2047 +line 207,104,213,99,2047 +line 387,99,413,99,2047 +line 407,94,413,99,2047 +line 407,104,413,99,2047 +line 587,99,613,99,2047 +line 607,94,613,99,2047 +line 607,104,613,99,2047 +line 787,99,797,99,2047 +line 797,99,797,187,2047 +line 797,187,787,187,2047 +line 587,187,613,187,2047 +line 593,182,587,187,2047 +line 593,192,587,187,2047 +line 387,187,413,187,2047 +line 393,182,387,187,2047 +line 393,192,387,187,2047 +draw 13,242,385,321,10565 +xstr 15,245,370,34,4,50712,0,1,1,1,"RES" +draw 413,242,785,321,10565 +xstr 415,245,370,34,4,50712,0,1,1,1,"主控盒" +draw 13,332,185,404,10565 +xstr 15,335,170,34,4,2047,0,1,1,1,"EBS 舵机" +draw 213,332,385,404,10565 +xstr 215,335,170,34,4,2047,0,1,1,1,"EBS 电磁阀" +draw 413,332,585,404,10565 +xstr 415,335,170,34,4,2047,0,1,1,1,"EBS 气压" +draw 613,332,785,404,10565 +xstr 615,335,170,34,4,2047,0,1,1,1,"EBS 油压" +draw 13,409,185,478,10565 +xstr 15,413,170,34,4,2047,0,1,1,1,"无人驾驶惯导" +draw 213,409,385,478,10565 +xstr 215,413,170,34,4,2047,0,1,1,1,"无人驾驶轮速" +draw 413,409,585,478,10565 +xstr 415,413,170,34,4,2047,0,1,1,1,"无人驾驶相机" +draw 613,409,785,478,10565 +xstr 615,413,170,34,4,2047,0,1,1,1,"主控盒12V" +if(d0==1) +{ + t0.txt="正常" + t0.pco=2016 +}else +{ + if(d0==2) + { + t0.txt="故障" + t0.pco=63488 + }else + { + t0.txt="未知" + t0.pco=33840 + } +} +if(d1==1) +{ + t1.txt="正常" + t1.pco=2016 + t3.txt="正常" + t3.pco=2016 +}else +{ + if(d1==2) + { + t1.txt="故障" + t1.pco=63488 + t3.txt="故障" + t3.pco=63488 + }else + { + t1.txt="未知" + t1.pco=33840 + t3.txt="未知" + t3.pco=33840 + } +} +if(d2==1) +{ + t2.txt="正常" + t2.pco=2016 +}else +{ + if(d2==2) + { + t2.txt="故障" + t2.pco=63488 + }else + { + t2.txt="未知" + t2.pco=33840 + } +} +if(d3==1) +{ + t4.txt="正常" + t4.pco=2016 +}else +{ + if(d3==2) + { + t4.txt="故障" + t4.pco=63488 + }else + { + t4.txt="未知" + t4.pco=33840 + } +} +if(d4==1) +{ + t5.txt="正常" + t5.pco=2016 +}else +{ + if(d4==2) + { + t5.txt="故障" + t5.pco=63488 + }else + { + t5.txt="未知" + t5.pco=33840 + } +} +if(d5==1) +{ + t6.txt="正常" + t6.pco=2016 +}else +{ + if(d5==2) + { + t6.txt="故障" + t6.pco=63488 + }else + { + t6.txt="未知" + t6.pco=33840 + } +} +if(d6==1) +{ + t7.txt="正常" + t7.pco=2016 +}else +{ + if(d6==2) + { + t7.txt="故障" + t7.pco=63488 + }else + { + t7.txt="未知" + t7.pco=33840 + } +} +if(d7==1) +{ + t8.txt="正常" + t8.pco=2016 +}else +{ + if(d7==2) + { + t8.txt="故障" + t8.pco=63488 + }else + { + t8.txt="未知" + t8.pco=33840 + } +} +if(d8==1) +{ + t9.txt="正常" + t9.pco=2016 +}else +{ + if(d8==2) + { + t9.txt="故障" + t9.pco=63488 + }else + { + t9.txt="未知" + t9.pco=33840 + } +} +if(d9==1) +{ + t10.txt="正常" + t10.pco=2016 +}else +{ + if(d9==2) + { + t10.txt="故障" + t10.pco=63488 + }else + { + t10.txt="未知" + t10.pco=33840 + } +} +if(d10==1) +{ + t11.txt="正常" + t11.pco=2016 +}else +{ + if(d10==2) + { + t11.txt="故障" + t11.pco=63488 + }else + { + t11.txt="未知" + t11.pco=33840 + } +} +if(d11==1) +{ + t12.txt="正常" + t12.pco=2016 +}else +{ + if(d11==2) + { + t12.txt="故障" + t12.pco=63488 + }else + { + t12.txt="未知" + t12.pco=33840 + } +} +if(d12==1) +{ + t13.txt="正常" + t13.pco=2016 +}else +{ + if(d12==2) + { + t13.txt="故障" + t13.pco=63488 + }else + { + t13.txt="未知" + t13.pco=33840 + } +} +if(d13==1) +{ + t14.txt="正常" + t14.pco=2016 +}else +{ + if(d13==2) + { + t14.txt="故障" + t14.pco=63488 + }else + { + t14.txt="未知" + t14.pco=33840 + } +} +if(d14==1) +{ + t15.txt="正常" + t15.pco=2016 +}else +{ + if(d14==2) + { + t15.txt="故障" + t15.pco=63488 + }else + { + t15.txt="未知" + t15.pco=33840 + } +} +if(d15==1) +{ + t16.txt="正常" + t16.pco=2016 +}else +{ + if(d15==2) + { + t16.txt="故障" + t16.pco=63488 + }else + { + t16.txt="未知" + t16.pco=33840 + } +} diff --git a/scripts/hmi/dash-postinit.txt b/scripts/hmi/dash-postinit.txt index 70641a2..014e3cb 100644 --- a/scripts/hmi/dash-postinit.txt +++ b/scripts/hmi/dash-postinit.txt @@ -1,6 +1,7 @@ shown_task=-1 shown_lock=-1 shown_ebs=-1 +shown_as=-1 if(current_task!=shown_task) { rw.txt="未知" @@ -105,3 +106,32 @@ if(ebs_state!=shown_ebs) } shown_ebs=ebs_state } +if(as_state!=shown_as) +{ + xstr 194,215,108,30,0,33840,0,1,1,1,"无人未知" + if(as_state==0) + { + xstr 194,215,108,30,0,65535,0,1,1,1,"AS OFF" + } + if(as_state==1) + { + xstr 194,215,108,30,0,65504,0,1,1,1,"AS Ready" + } + if(as_state==2) + { + xstr 194,215,108,30,0,65504,0,1,1,1,"AS Driving" + } + if(as_state==3) + { + xstr 194,215,108,30,0,31,0,1,1,1,"AS Finished" + } + if(as_state==4) + { + xstr 194,215,108,30,0,63488,0,1,1,1,"AS Emergency" + } + if(as_state==5) + { + xstr 194,215,108,30,0,2016,0,1,1,1,"有人驾驶" + } + shown_as=as_state +} diff --git a/scripts/hmi/dash-status-render.txt b/scripts/hmi/dash-status-render.txt index 20e33cb..3d6d6ec 100644 --- a/scripts/hmi/dash-status-render.txt +++ b/scripts/hmi/dash-status-render.txt @@ -102,3 +102,32 @@ if(ebs_state!=shown_ebs) } shown_ebs=ebs_state } +if(as_state!=shown_as) +{ + xstr 194,215,108,30,0,33840,0,1,1,1,"无人未知" + if(as_state==0) + { + xstr 194,215,108,30,0,65535,0,1,1,1,"AS OFF" + } + if(as_state==1) + { + xstr 194,215,108,30,0,65504,0,1,1,1,"AS Ready" + } + if(as_state==2) + { + xstr 194,215,108,30,0,65504,0,1,1,1,"AS Driving" + } + if(as_state==3) + { + xstr 194,215,108,30,0,31,0,1,1,1,"AS Finished" + } + if(as_state==4) + { + xstr 194,215,108,30,0,63488,0,1,1,1,"AS Emergency" + } + if(as_state==5) + { + xstr 194,215,108,30,0,2016,0,1,1,1,"有人驾驶" + } + shown_as=as_state +} diff --git a/scripts/requirements-test.txt b/scripts/requirements-test.txt new file mode 100644 index 0000000..1cea8cf --- /dev/null +++ b/scripts/requirements-test.txt @@ -0,0 +1,2 @@ +unicorn==2.1.4 +pyelftools==0.33 diff --git a/scripts/send_vcu_status_can.py b/scripts/send_vcu_status_can.py index 1535aef..08ba6bc 100644 --- a/scripts/send_vcu_status_can.py +++ b/scripts/send_vcu_status_can.py @@ -5,12 +5,16 @@ import os import time -def build_payload(task, locked, ebs_normal, valid=7, sequence=0): +def build_payload(task, locked, ebs_normal, valid=7, sequence=0, as_state=0, version=2): if task not in range(7) or locked not in (0, 1) or ebs_normal not in (0, 1): raise ValueError('task must be 0..6; locked and ebs-normal must be 0 or 1') - if valid not in range(8) or sequence not in range(256): - raise ValueError('valid must be 0..7 and sequence must be 0..255') - return bytes([task, locked, ebs_normal, valid, sequence, 0, 0, 1]) + if version not in (1, 2) or as_state not in range(6): + raise ValueError('version must be 1 or 2; as-state must be 0..5') + if valid not in range(8 if version == 1 else 16) or sequence not in range(256): + raise ValueError('valid must be 0..7 (v1) or 0..15 (v2); sequence must be 0..255') + if version == 1 and as_state != 0: + raise ValueError('v1 has no AS state; byte 5 must be zero') + return bytes([task, locked, ebs_normal, valid, sequence, as_state, 0, version]) def main(): @@ -18,7 +22,10 @@ def main(): parser.add_argument('--task', type=int, required=True, choices=range(7)) parser.add_argument('--locked', type=int, required=True, choices=(0, 1)) parser.add_argument('--ebs-normal', type=int, required=True, choices=(0, 1)) - parser.add_argument('--valid', type=int, default=7) + parser.add_argument('--valid', type=int, help='default 15 with --as-state, otherwise 7') + parser.add_argument('--as-state', type=int, choices=range(6), + help='0 OFF, 1 Ready, 2 Driving, 3 Finished, 4 Emergency, 5 Manual') + parser.add_argument('--version', type=int, choices=(1, 2), default=2) parser.add_argument('--sequence', type=int, default=0) parser.add_argument('--interface', default='pcan') parser.add_argument('--channel', default='PCAN_USBBUS1') @@ -29,7 +36,12 @@ def main(): parser.add_argument('--dry-run', action='store_true') args = parser.parse_args() try: - payload = build_payload(args.task, args.locked, args.ebs_normal, args.valid, args.sequence) + if args.version == 1 and args.as_state is not None: + raise ValueError('--as-state requires --version 2') + valid = args.valid if args.valid is not None else (15 if args.as_state is not None else 7) + as_state = args.as_state if args.as_state is not None else 0 + payload = build_payload(args.task, args.locked, args.ebs_normal, valid, args.sequence, + as_state, args.version) except ValueError as exc: parser.error(str(exc)) if not (0 < args.period <= .5 and 0 < args.duration and math.isfinite(args.duration)): @@ -50,7 +62,7 @@ def main(): deadline = started while time.monotonic() < started + args.duration: payload = build_payload(args.task, args.locked, args.ebs_normal, - args.valid, (args.sequence + count) & 255) + valid, (args.sequence + count) & 255, as_state, args.version) bus.send(can.Message(arbitration_id=0x183, is_extended_id=False, data=payload), timeout=.2) count += 1 deadline += args.period diff --git a/scripts/verify_as_status_firmware.py b/scripts/verify_as_status_firmware.py new file mode 100644 index 0000000..5161559 --- /dev/null +++ b/scripts/verify_as_status_firmware.py @@ -0,0 +1,86 @@ +"""Verify actual ARM CAN -> AS/VCU display -> UART code with mocked HAL I/O.""" +import argparse +import hashlib +import json +from pathlib import Path +from verify_wheel_speed_firmware import Firmware, ROOT +from send_vcu_status_can import build_payload + +def verify(path): + checks=[] + f=Firmware(path) + def states(): + return list(f.uc.mem_read(f.symbols['vcu_display_state'],4)) + def flush(): + f.uc.mem_write(f.symbols['vcu_display_dirty'],b'\x0f') + f.commands.clear() + f.drain() + expected=[f'{prefix}={value}' for prefix,value in zip( + ('current_task','lock_state','ebs_state','as_state'),states())] + assert all(cmd in f.commands for cmd in expected),(expected,f.commands) + assert states()==[7,0,0,6] + flush() + checks.append('boot: all four unknown; complete UART commands end in real FF FF FF') + for port in (1,2): + for task in range(7): + for as_state in range(6): + for flags in range(16): + f.now=1000 + f.receive(build_payload(task,task&1,(task+1)&1,flags,255,as_state),port,ident=0x183) + expected=[task if flags&1 else 7, + (1 if task&1 else 2) if flags&2 else 0, + (1 if (task+1)&1 else 2) if flags&4 else 0, + as_state if flags&8 else 6] + assert states()==expected,(port,task,as_state,flags,states()) + flush() + checks.append(f'CAN{port}: all 7 tasks x 6 AS states x 16 independent validity combinations; UART checked') + for flags in range(8): + f.receive(build_payload(2,1,1,15,0,4),ident=0x183) + f.receive(build_payload(2,1,1,flags,0,version=1),ident=0x183) + assert states()[3]==6 + flush() + checks.append('legacy v1 always clears previous v2 AS to unknown; all 8 legacy flags accepted') + baseline=build_payload(2,1,1,15,0,1) + malformed=[] + for index,value in [(0,7),(1,2),(2,2),(3,16),(5,6),(5,255),(6,1),(7,0),(7,3)]: + b=bytearray(baseline);b[index]=value;malformed.append((bytes(b),{})) + b=bytearray(baseline);b[3]=7;b[5]=6;malformed.append((bytes(b),{})) + for index,value in [(3,8),(5,1),(6,1)]: + b=bytearray(build_payload(2,1,1,7,0,version=1));b[index]=value;malformed.append((bytes(b),{})) + for opts in ({'dlc':7},{'dlc':9},{'id_type':0x40000000},{'remote':0x20000000},{'fd':0x00200000}): + malformed.append((baseline,opts)) + for port in (1,2): + for data,opts in malformed: + f.now=2000;f.receive(baseline,port,ident=0x183) + before=states();f.now=2200;f.receive(data,port,ident=0x183,**opts) + assert states()==before + assert f.read_u32('vcu_status_last_rx_ms')==2000 + f.service(2501);assert states()==[7,0,0,6] + checks.append('both ports: malformed DLC/version/enum/reserved/extended/remote/FD rejected without timeout renewal') + for start,boundary,expired in ((0,500,501),(0xFFFFFF00,244,245)): + f=Firmware(path) + f.now=start;f.receive(baseline,ident=0x183) + f.service(boundary);assert states()==[2,1,1,1] + f.service(expired);assert states()==[7,0,0,6] + if f.now < 800: f.now=800 + flush() + checks.append('timeout at >500 ms, tick zero and wrap verified; all four unknown transmitted') + f=Firmware(path);f.now=1000;f.receive(baseline,ident=0x183) + f.now=1400;f.receive(bytes(4),ident=0x6A2) + f.service(1501);assert states()==[7,0,0,6] + f.now=1502;f.receive(baseline,ident=0x183);flush();assert states()==[2,1,1,1] + f.now=6502;f.receive(baseline,ident=0x183) + f.commands.clear();f.service();f.drain() + assert 'as_state=1' in f.commands + checks.append('other CAN cannot renew AS; same-value recovery and periodic resync UART work') + return dict(elf=str(path.relative_to(ROOT)),sha256=hashlib.sha256(path.read_bytes()).hexdigest(), + result='passed',checks=checks,evidence='ARM emulation with mocked HAL; no physical CAN/HMI') + +if __name__=='__main__': + p=argparse.ArgumentParser(description=__doc__) + p.add_argument('--output',type=Path) + a=p.parse_args() + result=[verify(ROOT/f'firmware/build/{mode}/AMI_Controller.elf') for mode in ('Debug','Release')] + text=json.dumps(result,ensure_ascii=False,indent=2) + if a.output:a.output.parent.mkdir(parents=True,exist_ok=True);a.output.write_text(text+'\n',encoding='utf-8') + print(text) diff --git a/scripts/verify_dbc.py b/scripts/verify_dbc.py index 10170bd..accda80 100644 --- a/scripts/verify_dbc.py +++ b/scripts/verify_dbc.py @@ -74,7 +74,7 @@ def main(): 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 = {0x182:(False,8), 0x183:(False,8), 0x300:(False,8), 0x301:(False,8), 0x6A0:(False,8), 0x6A1:(False,2), - 0x6A2:(False,8), 0x6A4:(False,4), 0x6A6:(False,8), + 0x6A2:(False,4), 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} @@ -90,12 +90,13 @@ def main(): assert m.senders == (['VCU'] if m.frame_id in (0x182,0x183) else ['SDC_ACQ_DAC'] if 0x6A0 <= m.frame_id <= 0x6A6 else ['BMS']) assert db.dbc.attributes['Baudrate'].value == 500000 - for ident, cycle in [(0x301,100), (0x182,100), (0x183,100), (0x6A0,100), (0x6A1,500), (0x6A2,20)]: + for ident, cycle in [(0x301,100), (0x182,100), (0x183,100), (0x6A0,100), (0x6A1,500), (0x6A2,20), (0x6A6,1000)]: assert db.get_message_by_frame_id(ident).cycle_time == cycle - for ident in [0x300,0x6A4,0x6A6,0x140,0x156,0x186040F3,0x186140F3]: + for ident in [0x300,0x6A4,0x140,0x156,0x186040F3,0x186140F3]: assert db.get_message_by_frame_id(ident).cycle_time in (None,0) assert len(db2.messages) == 12 + assert sum(len(m.signals) for m in db2.messages) == 49 assert all(m.frame_id != 0x301 for m in db2.messages) heartbeat = db.get_message_by_frame_id(0x301) for sequence, uptime in ((0,100), (65535,4294967295), (0,0)): @@ -119,9 +120,17 @@ def main(): assert values['EBS_Normal']==((task_id+1)&1) assert status.encode(values)==raw assert db2.get_message_by_frame_id(0x183).encode(values)==raw - assert build_vcu_payload(task_id,task_id&1,(task_id+1)&1,flags,255)==raw + assert build_vcu_payload(task_id,task_id&1,(task_id+1)&1,flags,255,version=1)==raw + for as_state in range(6): + for flags in range(16): + raw = build_vcu_payload(2, 1, 1, flags, 255, as_state) + values = decode(0x183, raw.hex(' ')) + assert values['AS_State'] == as_state and values['AS_Valid'] == ((flags >> 3) & 1) + assert values['Reserved'] == 0 and values['Protocol_Version'] == 2 + assert status.encode(values) == raw + assert db2.get_message_by_frame_id(0x183).encode(values) == raw for arguments in ((7,1,1,7,0), (2,2,1,7,0), (2,1,2,7,0), - (2,1,1,8,0), (2,1,1,7,256)): + (2,1,1,16,0), (2,1,1,7,256)): try: build_vcu_payload(*arguments) except ValueError: @@ -177,8 +186,20 @@ def main(): assert heartbeat['Board_Identifier']==0xA1 and heartbeat['Protocol_Version']==1 assert heartbeat['Heartbeat_Sequence']==0x1234 near(heartbeat['Uptime'],1.0) - freq=decode(0x6A2,'32 00 64 00 96 00 C8 00') - assert list(freq.values()) == [50,100,150,200] + wheel = db.get_message_by_frame_id(0x6A2) + assert wheel.name == 'SDC_WheelSpeed' + for raw, speeds in [('00 00 00 00',(0,0)), ('10 27 F8 2A',(10,11)), + ('FF FF FF FF',(65.535,65.535)), ('00 00 FF FF',(0,65.535))]: + values = decode(0x6A2,raw) + for actual, expected_speed in zip(values.values(),speeds,strict=True): + near(actual,expected_speed) + assert wheel.encode(values) == bytes.fromhex(raw) + try: + wheel.decode(bytes.fromhex('32 00 64 00 96 00 C8 00'),allow_excess=False) + except cantools.database.DecodeError: + pass + else: + raise AssertionError('Old DLC 8 wheel-frequency payload accepted') gpio=decode(0x6A6,'AA 55 FF 7F E8 03 00 00') assert gpio['SDC_Input_State']==0x55AA and gpio['SDC_Changed_Mask']==0x7fff near(gpio['Timestamp'],1.0) diff --git a/scripts/verify_wheel_speed_firmware.py b/scripts/verify_wheel_speed_firmware.py new file mode 100644 index 0000000..8fe7dd8 --- /dev/null +++ b/scripts/verify_wheel_speed_firmware.py @@ -0,0 +1,214 @@ +"""Execute compiled STM32 firmware in Unicorn; HAL I/O is mocked, no hardware used. + +Requires scripts/requirements-test.txt and a built Debug or Release ELF. +Tests CAN RX -> display state -> ASCII UART DMA commands using actual ARM code. +""" +import argparse +from decimal import Decimal, ROUND_HALF_UP +import hashlib +import json +from pathlib import Path +import struct + +from elftools.elf.elffile import ELFFile +from unicorn import Uc, UC_ARCH_ARM, UC_MODE_THUMB, UC_MODE_MCLASS, UC_HOOK_CODE +from unicorn.arm_const import ( + UC_ARM_REG_R0, UC_ARM_REG_R1, UC_ARM_REG_R2, UC_ARM_REG_R3, + UC_ARM_REG_SP, UC_ARM_REG_LR, UC_ARM_REG_PC, UC_ARM_REG_XPSR, +) + +ROOT = Path(__file__).resolve().parents[1] +REGS = (UC_ARM_REG_R0, UC_ARM_REG_R1, UC_ARM_REG_R2, UC_ARM_REG_R3) + + +class Firmware: + def __init__(self, path): + self.uc = Uc(UC_ARCH_ARM, UC_MODE_THUMB | UC_MODE_MCLASS) + self.uc.mem_map(0x08000000, 0x20000) + self.uc.mem_map(0x20000000, 0x24000) + self.uc.mem_map(0x40000000, 0x30000) + self.uc.mem_map(0x50000000, 0x10000) + with path.open('rb') as file: + elf = ELFFile(file) + self.symbols = {s.name: s['st_value'] for s in elf.get_section_by_name('.symtab').iter_symbols()} + for segment in elf.iter_segments(): + if segment['p_type'] == 'PT_LOAD' and segment['p_filesz']: + self.uc.mem_write(segment['p_vaddr'], segment.data()) + self.now = 800 + self.rx = [] + self.commands = [] + self.hooks = {self.symbols[name] & ~1: name for name in ( + 'HAL_GetTick', 'HAL_GPIO_WritePin', 'HAL_GPIO_TogglePin', + 'HAL_FDCAN_GetRxFifoFillLevel', 'HAL_FDCAN_GetRxMessage', + 'HAL_FDCAN_GetTxFifoFreeLevel', 'HAL_UART_Transmit_DMA', + )} + self.uc.hook_add(UC_HOOK_CODE, self.hook) + for port, instance in ((1,0x40006400), (2,0x40006800)): + self.write_u32(f'hfdcan{port}', instance) + + def hook(self, uc, address, size, data): + name = self.hooks.get(address) + if name is None: + return + result = 0 + if name == 'HAL_GetTick': + result = self.now + elif name == 'HAL_FDCAN_GetRxFifoFillLevel': + result = len(self.rx) + elif name == 'HAL_FDCAN_GetRxMessage': + header, payload = self.rx.pop(0) + uc.mem_write(uc.reg_read(UC_ARM_REG_R2), header) + uc.mem_write(uc.reg_read(UC_ARM_REG_R3), payload) + elif name == 'HAL_UART_Transmit_DMA': + command = bytes(uc.mem_read(uc.reg_read(UC_ARM_REG_R1), uc.reg_read(UC_ARM_REG_R2))) + assert command.endswith(b'\xff\xff\xff'), command + self.commands.append(command[:-3].decode('ascii')) + # TX free level is zero: heartbeat never touches hardware in this test. + uc.reg_write(UC_ARM_REG_R0, result) + uc.reg_write(UC_ARM_REG_PC, uc.reg_read(UC_ARM_REG_LR)) + + def call(self, name, *args): + for register, value in zip(REGS, args): + self.uc.reg_write(register, value) + self.uc.reg_write(UC_ARM_REG_SP, 0x20023000) + self.uc.reg_write(UC_ARM_REG_LR, 0x0801FF01) + self.uc.reg_write(UC_ARM_REG_XPSR, 1 << 24) + self.uc.emu_start(self.symbols[name] | 1, 0x0801FF00, count=200000) + assert self.uc.reg_read(UC_ARM_REG_PC) == 0x0801FF00, f'{name} exceeded instruction budget' + return self.uc.reg_read(UC_ARM_REG_R0) + + def read_u32(self, name, offset=0): + return struct.unpack('