|
SDK สำหรับ TESAIoT Dev Kit
คู่มืออ้างอิง API และ Tutorial (ModusToolbox)
|
Functions | |
| void | hsm_enrol_open (void) |
| เปิด overlay การลงทะเบียนใบรับรองด้วย CSR จากการคลิกใน LVGL; ต้องจับคู่กับ hsm_provision_ui_teardown() | |
| void | hsm_protect_open (void) |
| เปิด overlay ของ Protected Update; ข้อกำหนดเรื่องการจับคู่เหมือน hsm_enrol_open() | |
| void | hsm_provision_ui_teardown (void) |
| เป็นคำสั่งสุดท้ายใน destroy_cb ของหน้า ขณะที่อ็อบเจ็กต์ LVGL ยังใช้งานได้อยู่ | |
Header: hsm_provision_ui.h ตัวโค้ดจริง: hsm_provision_ui.c ที่อยู่ใน archive (libbento_cm55.a) เป็นหน้าจอเชิงอธิบาย 2 หน้าบนหน้า HSM ได้แก่ การลงทะเบียนใบรับรอง (certificate enrolment) ด้วย CSR และ Protected Update แต่ละหน้าเป็น overlay (หน้าจอซ้อนทับ) เต็มจอที่ทำงานแบบ asynchronous คือ IPC_CMD_HSM_PROVISION คืนค่ากลับทันทีแล้วให้ lv_timer คอยวนถาม (polling) เพราะการวนรอแบบ busy-wait จะทำให้หน้าจอค้าง และทำให้ busy modal อธิบายอาการค้างนั้นไม่ได้
| void hsm_enrol_open | ( | void | ) |
เปิด overlay การลงทะเบียนใบรับรองด้วย CSR จากการคลิกใน LVGL; ต้องจับคู่กับ hsm_provision_ui_teardown()
Open the Enrol screen — key pair, CSR, proof of possession, certificate.
lv_event_cb — ถูกเรียกจากการคลิกปุ่มใน LVGL ใน GFX-task context เท่านั้น ไม่มีอาร์กิวเมนต์ ไม่มีค่าคืนกลับ และไม่มีเส้นทางจัดการข้อผิดพลาดที่ call site (จุดที่มีการเรียกจริง) เพราะ overlay (หน้าจอซ้อนทับ) รายงานสถานะของตัวเอง ไม่มีการเริ่มต้นค่าใดที่ต้องทำมาก่อน นอกจากต้องมีหน้า HSM อยู่แล้ว เพราะฟังก์ชันนี้ประกอบ overlay ขึ้นมาเอง หน้าที่เป็นเจ้าของต้องจับคู่ฟังก์ชันนี้กับ hsm_provision_ui_teardown() ในเส้นทาง destroy ของตัวเอง — การจับคู่นั้นคือข้อกำหนดการเรียกใช้ | void hsm_protect_open | ( | void | ) |
เปิด overlay ของ Protected Update; ข้อกำหนดเรื่องการจับคู่เหมือน hsm_enrol_open()
Open the Protect screen — pending change set, confirm, run, read back.
hsm_enrol_open ทุกอย่าง คือเป็นตัวเนื้อของ callback รับเหตุการณ์ ทำงานใน GFX task เท่านั้น overlay รายงานสถานะของตัวเอง และต้องจับคู่กับ hsm_provision_ui_teardown() ใน destroy ของหน้านั้น | void hsm_provision_ui_teardown | ( | void | ) |
เป็นคำสั่งสุดท้ายใน destroy_cb ของหน้า ขณะที่อ็อบเจ็กต์ LVGL ยังใช้งานได้อยู่
Called from page_hsm_destroy(): drop any overlay and cancel its poll timer.
destroy_cb ของหน้า (ใน GFX-task context) ขณะที่อ็อบเจ็กต์ LVGL ยังใช้งานได้อยู่ โดยเป็นคำสั่งสุดท้าย — หลังจากลบ timer ของหน้านั้นและตั้งพอยน์เตอร์ของ widget เป็น null แล้ว คือเก็บกวาดของตัวเองก่อน แล้วจึงรื้อ overlay เรียกซ้ำได้โดยไม่เกิดผลต่างเมื่อไม่มี overlay เปิดอยู่ (ผู้เรียกที่มีอยู่จริงในของที่ส่งมอบไม่ได้ใส่ตัวกันไว้) เหตุผลที่บันทึกไว้ในโค้ด: timer ที่คอยวนถามสถานะการจัดเตรียมซึ่งทำงานหลังจาก widget ถูกคืนหน่วยความจำไปแล้ว จะไปอ้างถึงหน่วยความจำนั้น ปุ่มปิดของตัวโมดูลเอง (hsm_provision_ui.c:447) เป็นผู้เรียกอีกราย