feat: add AS status feedback for both HMI sizes with verified v2.7 release
@@ -0,0 +1,9 @@
|
||||
总可用内存:524288␍
|
||||
全局内存占用:2524␍
|
||||
图片总大小:12,781␍
|
||||
字库总大小:7,920,938␍
|
||||
页面:dash 占用内存:2524+2260=4784␍
|
||||
页面:debug 占用内存:2524+288=2812␍
|
||||
页面:CONFIRM 占用内存:2524+608=3132␍
|
||||
File Check Finish␍
|
||||
编译成功! 0个错误, 0个警告,文件大小:8,863,680␍
|
||||
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 125 KiB |
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||