NXP AN14263 Naskirina rûyê LVGL GUI li ser Framewor bicîh bike
Agahiya hilberê
Specifications
- Navê Berhem: Naskirina Rûyê LVGL GUI li ser Çarçoveyê
- Guhertoya Belge: 1 - 19 Avrêl 2024
- Keywords: Naskirina rû, LVGL GUI, Çarçove
Talîmatên Bikaranîna Product
- Serview
Vê hilber modela algorîtmaya dîtina AI&ML ji bo naskirina rûyê li ser çarçoveyek çalak dike da ku fonksiyona nasîna rû bi exek LVGL GUI-ya hêsan bicîh bîne.ampli ser panela SLN-TLHMI-IOT. - Çarçove Serîview
Nermalava çareseriyê li dora mîmariya çarçoweyê hatî sêwirandin ku rêveberên cîhazê yên berpirsiyar ji bo birêvebirina cîhazan, cîhazên HAL-ê ji bo hûrguliyên bingehîn ên razber, û bûyerên ji bo ragihandina di navbera cîhazên cihêreng de vedihewîne. - Features
Hilber destûrê dide pêkanîna fonksiyona naskirina rûyê bi pêş-kameraview li ser ekrana GUI-yê bi bişkokên ku qeydkirina rû, nasandin û rakirina rû bişkînin. Daneyên rûyê qeydkirî bi riya a li Flash-ê têne hilanîn file sîstem. - Naveroka Têkiliya Serlêdanê
Nîşeya serîlêdanê ekranek GUI ya LVGL bi kamera pêşîn re pêşkêşî dikeview û bişkokên ji bo çalakiyên-related rû. Ew ji pêşdebiran re dibe alîkar ku çarçovê fam bikin û meriv çawa bi karanîna ex-ya peydakirî nasîna rûyê bicîh tîneample.
Serview
NXP kitek pêşkeftina çareseriyê bi navê SLN-TLHMI-IOT ku balê dikişîne ser serîlêdanên HMI-ya jîr, daye destpêkirin. Ew HMI-ya jîr bi vîzyona ML, deng, û UI-ya grafîkî ya ku li ser yek NXP i.MX RT117H MCU hatî bicîh kirin çalak dike. Li ser bingeha SDK-ê, nermalava çareseriyê li ser sêwiranek bi navê çarçowe hatî çêkirin ku sêwiranên maqûl û xweşkirina fonksiyonên dîtin û deng piştgirî dike. Ji bo ku ji bikarhêneran re bibin alîkar ku platforma nermalavê çêtir bikar bînin, hin belgeyên bingehîn têne peyda kirin, mînakîample, rêberê bikarhênerê pêşveçûna nermalavê. Rêbername sêwirana nermalava bingehîn û mîmariya serîlêdanan destnîşan dike ku hemî pêkhateyên çareseriyê tevî çarçoweyê vedihewîne da ku ji pêşdebiran re bibe alîkar ku bi hêsanî û bikêrhatî sepanên xwe bi karanîna SLN-TLHMI-IOT bicîh bikin.
Ji bo bêtir agahdarî di derbarê çareseriyê û belgeyên têkildar de, biçin web rûpela Çareseriya HMI ya NXP EdgeReady Smart Li ser bingeha i.MX RT117H bi ML Vision, Deng, û UI-ya grafîkî. Lêbelê, hîn jî ji bo pêşdebiran ne ew qas hêsan e ku serlêdanên xwe yên HMI-ya jîr ên ku li ser van rêberên bingehîn vedibêjin bicîh bikin. Rêzikek notên serîlêdanê têne plan kirin ku ji bo xwendina pêşveçûna li ser çarçoveyê gav bi gav bibin alîkar. Ev nîşeya serîlêdanê li ser bingeha Kamera Pre-ya LVGL GUI yeview li ser Çarçoveyê (belgeya AN14147). Ev nîşeya serîlêdanê diyar dike ka meriv çawa modela algorîtmaya dîtinê ya AI&ML ji bo naskirina rûyê li ser çarçoweyê çalak dike da ku fonksiyona nasîna rû bi rêya kamerayê pêşde bicîh bike.view li ser ekrana GUI-yê bi GUI-ya LVGL-ya hêsan a exampli ser panela SLN-TLHMI-IOT. Di nota serîlêdanê de, example ekranek GUI ya LVGL bi kamerayek pêşîn pêşkêşî dikeview û hin bişkok ji bo destpêkirina qeydkirina rû, naskirin û rakirinê. Daneyên rûyê qeydkirî bi piçûkek li Flash-ê têne hilanîn file sîstem.
Di astek bilind de, nota serîlêdanê naveroka jêrîn vedigire:
- Taybetmendiya naskirina rûyê li ser çarçoveyê çalak bike.
- Piştgiriya databasa rûyê li ser çarçovê bi rê ve zêde bikin file sîstema li ser Flash.
- Serlêdana LVGL GUI bicîh bikin. Di nav danasîna jorîn de, ev belge ji pêşdebiran re dibe alîkar ku:
- Çarçove û nermalava çareseriya HMI ya jîr kûrtir fam bikin.
- Bi sepana LVGL GUI re li ser çarçoweyê naskirina rûyê wan AI&ML pêşve bibin.
Çarçove li serview
Nermalava çareseriyê di serî de li dora karanîna mîmariya çarçoweyê ku ji çend beşên cûda pêk tê hatî çêkirin:
- Rêvebirên cîhazê - beşa bingehîn
- Hardware Abstraction Layer (HAL) Devices
- Peyam / Bûyer
Wekî ku di jimar 1 de tê xuyang kirin, serview Mekanîzmaya çarçoveyê ev e:
Rêvebirên cîhazê ji rêvebirina amûrên ku ji hêla pergalê ve têne bikar anîn berpirsiyar in. Her cureyê cîhazê (kevn, derketin, û hwd.) xwedan rêveberê cîhaza-taybetî ya xwe ye. Bi rêveberek cîhazê re ku piştî ku cîhazên li ser wê têne tomar kirin dest pê dike, ew li bendê ye û peyamek kontrol dike ku piştî destpêkirin û destpêkirina cîhazên tomarkirî daneyan ji cîhaz û rêveberên din re veguhezîne. Amûrên HAL-ê li ser koda ajokerê-asta jêrîn têne nivîsandin, ku bi berhevkirina gelek hûrguliyên bingehîn re dibe alîkar ku têgihîştina kodê zêde bibe.
Bûyer rêgezek e ku bi navgîniya rêvebirên wan ve agahdarî di navbera cîhazên cihêreng de têne ragihandin. Dema ku bûyerek tê dest pê kirin, cîhaza ku yekem bûyer wergirtiye wê bûyerê bi rêvebirê xwe re ragihîne, dûv re jî rêveberên din ên ku ji bo wergirtina bûyerê hatine destnîşan kirin agahdar dike.
Sêwirana mîmarî ya çarçoveyê li ser sê armancên bingehîn bû:
- Hêsan-bikaranîna
- Flexibility / Veguheztin
- Birêvebirinî
Çarçove bi mebesta bilezkirina dema bazarê ji bo dîtin û serîlêdanên fêrbûna makîneyê hatî çêkirin. Ji bo peydakirina demek bilez a bazarê, girîng e ku nermalava xwe hêsan têgihîştin û guheztina hêsan e. Dema ku vê armancê di hişê xwe de bigire, mîmariya çarçoveyê hêsan e ku were guheztin bêyî ku sînordar be, û bêyî ku bi bihayê performansê were guheztin.
Ji bo bêtir agahdarî di derbarê çarçoveyê de, Rêbernameya Bikarhêner Pêşveçûna Nermalava Smart HMI (belgeya MCU-SMHMI-SDUG) bibînin.
Pirtûkxaneya Grafikên Ronahî û Berfereh (LVGL)
LVGL (Pirtûkxaneya Grafikên Ronahî û Berfireh) pirtûkxaneyek grafîkê ya belaş û çavkaniyek vekirî ye ku her tiştê ku hûn hewce ne ji bo afirandina GUI-yek pêvekirî bi hêmanên grafîkî yên hêsan, bandorên dîtbar ên xweşik û şopa bîranîna kêm peyda dike.
GUI Guider
GUI Guider amûrek pêşkeftina navbeynkariya bikarhêner a grafîkî ya ji NXP-ê ye ku bi pirtûkxaneya grafîkî ya LVGL-a-çavkaniya vekirî pêşkeftina bilez a pêşandanên kalîteya bilind dihêle. Edîtorê kaş-û-drop-ê ya GUI Guider karanîna gelek taybetmendiyên LVGL-ê yên wekî widget, anîmasyon, û şêwazan hêsan dike da ku GUI-yek bi hindiktirîn an jî bêyî kodkirinê biafirîne.
Bi tikandina bişkokekê, hûn dikarin serîlêdana xwe di hawîrdorek simulasyonê de bimeşînin an jî wê ji projeyek armancê re derxînin. Koda ku ji GUI Guider hatî hilberandin dikare bi hêsanî li projeya we were zêdekirin, pêvajoya pêşkeftinê bileztir dike û dihêle hûn bi rengek bêkêmasî navbeynkarek bikarhênerek pêvekirî li serîlêdana xwe zêde bikin. GUI Guider belaş e ku bi mebesta giştî ya NXP-ê û MCU-yên crossover-ê re bikar bîne û ji bo gelek platformên piştgirî şablonên projeyê yên çêkirî vedihewîne. Ji bo ku hûn di derheqê pêşkeftina LVGL û GUI de li ser Rêbernameya GUI-ê bêtir fêr bibin, Pirtûkxaneya Grafikên Ronahî û Berfireh û Rêbernameya GUI-ê kontrol bikin.
jîngeha Pêşveçûn
Pêşîn, ji bo pêkanîna ex-ê hawîrdora hardware û nermalavê amade û saz bikinample ser çarçowe.
jîngeha Hardware
Jîngeha hardware ji bo verastkirina berê hatî saz kirinample:
- Kîta pêşkeftina HMI aqilmend ku li ser bingeha NXP i.MX RT117H (kit SLN_TLHMI_IOT)
- SEGGER J-Link bi adapterek Cortex-M 9-pin û V7.84a an guhertoyek nûtir a ajokerê
jîngeha Software
Jîngeha nermalavê ji bo pêşdebirina berê hatî saz kirinample:
- MCUXpresso IDE V11.7.0
- GUI Guider V1.6.1-GA
- lvgl_gui_camera_preview_cm7 – exampLe koda nota serîlêdana duyemîn wekî nermalava bingehîn a pêşkeftinê ye. Ji bo hûragahiyan, binêre https://mcuxpresso.nxp.com/appcodehub.
- RT1170 SDK V2.13.0 - wekî çavkaniya kodê ji bo pêşveçûnê.
- Nermalava SLN-TLHMI-IOT V1.1.2 - koda çavkaniya HMI ya jîr ku li ser depoya NXP GitHub wekî çavkaniya kodê ji bo pêşkeftinê hatî berdan. Ji bo hûrguliyan, binihêrin: GitHub - NXP / mcu-smhmi li v1.1.2
Ji bo hûrguliyên di derbarê wergirtin û sazkirina hawîrdora nermalavê de, binihêrin: Destpêk bi SLN-TLHMI-IOT re.
Mîmariya Vision li ser çarçoveyê
Mîmariya vîzyonê ya li ser çarçoweyê di jimar 2 de tê nîşandan. Algoya dîtinê HAL (OASIS_HAL) pêvajoyên jêrîn hene:
- Piştî ku bûyerên têkildar ji UI HAL-ê ya derketinê werdigirin, bi modela algorîtmaya dîtinê ya AI&ML ve tomarkirin û naskirina rûyê xwe bikin. Encamên encamnameyê ji modela algorîtmê heya UI HAL-ê ya derketinê agahdar bikin.
- Li ser bingeha hindiktirîn databasa taybetmendiya rû digihîje (lê zêde bike, jêbirin…). file pergalê bi gazîkirina API-yên FaceDB HAL-ê piştî wergirtina bûyerên têkildar ji UI HAL-a derketinê.
- Dema ku hûn qeydkirin û naskirina rû dikin çarçoweya vîdyoya kamerayê ji kamera HAL bixwazin.
Li ser çarçoveyê naskirina rûyê bicîh bikin
LVGL GUI naskirina rûyê berêample (berêample paşê tê pêşkêş kirin) li ser çarçoweyê li ser bingehê berê tête bicîh kirinampKodên LVGL GUI Camera Preview li ser Çarçoveyê (belgeya AN14147).
Ji bo xwenîşandana naskirina rûyê di example, fonksiyona bingehîn a serîlêdana GUI (li xêza 3-ê li ekrana sereke binêre) wekî ku li jêr hatî destnîşan kirin tête sêwirandin:
- Serlêdana GUI dema ku bişkojka Qeydkirin an Naskirin bikirtîne bûyera tomarkirin an naskirina rû li UI HAL-a derketinê vedike. Û UI HAL-a derketinê bûyera zêdekirina bikarhênerek li algoya vîzyona HAL-ê piştî ku qeydkirina rû serketî bû agahdar dike.
- Serlêdana GUI dema ku bişkojka Jêbirina Bikarhêner bitikîne piştî ku rûyê bikarhêner were nas kirin bûyera jêbirina bikarhênerek li UI HAL-a derketinê vedike.
- Serlêdana GUI dema ku li derveyî bişkok û wêneyan li ser ekranê bitikîne, bûyera sekinandina algoya oasisê ya ku berbi UI HAL-a derketinê ve diçe vedike.
Pakêta nermalavê ji bo pêkanîna ex-ê amade bikinample.
- Nermalava bingehîn lvgl_gui_camera_pre klon bikinview_cm7. Navê projeyê û sereke biguherînin filenavê lvgl_gui_face_rec_cm7.
- Pêdivî ye ku çarçove di nermalavê de were nûve kirin ji ber ku kodên çavkaniyê ji bo bingeha çarçovê ji guhertoya 1.1.2-ê li ser GitHub-ê dest bi gelemperî kirine.
- Peldanka çarçoveyê bi kopiya V1.1.2 ji GitHub-ê ji bilî ya files fwk_log.h û fwk_common.h di bin inc\ de ji ber ku ew ji bo rêzika serîlêdanê hatine guheztin. Operasyon di Figure 4 de têne xuyang kirin:
- Peldanka frame_cm7 di bin koma libs de jêbirin û pirtûkxaneyê framework_cm7 û riya lêgerîna wê ya ku di Proje> Taybetmendî> C/C++ Avakirin> Mîheng> Mîhengên Amûran> MCU C++ Linker> Pirtûkxane ji ber ku koda çavkaniyê ya bingehîn tê mîheng kirin jêbirin.
Taybetmendiya naskirina rûyê li ser çarçoveyê çalak bike
Taybetmendiya naskirina rû li ser modela algorîtmaya vîzyonê ML hatî çêkirin ku wekî pirtûkxaneyek statîk tê peyda kirin - pirtûkxaneyek dema xebatê ya oasis lite ji hêla NXP ve. Pirtûkxane pirtûkxaneyek AI-ya piçûk, pir bikêrhatî, xweşkirî û xweşbîn e. Di modelê de tespîtkirina rû, naskirina rû, tespîtkirina camê, û vedîtina zindîtiyê heye. Ew bi gelemperî API-ya OASISLT_run_extended() peyda dike da ku dema ku bi navgîniya vegerandina bûyeran ve encaman ji bangker re nûve dike, lûleya nasîna rû bimeşîne, û piştî ku agahdariya çarçoweya çavkaniyê, vegerandin û bîranînê diyar bike, rûyên di databasê de bi navgîniya vegerandina databasa rû zêde bike/nûje bike/ jêbirin. hewza ku ji hêla pirtûkxaneyê ve tê bikar anîn bi gazîkirina API-ya din OASISLT_init() li ser destpêkirinê. Banga API-yan û fonksiyonên vegerê di çarçoweya algoya vîzyona HAL-ê de têne bicîh kirin.
Pirtûkxaneya modela algo ya vîzyonê zêde bikin
- Oasisa peldanka ku pirtûkxane û sernivîsa têkildar vedihewîne kopî bikin file ji HMI'ya_qehwe\cm7\libs\ aqilmend li peldanka peldanka berêample SW.
- Riya lêgerînê ya sernavê zêde bikin file li Proje> Taybetmendî> C/C++ Avakirin> mîheng> Mîhengên Amûran> Berhevkarê MCU C> Têde û berhevkarê MCU C++> Tê de: "${workspace_loc:/${ProjName}/libs/oasis/include}"
- Lîb û riya lêgerîna wê li ser Proje> Taybetmendî> C/C++ Avakirin> mîheng> MCU C+ + Linker> Pirtûkxane: liboasis_lite2D_DEFAULT_117f_ae.a "${workspace_loc:/${ProjName}/libs/oasis}" û pênaseya makro lê zêde bikin. taybetmendiya li ser Projeyê> Taybetmendî> Çêkirina C/C++> Mîhengên> Mîhengên Amûrê> Berhevkarê MCU C> Berhevkar û Berhevkarê MCU C++> Pêşkêşkar: SMART_TLHMI_2D
Algo Vîzyonê HAL çalak bike
Vîzyona algo HAL modela algo ya vîzyonê dixebitîne û piştî ku bûyeran jê werdigire, encaman bersivê dide derana UI HAL.
Ji bo çalakkirina wê, ajokera HAL-ê ya ku hebû klon bikin file ku fonksiyonên jêrîn têne bicîh kirin:
- Banga vegerandina operasyonên databasa rû û birêvebirina bûyeran bicîh bînin.
- Bi bangkirina API-yên pirtûkxaneya oasisê algoya vîzyonê bixebitînin.
- Gihîştin databasa rûyê bikarhêner û databasa sepanê (ew ne hewce ye ku berêample).
- Bûyeran bistînin û encaman bişînin UI HAL.
Karên sereke ji bo pêkanîna HAL-ê ji bo berêampev in:
- Ajokarê HAL-ê yê bi heman rengî klon bikin file û navên têkildar biguherînin.
- Kodên ku bi karûbarên daneya sepanê ve girêdayî ne rakin.
- Danasîn û fonksiyonên ji bo birêvebirina bûyeran ji UI HAL-a derketinê li gorî berê nûve bikinample design.
- Veavakirinên ku di destpêkirina oasis de hewce ne zêde bikin.
Pêngavên berfireh wiha ne:
- Clone hal_vision_algo_oasis_coffeemachine.c. Biguherînin filenavê hal_vision_algo_oasis_guifacerec.c. Û hemî rêzikên CoffeeMachine-ê bi GUIFaceRec-ê veguherînin file.
- Kodên ku tê de stêra coffeedb-yê (ne hesas) bi databasa sepanê ve girêdayî ne, ji holê rakin.ample, #include hal_sln_coffeedb.h.
- Fonksiyona HAL_VisionAlgoDev_OasisGUIFaceRec_InputNotify() biguherîne ji bo birêvebirina bûyerên ji UI-ya derketinê HAL.
- Ji bo birêvebirina bûyerê pênaseya bûyerê biguhezîne kEventFaceRecId_RegisterCoffeeSelection bo kEventFaceRecId_RegisterUserFace û strûktûra rêzika regCoffeeSelection bi regGUIFaceRec biguhezîne da ku daneyên taybetmendiya rûyê nû li databasê zêde bike.
- Ji bo nîşankirina pêvajoya standard ya kiryarên nasîna rûyê di example, di doza kEventFaceRecID_OasisSetState de bi pênaseyên dewletan re destwerdanê biguherînin:
- kOASISLiteState
- Registration kOASISLiteState
- Naskirina kOASISLiteState
- Rawestiyan
- Pênaseyên bûyerên ku di gava jorîn de hatine destnîşan kirin zêde bikin û biguhezînin.
- Sernivîsê kopî bikin file smart_tlhmi_event_descriptor.h ji smart HMI\coffee_machine \cm7\source\event_handlers\ nav çavkaniya peldanka berêample SW. Nûve bikin file wek jêrîn:
- Pênasekirina bûyerê kEventFaceRecId_RegisterCoffeeSelection biguherîne bo kEventFaceRecId_RegisterUserFace di cureya enum _event_smart_tlhmi_id de û rêzika strukturê regCoffeeSelection bike regGUIFaceRec di struct _eventhmit_ de. Ji ber vê yekê, struct register_coffee_selection_event_t ji bo regCoffeeSelection biguherîne register_gui_facerec_event_t.
- Naverokên din ên ku ji bo sepana makîneya qehweyê têne bikar anîn jêbirin, mînakîample, rêzika kodê di derbarê deng de: #include "hal_event_descriptor_voice.h".
- Cûreyên kOASISLiteState_Stopped û kOASISLiteState_Running li cureya enum oasis_lite_state_t li hal_vision_algo.h di binê çarçoveyê>hal>vîzyonê de di projeyê de wekî jêrîn zêde bikin:
typedef enum _oasis_lite_state {- kOASISLiteState
- Diherike, kOASISLiteState
- Rawestiya, kOASISLiteState
- Nasî,
- kOASISLiteState
- Qeydkirin, kOASISLiteState
- Qeydkirin, kOASISLiteState
- RemoteRegistration, kOASISLiteState
- Jimartin
- Oasis_lite_state_t-a nûvekirî ya jorîn bikar bînin da ku struct oasis_state_event_t li hal_event_descriptor_face_rec.h di binê frame>hal>vîzyonê de di projeyê de wekî jêrîn safî bikin: typedef struct _oasis_state_event_t { oasis_lite_state_t state; } oasis_state_event_t;
- Hemî kEventInfo_Remote biguhezîne kEventInfo_Local ji bo şandina bûyeran ji algoya dîtbarî HAL ji HAL-ên din re ku li ser heman bingehê dixebitin wekî yek-core li şûna du-core di berê de tê bikar anîn.ample.
- Ji bo destpêkirina oasis di OASISLT_init():
- Pênaseyên makro û beşên bîranînê ji bo çarçoweya vîdyoyê li board_define.h zêde bikin: #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_SHMEM_SECTION_ALIGN(var, alignbytes) \
- __attribute__((beş(".bss.$fb_sh_mem,\"aw\",%nobits @"))) var
- __taybetî__((aligned (alignbytes)))
- Li ser Projeyê> Taybetmendî> Çêkirina C/C++> Mîhengên MCU yên ku di Figure 5-ê de têne xuyang kirin, peywira bîranînê li beşa bîranîna jorîn fb_sh_mem veava bikin:
- Guherbara gerdûnî g_DTCOPBuf di lvgl_gui_face_rec_cm7.cpp de diyar bike: AT_NONCACHEABLE_SECTION_ALIGN_DTC (uint8_t g_DTCOPBuf[DTC_OPTIMIZE_BUFFER_SIZE], 4);
- Zêdekirina pênaseyên ku di guherbara jorîn de hatine bikar anîn bidomînin:
- Di board_define.h de beşa jorîn diyar bikin:
- #define AT_NONCACHEABLE_SECTION_ALIGN_DTC(var, alignbytes) \
- taybetmendî__((beş(".bss.$SRAM_DTC_cm7,\"aw\",%nobits @"))) var
- taybetmendî__((aligned (alignbytes)))
- Sernivîsê tê de file hal_vision_algo.h pênaseya makro DTC_OPTIMIZE_BUFFER_SIZE di app_config.h de di lvgl_gui_face_rec_cm7.cpp de heye.
- Pênaseyên makro û beşên bîranînê ji bo çarçoweya vîdyoyê li board_define.h zêde bikin: #define OASIS_RGB_FRAME_WIDTH 800
- Guherbara s_debugOption ji bo nîşandana statûya pêşkeftinê li ser naskirina rûyê rast bike.
- Riya lêgerînê ya sernavê zêde bikin files ya vîzyona HAL li ser Projeyê > Taybetmendî > C/C++ Avakirin > Mîheng > Mîhengên Amûrê > Berhevkarê MCU C > Têde û Berhevkarê MCU C++ > Tê de: "${workspace_loc:/${ProjName}/çarçove/hal/vision}"
- Ji bo çalakkirina algoya dîtbarî HAL di board_define.h de pênaseya jêrîn lê zêde bike: #define ENABLE_VISIONALGO_DEV_Oasis_GUIFaceRec
Encama UI HAL çalak bike
Hilbera UI HAL bûyeran ji algoya dîtbarî HAL re agahdar dike û bersivê dide encamên encamên ji algoya dîtbarî HAL. Bi serîlêdana GUI re, bûyer bi gelemperî ji hêla sepanê ve têne rêve kirin û encam li ser sepanê têne xuyang kirin.
Ji bo çalakkirina wê, ajokera HAL-ê ya ku hebû klon bikin file ku bi gelemperî fonksiyonên jêrîn têne bicîh kirin:
- Bûyeran ji bo naskirina rû û gihîştina databasê agahdar bikin.
- Ji bo sepana GUI vegerên bangê bicîh bînin da ku bûyeran bişkînin.
- Encamên encamnameyê ji modula algo ya vîzyonê bi rê ve bibin.
- Pêvajo û encamên bûyerên ku li ser UI-yê têne rêve kirin ji hêla barika pêşkeftinê ya ku bi demjimêr û çargoşeya rêberiya rûyê têne kontrol kirin nîşan bidin.
Karên sereke ji bo pêkanîna HAL-ê ji bo berêampDi vê belgeyê de têne bikaranîn ev in:
- Ajokarê HAL-ê yê bi heman rengî klon bikin file û navên têkildar biguherînin.
- Kodên bi sepanê ve girêdayî rakin.
- Fonksiyonên ji bo agahdariya bûyeran û bersiva encamên li gorî berê nûve bikinample design.
- Ji bo sepana GUI vegerên bangê lê zêde bikin da ku bûyeran bişopînin.
Pêngavên berfireh wiha ne:
- Clone hal_output_ui_coffee_machine.c. Guhertin filenavê hal_ output_ui_guifacerec.c.
- Di nav de hemî rêzikên CoffeeMachine bi GUIFaceRec veguherînin file.
- Kodên ku bi sepanê ve girêdayî ne - makîneya qehweyê rakin.
- Fonksiyonên WakeUp() û _StandBy() û kodên pêwendîdar rakin (dibe ku rêzika wake_up û standby ji bo wan bigerin).
- Pêşî jêbirinview bûyerên modê ku kodên têkildar di HAL_OutputDev_UiGUIFaceRec_Input Notify().
- Fonksiyonên UI_xxx_Callback() û kodên ku tê de rêzika gui_ û ekrana ku bi GUI-ya makîneya qehweyê ve girêdayî ne ji xeynî gui_set_virtual_face() ji bo pêşdibistanê rake.view taybetiya modê.
- Hemî kodên ku bi guhêrbarên s_IsWaitingAnotherSelection û s_IsWaitingRegisterSelection ve girêdayî bi sepana makîneya qehweyê ve girêdayî ne rakirin.
- Kodên bi deng, deng, û ziman ve girêdayî rakin. Ji bo example:
- #include "hal_voice_algo_asr_local.h",
- #include "hal_event_descriptor_voice.h"
- Ji bo agahdarkirina bûyerên cihêreng, fonksiyonên nû _OutputManagerNotify(), _SetFaceRec(), _RegisterGUIFaceRec(), û DeregisterGUIFaceRec() bi cih bînin ku ji fonksiyonên _StopFaceRec(), _RegisterCoffeeSelection(), û DeregisterCoffee() berî jêbirina wan vedibêjin.
- _OutputManagerNotify() fonksiyona derketina bûyerê ya bingehîn pêk tîne da ku bûyerek bişîne algoya dîtbarî HAL. Fonksiyonên jêrîn jê re dibêjin ku bûyerên xwe bişînin.
- _SetFaceRec() bûyera kEventFaceRecID_OasisSetState dişîne da ku algoya dîtinê ji bo qeydkirina rû, naskirinê, û algoyê rawestîne.
- _RegisterGUIFaceRec() bûyera kEventFaceRecId_RegisterGUIFaceRec ya ku di smart_tlhmi_event_descriptor.h de hatiye pênasekirin dişîne da ku dema qeydkirinê baş be daneyên taybetmendiya rû li databasê zêde bike.
- DeregisterGUIFaceRec() bûyera kEventFaceRecID_DelUser dişîne da ku daneyên taybetmendiya rû ji databasê jê bibe dema ku nasîna rû derbas dike.
- Kodên nûve bikin da ku tevdîrên peywendîdar bikin, tevî nûvekirina GUI-yê, bi gazîkirina API-yên ji sepana LVGL GUI-yê ji bo encamên encamdana tomarkirin û naskirina rû di fonksiyona _InferComplete_Vision() de li gorî berê.ample's design. Ji bo example, gava ku qeydkirina rûyê serketî ye,
- Bi banga _FaceRecProcess_Stop();
- Bi banga _SetFaceRec(kOASISLiteState_Stopped) qeydkirina rûyê rawestîne;
- Encama serketî li ser GUI nîşan bide: gui_show_face_rec_result(kFaceRecResult_OK, s_UserId);
- Daneyên rû li databasê qeyd bikin: _RegisterUserFace(s_UserId);
- Fonksiyonên vegerandina UI-yê zêde bikin da ku bûyeran birêve bibin: pêşview, qeydkirina rû, nasîn, û jêbirina bikarhênerê ku ji GUI hatî destpêkirin. Ji bo examplê, vegerandina qeydkirina rûyê: betal UI_Registration_Callback(){ _SetFaceRec(kOASISLiteState_Registration); _FaceRecProcess_Start(); }
- Û fonksiyonên _FaceRecProcess_Start() û _FaceRecProcess_Stop() lê zêde bikin da ku di bûyer û encamên cûda de pêşkeftin û statûyê nîşan bidin.
- Demjimêr ISR fonksiyona vegerandina bangê _SessionTimer_Callback() nûve bike da ku bi banga: gui_show_face_rec_result(kFaceRecResult_TimeOut, s_UserId);
- Pênaseyên jêrîn lê zêde bikin da ku di board_define.h de derketina UI çalak bike HAL: #define ENABLE_OUTPUT_DEV_UiGUIFaceRec
Nivîsk:
Ji bo ku taybetmendiya naskirina rûyê çêtir were pêşkêş kirin, fonksiyonê bihêle ku pêvajo û encamên nasîna rû di UI HAL-a derketinê de nîşan bide. Fonksiyon wekî jêrîn tête diyar kirin
- Çargoşeya rêberiya rû şîn nîşan dide, û barê pêşkeftinê dema ku dest bi qeydkirin an naskirina rû dike pêşkeftinê nîşan dide.
- Dema ku qeydkirina rûyê serketî be, çargoşeya rêberê rû sor nîşan dide.
- Dema ku naskirina rû bi serketî be, çargoşeya rêberê rû kesk nîşan dide.
- Çargoşeya rêberiya rû şîn dimîne, û bara pêşkeftinê gava ku çalakî piştî bidawîbûna demjimêrê neserketî pêşkeftina tevahî nîşan dide. Di wê nuqteyê de, qeydkirin an naskirina rûyê rawestînin.
Bara pêşkeftinê û çargoşeya rêberiya rû wekî îkonên ku di binarya çavkaniyê de hatine çêkirin têne pêşkêş kirin file ku di Flash-ê de were bername kirin. Nîşaneyên daneyên îkonan ên li ser SDRAM-ê di fonksiyona LoadIcons (APP_ICONS_BASE) de têne saz kirin ku li ser destpêkirina cîhaza UI HAL-a derketinê ya di UI HAL-a derketinê de tê gotin. Pêdivî ye ku ew piştgirîya îkonan ji bo fonksiyonê bicîh bîne.
Piştgiriya îkonan bicîh bikin
- Çavkaniyê ava bikin ku îkonan bi wêneyên ku di serîlêdana LVGL GUI de têne bikar anîn de berhev bikin:
- Sernavê çar îkonê klon bikin files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, û virtual_face_red_420x426.h ji smart HMI
\ makîneya qehwe \ çavkanî \ îkonên \ li îkonên peldanka nû ya di binê peldanka çavkaniyê ya berê deample SW. - Rêya lêgerînê ji bo çar îkonê zêde bikin files di camera_preview_resource.txt file di peldanka çavkaniyê de, ji bo nimûneample: icon ../resource/icons/process_bar_240x14.h
- Camera_pre pêk bîninview_resource_build.bat ji bo afirandina wêne û îkonan çavkaniyên ji bo hilberandina bin file camera_preview_resource.bin û agahî file resource_information_table.txt (Binêre Wêne 6).
- Sernavê çar îkonê klon bikin files process_bar_240x14.h, virtual_face_blue_420x426.h, virtual_face_green_420x426.h, û virtual_face_red_420x426.h ji smart HMI
- Navnîşana destpêkê ya li ser SDRAM û mezinahiya îkonan di app_config.h de diyar bikin. Navnîşan li kêleka wêneyên sepana GUI dest pê dike. Mezinahî di agahiyê de tê çêkirin file. #define APP_ICONS_BASE (APP_RES_SHMEM_BASE + APP_LVGL_IMGS_SIZE) #define APP_ICONS_SIZE 0x107c40
- Mezinahiya tayînkirî ya beşa bîranînê ya bi navê res_sh_mem bi 0x200000 nûve bikin û di app_config.h de ji nû ve pênase bikin: #define RES_SHMEM_TOTAL_SIZE 0x200000 û mîhenga têkildar li Proje> Taybetmendî> C/C++ Avakirin> Mîhengên MCU.
- Di fonksiyona APP_LoadResource() ya sereke de mezinahiya îkonê bi tevahî mezinahiya çavkaniya ku ji Flash-ê berbi SDRAM-ê hatî barkirin zêde bikin file lvgl_gui_face_rec_cm7.cpp: memcpy((vala *)APP_LVGL_IMGS_BASE, pLvglImages, APP_LVGL_IMGS_SIZE + APP_ICONS_SIZE);
Nivîsk: Ji bo temamkirina taybetmendiya naskirina rû, piştgiriya sepana LVGL GUI hewce ye. Fonksiyonên vegerandina UI-yê di UI HAL-a derketinê de ji hêla serîlêdana LVGL GUI ve ji bo birêvebirina bûyeran ji ekrana UI-yê têne gazî kirin. Ji hêla din ve, UI HAL-a derketinê bangî API-yên ji serîlêdana LVGL GUI dike ku UI-yê nûve bike da ku encam û statûyê nîşan bide. Pêşveçûna serîlêdana LVGL GUI bi rengek serbixwe ye û di beşa 4.3 de hatî destnîşan kirin.
4.1.5 Amûr û rêveberên HAL-ê ji bo naskirina rûyê dest pê bikin
Algo vîzyona çalak HAL û UI derket HAL û rêvebirên wan di serî de dest pê kirin file
lvgl_gui_face_rec_cm7.cpp veguhertinên pêşkeftinê yên li ser çarçovê wekî jêrîn:
- Sernivîsê tê de file bi lêzêdekirina rêzika kodê bi du rêvebirên HAL-ê re têkildar in:
- #include ” fwk_output_manager.h”
- #include "fwk_vision_algo_manager.h"
- Amûrên HAL-ê diyar bikin:
- HAL_VALGO_DEV_DECLARE(OasisGUIFaceRec);
- HAL_OUTPUT_DEV_DECLARE(UiGUIFaceRec);
- Amûrên HAL tomar bikin:
- HAL_VALGO_DEV_REGISTER(OasisGUIFaceRec, ret);
- HAL_OUTPUT_DEV_REGISTER(UiGUIFaceRec, ret);
- Rêvebiran bidin destpêkirin:
- FWK_MANAGER_INIT(VisionAlgoManager, ret);
- FWK_MANAGER_INIT(OutputManager, ret);
- Rêveberan dest pê bikin:
- FWK_MANAGER_START(VisionAlgoManager, VISION_ALGO_MANAGER_TASK_PRIORITY, ret);
- FWK_MANAGER_START(OutputManager, OUTPUT_MANAGER_TASK_PRIORITY, ret);
- Pêşîniya karên rêveberê diyar bikin:
- #define VISION_ALGO_MANAGER_TASK_PRIORITY 3
- #define OUTPUT_MANAGER_TASK_PRIORITY 1
Piştgiriya databasa rûyê li ser çarçoveyê zêde bikin
Daneyên taybetmendiya rûyê qeydkirî di databasa rûyê ku li Flash-ê hatî hilanîn de bi piçûkek piçûk tête peyda kirin file sîstem. Pêngavên ji bo lê zêdekirina piştevaniya databasa rû li jêr têne diyar kirin.
Ji bo hilanînê Flash ajokaran zêde bikin
Navbera Flash ajokera FlexSPI kopî bikin files fsl_flexspi.c û fsl_flexspi.h, û ajokera şîfrekirina daneyê files fsl_caam.c û fsl_caam.h ji riya SDK_2_13_0_MIMXRT1170-EVK\devices \MIMRX1176\drivers\ berbi peldanka ajokarên berêample SW.
Piştgiriya asta panelê zêde bikin
- Pênaseyên FlexSPI-ya ku ji bo cîhaza Flash-ê ya li ser panelê tê bikar anîn li board.h zêde bikin:
- #define BOARD_FLEXSPI FLEXSPI1
- #define BOARD_FLEXSPI_CLOCK kCLOCK_FlexSpi1
- #define BOARD_FLEXSPI_AMBA_BASE FlexSPI1_AMBA_BASE
- Operator û mîhengan kopî bikin files yên cîhaza Flash-ê flexspi_nor_flash_ops.c, flexspi_nor_flash_ops.h, sln_flash_config.c, sln_flash_config_w25q256jvs.h, andsln_flash_ops.h di bin rêya HMI\coffee_config7_çavkaniya smart\ne de peldanka smart\ne peldanka/coffee_configXNUMX_maample SW.
- Li C/C++ Build > Mîhengan piştî klîkkirina rastê ya li ser "Çavkaniyê ji çêkirinê derxe" hilbijêre. filenavê s' û vekirina Taybetmendiyan ji bo ku ew di projeyê de werin çêkirin.
- Sernivîsa tê de biguherînin filenavê sln_flash_config.h bike sln_flash_config_w25q256jvs.h li sln_flash_config.c û flexspi_nor_flash_ops.h.
- Çavkaniya demjimêra FlexSPI1 di nav de bicîh bikin file clock_config.c sepana makîneya qehweyê vedibêje.
Piştgiriya adapter û asta navîn zêde bikin
- Kopî bikin files sln_flash.c, sln_flash.h, sln_encrypt.c, û sln_encrypt.h wekî ajokarên adapterê ji bo file pergal û sepanê ji rêça HMI-ya_kafe-mahîn\cm7\çavkanî\ berbi çavkaniya peldanka berêample. Ya nû nûve bikin files:
- Ji bo avakirinê li ser wan "Çavkaniyê ji avakirinê derxin" hilînin.
- Hemî sernivîsa tê de biguhezînin file navê sln_flash_config.h bike sln_flash_config_w25q256jvs.h.
- Peldankê kopî bikin filepergala ku API-yên ji bo piçûkan vedihewîne filepergal û ajokarê HAL-ê ji HMI-ya jîr \ makîneya qehwe \ cm7 \ çavkaniya \ berbi eksêample SW. Û ji bo peldanka nû nûve bikin:
- Ji bo avakirinê li ser wê "Çavkaniyê ji avakirinê derxe" hilînin.
- Rêya tevlêkirinê ji bo wê di mîhengên projeyê de zêde bikin: "${workspace_loc:/${ProjName}/filesîstem}"
- Sernivîsa tê de biguherînin file Navê sln_flash_config.h bike sln_flash_config_w25q256jvs.h û fica_definition.h bike app_config.h file sln_flash_littlefs.h.
- Peldanka littlefs a ku tê de ware navîn heye kopî bikin - hindik filepergalê ji riya SDK_2_13_0_ MIMXRT1170-EVK\middleware\ berbi berêample SW. Û peldanka nû nûve bikin:
- Ji bo avakirinê li ser wê "Çavkaniyê ji avakirinê derxe" hilînin.
- Rêya tevlêkirinê ji bo wê di mîhengên projeyê de zêde bikin: "${workspace_loc:/${ProjName}/littlefs}"
Ajokarên HAL zêde bikin
- Du cîhazên HAL hene - file databasa pergalê û rû HAL ji bo taybetmendiya gihîştina databasê piştgirî dike û ew jixwe di çarçovê de bêyî guhertin têne bicîh kirin. Bi lê zêdekirina pênaseyên jêrîn li board_define.h, wan çalak bikin:
- #define ENABLE_FLASH_DEV_Littlefs
- #define ENABLE_FACEDB
Û navê databasa rûyê ji bo berê biguherîninample: #define OASIS_FACE_DB_DIR "oasis_gui_face_rec"
Piştgiriya asta app-ê zêde bikin
- Ya sereke nûve bikin file lvgl_gui_face_rec_cm7.cpp:
- Sernivîsê tê de file girêdayî Flash file Rêvebirê pergalê HAL bi lêzêdekirina rêzika kodê: #include "fwk_flash.h"
- Daxuyan bikin û qeyd bikin file Amûra pergala HAL:
- HAL_FLASH_DEV_DECLARE(Littlefs);
- HAL_FLASH_DEV_REGISTER(Littlefs, ret);
Not: The file Berî ku hemî gerînendeyên cîhazê di fonksiyona APP_InitFramework() de werin destpêkirin divê cîhaza HAL-ê ya pergalê were tomar kirin.
- Banga fonksiyona BOARD_ConfigMPU() ya di APP_BoardInit() de bikin da ku MPU mîheng bikin.
- Set bike file peywira pergalê li ser Flash-ê di nav de file app_config.h bi danasîna pênaseyên makro yên ku di nav de têne bikar anîn file sln_flash_littlefs.h:
- #define FICA_IMG_FILE_SYS_ADDR (FLASH_IMG_SIZE + RES_SHMEM_TOTAL_SIZE)
- #define FICA_FILE_SYS_SIZE (0x280000)
Veavakirin
Hin kodên têkildarî Flash-ê ji bo performansa têr li qada SRAM ITC têne darve kirin. Zencîreyên peldankê yên ku mîhengên girêdanê vedihewîne ji rêça smart HMI\coffee_machine\cm7\ berbi berê kopî bikin.ample SW.
Serlêdanek LVGL GUI bicîh bikin
Pêşkeftina serîlêdana GUI ya LVGL ya li ser bingeha çarçoweyê bangî API-yên ji UI HAL-ê yên derketinê dike û API-yan dide ku UI HAL-ê derxîne (Ji bo pêkanîna UI HAL-a derketinê li Beþ 4.1.3 binêre).
Lêbelê, pêkanîna berfireh a serîlêdana GUI ya LVGL bi hewcedarî û sêwirana serîlêdanê ve girêdayî ye. Serlêdana GUI di vê example wekî ku di destpêka beşê Beş 4 de hatî destnîşan kirin hatiye sêwirandin.
Li jêr pêşgotinên pêkanînê hene:
- Kodên xwerû di custom.c û custom.h de têne bicîh kirin ku ji hêla GUI Guider ve wekî navbeynkariya di navbera projeya GUI Guider û projeya pergala pêvekirî de têne dayîn.
- Fonksiyonên nû yên bi navê gui_xxx() li custom.c zêde bikin da ku fonksiyonên jêrîn bi dest bixin:
- Ji bo derketina UI HAL û serîlêdana GUI ji bo nûvekirina UI.
- Ji bo ku sepana GUI-yê bi bangkirina fonksiyonên vegerandina UI-yê ji UI HAL-ê ya derketinê bûyeran bide destpêkirin.
Ji bo exampLe, fonksiyona nû gui_event_face_rec_action() gazî fonksiyonên vegerandina UI dike da ku yek ji bûyerên qeydkirina rû, naskirina rû û jêbirina bikarhênerê ku ji sepana GUI-yê hatî kişandin dema ku bişkoja têkildar tê klîk kirin, bike.
Nîşe: Fonksiyona gui_set_virtual_face() ji bo pêşdibistana UI HAL-a derketinê tê gazî kirinview pêdivî ye ku mod di custom.c de were bicîh kirin:
- Fonksiyona klonkirina gui_set_virtual_face () ji HMI-ya jîr \ makîneya qehwe \ cm4 \ custom \custom.c.
- Navê widgetê biguherînin home_img_cameraPreview ji bo screen_img_camera_preview di fonksiyonê de.
- Fonksiyonên vegerandina banga UI-yê bi heman prototîpê ji hemî yên ku di UI HAL-ya derketinê de di bin kontrola pênase makro #ifndef RT_PLATFORM de di custom.c de bicîh bikin ji bo ku bi projeya GUI Guider re hevaheng bin ji ber ku ev fonksiyonên di UI HAL-ya derketinê de bi platforma bicîbûyî. Di custom.c de, ew bi simulatorê li ser rêberê GUI-yê ve girêdayî ne û ji platforma pêvekirî serbixwe ne. Ji bo examplê, ji bo simulatora GUI Guider ku dimeşe, vegerandina qeydkirina rû wekî jêrîn tê bicîh kirin: #ifndef RT_PLATFORM void UI_Registration_Callback() { gui_hide_del_user_btn(true); s_InAction = derewîn; vegerr; }
Not: Li heman prototîpa fonksiyonê ya ku di qonaxa 6-ê ya beşê 4.1.3 de hatî destnîşan kirin binihêrin
Pênaseya makro RT_PLATFORM li ser mîhengên projeyê yên MCUXpresso wekî ku di Figure 7 de tê xuyang kirin tête danîn: - Hemî fonksiyonên bi navê UI_xxx_Callback() û gui_xxx() di custom.h de ragihînin û custom.h di nav smart_tlhmi_event_descriptor.h de lê zêde bikin da ku API-yên GUI-yê bi derana UI-yê HAL-ê re parve bikin.
- Fonksiyonên nû yên bi navê gui_xxx() li custom.c zêde bikin da ku fonksiyonên jêrîn bi dest bixin:
- GUI li ser GUI Guider pêşve bibin:
- Pêşî kameraya peldankê klon bikinview di peldanka gui_guider de di pakêta nermalava bingehîn de lvgl_gui_camera_pre nermalava projeya GUI Guider heyeview_cm7. Navê têkildar camera_pre biguherîninview ji bo ex nû face_recample.
- Custom.c û xwerû ya nûvekirî ya jorîn kopî bikin. h ji nermalava projeya nû ya GUI Guider re.
- Projeya nû ya face_rec li ser GUI Guider vekin. Wek jêrîn nûve bikin:
- Bişkojka nû ya bi navê Delete Bikarhêner lê zêde bike. Alaya Veşartî li wê zêde bikin da ku gava ku sepana GUI dest pê dike bişkoj veşêre.
- Xeta kodê ya bangkirina API-yê gui_event_face_rec_action() bi parametreya nasnameya bûyerê ya cihêreng li ser pêla "Released" di Mîhenga Bûyerê ya hemî bişkokên Tomarkirin, Naskirin û Jêbirina Bikarhêner de zêde bikin da ku bûyerên qeydkirina rû, naskirina rû û jêbirina bikarhêner. Figure 8 koda bûyera bişkojka Tomarkirinê nîşan dide:
- Koda hatî çêkirin ji GUI Guider heya projeya MCUXpresso nûve bikin.
- Naveroka ji bilî wêneyên peldankê yên di peldanka ku ji projeya MCUXpresso SW hatî çêkirin de bi yên têkildar ên di peldanka ku ji projeya GUI Guider SW hatî çêkirin de biguhezînin.
Not: Ji bo bêtir agahdarî di derbarê guheztinên ku li jor hatine destnîşan kirin, berê kontrol bikinample software li https://mcuxpresso.nxp.com/appcodehub.
Verifications bi example proje
Ji bo ku examppakêta nermalavê ya ku çavkanî û amûrên ji bo vê nota serîlêdanê vedihewîne, biçin: https://mcuxpresso.nxp.com/appcodehub. Berê vekinampprojeyek li ser MCUXpresso IDE. Avakirin û bernameya .axf file ji navnîşana 0x30000000 re bişînin û pelika çavkaniyê bername bikin file camera_preview_resource.bin bi navnîşana 0x30800000.
LVGL GUI naskirina rûyê berêample bi gelemperî wekî jêrîn dixebite:
- Preview: Bi hêzbûnê re, herikên vîdyoyê yên ku ji hêla kamerayê ve têne girtin li devera taybetî ya kamerayê pêşan dideview li ser ekrana GUI. Etîketa statûyê "Preview…”. Ji bo hûragahiyan, li Xiflteya 3-ê binêre. Bişkoka Bikarhêner Jêbirin veşartî ye. Dema ku li qada derveyî bişkok û wêneyan bikirtînin, ew pêşiyê nîşan dideview piştî ku çalakiya qeydkirin an naskirina rû qediya wekî ya jorîn diyar bike.
- Qeydkirinî:
- tartup: Dema ku bişkoka Qeydkirinê tê tikandin, qeydkirina rû dest pê dike. Etîketa statûyê diguhere da ku "Qeydkirin…" nîşan bide, çargoşeya rêberiya rû şîn nîşan dide, û barika pêşkeftinê dest bi nîşandana pêşkeftinê dike. Piştrast bikin ku rûyê bikarhêner ji bo qeydkirinê di nav çargoşeya rêberê rûyê şîn de xuya dike.
- serkeftin: Etîketa statûyê "Qeydkirin… OK" û nimreya nasnameya bikarhênerê qeydkirî nîşan dide, çargoşeya rêberiya rû sor dibe, ger qeydkirina rû serketî be berî ku pêşkeftin bi tevahî li ser barkê nîşan bide.
- Têkçû -> Dem bi dawî bû: Etîketa statûyê "Qeydkirin... Dem bi dawî" nîşan dide heke dema ku pêşkeftin bi tevahî li ser barkê tê xuyang kirin qeydkirina rû hîn têk çûye.
- Têkçû -> Dubarekirin: Etîketa statûyê "Qeydkirin… Biserneket" nîşan dide, ger ku rûyê qeydkirî were nas kirin berî ku pêşkeftin bi tevahî li ser barkê nîşan bide, çargoşeya rêberê rû kesk dibe.
- naskirin:
- Destpêk: Dema ku bişkojka Nasnameyê tê klîk kirin, nasîna rû dest pê dike. Etîketa statûyê diguhere da ku "Naskirin…" nîşan bide, çargoşeya rêberiya rû şîn nîşan dide, û barika pêşkeftinê dest pê dike ku pêşkeftinê nîşan bide. Piştrast bikin ku rûyê bikarhêner ji bo qeydkirinê di çargoşeya rêberê rûyê şîn de tê xuyang kirin.
- serkeftin: Etîketa statûyê "Naskirin… OK" û nimreya nasnama bikarhênerê ya naskirî nîşan dide, ger nasîna rû bi serketî be berî ku pêşkeftin li ser barkê tam nîşan bide, çargoşeya rêberê rû kesk dibe. Di xalê de, bişkoka Bikarhêner Jêbirin xuya dike. Ev tê wê wateyê ku bikarhêner tenê dema ku were nas kirin destûr tê jêbirin.
- ailure: Etîketa statûyê "Naskirin... Dem bi dawî bû" nîşan dide heke dema ku pêşkeftin bi tevahî li ser barkê nîşan dide nasîna rû hîn têk çûye.
- Bikarhêner jêbirin: Dema ku bişkoka "Bikarhêner Jêbirin" tê tikandin, piştî ku naskirina rû serketî bû, etîketa statûyê diguhere ku "Bikarhêner Jêbibe… OK" nîşan bide ku çargoşeya rêberiya rû şîn dibe û pêşkeftin li ser barkê tê xuyang kirin. Bişkojka Delete Bikarhêner dîsa veşartî ye. Rûyê/bikarhênerê naskirî ji databasê tê jêbirin. Ev tê wê wateyê ku ev rû/bikarhêner heta ku careke din neyê tomar kirin nayê nas kirin.
Têbînî li ser koda çavkaniyê di belgeyê de
ExampLe koda ku di vê belgeyê de tê xuyang kirin xwedî lîsansa jêrîn û lîsansa BSD-3-Belgeyê ye:
Copyright 2024 NXP Ji nû ve dabeşkirin û karanîna di formên çavkanî û binary de, bi guheztin an bêyî guheztinê, bi şertê ku şertên jêrîn pêk werin destûr in:
- Ji nû ve dabeşkirina koda çavkaniyê pêdivî ye ku agahdariya mafnasiyê ya li jor, vê navnîşa şertan û betalkirina jêrîn bigire.
- Vebelavkirinên bi forma binaryê divê hişyariya mafnasiyê ya li jor dubare bikin, divê ev navnîşa şertan û betalkirina jêrîn di belge û/an materyalên din de bi belavkirinê re were peyda kirin.
- Nabe ku ne navê xwedê mafnasiyê û ne jî navên beşdarên wê ji bo pejirandin an pêşvebirina hilberên ku ji vê nermalavê têne derxistin bêyî destûra nivîskî ya taybetî ya pêşîn were bikar anîn.
EV NERBEMBERÎ JI BO XWEDÎ MAFÊN XWEDÎ Û BEŞDARÊN "WEK EW" Û HER GARANTIYÊN EŞKANÎ AN JI DESTPÊK TÊ KIRIN, TEWLÎ, LÊ BI SÎNOR NE, BARANTIYÊN NAVENDA NÛÇEYAN YÊN BAZIRÎ Û BAZIRÎN DISCLAIMED. DI TU BÛYÊ DE XWEDÎ MAFÊ NAVENDA NÛÇEYAN AN JI BERXWEDAN JI BER HER GELEK DIRESTPÊR, NADEREKT, BÛYER, TAYBET, MÎNAK, AN JI BERXWEDAN BÊ BERPIRSYAR BIBIN (HEWLÊ, LÊ BI SÎNOR NE, XIZMETÊN WINDA KIRINA, DATA, AN JI BERPIRSÊN BIZNESÊ BIBIN BIBIN SEDEMA HER TEORÎYA BERSÎVANÊ, ÇI DI PIMANÊ DE, BI BERPIRSYARÎYA TÊKIRIN, AN JI TEWLÊN DIN DE; DERVE JI BIKARANÎNA VÊ NERMEMERÊ HEBÛN JI DI MUHMETA ZERARÊN WIŞA de şîret kirin.
Dîroka Revision
Agahiyên qanûnî
Definitions
Pêşnûme - Rewşek pêşnumayek li ser belgeyekê destnîşan dike ku naverok hîn jî di bin reya hundurîn de yeview û bi erêkirina fermî ve girêdayî ye, ku dibe sedema guhertin an zêdekirin. NXP Semiconductors di derbarê rastbûn an temambûna agahdariya ku di pêşnumayek belgeyek de cih digire ti nûnertî an garantî nade û ji ber encamên karanîna van agahdariyan berpirsiyar tune.
Disclaimer
- Garantî û berpirsiyariya sînorkirî - Agahiyên di vê belgeyê de tê bawer kirin ku rast û pêbawer in. Lêbelê, NXP Semiconductors di derbarê rastbûn an tevahîbûna van agahdariyan de ti nûnerî an garantî nade, diyar an jî têgihîştî û dê berpirsiyariya encamên karanîna van agahdariyan tune be. NXP Semiconductors ti berpirsiyariya naveroka vê belgeyê nagire ger ji hêla çavkaniyek agahdarî li derveyî NXP Semiconductors ve were peyda kirin.
Di tu rewşê de, NXP Semiconductors ji ber zirarên nerasterast, rûdanî, cezayî, taybetî an encamgir (di nav de - bê sînor -qezencên winda, teserifên winda, qutkirina karsaziyê, lêçûnên têkildarî rakirina an guheztina hilberan an berdêlên ji nû ve xebitandinê) berpirsiyar nabe. an na, zirarên weha li ser bingehê sûc (di nav de xemsarî), garantî, binpêkirina peymanê an teoriyek qanûnî ya din in.
Tevî her zirarên ku xerîdar ji ber her sedemek dibe bila bibe, berpirsiyariya tevhev û berhevkirî ya NXP Semiconductors li hember xerîdar ji bo hilberên ku li vir hatine destnîşan kirin dê li gorî Merc û mercên firotina bazirganî ya Nîvconductorên NXP sînordar be. - Mafê guhertinan - NXP Semiconductors mafê guherandina agahdariya ku di vê belgeyê de hatî weşandin, di nav de bêyî hûrgulî û danasîna hilberan, di her dem û bê agahdarî de vedihewîne. Ev belge hemî agahdariya ku beriya weşana vir hatî peyda kirin diguhezîne û diguhezîne.
- Minasib ji bo bikaranîna - Berhemên NXP Semiconductors ne hatine sêwirandin, destûr an garantî ne ku ji bo karanîna di piştgirîya jiyanê de, pergalên an alavên krîtîk ên jiyanê an ewlehiyê, û ne jî di serîlêdanên ku têkçûn an xeletiya hilberek NXP Semiconductors bi awayekî maqûl tê hêvî kirin ku bibe sedema encamên birîndarbûna kesane, mirin an mal û zirara giran an jîngehê. NXP Semiconductors û dabînkerên wê ji bo tevlêbûn û/an karanîna hilberên NXP Semiconductors di van amûr an serlêdanan de berpirsiyariyek napejirînin û ji ber vê yekê tevlêbûn û / an karanîna wusa di xetereya xerîdar de ye.
- Applications - Serîlêdanên ku li vir ji bo yek ji van hilberan têne diyar kirin tenê ji bo mebestên raveker in. NXP Semiconductors tu temsîlî an garantî nake ku sepanên weha dê ji bo karanîna diyarkirî bêyî ceribandin an guheztinek din maqûl bin.
Xerîdar ji sêwirandin û xebitandina serîlêdan û hilberên xwe yên ku hilberên NXP Semiconductors bikar tînin berpirsiyar in, û NXP Semiconductors ti berpirsiyariyek ji bo arîkariya bi serîlêdan an sêwirana hilberê xerîdar re qebûl nake. Tenê berpirsiyariya xerîdar e ku diyar bike ka hilbera NXP Semiconductors ji bo serîlêdanên xerîdar û hilberên plansazkirî, û hem jî ji bo serîlêdana plansazkirî û karanîna xerîdar(yên) partiya sêyemîn a xerîdar maqûl û maqûl e. Pêdivî ye ku xerîdar sêwiran û parastinên xebitandinê yên guncan peyda bikin da ku xetereyên bi serîlêdan û hilberên xwe ve girêdayî kêm bikin. NXP Semiconductors ti berpirsiyariyek têkildar bi tu pêşnuma, zirar, lêçûn an pirsgirêkek ku li ser bingehek qelsî an xwerû di serîlêdan an hilberên xerîdar de, an serîlêdan an karanîna ji hêla xerîdar(yên) partiya sêyemîn a xerîdar ve girêdayî ye, qebûl nake. Xerîdar berpirsiyar e ku hemî ceribandinên pêwîst ji bo serîlêdan û hilberên xerîdar bi karanîna hilberên NXP Semiconductors bi kar bîne da ku ji pêşnumayek serîlêdan û hilberan an serîlêdanê dûr bixe an ji hêla xerîdar(yên) partiya sêyemîn a xerîdar ve were bikar anîn. NXP di vî warî de tu berpirsiyariyê qebûl nake. - Şert û mercên firotina bazirganî - Berhemên NXP Semiconductors li gorî şert û mercên gelemperî yên firotanê bazirganî têne firotin, wekî ku li https://www.nxp.com/pro hatî weşandin.file/şert, heya ku di peymanek kesane ya nivîskî ya derbasdar de wekî din neyê pejirandin. Di dema ku peymanek kesane tête kirin, tenê şert û mercên peymana têkildar têne bicîh kirin. NXP Semiconductors bi vê yekê bi eşkere li dijî sepandina şert û mercên gelemperî yên xerîdar di derbarê kirîna hilberên NXP Semiconductors ji hêla xerîdar ve nerazî ye.
- Kontrola îxracatê - Ev belge û her weha tişt(ên) ku li vir têne diyar kirin dibe ku di bin qaîdeyên kontrolkirina hinardekirinê de bin. Dibe ku hinardekirin destûrnameyek berê ji rayedarên şareza hewce bike.
- Minasib ji bo karanîna di hilberên ne-otomotîv bi kalîte de - Heya ku ev belge bi eşkere nebêje ku ev hilbera taybetî ya NXP Semiconductors bi kalîte otomotîvê ye, hilber ji bo karanîna otomotîvê ne maqûl e. Ew li gorî ceribandina otomotîvê an daxwazên serîlêdanê ne jêhatî ye û ne jî ceribandin. NXP Semiconductors ji bo tevlêbûn û/an karanîna hilberên ne-otomotîv di alavên an sepanên otomotîvê de berpirsiyariyek qebûl nake.
Di bûyera ku xerîdar hilberê ji bo sêwirandin û karanîna di sepanên otomotîvê de ji bo taybetmendî û standardên otomotîvê bikar tîne, xerîdar (a) dê hilberê bêyî garantiya NXP Semiconductors ya hilberê ji bo van sepanên otomotîvê, bikar anîn û taybetmendiyan bikar bîne, û (a) b) gava ku xerîdar hilberê ji bo sepanên otomotîvê ji derveyî taybetmendiyên NXP Semiconductors bikar tîne, ev karanîna wê tenê li ser xetera xerîdar be, û (c) xerîdar bi tevahî berpirsiyarî, zirar an îdiayên hilberê yên têkçûyî yên ku ji sêwirana xerîdar û karanîna xerîdar têne tazmîn kirin, nîvconductors NXP bi tevahî tazmîn dike. hilbera ji bo sepanên otomotîvê ji bilî garantiya standard NXP Semiconductors û taybetmendiyên hilberê NXP Semiconductors. - Wergeran - Versiyonek ne-îngilîzî (wergerandî) ya belgeyek, tevî agahdariya qanûnî ya di wê belgeyê de, tenê ji bo referansê ye. Ger ku di navbera versiyonên werger û îngilîzî de cûdahiyek hebe dê guhertoya îngilîzî serwer be.
- Ewlekarî - Xerîdar fêm dike ku dibe ku hemî hilberên NXP di bin qelsiyên nenas de bin an jî dibe ku standardên ewlehiyê an taybetmendiyên damezrandî yên bi tixûbên naskirî piştgirî bikin. Xerîdar ji sêwirandin û xebitandina serîlêdan û hilberên xwe di heyama jiyana xwe de berpirsiyar e da ku bandora van qelsiyan li ser sepan û hilberên xerîdar kêm bike. Berpirsiyariya xerîdar di heman demê de teknolojiyên din ên vekirî û/an xwedan ên ku ji hêla hilberên NXP ve têne piştgirî kirin ji bo karanîna di serîlêdanên xerîdar de jî dirêj dibe. NXP ji bo her lawazbûnê tu berpirsiyariyê qebûl nake. Divê xerîdar bi rêkûpêk nûvekirinên ewlehiyê ji NXP-ê kontrol bikin û bi rêkûpêk bişopînin. Xerîdar dê hilberên xwedan taybetmendiyên ewlehiyê hilbijêrin ku çêtirîn rêgez, rêzikname, û standardên serîlêdana armanckirî bicîh tîne û biryarên sêwirana dawîn di derheqê hilberên xwe de digire û bi tenê berpirsiyar e ku bi tevayî daxwazên qanûnî, birêkûpêk û ewlehiyê yên têkildarî hilberên xwe tev bigere. ji her agahdarî an piştgirîya ku dibe ku ji hêla NXP ve were peyda kirin.
NXP xwedan Tîmek Bersivdana Bûyera Ewlekariya Hilberê (PSIRT) ye (li PSIRT@nxp.com tê gihîştin) ku lêpirsîn, rapor û serbestberdana çareseriyê ji qelsiyên ewlehiyê yên hilberên NXP re birêve dibe.
NXP BV - NXP BV ne pargîdaniyek xebitandinê ye û ew hilberan belav nake an nafiroşe.
Trademarks
Nivîsk: Hemî markayên referanskirî, navên hilberan, navên karûbar, û nîşaneyên bazirganî milkê xwediyên wan ên têkildar in.
NXP - Nîşana peyv û logo marqeyên NXP BV ne
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 - tîcarî û/an marqeyên tîcarî yên Arm Limited (an şaxên wê an hevkarên wê) li DY û/an ne cihekî din. Teknolojiya têkildar dibe ku ji hêla yek an hemî patentan, mafnasî, sêwiran û razên bazirganî ve were parastin. Hemû maf parastî ne.
- i.MX - tîcareta NXP BV ye
- J-Link - tîcareta SEGGER Microcontroller GmbH e.
Microsoft, Azure, û ThreadX - tîcarî yên koma pargîdaniyên Microsoft-ê ne.
Ji kerema xwe hay ji xwe hebin ku li ser vê belgeyê û hilber(ên) ku li vir hatine vegotin, agahdarîyên girîng di beşa 'Agahdariya qanûnî' de cih girtine.
© 2024 NXP BV
Ji bo bêtir agahdarî, ji kerema xwe biçin: https://www.nxp.com
- Dîroka weşanê: 19 Avrêl 2024
- Nasnameya belgeyê: AN14263
FAQ
Q: Armanca sereke ya vê hilberê çi ye?
A: Armanca sereke ew e ku fonksiyona naskirina rûyê bi karanîna modelek algorîtmaya dîtinê ya AI&ML bi ex-ê GUI-ya LVGL-ya hêsan çalak bike.ampli ser panela SLN-TLHMI-IOT.
Pirs: Pêşdebir çawa dikarin ji vê nota serîlêdanê sûd werbigirin?
A: Pêşdebir dikarin fêr bibin ka meriv çawa bi karanîna ex-ya peydakirî gav bi gav nasîna rûyê li ser çarçoweyê bicîh tîneampRêvebirên cîhazê, cîhazên HAL, û mekanîzmayên bûyerê yên têkildar fêm bikin.
Belge / Çavkanî
![]() |
NXP AN14263 Naskirina rûyê LVGL GUI li ser Framewor bicîh bike [pdf] Rehbera bikaranînê AN14263 Naskirina Rûyê LVGL GUI li ser Framewor, AN14263, Naskirina Rûyê LVGL GUI li ser Framewor bicîh bikin, LVGL GUI Face Naskirina li ser Framewor, Naskirina Rû li ser Framewor, Naskirina li ser Framewor |