NXP AN14263 ປະຕິບັດການຮັບຮູ້ໃບຫນ້າ LVGL GUI ໃນ Framewor
ຂໍ້ມູນຜະລິດຕະພັນ
ຂໍ້ມູນຈໍາເພາະ
- ຊື່ຜະລິດຕະພັນ: LVGL GUI ການຮັບຮູ້ໃບຫນ້າໃນກອບ
- ການແກ້ໄຂເອກະສານ: ວັນທີ 1-19 ເມສາ 2024
- ຄໍາສໍາຄັນ: ການຮັບຮູ້ໃບໜ້າ, LVGL GUI, Framework
ຄໍາແນະນໍາການນໍາໃຊ້ຜະລິດຕະພັນ
- ເກີນview
ຜະລິດຕະພັນນີ້ເຮັດໃຫ້ຮູບແບບ AI&ML vision algorithm ສໍາລັບການຮັບຮູ້ໃບຫນ້າໃນກອບເພື່ອປະຕິບັດຫນ້າທີ່ການຮັບຮູ້ໃບຫນ້າດ້ວຍ LVGL GUI ງ່າຍດາຍ example ຢູ່ໃນກະດານ SLN-TLHMI-IOT. - ຂອບວຽກແລ້ວview
ຊອບແວການແກ້ໄຂໄດ້ຖືກອອກແບບອ້ອມຮອບສະຖາປັດຕະຍະກໍາກອບທີ່ປະກອບມີຜູ້ຈັດການອຸປະກອນທີ່ຮັບຜິດຊອບໃນການຄຸ້ມຄອງອຸປະກອນ, ອຸປະກອນ HAL ກັບລາຍລະອຽດພື້ນຖານທີ່ບໍ່ມີຕົວຕົນ, ແລະເຫດການສໍາລັບການສື່ສານລະຫວ່າງອຸປະກອນຕ່າງໆ. - ຄຸນສົມບັດ
ຜະລິດຕະພັນອະນຸຍາດໃຫ້ປະຕິບັດຫນ້າທີ່ການຮັບຮູ້ໃບຫນ້າໂດຍຜ່ານກ້ອງຖ່າຍຮູບ preview ໃນຫນ້າຈໍ GUI ທີ່ມີປຸ່ມເພື່ອກະຕຸ້ນການລົງທະບຽນໃບຫນ້າ, ການຮັບຮູ້, ແລະການໂຍກຍ້າຍ. ຂໍ້ມູນໃບໜ້າທີ່ລົງທະບຽນຖືກເກັບໄວ້ໃນ Flash ຜ່ານ a file ລະບົບ. - ເນື້ອໃນບັນທຶກຄໍາຮ້ອງສະຫມັກ
ບັນທຶກແອັບພລິເຄຊັນຈະສະແດງໜ້າຈໍ LVGL GUI ພ້ອມກັບກ້ອງກ່ອນview ແລະປຸ່ມສໍາລັບການປະຕິບັດທີ່ກ່ຽວຂ້ອງກັບໃບຫນ້າ. ມັນຊ່ວຍໃຫ້ນັກພັດທະນາເຂົ້າໃຈກອບແລະວິທີການປະຕິບັດການຮັບຮູ້ໃບຫນ້າໂດຍໃຊ້ ex ສະຫນອງໃຫ້ampເລ.
ເກີນview
NXP ໄດ້ເປີດຕົວຊຸດການພັດທະນາການແກ້ໄຂທີ່ມີຊື່ວ່າ SLN-TLHMI-IOT ທີ່ເນັ້ນໃສ່ແອັບພລິເຄຊັນ HMI ທີ່ສະຫຼາດ. ມັນຊ່ວຍໃຫ້ HMI ອັດສະລິຍະດ້ວຍວິໄສທັດ ML, ສຽງ, ແລະກາຟິກ UI ທີ່ປະຕິບັດຢູ່ໃນ NXP i.MX RT117H MCU ອັນດຽວ. ອີງໃສ່ SDK, ຊອບແວການແກ້ໄຂແມ່ນຖືກສ້າງຂຶ້ນໃນການອອກແບບທີ່ເອີ້ນວ່າກອບທີ່ສະຫນັບສະຫນູນການອອກແບບທີ່ມີຄວາມຍືດຫຍຸ່ນແລະການປັບແຕ່ງການເບິ່ງເຫັນແລະຟັງຊັນສຽງ. ເພື່ອຊ່ວຍໃຫ້ຜູ້ໃຊ້ໃຊ້ແພລະຕະຟອມຊອບແວໄດ້ດີຂຶ້ນ, ບາງເອກະສານພື້ນຖານໄດ້ຖືກສະຫນອງໃຫ້, ສໍາລັບການຍົກຕົວຢ່າງample, ຄູ່ມືການພັດທະນາຊອບແວຂອງຜູ້ໃຊ້. ຄູ່ມືແນະນໍາການອອກແບບຊອບແວພື້ນຖານແລະສະຖາປັດຕະຍະກໍາຂອງແອັບພລິເຄຊັນທີ່ກວມເອົາອົງປະກອບທັງຫມົດຂອງການແກ້ໄຂລວມທັງກອບເພື່ອຊ່ວຍໃຫ້ຜູ້ພັດທະນາປະຕິບັດຄໍາຮ້ອງສະຫມັກຂອງພວກເຂົາໄດ້ງ່າຍແລະມີປະສິດທິພາບຫຼາຍຂຶ້ນໂດຍໃຊ້ SLN-TLHMI-IOT.
ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບການແກ້ໄຂແລະເອກະສານທີ່ກ່ຽວຂ້ອງ, ໄປຢ້ຽມຢາມ web ຫນ້າຂອງ NXP EdgeReady Smart HMI Solution ໂດຍອີງໃສ່ i.MX RT117H ທີ່ມີ ML Vision, Voice, ແລະ Graphical UI. ຢ່າງໃດກໍ່ຕາມ, ມັນຍັງບໍ່ງ່າຍຫຼາຍສໍາລັບນັກພັດທະນາທີ່ຈະປະຕິບັດຄໍາຮ້ອງສະຫມັກ HMI ທີ່ສະຫລາດຂອງພວກເຂົາໂດຍອ້າງອີງໃສ່ຄໍາແນະນໍາຂັ້ນພື້ນຖານເຫຼົ່ານີ້. ຊຸດຂອງບັນທຶກຄໍາຮ້ອງສະຫມັກແມ່ນໄດ້ວາງແຜນໄວ້ເພື່ອຊ່ວຍສຶກສາການພັດທະນາໃນກອບຂັ້ນຕອນໂດຍຂັ້ນຕອນ. ບັນທຶກແອັບພລິເຄຊັນນີ້ແມ່ນອີງໃສ່ການຈັດຕັ້ງປະຕິບັດ LVGL GUI Camera Preview ກ່ຽວກັບກອບ (ເອກະສານ AN14147). ບັນທຶກແອັບພລິເຄຊັນນີ້ອະທິບາຍວິທີການເປີດໃຊ້ຕົວແບບວິທີວິໄສທັດ AI&ML ສຳລັບການຮັບຮູ້ໃບໜ້າໃນກອບເພື່ອປະຕິບັດຟັງຊັນການຮັບຮູ້ໃບໜ້າຜ່ານທາງກ້ອງview ໃນຫນ້າຈໍ GUI ທີ່ມີ LVGL GUI ງ່າຍດາຍ example ຢູ່ໃນກະດານ SLN-TLHMI-IOT. ໃນບັນທຶກຄໍາຮ້ອງສະຫມັກ, example ນໍາສະເຫນີຫນ້າຈໍ LVGL GUI ທີ່ມີກ້ອງຖ່າຍຮູບກ່ອນview ແລະບາງປຸ່ມເພື່ອກະຕຸ້ນການລົງທະບຽນໃບຫນ້າ, ການຮັບຮູ້, ແລະການໂຍກຍ້າຍ. ຂໍ້ມູນໃບຫນ້າທີ່ລົງທະບຽນຈະຖືກເກັບໄວ້ໃນ Flash ຜ່ານເລັກນ້ອຍ file ລະບົບ.
ໃນລະດັບສູງ, ບັນທຶກຄໍາຮ້ອງສະຫມັກປະກອບມີເນື້ອໃນຂ້າງລຸ່ມນີ້:
- ເປີດໃຊ້ຄຸນສົມບັດການຮັບຮູ້ໃບໜ້າຢູ່ໃນກອບ.
- ເພີ່ມການຮອງຮັບຖານຂໍ້ມູນໃບຫນ້າໃນກອບໂດຍຜ່ານ file ລະບົບໃນ Flash.
- ປະຕິບັດແອັບຯ LVGL GUI. ໂດຍຜ່ານການແນະນໍາຂ້າງເທິງ, ເອກະສານນີ້ຊ່ວຍໃຫ້ນັກພັດທະນາ:
- ເຂົ້າໃຈໂຄງຮ່າງການ ແລະຊອບແວການແກ້ໄຂ HMI ທີ່ສະຫຼາດໄດ້ເລິກເຊິ່ງກວ່າ.
- ພັດທະນາການຮັບຮູ້ໃບໜ້າ AI&ML ຂອງເຂົາເຈົ້າໃນກອບດ້ວຍແອັບ LVGL GUI.
ຂອບວຽກແລ້ວview
ຊອບແວການແກ້ໄຂໄດ້ຖືກອອກແບບຕົ້ນຕໍກ່ຽວກັບການນໍາໃຊ້ສະຖາປັດຕະຍະກໍາກອບທີ່ປະກອບດ້ວຍຫຼາຍພາກສ່ວນທີ່ແຕກຕ່າງກັນ:
- ຜູ້ຈັດການອຸປະກອນ - ພາກສ່ວນຫຼັກ
- ຮາດແວ Abstraction Layer (HAL) ອຸປະກອນ
- ຂໍ້ຄວາມ/ເຫດການ
ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 1, ຫຼາຍກວ່າview ກົນໄກຂອງກອບແມ່ນ:
ຜູ້ຈັດການອຸປະກອນແມ່ນຮັບຜິດຊອບໃນການຄຸ້ມຄອງອຸປະກອນທີ່ໃຊ້ໂດຍລະບົບ. ແຕ່ລະປະເພດອຸປະກອນ (ຂາເຂົ້າ, ຜົນຜະລິດ, ແລະອື່ນໆ) ມີຕົວຈັດການອຸປະກອນສະເພາະຂອງຕົນເອງ. ດ້ວຍຕົວຈັດການອຸປະກອນເລີ່ມຕົ້ນຫຼັງຈາກອຸປະກອນຖືກລົງທະບຽນກັບມັນ, ມັນລໍຖ້າ ແລະກວດເບິ່ງຂໍ້ຄວາມເພື່ອໂອນຂໍ້ມູນໄປຫາອຸປະກອນ ແລະ ຜູ້ຈັດການອື່ນໆຫຼັງຈາກເລີ່ມຕົ້ນ ແລະເລີ່ມອຸປະກອນທີ່ລົງທະບຽນແລ້ວ. ອຸປະກອນ HAL ໄດ້ຖືກຂຽນຢູ່ເທິງສຸດຂອງລະຫັດໄດເວີລະດັບຕ່ໍາ, ຊ່ວຍເພີ່ມຄວາມເຂົ້າໃຈຂອງລະຫັດໂດຍການຄັດລອກລາຍລະອຽດພື້ນຖານຫຼາຍຢ່າງ.
ເຫດການແມ່ນວິທີການທີ່ຂໍ້ມູນຖືກສື່ສານລະຫວ່າງອຸປະກອນຕ່າງໆໂດຍຜ່ານຜູ້ຈັດການຂອງພວກເຂົາ. ເມື່ອເຫດການຖືກກະຕຸ້ນ, ອຸປະກອນທີ່ໄດ້ຮັບເຫດການທໍາອິດຈະສື່ສານເຫດການນັ້ນກັບຜູ້ຈັດການຂອງມັນ, ຫຼັງຈາກນັ້ນມັນຈະແຈ້ງໃຫ້ຜູ້ຈັດການອື່ນທີ່ຖືກກໍານົດໃຫ້ຮັບເຫດການ.
ການອອກແບບສະຖາປັດຕະຍະກໍາຂອງໂຄງການໄດ້ສຸມໃສ່ສາມເປົ້າຫມາຍຕົ້ນຕໍ:
- ງ່າຍໃນການນໍາໃຊ້
- ຢືດຢຸ່ນ/ການພົກພາ
- ການປະຕິບັດ
ໂຄງຮ່າງການໄດ້ຖືກອອກແບບໂດຍເປົ້າຫມາຍຂອງການເລັ່ງເວລາໃນການຕະຫຼາດສໍາລັບວິໄສທັດແລະຄໍາຮ້ອງສະຫມັກການຮຽນຮູ້ເຄື່ອງຈັກອື່ນໆ. ເພື່ອຮັບປະກັນເວລາທີ່ໄວໃນການຕະຫຼາດ, ມັນເປັນສິ່ງ ສຳ ຄັນທີ່ຊອບແວຂອງມັນເອງງ່າຍທີ່ຈະເຂົ້າໃຈແລະດັດແປງ. ການຮັກສາເປົ້າຫມາຍນີ້ຢູ່ໃນໃຈ, ສະຖາປັດຕະຍະກໍາຂອງກອບແມ່ນງ່າຍທີ່ຈະປັບປຸງແກ້ໄຂໂດຍບໍ່ມີການຈໍາກັດ, ແລະບໍ່ມີຄ່າໃຊ້ຈ່າຍໃນການປະຕິບັດ.
ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບກອບ, ເບິ່ງຄູ່ມືການພັດທະນາຊອບແວ Smart HMI (ເອກະສານ MCU-SMHMI-SDUG).
ຫໍສະໝຸດກຣາບຟິກເບົາ ແລະອະເນກປະສົງ (LVGL)
LVGL (Light and Versatile Graphics Library) ເປັນຫ້ອງສະໝຸດກຣາບຟິກທີ່ບໍ່ເສຍຄ່າ ແລະເປີດໃຫ້ບໍລິການທຸກຢ່າງທີ່ເຈົ້າຕ້ອງການເພື່ອສ້າງ GUI ທີ່ຝັງໄວ້ດ້ວຍອົງປະກອບກຣາຟິກທີ່ໃຊ້ງ່າຍ, ຜົນກະທົບທາງພາບທີ່ສວຍງາມ ແລະ ຄວາມຈຳຕ່ຳ.
ຜູ້ແນະນຳ GUI
GUI Guider ເປັນເຄື່ອງມືພັດທະນາການໂຕ້ຕອບຜູ້ໃຊ້ແບບກາຟິກທີ່ເປັນມິດກັບຜູ້ໃຊ້ຈາກ NXP ທີ່ຊ່ວຍໃຫ້ມີການພັດທະນາຢ່າງໄວວາຂອງຈໍສະແດງຜົນທີ່ມີຄຸນນະພາບສູງດ້ວຍຫ້ອງສະຫມຸດກາຟິກ LVGL ແບບເປີດ. ຕົວແກ້ໄຂການລາກລົງຂອງ GUI Guider ເຮັດໃຫ້ມັນງ່າຍຕໍ່ການໃຊ້ຄຸນສົມບັດຫຼາຍຢ່າງຂອງ LVGL ເຊັ່ນ: widget, animations, ແລະຮູບແບບຕ່າງໆເພື່ອສ້າງ GUI ທີ່ມີລະຫັດຫນ້ອຍຫຼືບໍ່ມີລະຫັດໃດໆ.
ດ້ວຍການກົດປຸ່ມ, ທ່ານສາມາດດໍາເນີນການຄໍາຮ້ອງສະຫມັກຂອງທ່ານໃນສະພາບແວດລ້ອມຈໍາລອງຫຼືສົ່ງອອກໄປຍັງໂຄງການເປົ້າຫມາຍ. ລະຫັດທີ່ສ້າງຂຶ້ນຈາກ GUI Guider ສາມາດຖືກເພີ່ມເຂົ້າໃນໂຄງການຂອງທ່ານໄດ້ຢ່າງງ່າຍດາຍ, ເລັ່ງຂະບວນການພັດທະນາ ແລະອະນຸຍາດໃຫ້ທ່ານເພີ່ມສ່ວນຕິດຕໍ່ຜູ້ໃຊ້ທີ່ຝັງຢູ່ໃນແອັບພລິເຄຊັນຂອງທ່ານຢ່າງບໍ່ຢຸດຢັ້ງ. GUI Guider ແມ່ນບໍ່ເສຍຄ່າເພື່ອໃຊ້ກັບຈຸດປະສົງທົ່ວໄປຂອງ NXP ແລະ Crossover MCUs ແລະປະກອບມີແມ່ແບບໂຄງການທີ່ສ້າງຂຶ້ນສໍາລັບເວທີທີ່ສະຫນັບສະຫນູນຫຼາຍ. ເພື່ອຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບການພັດທະນາ LVGL ແລະ GUI ໃນ GUI Guider, ໃຫ້ກວດເບິ່ງ Light and Versatile Graphics Library ແລະ GUI Guider.
ສະພາບແວດລ້ອມການພັດທະນາ
ທໍາອິດ, ກະກຽມແລະຕັ້ງຄ່າສະພາບແວດລ້ອມຮາດແວແລະຊອບແວສໍາລັບການປະຕິບັດ example ໃນກອບ.
ສະພາບແວດລ້ອມຮາດແວ
ສະພາບແວດລ້ອມຂອງຮາດແວຖືກຕັ້ງຂຶ້ນເພື່ອກວດສອບ example:
- ຊຸດພັດທະນາ HMI ອັດສະລິຍະໂດຍອີງໃສ່ NXP i.MX RT117H (ຊຸດ SLN_TLHMI_IOT)
- SEGGER J-Link ກັບອະແດບເຕີ Cortex-M 9-pin ແລະ V7.84a ຫຼືໄດເວີລຸ້ນໃຫມ່ກວ່າ
ສະພາບແວດລ້ອມຊອບແວ
ສະພາບແວດລ້ອມຊອບແວໄດ້ຖືກສ້າງຕັ້ງຂຶ້ນສໍາລັບການພັດທະນາ example:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – ຕົວຢ່າງample ລະຫັດຂອງບັນທຶກຄໍາຮ້ອງສະຫມັກທີສອງເປັນຊອບແວພື້ນຖານຂອງການພັດທະນາ. ສໍາລັບລາຍລະອຽດ, ເບິ່ງ https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 – ເປັນຊັບພະຍາກອນລະຫັດສໍາລັບການພັດທະນາ.
- ຊອບແວ SLN-TLHMI-IOT V1.1.2 – ລະຫັດແຫຼ່ງ HMI ອັດສະລິຍະທີ່ປ່ອຍອອກມາໃນບ່ອນເກັບຂໍ້ມູນ NXP GitHub ເປັນຊັບພະຍາກອນລະຫັດສໍາລັບການພັດທະນາ. ສໍາລັບລາຍລະອຽດ, ເບິ່ງ: GitHub – NXP/mcu-smhmi at v1.1.2
ສໍາລັບລາຍລະອຽດກ່ຽວກັບການໄດ້ມາ ແລະການຕິດຕັ້ງສະພາບແວດລ້ອມຊອບແວ, ເບິ່ງ: ການເລີ່ມຕົ້ນດ້ວຍ SLN-TLHMI-IOT.
ສະຖາປັດຕະຍະກໍາວິໄສທັດກ່ຽວກັບກອບ
ສະຖາປັດຕະຍະກໍາວິໄສທັດຢູ່ໃນກອບແມ່ນສະແດງຢູ່ໃນຮູບ 2. ວິໄສທັດ algo HAL (OASIS_HAL) ມີຂະບວນການຂ້າງລຸ່ມນີ້:
- ເຮັດການລົງທະບຽນໃບໜ້າ ແລະການຮັບຮູ້ຜ່ານຕົວແບບວິໄສທັດ AI&ML ຫຼັງຈາກໄດ້ຮັບເຫດການທີ່ກ່ຽວຂ້ອງຈາກຜົນໄດ້ຮັບ UI HAL. ແຈ້ງຜົນການອະນຸມານຈາກແບບຈໍາລອງ algorithm ກັບຜົນໄດ້ຮັບ UI HAL.
- ເຂົ້າເຖິງ (ເພີ່ມ, ລຶບ…) ຖານຂໍ້ມູນຄຸນນະສົມບັດໃບຫນ້າໂດຍອີງໃສ່ພຽງເລັກນ້ອຍ file ລະບົບໂດຍການໂທຫາ APIs ຂອງ FaceDB HAL ຫຼັງຈາກໄດ້ຮັບເຫດການທີ່ກ່ຽວຂ້ອງຈາກຜົນໄດ້ຮັບ UI HAL.
- ຮ້ອງຂໍກອບວິດີໂອກ້ອງຖ່າຍຮູບຈາກກ້ອງຖ່າຍຮູບ HAL ໃນເວລາທີ່ເຮັດການລົງທະບຽນໃບຫນ້າແລະການຮັບຮູ້.
ປະຕິບັດການຮັບຮູ້ໃບຫນ້າໃນກອບ
ການຮັບຮູ້ໃບຫນ້າ LVGL GUI example (example ແມ່ນສະຫນອງໃຫ້ຕໍ່ມາ) ໃນກອບແມ່ນປະຕິບັດໂດຍອີງໃສ່ example ລະຫັດຂອງ Implement LVGL GUI Camera Preview ກ່ຽວກັບກອບ (ເອກະສານ AN14147).
ສໍາລັບການສະແດງການຮັບຮູ້ໃບຫນ້າໃນ exampດັ່ງນັ້ນ, ຫນ້າທີ່ພື້ນຖານຂອງແອັບຯ GUI (ເບິ່ງຫນ້າຈໍຫລັກໃນຮູບ 3) ຖືກອອກແບບຕາມທີ່ອະທິບາຍຂ້າງລຸ່ມນີ້:
- ແອັບ GUI ກະຕຸ້ນເຫດການການລົງທະບຽນໃບໜ້າ ຫຼືການຮັບຮູ້ໃຫ້ກັບຜົນໄດ້ຮັບ UI HAL ເມື່ອຄລິກທີ່ປຸ່ມການລົງທະບຽນ ຫຼືການຮັບຮູ້. ແລະຜົນໄດ້ຮັບ UI HAL ແຈ້ງເຫດການຂອງການເພີ່ມຜູ້ໃຊ້ເຂົ້າໃນວິໄສທັດ algo HAL ຫຼັງຈາກລົງທະບຽນໃບຫນ້າສໍາເລັດ.
- ແອັບຯ GUI ກະຕຸ້ນເຫດການຂອງການລຶບຜູ້ໃຊ້ໄປຫາຜົນໄດ້ຮັບ UI HAL ເມື່ອຄລິກປຸ່ມລຶບຜູ້ໃຊ້ຫຼັງຈາກໃບຫນ້າຂອງຜູ້ໃຊ້ຖືກຮັບຮູ້.
- ແອັບ GUI ກະຕຸ້ນເຫດການຂອງການຢຸດ oasis algo ແລ່ນໄປຫາຜົນຜະລິດ UI HAL ເມື່ອຄລິກໃສ່ຫນ້າຈໍນອກປຸ່ມແລະຮູບພາບ.
ກະກຽມຊຸດຊອບແວສໍາລັບການປະຕິບັດຂອງ exampເລ.
- Clone ຊອບແວພື້ນຖານ lvgl_gui_camera_preview_ຊມ7. ປ່ຽນຊື່ໂຄງການແລະຕົ້ນຕໍ fileຊື່ໃຫ້ lvgl_gui_face_rec_cm7.
- ຂອບວຽກແມ່ນຈໍາເປັນເພື່ອໄດ້ຮັບການປັບປຸງໃນຊອບແວເນື່ອງຈາກລະຫັດແຫຼ່ງສໍາລັບຫຼັກກອບໄດ້ເລີ່ມຕົ້ນເປັນສາທາລະນະໃນ GitHub ຈາກຮຸ່ນ 1.1.2.
- ແທນທີ່ໂຟນເດີກອບດ້ວຍສໍາເນົາຂອງ V1.1.2 ຈາກ GitHub ຍົກເວັ້ນສໍາລັບ files fwk_log.h ແລະ fwk_common.h ພາຍໃຕ້ inc\ ຍ້ອນວ່າພວກມັນໄດ້ຖືກດັດແກ້ສໍາລັບຊຸດຂອງບັນທຶກຄໍາຮ້ອງສະຫມັກ. ການດໍາເນີນງານແມ່ນສະແດງຢູ່ໃນຮູບ 4:
- ລົບໂຟນເດີ framework_cm7 ພາຍໃຕ້ກຸ່ມ libs ແລະເອົາຫ້ອງສະຫມຸດ framework_cm7 ແລະເສັ້ນທາງການຊອກຫາຂອງມັນທີ່ຖືກຕັ້ງຄ່າໃນ Project > Properties > C/C++ Build > settings > Tool Settings > MCU C++ Linker > Libraries ນັບຕັ້ງແຕ່ລະຫັດແຫຼ່ງຂອງຫຼັກຖືກສະໜອງໃຫ້.
ເປີດໃຊ້ຄຸນສົມບັດການຮັບຮູ້ໃບໜ້າໃນກອບ
ຄຸນສົມບັດການຮັບຮູ້ໃບໜ້າແມ່ນສ້າງຂຶ້ນໃນແບບຈຳລອງວິໄສທັດ ML ທີ່ສະໜອງໃຫ້ເປັນຫ້ອງສະໝຸດສະຖິດ – ຫໍສະໝຸດເວລາແລ່ນ oasis lite ໂດຍ NXP. ຫ້ອງສະໝຸດເປັນຫ້ອງສະໝຸດ AI ຂະໜາດນ້ອຍ, ມີປະສິດທິພາບສູງ, ປັບແຕ່ງເອງ, ແລະປັບປຸງໃຫ້ເໝາະສົມ. ຮູບແບບດັ່ງກ່າວປະກອບມີການກວດຈັບໃບຫນ້າ, ການຮັບຮູ້ໃບຫນ້າ, ການກວດຈັບແກ້ວ, ແລະການກວດຫາຊີວິດ. ມັນສ່ວນໃຫຍ່ແມ່ນສະຫນອງ API OASISLT_run_extended() ເພື່ອດໍາເນີນການທໍ່ການຮັບຮູ້ໃບຫນ້າໃນຂະນະທີ່ອັບເດດຜົນໄດ້ຮັບໃຫ້ກັບຜູ້ໂທໂດຍຜ່ານເຫດການການໂທຄືນ, ແລະເພີ່ມ / ອັບເດດ / ລຶບໃບຫນ້າໃນຖານຂໍ້ມູນໂດຍຜ່ານຖານຂໍ້ມູນໃບຫນ້າ callbacks ຫຼັງຈາກລະບຸຂໍ້ມູນກອບແຫຼ່ງ, callbacks, ແລະຄວາມຈໍາ. ສະນຸກເກີທີ່ໃຊ້ໂດຍຫ້ອງສະຫມຸດໂດຍການໂທຫາ API ອື່ນ OASISLT_init() ໃນການເລີ່ມຕົ້ນ. ການເອີ້ນ APIs ແລະຫນ້າທີ່ເອີ້ນຄືນແມ່ນປະຕິບັດຢູ່ໃນວິໄສທັດ algo HAL ຂອງກອບ.
ເພີ່ມ vision algo model library
- ສຳເນົາໂຟນເດີ oasis ທີ່ມີຫ້ອງສະໝຸດ ແລະສ່ວນຫົວທີ່ກ່ຽວຂ້ອງ file ຈາກ smart HMI\coffee_machine\cm7\libs\ ເຂົ້າໄປໃນ folder libs ຂອງ example SW.
- ເພີ່ມເສັ້ນທາງຄົ້ນຫາຂອງຫົວ file ໃນ Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Includes and MCU C++ compiler > Includes: “${workspace_loc:/${ProjName}/libs/oasis/include}”
- ເພີ່ມ lib ແລະເສັ້ນທາງຄົ້ນຫາຂອງມັນຢູ່ໃນໂຄງການ > ຄຸນສົມບັດ > C/C++ Build > ການຕັ້ງຄ່າ > MCU C+ + Linker > Library: liboasis_lite2D_DEFAULT_117f_ae.a “${workspace_loc:/${ProjName}/libs/oasis}” ແລະຄໍານິຍາມ macro ກັບ ເປີດໃຊ້ຄຸນສົມບັດໃນ Project > Properties > C/C++ Build > settings > Tool Settings > MCU C compiler > Preprocessor and MCU C++ compiler > Preprocessor: SMART_TLHMI_2D
ເປີດໃຊ້ວິໄສທັດ algo HAL
ວິໄສທັດ algo HAL ຂັບລົດຮູບແບບວິໄສທັດ algo ເຮັດວຽກແລະຕອບສະຫນອງຜົນໄດ້ຮັບຂອງ UI ຜົນຜະລິດ HAL ຫຼັງຈາກໄດ້ຮັບເຫດການຈາກມັນ.
ເພື່ອເປີດໃຊ້ງານມັນ, clone ໄດເວີ HAL ທີ່ຄ້າຍຄືກັນທີ່ມີຢູ່ແລ້ວ file ບ່ອນທີ່ປະຕິບັດຫນ້າທີ່ດັ່ງລຸ່ມນີ້:
- ປະຕິບັດການເອີ້ນຄືນຂອງການດໍາເນີນງານຖານຂໍ້ມູນໃບຫນ້າແລະການຈັດການເຫດການ.
- ຂັບລົດວິໄສທັດ algo ເຮັດວຽກໂດຍການໂທຫາ APIs ຂອງຫ້ອງສະຫມຸດ oasis.
- ເຂົ້າເຖິງຖານຂໍ້ມູນໃບຫນ້າຂອງຜູ້ໃຊ້ແລະຖານຂໍ້ມູນ app (ມັນບໍ່ຈໍາເປັນໃນ exampເລ).
- ຮັບເຫດການຈາກ ແລະສົ່ງຜົນໄດ້ຮັບໄປຫາ UI HAL.
ວຽກງານທີ່ສໍາຄັນເພື່ອປະຕິບັດ HAL ສໍາລັບ exampແມ່ນ:
- Clone ໄດເວີ HAL ທີ່ຄ້າຍຄືກັນທີ່ມີຢູ່ແລ້ວ file ແລະປ່ຽນຊື່ທີ່ກ່ຽວຂ້ອງ.
- ເອົາລະຫັດທີ່ກ່ຽວຂ້ອງກັບການດໍາເນີນການຂໍ້ມູນ app.
- ປັບປຸງຄໍານິຍາມແລະຫນ້າທີ່ສໍາລັບການຈັດການເຫດການຈາກຜົນໄດ້ຮັບ UI HAL ຕໍ່ example ການອອກແບບ.
- ເພີ່ມການຕັ້ງຄ່າທີ່ຕ້ອງການໃນການເລີ່ມຕົ້ນ oasis.
ຂັ້ນຕອນລະອຽດແມ່ນດັ່ງລຸ່ມນີ້:
- Clone hal_vision_algo_oasis_coffeemachine.c. ປ່ຽນ fileຊື່ເປັນ hal_vision_algo_oasis_guifacerec.c. ແລະປ່ຽນສາຍທັງໝົດ CoffeeMachine ດ້ວຍ GUIFaceRec ໃນ file.
- ເອົາລະຫັດທີ່ມີສາຍ coffeedb (ບໍ່ແມ່ນຕົວພິມນ້ອຍໃຫຍ່) ທີ່ກ່ຽວຂ້ອງກັບຖານຂໍ້ມູນຂອງແອັບຯ, ຕົວຢ່າງເຊັ່ນample, #include hal_sln_coffeedb.h.
- ແກ້ໄຂຟັງຊັນ HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() ສໍາລັບການຈັດການເຫດການຈາກຜົນໄດ້ຮັບ UI HAL.
- ປ່ຽນຄຳນິຍາມນັດໝາຍ kEventFaceRecId_RegisterCoffeeSelection ເປັນ kEventFaceRecId_RegisterUserFace ແລະໂຄງສ້າງສະຕຣິງ regCoffeeSelection ເປັນ regGUIFaceRec ສໍາລັບການຈັດການເຫດການເພື່ອເພີ່ມຂໍ້ມູນຄຸນສົມບັດໃບຫນ້າໃຫມ່ໃສ່ຖານຂໍ້ມູນ.
- ເພື່ອສະແດງຂະບວນການມາດຕະຖານຂອງການປະຕິບັດການຮັບຮູ້ໃບຫນ້າໃນ example, ແກ້ໄຂການຈັດການໃນກໍລະນີຂອງ kEventFaceRecID_OasisSetState ກັບຄໍານິຍາມຂອງລັດ:
- kOASISLiteState
- ການລົງທະບຽນ kOASISLiteState
- ການຮັບຮູ້ kOASISLiteState
- ຢຸດເຊົາ
- ຕື່ມ ແລະແກ້ໄຂຄໍານິຍາມຂອງເຫດການທີ່ໄດ້ກ່າວມາໃນຂັ້ນຕອນຂ້າງເທິງ.
- ສຳເນົາສ່ວນຫົວ file smart_tlhmi_event_descriptor.h ຈາກ smart HMI\coffee_machine \cm7\source\event_handlers\ ເຂົ້າໄປໃນໂຟນເດີຕົ້ນສະບັບample SW. ປັບປຸງ file ດັ່ງລຸ່ມນີ້:
- ປ່ຽນຄຳນິຍາມນັດໝາຍ kEventFaceRecId_RegisterCoffeeSelection ເປັນ kEventFaceRecId_RegisterUserFace ໃນປະເພດ enum _event_smart_tlhmi_id ແລະໂຄງສ້າງ regCoffeeSelection ເປັນ regGUIFaceRec ໃນໂຄງສ້າງ _event_smart_tl. ດັ່ງນັ້ນ, ປ່ຽນໂຄງສ້າງ register_coffee_selection_event_t ສໍາລັບ regCoffeeSelection ເປັນ register_gui_facerec_event_t.
- ລຶບເນື້ອຫາອື່ນທີ່ໃຊ້ສຳລັບແອັບເຄື່ອງກາເຟ, ຕົວຢ່າງເຊັ່ນample, ເສັ້ນລະຫັດກ່ຽວກັບສຽງ: #include “hal_event_descriptor_voice.h”.
- ເພີ່ມປະເພດ kOASISLiteState_Stopped ແລະ kOASISLiteState_Running ໃສ່ປະເພດ enum oasis_lite_state_t ໃນ hal_vision_algo.h ພາຍໃຕ້ກອບ>hal>ວິໄສທັດໃນໂຄງການດັ່ງລຸ່ມນີ້:
typedef enum _oasis_lite_state {- kOASISLiteState
- ແລ່ນ, kOASISLiteState
- ຢຸດເຊົາ, kOASISLiteState
- ການຮັບຮູ້,
- kOASISLiteState
- ການລົງທະບຽນ, kOASISLiteState
- ການລົງທະບຽນ, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- ນັບ
- ໃຊ້ໂຄງສ້າງ oasis_lite_state_t ທີ່ຖືກປັບປຸງຂ້າງເທິງເພື່ອປັບໂຄງສ້າງ oasis_state_event_t ໃນ hal_event_descriptor_face_rec.h ພາຍໃຕ້ກອບ>hal>ວິໄສທັດໃນໂຄງການດັ່ງລຸ່ມນີ້: typedef struct _oasis_state_event_t { oasis_lite_state_state; } oasis_state_event_t ;
- ປ່ຽນ kEventInfo_Remote ທັງໝົດເປັນ kEventInfo_Local ສຳລັບການສົ່ງເຫດການຈາກວິໄສທັດ algo HAL ໄປຫາ HALs ອື່ນໆທີ່ແລ່ນຢູ່ໃນຫຼັກດຽວກັນກັບຫຼັກດຽວແທນທີ່ຈະໃຊ້ dual-core ໃນອະດີດ.ampເລ.
- ເພີ່ມ ແລະແກ້ໄຂການຕັ້ງຄ່າລຸ່ມນີ້ສຳລັບການເລີ່ມຕົ້ນ oasis ໃນ OASISLT_init():
- ເພີ່ມຄຳນິຍາມມະຫາພາກ ແລະພາກສ່ວນຄວາມຈຳສຳລັບກອບວິດີໂອໃນ board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- #define OASIS_RGB_FRAME_HEIGHT 600
- #define OASIS_RGB_FRAME_SRC_FORMAT kPixelFormat_YUV1P444_RGB
- #define OASIS_RGB_FRAME_BYTE_PER_PIXEL 3
- #define AT_FB_SHEM_SECTION_ALIGN(var, alignbytes) \
- __attribute__((section(“.bss.$fb_sh_mem,\”aw\”,%nobits @”))) var
- __attribute__((aligned(alignbytes)))
- ກຳນົດຄ່າການມອບໝາຍໜ່ວຍຄວາມຈຳໃຫ້ກັບພາກສ່ວນຄວາມຊົງຈຳຂ້າງເທິງ fb_sh_mem ໃນໂຄງການ > ຄຸນສົມບັດ > C/C++ Build > ການຕັ້ງຄ່າ MCU ສະແດງຢູ່ໃນຮູບທີ 5:
- ປະກາດຕົວແປທົ່ວໂລກ g_DTCOPBuf ໃນ lvgl_gui_face_rec_cm7.cpp: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- ສືບຕໍ່ເພີ່ມຄໍານິຍາມທີ່ໃຊ້ໃນຕົວແປຂ້າງເທິງ:
- ກໍານົດພາກສ່ວນຂ້າງເທິງໃນ board_define.h:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- attribute__((section(“.bss.$SRAM_DTC_cm7,\”aw\”,%nobits @”))) var
- attribute__((aligned(alignbytes)))
- ລວມເອົາຫົວ file hal_vision_algo.h ມີຄຳນິຍາມມະຫາພາກ DTC_OPTIMIZE_BUFFER_SIZE ໃນ app_config.h ລວມຢູ່ໃນ lvgl_gui_face_rec_cm7.cpp.
- ເພີ່ມຄຳນິຍາມມະຫາພາກ ແລະພາກສ່ວນຄວາມຈຳສຳລັບກອບວິດີໂອໃນ board_define.h: #define OASIS_RGB_FRAME_WIDTH 800
- ຕັ້ງຄ່າຕົວແປ s_debugOption ເປັນ true ເພື່ອສະແດງສະຖານະຄວາມຄືບໜ້າໃນການຮັບຮູ້ໃບໜ້າ.
- ເພີ່ມເສັ້ນທາງຄົ້ນຫາຂອງຫົວ files ຂອງວິໄສທັດ HAL ໃນໂຄງການ > ຄຸນສົມບັດ > C/C++ Build > ການຕັ້ງຄ່າ > ການຕັ້ງຄ່າເຄື່ອງມື > MCU C compiler > ລວມແລະ MCU C++ compiler > ລວມເອົາ: “${workspace_loc:/${ProjName}/framework/hal/vision}”
- ເພີ່ມຄໍານິຍາມຂ້າງລຸ່ມນີ້ເພື່ອເປີດໃຊ້ວິໄສທັດ algo HAL ໃນ board_define.h: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
ເປີດໃຊ້ຜົນຜະລິດ UI HAL
ຜົນໄດ້ຮັບ UI HAL ແຈ້ງເຫດການກັບວິໄສທັດ algo HAL ແລະຕອບສະຫນອງຕໍ່ຜົນໄດ້ຮັບ inference ຈາກວິໄສທັດ algo HAL. ດ້ວຍແອັບ GUI, ໂດຍທົ່ວໄປແລ້ວເຫດການຈະເກີດຂຶ້ນໂດຍແອັບ ແລະ ຜົນໄດ້ຮັບຈະສະແດງຢູ່ໃນແອັບ.
ເພື່ອເປີດໃຊ້ງານມັນ, clone ໄດເວີ HAL ທີ່ຄ້າຍຄືກັນທີ່ມີຢູ່ແລ້ວ file ໂດຍທົ່ວໄປແລ້ວການປະຕິບັດຫນ້າທີ່ດັ່ງລຸ່ມນີ້:
- ແຈ້ງເຫດການສໍາລັບການຮັບຮູ້ໃບຫນ້າແລະການເຂົ້າເຖິງຖານຂໍ້ມູນ.
- ປະຕິບັດການເອີ້ນຄືນສໍາລັບແອັບຯ GUI ເພື່ອກະຕຸ້ນເຫດການ.
- ຈັດການຜົນໄດ້ຮັບ inference ຈາກໂມດູນວິໄສທັດ algo.
- ສະແດງໃຫ້ເຫັນຂະບວນການແລະຜົນໄດ້ຮັບຂອງການຈັດການກິດຈະກໍາຢູ່ໃນ UI ໂດຍແຖບຄວາມຄືບຫນ້າທີ່ຄວບຄຸມດ້ວຍເຄື່ອງຈັບເວລາແລະຮູບສີ່ແຈສາກຄູ່ມື.
ວຽກງານທີ່ສໍາຄັນເພື່ອປະຕິບັດ HAL ສໍາລັບ exampທີ່ໃຊ້ໃນເອກະສານນີ້ແມ່ນ:
- Clone ໄດເວີ HAL ທີ່ຄ້າຍຄືກັນທີ່ມີຢູ່ແລ້ວ file ແລະປ່ຽນຊື່ທີ່ກ່ຽວຂ້ອງ.
- ເອົາລະຫັດທີ່ກ່ຽວຂ້ອງກັບແອັບຯອອກ.
- ປັບປຸງຫນ້າທີ່ສໍາລັບການແຈ້ງເຕືອນເຫດການແລະການຕອບສະຫນອງຜົນໄດ້ຮັບຕໍ່ example ການອອກແບບ.
- ເພີ່ມການໂທກັບສໍາລັບແອັບຯ GUI ເພື່ອກະຕຸ້ນເຫດການ.
ຂັ້ນຕອນລະອຽດແມ່ນດັ່ງລຸ່ມນີ້:
- Clone hal_output_ui_coffee_machine.c. ປ່ຽນ fileຊື່ໄປຫາ hal_ output_ui_guifacerec.c.
- ແທນທີ່ສາຍທັງໝົດ CoffeeMachine ດ້ວຍ GUIFaceRec ໃນ file.
- ເອົາລະຫັດທີ່ກ່ຽວຂ້ອງກັບແອັບຯອອກ - ເຄື່ອງກາເຟ.
- ເອົາຟັງຊັນ WakeUp() ແລະ _StandBy() ແລະລະຫັດທີ່ກ່ຽວຂ້ອງ (ອາດຈະຊອກຫາ string wake_up ແລະ standby ສໍາລັບພວກມັນ).
- ເອົາອອກກ່ອນview ເຫດການຮູບແບບການຈັດການລະຫັດທີ່ກ່ຽວຂ້ອງໃນ HAL_OutputDev_UiGUIFaceRec_Input Notify().
- ເອົາຟັງຊັນ UI_xxx_Callback() ແລະລະຫັດທີ່ມີສາຍ gui_ ແລະຫນ້າຈໍທີ່ກ່ຽວຂ້ອງກັບ GUI ຂອງເຄື່ອງກາເຟຍົກເວັ້ນ gui_set_virtual_face() ສໍາລັບ preview ຄຸນນະສົມບັດຮູບແບບ.
- ເອົາລະຫັດທັງໝົດທີ່ກ່ຽວຂ້ອງກັບຕົວແປ s_IsWaitingAnotherSelection ແລະ s_IsWaitingRegisterSelection ທີ່ກ່ຽວຂ້ອງກັບແອັບຯເຄື່ອງກາເຟ.
- ເອົາລະຫັດທີ່ກ່ຽວຂ້ອງກັບສຽງ, ສຽງ, ແລະພາສາ. ຕົວຢ່າງample:
- #ລວມທັງ “hal_voice_algo_asr_local.h”,
- #ລວມທັງ “hal_event_descriptor_voice.h”
- ສໍາລັບການແຈ້ງເຕືອນເຫດການຕ່າງໆ, ໃຫ້ປະຕິບັດຫນ້າທີ່ໃຫມ່ _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), ແລະ DeregisterGUIFaceRec() ໂດຍອ້າງອີງໃສ່ຟັງຊັນ _StopFaceRec(), _RegisterCoffeeSelection(), ແລະ DeregisterCoffeeSelection()
- _OutputManagerNotify() ປະຕິບັດຟັງຊັນຜົນຜະລິດເຫດການພື້ນຖານເພື່ອສົ່ງເຫດການໄປຫາວິໄສທັດ algo HAL. ຫນ້າທີ່ຂ້າງລຸ່ມນີ້ເອີ້ນວ່າມັນເພື່ອສົ່ງເຫດການຂອງຕົນເອງ.
- _SetFaceRec() ສົ່ງເຫດການ kEventFaceRecID_OasisSetState ເພື່ອກະຕຸ້ນວິໄສທັດ algo ສຳລັບການລົງທະບຽນໃບໜ້າ, ການຮັບຮູ້ ແລະຢຸດ algo.
- _RegisterGUIFaceRec() ສົ່ງເຫດການ kEventFaceRecId_RegisterGUIFaceRec ທີ່ຖືກກໍານົດໄວ້ໃນ smart_tlhmi_event_descriptor.h ເພື່ອເພີ່ມຂໍ້ມູນຄຸນສົມບັດໃບຫນ້າໃສ່ຖານຂໍ້ມູນເມື່ອລົງທະບຽນຕົກລົງ.
- DeregisterGUIFaceRec() ສົ່ງເຫດການ kEventFaceRecID_DelUser ເພື່ອລຶບຂໍ້ມູນຄຸນສົມບັດໃບໜ້າອອກຈາກຖານຂໍ້ມູນເມື່ອຖ່າຍທອດການຮັບຮູ້ໃບໜ້າ.
- ປັບປຸງລະຫັດເພື່ອດໍາເນີນການທີ່ສອດຄ້ອງກັນລວມທັງການໂຫຼດຫນ້າຈໍຄືນ GUI ໂດຍການໂທຫາ APIs ຈາກ LVGL GUI app ສໍາລັບຜົນໄດ້ຮັບ inference ຂອງການລົງທະບຽນໃບຫນ້າແລະການຮັບຮູ້ໃນຫນ້າທີ່ _InferComplete_Vision() ຕໍ່ example's ການອອກແບບ. ຕົວຢ່າງample, ເມື່ອການລົງທະບຽນໃບຫນ້າປະສົບຜົນສໍາເລັດ,
- ຢຸດສະແດງຄວາມຄືບໜ້າໂດຍການໂທຫາ _FaceRecProcess_Stop();
- ຢຸດການລົງທະບຽນໃບໜ້າໂດຍການໂທຫາ _SetFaceRec(kOASISLiteState_Stopped);
- ສະແດງຜົນໄດ້ຮັບທີ່ປະສົບຜົນສໍາເລັດໃນ GUI: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- ລົງທະບຽນຂໍ້ມູນໃບໜ້າໃສ່ຖານຂໍ້ມູນ: _RegisterUserFace(s_UserId);
- ເພີ່ມຟັງຊັນໂທກັບ UI ເພື່ອຈັດການເຫດການ: ກ່ອນview, ການລົງທະບຽນໃບຫນ້າ, ການຮັບຮູ້, ແລະການລຶບຜູ້ໃຊ້ທີ່ຖືກກະຕຸ້ນຈາກ GUI. ຕົວຢ່າງample, ການເອີ້ນຄືນການລົງທະບຽນໃບໜ້າ: void UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- ແລະເພີ່ມຟັງຊັນ _FaceRecProcess_Start() ແລະ _FaceRecProcess_Stop() ເພື່ອສະແດງຄວາມຄືບໜ້າ ແລະສະຖານະໃນເຫດການ ແລະຜົນໄດ້ຮັບທີ່ແຕກຕ່າງກັນ.
- ອັບເດດໂມງຈັບເວລາ ISR callback function _SessionTimer_Callback() ເພື່ອຈັດການກັບກໍລະນີຂອງການໝົດເວລາໂດຍການໂທຫາ: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- ເພີ່ມຄໍານິຍາມຂ້າງລຸ່ມນີ້ເພື່ອເປີດໃຊ້ UI ຜົນຜະລິດ HAL ໃນ board_define.h: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
ແຈ້ງການ:
ເພື່ອນຳສະເໜີຄຸນສົມບັດການຈຳແນກໃບໜ້າໃຫ້ດີຂຶ້ນ, ໃຫ້ເກັບຮັກສາຟັງຊັນເພື່ອສະແດງຂະບວນການ ແລະຜົນຂອງການຮັບຮູ້ໃບໜ້າໃນຜົນຜະລິດ UI HAL. ຟັງຊັນໄດ້ຖືກອະທິບາຍຂ້າງລຸ່ມນີ້
- ຮູບສີ່ຫລ່ຽມຄູ່ມືໃບໜ້າສະແດງສີຟ້າ, ແລະແຖບຄວາມຄືບໜ້າສະແດງໃຫ້ເຫັນຄວາມຄືບໜ້າເມື່ອເລີ່ມການລົງທະບຽນ ຫຼືການຮັບຮູ້ໃບໜ້າ.
- ຮູບສີ່ຫລ່ຽມຄູ່ມືໃບໜ້າສະແດງສີແດງເມື່ອລົງທະບຽນໃບໜ້າສຳເລັດ.
- ຮູບສີ່ຫຼ່ຽມທິດທາງໃບໜ້າສະແດງສີຂຽວເມື່ອການຮັບຮູ້ໃບໜ້າສຳເລັດ.
- ຮູບສີ່ຫລ່ຽມຄູ່ມືໃບໜ້າຮັກສາເປັນສີຟ້າ, ແລະແຖບຄວາມຄືບໜ້າສະແດງໃຫ້ເຫັນຄວາມຄືບໜ້າເຕັມທີ່ເມື່ອການກະທຳບໍ່ສຳເລັດຫຼັງຈາກໝົດເວລາຂອງໂມງຈັບເວລາ. ໃນຈຸດນັ້ນ, ຢຸດເຊົາການລົງທະບຽນໃບຫນ້າຫຼືການຮັບຮູ້.
ແຖບຄວາມຄືບໜ້າ ແລະຮູບສີ່ຫລ່ຽມຄູ່ມືໃບໜ້າຖືກນຳສະເໜີເປັນໄອຄອນທີ່ສ້າງຂຶ້ນໃນຖານສອງຊັບພະຍາກອນ file ຈະຖືກຕັ້ງໂຄງການເຂົ້າໃນ Flash. ຕົວຊີ້ໄປຫາຂໍ້ມູນໄອຄອນໃນ SDRAM ຖືກຕັ້ງຢູ່ໃນຟັງຊັນ LoadIcons(APP_ICONS_BASE) ເອີ້ນວ່າການເລີ່ມຕົ້ນອຸປະກອນ UI HAL ໃນຜົນຜະລິດ UI HAL. ມັນຕ້ອງປະຕິບັດການສະຫນັບສະຫນູນໄອຄອນສໍາລັບຫນ້າທີ່.
ປະຕິບັດການສະຫນັບສະຫນູນໄອຄອນ
- ສ້າງຊັບພະຍາກອນທີ່ລວມເອົາໄອຄອນກັບຮູບພາບທີ່ໃຊ້ໃນແອັບ LVGL GUI:
- Clone ໄອຄອນສີ່ຫົວ files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, ແລະ virtual_face_red_420x426.h ຈາກ smart HMI
\coffee machine\resource\icons\ to the new folder icons under the resource folder of the example SW. - ເພີ່ມເສັ້ນທາງຄົ້ນຫາສໍາລັບສີ່ໄອຄອນ files ໃນ camera_preview_resource.txt file ໃນໂຟນເດີຊັບພະຍາກອນ, ສໍາລັບການຍົກຕົວຢ່າງample: icon ../resource/icons/process_bar_240x14.h
- ປະຕິບັດ camera_preview_resource_build.bat ເພື່ອສ້າງຊັບພະຍາກອນຮູບພາບ ແລະໄອຄອນເພື່ອສ້າງຖັງຂີ້ເຫຍື້ອ file camera_preview_resource.bin ແລະຂໍ້ມູນ file resource_information_table.txt (ເບິ່ງຮູບ 6).
- Clone ໄອຄອນສີ່ຫົວ files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, ແລະ virtual_face_red_420x426.h ຈາກ smart HMI
- ກໍານົດທີ່ຢູ່ເລີ່ມຕົ້ນໃນ SDRAM ແລະຂະຫນາດຂອງໄອຄອນໃນ app_config.h. ທີ່ຢູ່ເລີ່ມຕົ້ນຖັດຈາກຮູບພາບຂອງແອັບຯ GUI. ຂະຫນາດແມ່ນຖືກສ້າງຂຶ້ນໃນຂໍ້ມູນ file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- ອັບເດດຂະໜາດທີ່ກຳນົດໄວ້ຂອງພາກສ່ວນໜ່ວຍຄວາມຈຳທີ່ມີຊື່ res_sh_mem ເປັນ 0x200000 ໂດຍກຳນົດມັນຄືນໃໝ່ໃນ app_config.h: #define RES_SHEME_TOTAL_SIZE 0x200000 ແລະການຕັ້ງຄ່າທີ່ສອດຄ້ອງກັນໃນໂຄງການ > ຄຸນສົມບັດ > C/C++ Build > ການຕັ້ງຄ່າ MCU.
- ເພີ່ມຂະຫນາດໄອຄອນໃສ່ຂະຫນາດທັງຫມົດຂອງຊັບພະຍາກອນທີ່ໂຫລດຈາກ Flash ກັບ SDRAM ໃນຟັງຊັນ APP_LoadResource() ໃນຕົ້ນຕໍ file lvgl_gui_face_rec_cm7.cpp: memcpy((void *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
ແຈ້ງການ: ເພື່ອເຮັດສຳເລັດຄຸນສົມບັດການຮັບຮູ້ໃບໜ້າ, ຕ້ອງການການຮອງຮັບແອັບ LVGL GUI. ຟັງຊັນການເອີ້ນຄືນ UI ໃນຜົນຜະລິດ UI HAL ຖືກເອີ້ນໂດຍແອັບຯ LVGL GUI ສໍາລັບການຈັດການເຫດການຈາກຫນ້າຈໍ UI. ໃນທາງກົງກັນຂ້າມ, ຜົນໄດ້ຮັບ UI HAL ເອີ້ນ APIs ຈາກແອັບຯ LVGL GUI ເພື່ອປັບປຸງ UI ເພື່ອສະແດງຜົນໄດ້ຮັບແລະສະຖານະພາບ. ການພັດທະນາຂອງ app LVGL GUI ແມ່ນຂ້ອນຂ້າງເປັນເອກະລາດແລະນໍາສະເຫນີໃນພາກທີ 4.3.
4.1.5 ເລີ່ມອຸປະກອນ HAL ແລະຜູ້ຈັດການສໍາລັບການຮັບຮູ້ໃບຫນ້າ
ການເປີດວິໄສທັດ algo HAL ແລະ UI ຜົນຜະລິດ HAL ແລະຜູ້ຈັດການຂອງພວກເຂົາແມ່ນເລີ່ມຕົ້ນໃນຕົ້ນຕໍ file
lvgl_gui_face_rec_cm7.cpp ປະຕິບັດຕາມການປ່ຽນແປງຂອງການພັດທະນາໃນກອບດັ່ງລຸ່ມນີ້:
- ລວມເອົາຫົວ file ກ່ຽວຂ້ອງກັບຜູ້ຈັດການ HAL ສອງຄົນໂດຍການເພີ່ມສາຍລະຫັດ:
- #include ” fwk_output_manager.h “
- #ລວມທັງ “fwk_vision_algo_manager.h”
- ປະກາດອຸປະກອນ HAL:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- ລົງທະບຽນອຸປະກອນ HAL:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- ເລີ່ມຕົ້ນຜູ້ຈັດການ:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- ເລີ່ມຕົ້ນຜູ້ຈັດການ:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- ກໍານົດບູລິມະສິດຂອງວຽກງານຜູ້ຈັດການ:
- #ກຳນົດ VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #ກຳນົດ OUTPUT_MANAGER_TASK_PRIORITY 1
ເພີ່ມການຮອງຮັບຖານຂໍ້ມູນໃບໜ້າໃນກອບ
ຂໍ້ມູນລັກສະນະໃບຫນ້າທີ່ລົງທະບຽນແມ່ນເຂົ້າເຖິງຢູ່ໃນຖານຂໍ້ມູນໃບຫນ້າທີ່ເກັບໄວ້ໃນ Flash ຜ່ານເລັກນ້ອຍ file ລະບົບ. ຂັ້ນຕອນເພື່ອເພີ່ມການສະຫນັບສະຫນູນຖານຂໍ້ມູນໃບຫນ້າແມ່ນໄດ້ອະທິບາຍຂ້າງລຸ່ມນີ້.
ເພີ່ມໄດເວີສໍາລັບການເກັບຮັກສາ Flash
ສຳເນົາໄດເວີແຟລດອິນເຕີເຟດ FlexSPI files fsl_flexspi.c ແລະ fsl_flexspi.h, ແລະໄດເວີການເຂົ້າລະຫັດຂໍ້ມູນ files fsl_caam.c ແລະ fsl_caam.h ຈາກເສັ້ນທາງ SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ ໄປຫາໂຟນເດີໄດເວີຂອງ example SW.
ເພີ່ມການສະຫນັບສະຫນູນລະດັບຄະນະກໍາມະການ
- ເພີ່ມຄໍານິຍາມຂອງ FlexSPI ທີ່ໃຊ້ສໍາລັບອຸປະກອນ Flash ຢູ່ໃນ board.h:
- #ກຳນົດ BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #ກຳນົດ BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- ຄັດລອກຕົວປະຕິບັດການແລະການຕັ້ງຄ່າ files ຂອງອຸປະກອນ Flash flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h ພາຍໃຕ້ເສັ້ນທາງ smart HMI\coffee_config.c, sln_flash_config_w7qXNUMXjvs.h, andsln_flash_ops.h ພາຍໃຕ້ເສັ້ນທາງ smart HMI\coffee_machine\flash\exmXNUMX.ample SW.
- ຍົກເລີກການເລືອກ “Exclude resource from build” ໃນ C/C++ Build > Settings ຫຼັງຈາກຄລິກຂວາໃສ່ປຸ່ມ. files 'ຊື່ແລະເປີດ Properties ສໍາລັບການເຮັດໃຫ້ພວກເຂົາໄດ້ຮັບການສ້າງຂຶ້ນໃນໂຄງການ.
- ປ່ຽນສ່ວນຫົວທີ່ລວມມາ fileຊື່ sln_flash_config.h ເປັນ sln_flash_config_w25q256jvs.h ໃນ sln_flash_config.c ແລະ flexspi_nor_flash_ops.h.
- ຕັ້ງແຫຼ່ງໂມງ FlexSPI1 ໃນ file clock_config.c ໂດຍອ້າງອີງໃສ່ແອັບເຄື່ອງກາເຟ.
ເພີ່ມອະແດບເຕີແລະການສະຫນັບສະຫນູນລະດັບກາງ
- ສຳເນົາ files sln_flash.c, sln_flash.h, sln_encrypt.c, ແລະ sln_encrypt.h ເປັນໄດເວີອະແດັບເຕີສຳລັບ file ລະບົບແລະແອັບຯຈາກເສັ້ນທາງຂອງ smart HMI\coffee_machine\cm7\source\ ໄປຫາແຫຼ່ງໂຟນເດີຂອງ exampເລ. ອັບເດດໃໝ່ files:
- ຍົກເລີກການເລືອກ “Exclude resource from build” on them for building.
- ປ່ຽນສ່ວນຫົວທັງໝົດທີ່ລວມມາ file ຊື່ sln_flash_config.h ເປັນ sln_flash_config_w25q256jvs.h.
- ສຳເນົາໂຟນເດີ fileລະບົບທີ່ມີ APIs ສໍາລັບພຽງເລັກນ້ອຍ fileລະບົບແລະ HAL driver ຈາກ smart HMI \coffee_machine\cm7\source\ ໄປຫາ example SW. ແລະອັບເດດໂຟນເດີໃໝ່:
- ຍົກເລີກການເລືອກ “Exclude resource from build” on it for building.
- ເພີ່ມເສັ້ນທາງລວມສໍາລັບມັນໃນການຕັ້ງຄ່າໂຄງການ: “${workspace_loc:/${ProjName}/fileລະບົບ}”
- ປ່ຽນສ່ວນຫົວທີ່ລວມມາ file ຊື່ sln_flash_config.h ເປັນ sln_flash_config_w25q256jvs.h ແລະ fica_definition.h ເປັນ app_config.h ໃນ file sln_flash_littlefs.h.
- ຄັດລອກໂຟນເດີ littlefs ທີ່ມີເຄື່ອງກາງ - ນ້ອຍ fileລະບົບຈາກເສັ້ນທາງ SDK_2_13_0_ MIMXRT1170-EVK\middleware\ ໄປຫາ example SW. ແລະອັບເດດໂຟນເດີໃໝ່:
- ຍົກເລີກການເລືອກ “Exclude resource from build” on it for building.
- ເພີ່ມເສັ້ນທາງລວມສໍາລັບມັນໃນການຕັ້ງຄ່າໂຄງການ: “${workspace_loc:/${ProjName}/littlefs}”
ເພີ່ມໄດເວີ HAL
- ມີສອງອຸປະກອນ HAL - file ລະບົບແລະຖານຂໍ້ມູນໃບຫນ້າ HAL ສະຫນັບສະຫນູນຄຸນນະສົມບັດການເຂົ້າເຖິງຖານຂໍ້ມູນແລະພວກເຂົາໄດ້ຖືກປະຕິບັດແລ້ວໃນກອບໂດຍບໍ່ມີການປ່ຽນແປງໃດໆ. ເປີດໃຊ້ພວກມັນໂດຍການເພີ່ມຄໍານິຍາມຂ້າງລຸ່ມນີ້ໃນ board_define.h:
- #define ENABLE_FLASH_DEV_Littlefs
- #ກຳນົດ ENABLE_FACEDB
ແລະປ່ຽນຊື່ຖານຂໍ້ມູນໃບຫນ້າສໍາລັບ example: #define OASIS_FACE_DB_DIR “oasis_gui_face_rec”
ເພີ່ມການຮອງຮັບລະດັບ app
- ປັບປຸງຫລັກ file lvgl_gui_face_rec_cm7.cpp:
- ລວມເອົາຫົວ file ກ່ຽວຂ້ອງກັບ Flash file ຜູ້ຈັດການລະບົບ HAL ໂດຍການເພີ່ມສາຍລະຫັດ: #include “fwk_flash.h”
- ປະກາດແລະລົງທະບຽນ file ອຸປະກອນ HAL ຂອງລະບົບ:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
ໝາຍເຫດ: ໄດ້ file ລະບົບ HAL ອຸປະກອນຕ້ອງໄດ້ຮັບການລົງທະບຽນກ່ອນທີ່ຜູ້ຈັດການອຸປະກອນທັງຫມົດຈະຖືກເລີ່ມຕົ້ນໃນຟັງຊັນ APP_InitFramework().
- ໂທຫາຟັງຊັນ BOARD_ConfigMPU() ໃນ APP_BoardInit() ເພື່ອຕັ້ງຄ່າ MPU.
- ກໍານົດ file ການກໍານົດລະບົບກ່ຽວກັບ Flash ໃນ file app_config.h ໂດຍກໍານົດຄໍານິຍາມ macro ທີ່ໃຊ້ໃນ file sln_flash_littlefs.h:
- #ກຳນົດ FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHEM_TOTAL_SIZE)
- #ກໍານົດ FICA_FILE_SYS_SIZE (0x280000)
ການຕັ້ງຄ່າ
ບາງລະຫັດທີ່ກ່ຽວຂ້ອງກັບ Flash ຖືກປະຕິບັດຢູ່ໃນພື້ນທີ່ SRAM ITC ສໍາລັບປະສິດທິພາບພຽງພໍ. ສຳເນົາ linkscripts ໂຟນເດີທີ່ມີການຕັ້ງຄ່າຕົວເຊື່ອມຕໍ່ຈາກເສັ້ນທາງ smart HMI\coffee_machine\cm7\ ໄປຫາ example SW.
ນຳໃຊ້ແອັບ LVGL GUI
ການພັດທະນາແອັບ LVGL GUI ໂດຍອີງໃສ່ກອບການເອີ້ນ APIs ຈາກຜົນຜະລິດ UI HAL ແລະສະຫນອງ APIs ເພື່ອສົ່ງອອກ UI HAL (ເບິ່ງພາກ 4.1.3 ສໍາລັບການປະຕິບັດຜົນຜະລິດ UI HAL).
ຢ່າງໃດກໍຕາມ, ການປະຕິບັດລາຍລະອຽດຂອງແອັບຯ LVGL GUI ແມ່ນຂຶ້ນກັບຄວາມຕ້ອງການແລະການອອກແບບຂອງແອັບພລິເຄຊັນ. ແອັບ GUI ໃນຕົວຢ່າງນີ້ample ໄດ້ຖືກອອກແບບດັ່ງທີ່ອະທິບາຍໃນຕອນຕົ້ນຂອງພາກສ່ວນ 4.
ຂ້າງລຸ່ມນີ້ແມ່ນບົດແນະນໍາການຈັດຕັ້ງປະຕິບັດ:
- ລະຫັດທີ່ກໍາຫນົດເອງຖືກປະຕິບັດຢູ່ໃນ custom.c ແລະ custom.h ທີ່ມອບໃຫ້ໂດຍ GUI Guider ເປັນສ່ວນຕິດຕໍ່ລະຫວ່າງໂຄງການ GUI Guider ແລະໂຄງການລະບົບຝັງ.
- ເພີ່ມຟັງຊັນໃໝ່ທີ່ມີຊື່ວ່າ gui_xxx() ໃນ custom.c ເພື່ອບັນລຸຟັງຊັນລຸ່ມນີ້:
- ສໍາລັບຜົນຜະລິດ UI HAL ແລະແອັບ GUI ເພື່ອອັບເດດ UI.
- ສໍາລັບແອັບຯ GUI ເພື່ອກະຕຸ້ນເຫດການໂດຍການໂທຫາຫນ້າທີ່ເອີ້ນຄືນ UI ຈາກຜົນຜະລິດ UI HAL.
ຕົວຢ່າງample, ຟັງຊັນໃຫມ່ gui_event_face_rec_action() ໂທຫາ UI callback function ເພື່ອຈັດການກັບເຫດການຫນຶ່ງຂອງການລົງທະບຽນໃບຫນ້າ, ການຮັບຮູ້ໃບຫນ້າແລະການລຶບຜູ້ໃຊ້ທີ່ຖືກກະຕຸ້ນຈາກແອັບຯ GUI ເມື່ອກົດປຸ່ມທີ່ກ່ຽວຂ້ອງຖືກຄລິກ.
ຫມາຍເຫດ: ຟັງຊັນ gui_set_virtual_face() ເອີ້ນວ່າໃນຜົນຜະລິດ UI HAL ສໍາລັບ preview ຮູບແບບຕ້ອງໄດ້ຮັບການປະຕິບັດໃນ custom.c:
- ຟັງຊັນ Clone gui_set_virtual_face() ຈາກ smart HMI\coffee_machine\cm4\custom \custom.c.
- ປ່ຽນຊື່ widget home_img_cameraPreview ກັບ screen_img_camera_preview ໃນຫນ້າທີ່.
- ປະຕິບັດຟັງຊັນການເອີ້ນຄືນ UI ກັບຕົ້ນແບບດຽວກັນກັບທຸກອັນໃນຜົນຜະລິດ UI HAL ພາຍໃຕ້ການຄວບຄຸມຂອງຄໍານິຍາມມະຫາພາກ #ifndef RT_PLATFORM ໃນ custom.c ເພື່ອໃຫ້ເຂົ້າກັນໄດ້ກັບໂຄງການ GUI Guider ເພາະວ່າຟັງຊັນເຫຼົ່ານີ້ຢູ່ໃນຜົນຜະລິດ UI HAL ແມ່ນຂຶ້ນກັບ. ເວທີຝັງ. ໃນ custom.c, ພວກເຂົາເຈົ້າແມ່ນຂຶ້ນກັບ simulator ໃນ GUI guider ແລະເປັນເອກະລາດກັບເວທີຝັງ. ຕົວຢ່າງampດັ່ງນັ້ນ, ການເອີ້ນຄືນການລົງທະບຽນໃບໜ້າແມ່ນຖືກປະຕິບັດດັ່ງລຸ່ມນີ້ສຳລັບຕົວຈຳລອງ GUI Guider ທີ່ແລ່ນ: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = ບໍ່ຖືກຕ້ອງ; ກັບຄືນ; }
ໝາຍເຫດ: ອ້າງອີງເຖິງຕົ້ນແບບດຽວກັນຂອງຫນ້າທີ່ແນະນໍາໃນຂັ້ນຕອນທີ 6 ຂອງພາກ 4.1.3
ຄໍານິຍາມ macro RT_PLATFORM ຖືກກໍານົດໄວ້ໃນການຕັ້ງຄ່າໂຄງການຂອງ MCUXpresso ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 7: - ປະກາດຟັງຊັນທັງໝົດທີ່ມີຊື່ UI_xxx_Callback() ແລະ gui_xxx() ໃນ custom.h ແລະເພີ່ມ custom.h ລວມຢູ່ໃນ smart_tlhmi_event_descriptor.h ເພື່ອແບ່ງປັນ GUI APIs ໃຫ້ກັບ UI ຜົນຜະລິດ HAL.
- ເພີ່ມຟັງຊັນໃໝ່ທີ່ມີຊື່ວ່າ gui_xxx() ໃນ custom.c ເພື່ອບັນລຸຟັງຊັນລຸ່ມນີ້:
- ພັດທະນາ GUI ໃນ GUI Guider:
- Clone the folder camera preview ປະກອບມີຊອບແວໂຄງການ GUI Guider ໃນໂຟນເດີ gui_guider ໃນຊຸດຊອບແວພື້ນຖານ lvgl_gui_camera_preview_ຊມ7. ປ່ຽນຊື່ທີ່ກ່ຽວຂ້ອງ camera_preview ກັບ face_rec ສໍາລັບ ex ໃຫມ່ampເລ.
- ຄັດລອກ custom.c ແລະ custom ທີ່ຖືກປັບປຸງຂ້າງເທິງ. h ກັບຊອບແວໂຄງການ GUI Guider ໃຫມ່.
- ເປີດໂຄງການ face_rec ໃໝ່ຢູ່ໃນ GUI Guider. ອັບເດດດັ່ງລຸ່ມນີ້:
- ເພີ່ມປຸ່ມໃໝ່ທີ່ມີຊື່ວ່າ ລຶບຜູ້ໃຊ້. ເພີ່ມທຸງທີ່ເຊື່ອງໄວ້ໃສ່ມັນເພື່ອວ່າປຸ່ມຈະຖືກເຊື່ອງໄວ້ເມື່ອແອັບ GUI ເລີ່ມຕົ້ນຂຶ້ນ.
- ເພີ່ມເສັ້ນລະຫັດຂອງການໂທຫາ API gui_event_face_rec_action() ທີ່ມີຕົວກໍານົດ ID ເຫດການທີ່ແຕກຕ່າງກັນກ່ຽວກັບ "ປ່ອຍອອກມາ" trigger ໃນການຕັ້ງຄ່າເຫດການຂອງປຸ່ມທັງຫມົດທີ່ລົງທະບຽນ, ການຮັບຮູ້ແລະລຶບຜູ້ໃຊ້ສໍາລັບການກະຕຸ້ນເຫດການຂອງການລົງທະບຽນໃບຫນ້າ, ການຮັບຮູ້ໃບຫນ້າແລະການລຶບຜູ້ໃຊ້. ຮູບທີ 8 ສະແດງລະຫັດສໍາລັບເຫດການຂອງການລົງທະບຽນປຸ່ມ:
- ອັບເດດລະຫັດທີ່ສ້າງຂຶ້ນຈາກ GUI Guider ກັບໂຄງການ MCUXpresso.
- ແທນທີ່ເນື້ອໃນຍົກເວັ້ນສໍາລັບຮູບພາບໂຟນເດີໃນໂຟນເດີທີ່ສ້າງຂຶ້ນຂອງໂຄງການ MCUXpresso SW ກັບອັນທີ່ສອດຄ້ອງກັນໃນໂຟນເດີທີ່ສ້າງຂຶ້ນຂອງໂຄງການ GUI Guider SW.
ໝາຍເຫດ: ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບການດັດແກ້ທີ່ແນະນໍາຂ້າງເທິງ, ໃຫ້ກວດເບິ່ງ exampຊອບແວທີ່ https://mcuxpresso.nxp.com/appcodehub.
ການກວດສອບກັບ exampໂຄງການ le
ເພື່ອໃຫ້ໄດ້ຮັບ exampຊຸດຊອບແວທີ່ປະກອບດ້ວຍຊັບພະຍາກອນແລະເຄື່ອງມືສໍາລັບບັນທຶກຄໍາຮ້ອງສະຫມັກນີ້, ໄປຢ້ຽມຢາມ: https://mcuxpresso.nxp.com/appcodehub. ເປີດ example ໂຄງການກ່ຽວກັບ MCUXpresso IDE. ສ້າງແລະໂຄງການ .axf file ໄປທີ່ທີ່ຢູ່ 0x30000000 ແລະຂຽນໂປຼແກຼມໃສ່ຖັງຊັບພະຍາກອນ file camera_preview_resource.bin ໄປຫາທີ່ຢູ່ 0x30800000.
ການຮັບຮູ້ໃບຫນ້າ LVGL GUI example ເຮັດວຽກຕາມປົກກະຕິດັ່ງຕໍ່ໄປນີ້:
- ກ່ອນview: ເມື່ອເປີດເຄື່ອງແລ້ວ, ວິດີໂອທີ່ຖ່າຍໂດຍກ້ອງຖ່າຍຮູບຈະສະແດງຢູ່ໃນພື້ນທີ່ສະເພາະຂອງກ້ອງກ່ອນview ໃນຫນ້າຈໍ GUI. ປ້າຍສະຖານະສະແດງ “Preview…”. ສໍາລັບລາຍລະອຽດ, ເບິ່ງຮູບ 3. ປຸ່ມລຶບຜູ້ໃຊ້ຖືກເຊື່ອງໄວ້. ເມື່ອຄລິກໃສ່ພື້ນທີ່ນອກປຸ່ມແລະຮູບພາບ, ມັນສະແດງໃຫ້ເຫັນກ່ອນview ລັດດັ່ງທີ່ກ່າວມາຂ້າງເທິງຫຼັງຈາກການລົງທະບຽນໃບໜ້າ ຫຼືການຮັບຮູ້ໃບໜ້າສິ້ນສຸດລົງ.
- ການລົງທະບຽນ:
- ທາຕອັບ: ເມື່ອກົດປຸ່ມລົງທະບຽນ, ການລົງທະບຽນໃບຫນ້າເລີ່ມຕົ້ນ. ປ້າຍກຳກັບສະຖານະປ່ຽນແປງເພື່ອສະແດງ “ການລົງທະບຽນ…”, ຮູບສີ່ຫລ່ຽມຄູ່ມືໃບໜ້າຈະສະແດງສີຟ້າ, ແລະແຖບຄວາມຄືບໜ້າຈະເລີ່ມສະແດງຄວາມຄືບໜ້າ. ໃຫ້ແນ່ໃຈວ່າໃບຫນ້າຂອງຜູ້ໃຊ້ສະແດງໃຫ້ເຫັນເຂົ້າໄປໃນສີ່ຫລ່ຽມຄໍາແນະນໍາໃບຫນ້າສີຟ້າສໍາລັບການລົງທະບຽນ.
- ຜົນສໍາເລັດ: ປ້າຍກຳກັບສະຖານະສະແດງ “ການລົງທະບຽນ…ຕົກລົງ” ແລະໝາຍເລກ ID ຜູ້ໃຊ້ທີ່ລົງທະບຽນແລ້ວ, ຮູບສີ່ຫລ່ຽມຄູ່ມືໃບໜ້າຈະກາຍເປັນສີແດງ ຖ້າການລົງທະບຽນໃບໜ້າສຳເລັດກ່ອນຄວາມຄືບໜ້າຈະສະແດງຢູ່ໃນແຖບ.
- ຄວາມລົ້ມເຫຼວ -> ໝົດເວລາ: ປ້າຍສະຖານະສະແດງ “ການລົງທະບຽນ…ໝົດເວລາ” ຖ້າການລົງທະບຽນໃບໜ້າຍັງລົ້ມເຫລວ ເມື່ອຄວາມຄືບໜ້າສະແດງຢູ່ໃນແຖບ.
- ຄວາມລົ້ມເຫຼວ -> ການຊໍ້າຊ້ອນ: ປ້າຍສະຖານະສະແດງ “ການລົງທະບຽນ…ລົ້ມເຫລວ”, ຮູບສີ່ຫລ່ຽມຄູ່ມືໃບໜ້າຈະກາຍເປັນສີຂຽວ ຖ້າໃບໜ້າທີ່ລົງທະບຽນຖືກຮັບຮູ້ກ່ອນຄວາມຄືບໜ້າຈະສະແດງເຕັມທີ່ແຖບ.
- ການຮັບຮູ້:
- ການເລີ່ມຕົ້ນ: ເມື່ອກົດປຸ່ມການຮັບຮູ້ຖືກຄລິກ, ການຮັບຮູ້ໃບໜ້າຈະເລີ່ມຂຶ້ນ. ປ້າຍກຳກັບສະຖານະປ່ຽນແປງເພື່ອສະແດງ “ການຮັບຮູ້…”, ຮູບສີ່ຫລ່ຽມຄູ່ມືໃບໜ້າຈະສະແດງສີຟ້າ, ແລະແຖບຄວາມຄືບໜ້າຈະເລີ່ມສະແດງຄວາມຄືບໜ້າ. ໃຫ້ແນ່ໃຈວ່າໃບຫນ້າຂອງຜູ້ໃຊ້ຖືກສະແດງຢູ່ໃນສີ່ຫລ່ຽມຄໍາແນະນໍາໃບຫນ້າສີຟ້າສໍາລັບການລົງທະບຽນ.
- ຜົນສໍາເລັດ: ປ້າຍກຳກັບສະຖານະສະແດງ “ການຮັບຮູ້… ຕົກລົງ” ແລະໝາຍເລກ ID ຜູ້ໃຊ້ທີ່ຮັບຮູ້ໄດ້, ຮູບສີ່ຫລ່ຽມຄູ່ມືໃບໜ້າຈະກາຍເປັນສີຂຽວ ຖ້າການຮັບຮູ້ໃບໜ້າສຳເລັດຜົນກ່ອນທີ່ຄວາມຄືບໜ້າຈະສະແດງຢູ່ໃນແຖບ. ໃນຈຸດ, ປຸ່ມລຶບຜູ້ໃຊ້ປາກົດ. ມັນຫມາຍຄວາມວ່າຜູ້ໃຊ້ໄດ້ຖືກອະນຸຍາດໃຫ້ລຶບພຽງແຕ່ເມື່ອມັນຖືກຮັບຮູ້.
- ພະຍາດ: ປ້າຍກຳກັບສະຖານະສະແດງ “ການຮັບຮູ້…ໝົດເວລາ” ຖ້າການຮັບຮູ້ໃບໜ້າຍັງລົ້ມເຫລວ ເມື່ອຄວາມຄືບໜ້າສະແດງໃຫ້ເຫັນເຕັມທີ່ແຖບ.
- ລຶບຜູ້ໃຊ້: ເມື່ອກົດປຸ່ມ “ລຶບຜູ້ໃຊ້” ຖືກຄລິກ, ຫຼັງຈາກການຮັບຮູ້ໃບໜ້າສຳເລັດແລ້ວ, ປ້າຍກຳກັບສະຖານະຈະປ່ຽນໄປສະແດງ “ລຶບຜູ້ໃຊ້… ຕົກລົງ” ດ້ວຍຮູບສີ່ຫຼ່ຽມຄູ່ມືໃບໜ້າກາຍເປັນສີຟ້າ ແລະ ຄວາມຄືບໜ້າຈະສະແດງຢູ່ໃນແຖບ. ປຸ່ມລຶບຜູ້ໃຊ້ຖືກເຊື່ອງໄວ້ອີກຄັ້ງ. ໃບໜ້າ/ຜູ້ໃຊ້ທີ່ຖືກຮັບຮູ້ຖືກລຶບອອກຈາກຖານຂໍ້ມູນ. ມັນຫມາຍຄວາມວ່າໃບຫນ້າ / ຜູ້ໃຊ້ນີ້ບໍ່ສາມາດຮັບຮູ້ໄດ້ຈົນກ່ວາຈະໄດ້ຮັບການລົງທະບຽນອີກເທື່ອຫນຶ່ງ.
ຫມາຍເຫດກ່ຽວກັບລະຫັດແຫຼ່ງໃນເອກະສານ
Exampລະຫັດທີ່ສະແດງຢູ່ໃນເອກະສານນີ້ມີລິຂະສິດຕໍ່ໄປນີ້ແລະໃບອະນຸຍາດ BSD-3-Clause:
ລິຂະສິດ 2024 NXP Redistribution and use in source and binary forms , ມີຫຼືບໍ່ມີການດັດແກ້, ແມ່ນອະນຸຍາດໃຫ້ມີເງື່ອນໄຂດັ່ງຕໍ່ໄປນີ້:
- ການຈັດຈໍາໜ່າຍລະຫັດແຫຼ່ງທີ່ມາຄືນໃໝ່ຕ້ອງຮັກສາແຈ້ງການລິຂະສິດຂ້າງເທິງ, ລາຍຊື່ເງື່ອນໄຂ ແລະຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບຕໍ່ໄປນີ້.
- ການແຈກຢາຍຄືນໃໝ່ໃນຮູບແບບຄູ່ຕ້ອງສ້າງຄືນໃໝ່ຕາມແຈ້ງການລິຂະສິດຂ້າງເທິງ, ບັນຊີລາຍຊື່ຂອງເງື່ອນໄຂ ແລະຂໍ້ປະຕິເສດຕໍ່ໄປນີ້ໃນເອກະສານ ແລະ/ຫຼືອຸປະກອນອື່ນໆຕ້ອງໄດ້ຮັບການສະໜອງໃຫ້ກັບການແຈກຢາຍ.
- ທັງຊື່ຂອງຜູ້ຖືລິຂະສິດ ຫຼືຊື່ຂອງຜູ້ປະກອບສ່ວນຂອງມັນອາດຈະບໍ່ຖືກໃຊ້ເພື່ອຮັບຮອງ ຫຼືສົ່ງເສີມຜະລິດຕະພັນທີ່ມາຈາກຊອບແວນີ້ໂດຍບໍ່ມີການອະນຸຍາດເປັນລາຍລັກອັກສອນສະເພາະກ່ອນ.
ຊອບແວນີ້ແມ່ນສະໜອງໃຫ້ໂດຍຜູ້ຖືລິຂະສິດ ແລະຜູ້ປະກອບສ່ວນ "ຕາມທີ່ເປັນ" ແລະການຮັບປະກັນໃດໆກໍຕາມ, ລວມທັງການຮັບປະກັນດ້ານການສະໜອງສິນຄ້າໂດຍຫຍໍ້, ແຕ່ບໍ່ຈຳກັດການຮັບປະກັນດ້ານການສະໜອງສິນຄ້າ. ຖືກປະຕິເສດ. ໃນກໍລະນີໃດກໍ່ຕາມ, ຜູ້ຖືລິຂະສິດຫຼືຜູ້ປະກອບສ່ວນຈະຕ້ອງຮັບຜິດຊອບຕໍ່ຄວາມເສຍຫາຍໂດຍກົງ, ໂດຍທາງອ້ອມ, ໂດຍບັງເອີນ, ພິເສດ, ແບບຢ່າງ, ຫຼືຄວາມເສຍຫາຍທີ່ຕາມມາ (ລວມທັງ, ແຕ່ບໍ່ຈໍາກັດຕໍ່, ຂະບວນການທາງວິຊາການ. ການບໍລິການ; ການສູນເສຍການນໍາໃຊ້, ຂໍ້ມູນ, ຫຼືຜົນກໍາໄລ; ການນໍາໃຊ້ຊອບແວນີ້, ເຖິງແມ່ນວ່າຈະໃຫ້ຄໍາແນະນໍາກ່ຽວກັບຄວາມເປັນໄປໄດ້ຂອງຄວາມເສຍຫາຍດັ່ງກ່າວ.
ປະຫວັດການແກ້ໄຂ
ຂໍ້ມູນທາງກົດໝາຍ
ຄໍານິຍາມ
ຮ່າງ — ສະຖານະພາບຮ່າງຢູ່ໃນເອກະສານຊີ້ໃຫ້ເຫັນວ່າເນື້ອໃນຍັງຢູ່ພາຍໃຕ້ການ review ແລະຂຶ້ນກັບການອະນຸມັດຢ່າງເປັນທາງການ, ເຊິ່ງອາດຈະເຮັດໃຫ້ມີການປ່ຽນແປງຫຼືເພີ່ມເຕີມ. NXP Semiconductors ບໍ່ໄດ້ໃຫ້ການເປັນຕົວແທນຫຼືການຮັບປະກັນໃດໆກ່ຽວກັບຄວາມຖືກຕ້ອງຫຼືຄວາມສົມບູນຂອງຂໍ້ມູນທີ່ລວມຢູ່ໃນສະບັບຮ່າງຂອງເອກະສານແລະຈະບໍ່ຮັບຜິດຊອບຕໍ່ຜົນສະທ້ອນຂອງການນໍາໃຊ້ຂໍ້ມູນດັ່ງກ່າວ.
ປະຕິເສດຄວາມຮັບຜິດຊອບ
- ການຮັບປະກັນແລະຄວາມຮັບຜິດຊອບຈໍາກັດ — ເຊື່ອກັນວ່າຂໍ້ມູນໃນເອກະສານນີ້ແມ່ນຖືກຕ້ອງ ແລະເຊື່ອຖືໄດ້. ຢ່າງໃດກໍ່ຕາມ, NXP Semiconductors ບໍ່ໄດ້ໃຫ້ການເປັນຕົວແທນຫຼືການຮັບປະກັນໃດໆ, ສະແດງອອກຫຼືສະແດງໃຫ້ເຫັນເຖິງຄວາມຖືກຕ້ອງຫຼືຄົບຖ້ວນຂອງຂໍ້ມູນດັ່ງກ່າວແລະຈະບໍ່ຮັບຜິດຊອບຕໍ່ຜົນສະທ້ອນຂອງການນໍາໃຊ້ຂໍ້ມູນດັ່ງກ່າວ. NXP Semiconductors ບໍ່ຮັບຜິດຊອບຕໍ່ເນື້ອໃນໃນເອກະສານນີ້ ຖ້າສະໜອງໃຫ້ໂດຍແຫຼ່ງຂໍ້ມູນພາຍນອກຂອງ NXP Semiconductors.
ໃນກໍລະນີໃດກໍ່ຕາມ NXP Semiconductors ຈະຕ້ອງຮັບຜິດຊອບຕໍ່ຄວາມເສຍຫາຍທາງອ້ອມ, ໂດຍບັງເອີນ, ການລົງໂທດ, ພິເສດຫຼືຜົນສະທ້ອນ (ລວມທັງ - ໂດຍບໍ່ມີການຈໍາກັດ - ການສູນເສຍຜົນກໍາໄລ, ການປະຫຍັດທີ່ສູນເສຍ, ການຂັດຂວາງທຸລະກິດ, ຄ່າໃຊ້ຈ່າຍທີ່ກ່ຽວຂ້ອງກັບການໂຍກຍ້າຍຫຼືການທົດແທນຜະລິດຕະພັນຫຼືຄ່າໃຊ້ຈ່າຍໃນການເຮັດວຽກໃຫມ່) ບໍ່ວ່າຈະເປັນ. ຫຼືບໍ່ຄວາມເສຍຫາຍດັ່ງກ່າວແມ່ນອີງໃສ່ການທໍລະຍົດ (ລວມທັງການລະເລີຍ), ການຮັບປະກັນ, ການລະເມີດສັນຍາຫຼືທິດສະດີທາງດ້ານກົດຫມາຍອື່ນໆ.
ເຖິງແມ່ນວ່າຄວາມເສຍຫາຍທີ່ລູກຄ້າອາດຈະເກີດຂື້ນດ້ວຍເຫດຜົນໃດກໍ່ຕາມ, ຄວາມຮັບຜິດຊອບລວມແລະຄວາມຮັບຜິດຊອບສະສົມຂອງ NXP Semiconductors ຕໍ່ລູກຄ້າສໍາລັບຜະລິດຕະພັນທີ່ອະທິບາຍຢູ່ທີ່ນີ້ຈະຖືກຈໍາກັດໂດຍສອດຄ່ອງກັບເງື່ອນໄຂແລະເງື່ອນໄຂຂອງການຂາຍທາງການຄ້າຂອງ NXP Semiconductors. - ສິດທິໃນການປ່ຽນແປງ — NXP Semiconductors ສະຫງວນສິດທີ່ຈະປ່ຽນແປງຂໍ້ມູນທີ່ຖືກເຜີຍແຜ່ໃນເອກະສານນີ້, ລວມທັງບໍ່ມີຂໍ້ຈໍາກັດສະເພາະແລະຄໍາອະທິບາຍຜະລິດຕະພັນ, ໄດ້ທຸກເວລາແລະໂດຍບໍ່ມີການແຈ້ງການ. ເອກະສານນີ້ປ່ຽນແທນ ແລະແທນທີ່ຂໍ້ມູນທັງໝົດທີ່ສະໜອງໃຫ້ກ່ອນການພິມເຜີຍແຜ່.
- ຄວາມເຫມາະສົມກັບການນໍາໃຊ້ — ຜະລິດຕະພັນ NXP Semiconductors ບໍ່ໄດ້ຖືກອອກແບບ, ອະນຸຍາດ ຫຼືຮັບປະກັນໃຫ້ເໝາະສົມກັບການນຳໃຊ້ໃນການຊ່ວຍເຫຼືອຊີວິດ, ລະບົບ ຫຼືອຸປະກອນທີ່ຈຳເປັນຕໍ່ຊີວິດ ຫຼືຄວາມປອດໄພ, ຫຼືໃນການນຳໃຊ້ທີ່ຄວາມລົ້ມເຫຼວ ຫຼືການເຮັດວຽກຜິດປົກກະຕິຂອງຜະລິດຕະພັນ NXP Semiconductors ສາມາດຄາດຫວັງໄດ້ຢ່າງສົມເຫດສົມຜົນ. ການບາດເຈັບສ່ວນບຸກຄົນ, ການເສຍຊີວິດຫຼືຊັບສິນທີ່ຮ້າຍແຮງຫຼືຄວາມເສຍຫາຍຕໍ່ສິ່ງແວດລ້ອມ. NXP Semiconductors ແລະຜູ້ສະຫນອງຂອງມັນບໍ່ຍອມຮັບຄວາມຮັບຜິດຊອບສໍາລັບການລວມແລະ / ຫຼືການນໍາໃຊ້ຜະລິດຕະພັນ NXP Semiconductors ໃນອຸປະກອນຫຼືຄໍາຮ້ອງສະຫມັກດັ່ງກ່າວແລະດັ່ງນັ້ນການລວມເອົາແລະ / ຫຼືການນໍາໃຊ້ດັ່ງກ່າວແມ່ນມີຄວາມສ່ຽງຂອງຕົນເອງຂອງລູກຄ້າ.
- ຄໍາຮ້ອງສະຫມັກ — ຄໍາຮ້ອງສະຫມັກທີ່ອະທິບາຍຢູ່ທີ່ນີ້ສໍາລັບຜະລິດຕະພັນເຫຼົ່ານີ້ແມ່ນສໍາລັບຈຸດປະສົງຕົວຢ່າງເທົ່ານັ້ນ. NXP Semiconductors ບໍ່ມີການເປັນຕົວແທນຫຼືການຮັບປະກັນວ່າຄໍາຮ້ອງສະຫມັກດັ່ງກ່າວຈະເຫມາະສົມກັບການນໍາໃຊ້ທີ່ລະບຸໄວ້ໂດຍບໍ່ມີການທົດສອບຫຼືດັດແກ້ເພີ່ມເຕີມ.
ລູກຄ້າມີຄວາມຮັບຜິດຊອບໃນການອອກແບບແລະການດໍາເນີນງານຂອງຄໍາຮ້ອງສະຫມັກແລະຜະລິດຕະພັນຂອງພວກເຂົາໂດຍນໍາໃຊ້ຜະລິດຕະພັນ NXP Semiconductors, ແລະ NXP Semiconductors ຍອມຮັບບໍ່ມີຄວາມຮັບຜິດຊອບຕໍ່ການຊ່ວຍເຫຼືອໃດໆກັບຄໍາຮ້ອງສະຫມັກຫຼືການອອກແບບຜະລິດຕະພັນຂອງລູກຄ້າ. ມັນເປັນຄວາມຮັບຜິດຊອບດຽວຂອງລູກຄ້າໃນການກໍານົດວ່າຜະລິດຕະພັນ NXP Semiconductors ແມ່ນເຫມາະສົມແລະເຫມາະສົມກັບຄໍາຮ້ອງສະຫມັກຂອງລູກຄ້າແລະຜະລິດຕະພັນທີ່ວາງແຜນ, ເຊັ່ນດຽວກັນກັບຄໍາຮ້ອງສະຫມັກທີ່ວາງແຜນແລະການນໍາໃຊ້ຂອງລູກຄ້າພາກສ່ວນທີສາມ (s). ລູກຄ້າຄວນສະຫນອງການອອກແບບທີ່ເຫມາະສົມແລະການປົກປ້ອງການດໍາເນີນງານເພື່ອຫຼຸດຜ່ອນຄວາມສ່ຽງທີ່ກ່ຽວຂ້ອງກັບຄໍາຮ້ອງສະຫມັກແລະຜະລິດຕະພັນຂອງພວກເຂົາ. NXP Semiconductors ບໍ່ຍອມຮັບຄວາມຮັບຜິດຊອບທີ່ກ່ຽວຂ້ອງກັບຄ່າເລີ່ມຕົ້ນ, ຄວາມເສຍຫາຍ, ຄ່າໃຊ້ຈ່າຍຫຼືບັນຫາທີ່ອີງໃສ່ຈຸດອ່ອນຫຼືຄ່າເລີ່ມຕົ້ນໃນຄໍາຮ້ອງສະຫມັກຫຼືຜະລິດຕະພັນຂອງລູກຄ້າ, ຫຼືຄໍາຮ້ອງສະຫມັກຫຼືການນໍາໃຊ້ໂດຍລູກຄ້າພາກສ່ວນທີສາມຂອງລູກຄ້າ. ລູກຄ້າຮັບຜິດຊອບໃນການທົດສອບທີ່ຈໍາເປັນທັງຫມົດສໍາລັບຄໍາຮ້ອງສະຫມັກແລະຜະລິດຕະພັນຂອງລູກຄ້າໂດຍໃຊ້ຜະລິດຕະພັນ NXP Semiconductors ເພື່ອຫຼີກເວັ້ນການເລີ່ມຕົ້ນຂອງຄໍາຮ້ອງສະຫມັກແລະຜະລິດຕະພັນຫຼືຂອງຄໍາຮ້ອງສະຫມັກຫຼືການນໍາໃຊ້ໂດຍລູກຄ້າພາກສ່ວນທີສາມ (s). NXP ບໍ່ຍອມຮັບຄວາມຮັບຜິດຊອບໃດໆໃນເລື່ອງນີ້. - ຂໍ້ກໍານົດແລະເງື່ອນໄຂຂອງການຂາຍການຄ້າ — ຜະລິດຕະພັນ NXP Semiconductors ຖືກຂາຍໂດຍອີງໃສ່ຂໍ້ກໍານົດແລະເງື່ອນໄຂທົ່ວໄປຂອງການຂາຍທາງດ້ານການຄ້າ, ທີ່ໄດ້ຈັດພີມມາຢູ່ທີ່ https://www.nxp.com/profile/terms, ເວັ້ນເສຍແຕ່ໄດ້ຕົກລົງເປັນຢ່າງອື່ນໃນຂໍ້ຕົກລົງສ່ວນບຸກຄົນທີ່ຖືກຕ້ອງ. ໃນກໍລະນີທີ່ຂໍ້ຕົກລົງສ່ວນບຸກຄົນໄດ້ຖືກສະຫຼຸບພຽງແຕ່ຂໍ້ກໍານົດແລະເງື່ອນໄຂຂອງສັນຍາທີ່ກ່ຽວຂ້ອງເທົ່ານັ້ນ. NXP Semiconductors ໃນທີ່ນີ້ຄັດຄ້ານຢ່າງຈະແຈ້ງທີ່ຈະນໍາໃຊ້ຂໍ້ກໍານົດແລະເງື່ອນໄຂທົ່ວໄປຂອງລູກຄ້າກ່ຽວກັບການຊື້ຜະລິດຕະພັນ NXP Semiconductors ໂດຍລູກຄ້າ.
- ການຄວບຄຸມການສົ່ງອອກ — ເອກະສານນີ້ພ້ອມທັງລາຍການທີ່ອະທິບາຍໃນທີ່ນີ້ອາດຈະເປັນຂຶ້ນກັບລະບຽບການຄວບຄຸມການສົ່ງອອກ. ການສົ່ງອອກອາດຈະຕ້ອງມີການອະນຸຍາດກ່ອນໜ້ານີ້ຈາກເຈົ້າໜ້າທີ່ທີ່ມີຄວາມສາມາດ.
- ຄວາມເຫມາະສົມກັບການນໍາໃຊ້ໃນຜະລິດຕະພັນທີ່ມີຄຸນນະພາບທີ່ບໍ່ແມ່ນລົດຍົນ — ເວັ້ນເສຍແຕ່ເອກະສານສະບັບນີ້ລະບຸຢ່າງຈະແຈ້ງວ່າຜະລິດຕະພັນ NXP Semiconductors ສະເພາະນີ້ແມ່ນມີຄຸນສົມບັດໃນລົດຍົນ, ຜະລິດຕະພັນດັ່ງກ່າວບໍ່ເຫມາະສົມສໍາລັບການນໍາໃຊ້ລົດຍົນ. ມັນບໍ່ມີຄຸນສົມບັດ ຫຼື ການທົດສອບໂດຍສອດຄ່ອງກັບການທົດສອບລົດຍົນ ຫຼືຄວາມຕ້ອງການຄໍາຮ້ອງສະຫມັກ. NXP Semiconductors ຍອມຮັບບໍ່ມີຄວາມຮັບຜິດຊອບສໍາລັບການລວມເອົາແລະ / ຫຼືການນໍາໃຊ້ຜະລິດຕະພັນທີ່ມີຄຸນນະພາບທີ່ບໍ່ແມ່ນລົດຍົນໃນອຸປະກອນຫຼືຄໍາຮ້ອງສະຫມັກລົດຍົນ.
ໃນກໍລະນີທີ່ລູກຄ້ານໍາໃຊ້ຜະລິດຕະພັນສໍາລັບການອອກແບບແລະນໍາໃຊ້ໃນການນໍາໃຊ້ລົດຍົນກັບຂໍ້ກໍານົດແລະມາດຕະຖານຂອງຍານຍົນ, ລູກຄ້າ (a) ຈະຕ້ອງໃຊ້ຜະລິດຕະພັນໂດຍບໍ່ມີການຮັບປະກັນຂອງ NXP Semiconductors ຂອງຜະລິດຕະພັນສໍາລັບການນໍາໃຊ້ລົດຍົນດັ່ງກ່າວ, ການນໍາໃຊ້ແລະສະເພາະ, ແລະ ( b) ທຸກຄັ້ງທີ່ລູກຄ້າໃຊ້ຜະລິດຕະພັນສໍາລັບການນໍາໃຊ້ລົດຍົນທີ່ເກີນຄວາມຈໍາເພາະຂອງ NXP Semiconductors ການໃຊ້ດັ່ງກ່າວຈະເປັນຄວາມສ່ຽງຂອງລູກຄ້າເອງເທົ່ານັ້ນ, ແລະ (c) ລູກຄ້າຈະຊົດເຊີຍຢ່າງເຕັມສ່ວນ NXP Semiconductors ສໍາລັບຄວາມຮັບຜິດຊອບ, ຄວາມເສຍຫາຍຫຼືການຮຽກຮ້ອງຜະລິດຕະພັນທີ່ລົ້ມເຫລວທີ່ເກີດຈາກການອອກແບບແລະການນໍາໃຊ້ຂອງລູກຄ້າ. ຜະລິດຕະພັນສໍາລັບຄໍາຮ້ອງສະຫມັກລົດໃຫຍ່ນອກເຫນືອຈາກການຮັບປະກັນມາດຕະຖານຂອງ NXP Semiconductors ແລະຂໍ້ມູນສະເພາະຂອງຜະລິດຕະພັນ NXP Semiconductors. - ການແປ — ສະບັບທີ່ບໍ່ແມ່ນພາສາອັງກິດ (ແປ) ຂອງເອກະສານ, ລວມທັງຂໍ້ມູນທາງກົດໝາຍໃນເອກະສານນັ້ນ, ແມ່ນສໍາລັບການອ້າງອີງເທົ່ານັ້ນ. ສະບັບພາສາອັງກິດຈະຊະນະໃນກໍລະນີທີ່ມີຄວາມແຕກຕ່າງລະຫວ່າງສະບັບແປແລະພາສາອັງກິດ.
- ຄວາມປອດໄພ — ລູກຄ້າເຂົ້າໃຈວ່າຜະລິດຕະພັນ NXP ທັງຫມົດອາດຈະມີຄວາມສ່ຽງທີ່ບໍ່ຮູ້ຈັກຫຼືອາດຈະສະຫນັບສະຫນູນມາດຕະຖານຄວາມປອດໄພທີ່ສ້າງຕັ້ງຂຶ້ນຫຼືສະເພາະທີ່ມີຂໍ້ຈໍາກັດທີ່ຮູ້ຈັກ. ລູກຄ້າມີຄວາມຮັບຜິດຊອບໃນການອອກແບບແລະການດໍາເນີນງານຂອງຄໍາຮ້ອງສະຫມັກແລະຜະລິດຕະພັນຂອງຕົນຕະຫຼອດຊີວິດຂອງເຂົາເຈົ້າເພື່ອຫຼຸດຜ່ອນຜົນກະທົບຂອງຊ່ອງໂຫວ່ເຫຼົ່ານີ້ຕໍ່ຄໍາຮ້ອງສະຫມັກແລະຜະລິດຕະພັນຂອງລູກຄ້າ. ຄວາມຮັບຜິດຊອບຂອງລູກຄ້າຍັງຂະຫຍາຍໄປສູ່ເຕັກໂນໂລຢີທີ່ເປີດແລະ / ຫຼືເປັນເຈົ້າຂອງອື່ນໆທີ່ສະຫນັບສະຫນູນໂດຍຜະລິດຕະພັນ NXP ເພື່ອໃຊ້ໃນຄໍາຮ້ອງສະຫມັກຂອງລູກຄ້າ. NXP ຍອມຮັບບໍ່ມີຄວາມຮັບຜິດຊອບຕໍ່ຄວາມອ່ອນແອໃດໆ. ລູກຄ້າຄວນກວດສອບການອັບເດດຄວາມປອດໄພຈາກ NXP ເປັນປະຈຳ ແລະຕິດຕາມຢ່າງເໝາະສົມ. ລູກຄ້າຈະຕ້ອງເລືອກຜະລິດຕະພັນທີ່ມີລັກສະນະຄວາມປອດໄພທີ່ກົງກັບກົດລະບຽບ, ກົດລະບຽບ ແລະມາດຕະຖານຂອງແອັບພລິເຄຊັນທີ່ຕັ້ງໃຈ ແລະຕັດສິນໃຈອອກແບບສູງສຸດກ່ຽວກັບຜະລິດຕະພັນຂອງຕົນ ແລະຮັບຜິດຊອບພຽງຢ່າງດຽວສຳລັບການປະຕິບັດຕາມກົດໝາຍ, ລະບຽບການ ແລະຄວາມປອດໄພທັງໝົດກ່ຽວກັບຜະລິດຕະພັນຂອງມັນ, ໂດຍບໍ່ສົນເລື່ອງ. ຂອງຂໍ້ມູນ ຫຼືການຊ່ວຍເຫຼືອທີ່ອາດຈະສະໜອງໃຫ້ໂດຍ NXP.
NXP ມີທີມງານຕອບໂຕ້ເຫດການຄວາມປອດໄພຂອງຜະລິດຕະພັນ (PSIRT) (ສາມາດຕິດຕໍ່ໄດ້ທີ່ PSIRT@nxp.com) ທີ່ຈັດການການສືບສວນ, ການລາຍງານ ແລະການແກ້ໄຂການແກ້ໄຂຕໍ່ກັບຊ່ອງໂຫວ່ດ້ານຄວາມປອດໄພຂອງຜະລິດຕະພັນ NXP.
NXP BV — NXP BV ບໍ່ແມ່ນບໍລິສັດປະຕິບັດງານ ແລະມັນບໍ່ໄດ້ແຈກຢາຍ ຫຼືຂາຍຜະລິດຕະພັນ.
ເຄື່ອງໝາຍການຄ້າ
ແຈ້ງການ: ຍີ່ຫໍ້ອ້າງອີງທັງໝົດ, ຊື່ຜະລິດຕະພັນ, ຊື່ບໍລິການ, ແລະເຄື່ອງໝາຍການຄ້າແມ່ນເປັນຊັບສິນຂອງເຈົ້າຂອງທີ່ກ່ຽວຂ້ອງ.
NXP - wordmark ແລະໂລໂກ້ແມ່ນເຄື່ອງຫມາຍການຄ້າຂອງ NXP BV
AMBA, Arm, Arm7, Arm7TDMI, Arm9, Arm11, Artisan, big.LITTLE, Cordio, CoreLink, CoreSight, Cortex, DesignStart, DynamIQ, Jazelle, Keil, Mali, Mbed, Mbed Enabled, NEON, POP, RealView, SecurCore, Socrates, Thumb, TrustZone, ULINK, ULINK2, ULINK-ME, ULINK-PLUS, ULINKpro, μVision, Versatile — ແມ່ນເຄື່ອງໝາຍການຄ້າ ແລະ/ຫຼື ເຄື່ອງໝາຍການຄ້າທີ່ຈົດທະບຽນຂອງ Arm Limited (ຫຼືບໍລິສັດຍ່ອຍ ຫຼືສາຂາຂອງມັນ) ໃນສະຫະລັດ ແລະ/ຫຼື ຢູ່ບ່ອນອື່ນ. ເຕັກໂນໂລຢີທີ່ກ່ຽວຂ້ອງອາດຈະຖືກປົກປ້ອງໂດຍສິດທິບັດ, ລິຂະສິດ, ການອອກແບບແລະຄວາມລັບທາງການຄ້າໃດໆຫຼືທັງຫມົດ. ສະຫງວນລິຂະສິດທັງໝົດ.
- i.MX — ເປັນເຄື່ອງໝາຍການຄ້າຂອງ NXP BV
- J-Link — ເປັນເຄື່ອງຫມາຍການຄ້າຂອງ SEGGER Microcontroller GmbH.
Microsoft, Azure, ແລະ ThreadX — ແມ່ນເຄື່ອງໝາຍການຄ້າຂອງກຸ່ມບໍລິສັດ Microsoft.
ກະລຸນາຮັບຮູ້ວ່າຫນັງສືແຈ້ງການສໍາຄັນກ່ຽວກັບເອກະສານນີ້ແລະຜະລິດຕະພັນທີ່ອະທິບາຍໃນທີ່ນີ້, ໄດ້ຖືກລວມເຂົ້າໃນພາກສ່ວນ 'ຂໍ້ມູນທາງກົດຫມາຍ'.
© 2024 NXP BV
ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ກະລຸນາຢ້ຽມຊົມ: https://www.nxp.com
- ວັນທີຂອງການປ່ອຍ: ວັນທີ 19 ເມສາ 2024
- ຕົວລະບຸເອກະສານ: AN14263
FAQ
Q: ຈຸດປະສົງຕົ້ນຕໍຂອງຜະລິດຕະພັນນີ້ແມ່ນຫຍັງ?
A: ຈຸດປະສົງຕົ້ນຕໍແມ່ນເພື່ອເຮັດໃຫ້ການທໍາງານການຮັບຮູ້ໃບຫນ້າໂດຍນໍາໃຊ້ແບບຈໍາລອງວິໄສທັດ AI&ML ກັບ LVGL GUI ງ່າຍດາຍ example ຢູ່ໃນກະດານ SLN-TLHMI-IOT.
ຖາມ: ນັກພັດທະນາໄດ້ຮັບຜົນປະໂຫຍດຈາກບັນທຶກແອັບພລິເຄຊັນນີ້ແນວໃດ?
A: ນັກພັດທະນາສາມາດຮຽນຮູ້ວິທີການປະຕິບັດການຮັບຮູ້ໃບຫນ້າໃນກອບຂັ້ນຕອນໂດຍຂັ້ນຕອນໂດຍໃຊ້ ex ສະຫນອງໃຫ້ample ແລະເຂົ້າໃຈຜູ້ຈັດການອຸປະກອນ, ອຸປະກອນ HAL, ແລະກົນໄກເຫດການທີ່ກ່ຽວຂ້ອງ.
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
NXP AN14263 ປະຕິບັດການຮັບຮູ້ໃບຫນ້າ LVGL GUI ໃນ Framewor [pdf] ຄູ່ມືຜູ້ໃຊ້ AN14263 ປະຕິບັດການຮັບຮູ້ໃບຫນ້າ LVGL GUI ເທິງ Framewor, AN14263, ປະຕິບັດການຮັບຮູ້ໃບຫນ້າ LVGL GUI ໃນ Framewor, ການຮັບຮູ້ໃບຫນ້າ LVGL GUI ໃນ Framewor, ການຮັບຮູ້ໃບຫນ້າເທິງ Framewor, ການຮັບຮູ້ກ່ຽວກັບ Framewor, Framewor |