feat: add AS status feedback for both HMI sizes with verified v2.7 release

This commit is contained in:
shenlefengnai-rgb
2026-10-07 16:32:42 +08:00
parent dba8aa5ea9
commit e6556fc218
245 changed files with 21470 additions and 159 deletions
@@ -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␍
Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

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"
}
]