NXP AN13948 LVGL GUI აპლიკაციის ინტეგრირება Smart HMI პლატფორმის მომხმარებლის სახელმძღვანელოში
NXP AN13948 LVGL GUI აპლიკაციის ინტეგრირება Smart HMI პლატფორმაში

შესავალი

NXP-მა გამოუშვა გადაწყვეტილებების განვითარების ნაკრები სახელწოდებით SLN-TLHMI-IOT. ის ფოკუსირებულია ჭკვიან HMI აპლიკაციებზე, რომლებიც შეიცავს ორ აპლიკაციას - ყავის აპარატს და ლიფტს (სმარტ პანელის აპლიკაცია მალე გამოვა).
მომხმარებლისთვის ინფორმაციის მიწოდებისთვის, რამდენიმე ძირითადი დოკუმენტი შედის, მაგample, დეველოპერის სახელმძღვანელო.
სახელმძღვანელო წარმოგიდგენთ აპლიკაციების ძირითად პროგრამულ დიზაინს და არქიტექტურას, რომელიც მოიცავს გადაწყვეტის ყველა კომპონენტს.
ეს კომპონენტები მოიცავს ჩამტვირთველს, ჩარჩოს და HAL დიზაინს, რათა დაეხმაროს დეველოპერებს უფრო მარტივად და ეფექტურად განახორციელონ თავიანთი აპლიკაციები SLN-TLHMI-IOT-ის გამოყენებით.

დოკუმენტებისა და გადაწყვეტის შესახებ დამატებითი ინფორმაციისთვის ეწვიეთ: NXP EdgeReady Smart HMI Solution დაფუძნებული i.MX RT117H-ზე ML Vision, Voice და გრაფიკული ინტერფეისით.

თუმცა, შესავალი ფოკუსირებულია იდეებსა და ძირითად გამოყენებაზე. ჩარჩოზე დაფუძნებული პროგრამული უზრუნველყოფის შესაბამისობის გამო, დეველოპერებისთვის ჯერ კიდევ არ არის ადვილი იცოდნენ როგორ განახორციელონ თავიანთი აპლიკაციები.
განვითარების დასაჩქარებლად საჭიროა დამატებითი სახელმძღვანელოები, რათა გააცნონ ძირითადი კომპონენტების დანერგვა (მაგample, LVGL GUI, ხედვა და ხმის ამოცნობა) ეტაპობრივად.
მაგampასევე, მომხმარებელს უნდა ჰქონდეთ საკუთარი LVGL GUI აპლიკაცია, რომელიც განსხვავდება გამოსავალში არსებული აპლიკაციებისგან.
NXP-ის მიერ მოწოდებული GUI Guider-ით მათი LVGL GUI-ის დანერგვის შემდეგ, მათ უნდა გააერთიანონ იგი ჭკვიან HMI პროგრამულ პლატფორმაში ჩარჩოზე დაფუძნებული.

აპლიკაციის ეს შენიშვნა აღწერს, თუ როგორ უნდა მოხდეს მომხმარებლის მიერ შემუშავებული LVGL GUI აპლიკაციის ინტეგრირება ჭკვიან HMI პროგრამულ პლატფორმაში ჩარჩოზე დაფუძნებული.
საცნობარო კოდები ასევე წარმოდგენილია ამ განაცხადის შენიშვნასთან ერთად.

შენიშვნა: აპლიკაციის ეს ჩანაწერი არ ხსნის, თუ როგორ უნდა განვავითაროთ GUI GUI-ს LVGL-ზე დაფუძნებული GUI Guider პროგრამული ხელსაწყოებით.

დასრულდაview LVGL და GUI სახელმძღვანელო აღწერილია განყოფილებაში 1.1 და განყოფილებაში 1.2.

მსუბუქი და მრავალმხრივი გრაფიკული ბიბლიოთეკა
მსუბუქი და მრავალმხრივი გრაფიკული ბიბლიოთეკა (LVGL) არის უფასო და ღია კოდის გრაფიკული ბიბლიოთეკა.
ის უზრუნველყოფს ყველაფერს, რაც გჭირდებათ ჩაშენებული GUI-ის შესაქმნელად, ადვილად გამოსაყენებელი გრაფიკული ელემენტებით, ლამაზი ვიზუალური ეფექტებით და დაბალი მეხსიერების კვალით.

GUI სახელმძღვანელო
GUI Guider არის მოსახერხებელი გრაფიკული მომხმარებლის ინტერფეისის განვითარების ინსტრუმენტი NXP-ისგან, რომელიც იძლევა მაღალი ხარისხის ეკრანების სწრაფ განვითარებას ღია კოდის LVGL გრაფიკული ბიბლიოთეკით.
GUI Guider-ის გადათრევა და ჩამოშვება აადვილებს LVGL-ის მრავალი ფუნქციის გამოყენებას. ეს ფუნქციები მოიცავს ვიჯეტებს, ანიმაციებს და სტილებს GUI-ის შესაქმნელად მინიმალური ან კოდირების გარეშე.
ღილაკზე დაწკაპუნებით შეგიძლიათ თქვენი აპლიკაციის გაშვება სიმულაციურ გარემოში ან მისი ექსპორტი სამიზნე პროექტში.
GUI Guider-ისგან გენერირებული კოდი მარტივად შეიძლება დაემატოს თქვენს პროექტს, რაც დააჩქარებს განვითარების პროცესს და საშუალებას გაძლევთ შეუფერხებლად დაამატოთ ჩაშენებული მომხმარებლის ინტერფეისი თქვენს აპლიკაციაში.
GUI Guider უფასოა გამოსაყენებლად NXP ზოგადი დანიშნულების და კროსოვერის MCU-ებთან და მოიცავს ჩაშენებულ პროექტების შაბლონებს რამდენიმე მხარდაჭერილი პლატფორმისთვის.
დამატებითი ინფორმაციისთვის LVGL და GUI განვითარების შესახებ GUI Guider-ზე, ეწვიეთ https://lvgl.io/ და GUI Guider.

განვითარების გარემო

მოამზადეთ და დააყენეთ განვითარების გარემო GUI აპლიკაციის შემუშავებისა და ინტეგრირებისთვის ჭკვიანი HMI პლატფორმაზე.

აპარატურის გარემო

განვითარების შემდეგ დემონსტრირებისთვის საჭიროა შემდეგი აპარატურა:

  • ჭკვიანი HMI განვითარების ნაკრები NXP i.MX RT117H-ზე დაფუძნებული
  • SEGGER J-Link 9-პინიანი Cortex-M ადაპტერით

პროგრამული გარემო
პროგრამული უზრუნველყოფის ხელსაწყოები და მათი ვერსიები, რომლებიც გამოიყენება ამ განაცხადის შენიშვნაში, წარმოდგენილია ქვემოთ:

  • GUI Guider V1.5.0-GA
  • MCUXpresso IDE V11.7.0
    შენიშვნა: 11.7.0-მდე ვერსიების ხარვეზი არ იძლევა სათანადო ჩაშენებულ მრავალბირთვიან პროექტებს.
    ამიტომ საჭიროა 11.7.0 ან უფრო ახალი ვერსია.
  • RT1170 SDK V2.12.1
  • SLN-TLHMI-IOT პროგრამული პლატფორმა – ჭკვიანი HMI წყაროს კოდები გამოქვეყნებულია ჩვენს ოფიციალურ GitHub საცავში

მეტი ინფორმაციისთვის, თუ როგორ უნდა დააყენოთ და დააინსტალიროთ ტექნიკისა და პროგრამული უზრუნველყოფის გარემო, იხილეთ SLN-TLHMI-IOT (დოკუმენტი) დაწყება MCU-SMHMI-GSG).

LVGL GUI აპლიკაციის ინტეგრირება ჭკვიანი HMI პლატფორმაში

ჭკვიანი HMI პროგრამული პლატფორმა აგებულია ჩარჩო არქიტექტურაზე. დეველოპერებს უჭირთ მათი LVGL GUI აპლიკაციის დამატება ჭკვიანი HMI პროგრამულ პლატფორმაზე, მაშინაც კი, თუ წაიკითხავენ დეველოპერის სახელმძღვანელოს და იცოდნენ ჩარჩოს შესახებ.
შემდეგი სექციები განმარტავს, თუ როგორ უნდა განხორციელდეს ის ეტაპობრივად.

შეიმუშავეთ LVGL GUI აპლიკაცია GUI Guider-ზე
როგორც ზემოთ აღინიშნა, როგორ განვავითაროთ LVGL GUI GUI Guider-ზე არ არის აქცენტი ამ აპლიკაციის ჩანაწერში.
მაგრამ GUI ყოფილიampაუცილებელია.
ამიტომ, ერთი მარტივი GUI შაბლონი სახელად Slider Progress, რომელიც მოწოდებულია GUI Guider-ში, არჩეულია როგორც GUI ex.ampსწრაფი დაყენებისთვის.
Slider Progress GUI შაბლონი გამოიყენება, რადგან ის შეიცავს სურათს, რომელიც საჭიროა აპლიკაციაში გამოსახულების რესურსების დემონსტრირებისთვის.
GUI ყოფილიampძალიან ადვილია გენერირება: პროექტის შესაქმნელად განახლებული LVGL ბიბლიოთეკა V8.3.2 და დაფის შაბლონი, როგორც MIMXRT1176xxxxx, იხილეთ GUI Guider მომხმარებლის სახელმძღვანელო (დოკუმენტი გიგიდერუგი).
სურათი 1 გვიჩვენებს პროექტის პარამეტრებს.

შენიშვნა: პანელის ტიპი უნდა იყოს არჩეული, როგორც ეს ნაჩვენებია სურათზე 1-ის წითელ ველში, რადგან ის გამოიყენება მიმდინარე განვითარების დაფაზე.

პროექტის შექმნის შემდეგ გაუშვით სიმულატორი შესაბამისი LVGL GUI კოდების გენერირებისთვის და ასევე ააშენეთ პროექტი.
შეგიძლიათ შეამოწმოთ GUI-ის ეფექტი exampსიმულატორზე.

სურათი 1. GUI პროექტის დაყენება GUI Guider-ზე
პროექტის პარამეტრი

შექმენით თქვენი პროექტი ჭკვიანი HMI-ზე
შენიშვნა: პირველი, შექმენით თქვენი პროექტი MCUXpresso IDE-ზე.

LVGL GUI-ის შემდეგ exampაშენდა, მას შეუძლია გადავიდეს მთავარ სამიზნეზე, რათა ის ინტეგრირდეს ჭკვიანი HMI პროგრამულ პლატფორმაში MCUXpresso პროექტზე თქვენი GUI აპლიკაციის განსახორციელებლად.
მარტივი და სწრაფი მეთოდია ჭკვიანი HMI პლატფორმაზე წარმოდგენილი მიმდინარე აპლიკაციის პროექტის კლონირება.
ლიფტის აპლიკაცია უკეთესი არჩევანია, როგორც კლონირებული წყარო, რადგან მას აქვს მარტივი განხორციელება.

თქვენი პროექტის შესაქმნელად, მიჰყევით ქვემოთ მოცემულ ნაბიჯებს:

  1. დააკოპირეთ და ჩასვით „ლიფტის“ საქაღალდე GitHub-ის კლონირებულ ჭკვიანი HMI წყაროს კოდში. დაარქვით მას თქვენი სახელი.
    ამისთვის ყოფილიampჩვენ ავირჩიეთ "slider_progress", GUI-ის სახელის შემდეგampლე.
  2. "slider_progress" საქაღალდეში შეიყვანეთ "lvgl_vglite_lib" საქაღალდე, რომელიც შეიცავს LVGL GUI პროექტს.
  3. გახსენით პროექტთან დაკავშირებული files .cproject და .project და შეცვალეთ ყველა სტრიქონი „elevator“ თქვენი პროექტის სახელის სტრიქონით „slider_progress“.
  4. გააკეთეთ მსგავსი ჩანაცვლება ორივე პროექტისთვის files "cm4" და "cm7" საქაღალდეებში.
    დააყენეთ თქვენი პროექტი ლიფტის პროექტის კლონირებით files.
    როგორც ნაჩვენებია სურათი 2 თქვენი პროექტები ახლა შეიძლება გაიხსნას MCUXpresso IDE-ში ისევე, როგორც ლიფტის პროექტი.

სურათი 2. პროექტების დაყენება MCUXpresso-ზე
პროექტის დაყენება

შექმენით რესურსები ჭკვიანი HMI-სთვის
ზოგადად, სურათები გამოიყენება GUI-ში (ხმები, რომლებიც გამოიყენება ხმოვან მოთხოვნაშიც).
გამოსახულებებსა და ბგერებს ეწოდება რესურსები, რომლებიც ინახება ელვისებურად თანმიმდევრობით. სანამ მათ Flash-ზე დაპროგრამებთ, რესურსები უნდა იყოს ჩაშენებული ბინარში file.
მთავარი სამუშაო არის საცნობარო აპლიკაციის (ლიფტის) სახელების შეცვლა თქვენით.

ამისათვის მიჰყევით ქვემოთ მოცემულ ნაბიჯებს:

  1. წაშალეთ კლონირებული "images" საქაღალდე slider_progress/resource-ში.
  2. დააკოპირეთ საქაღალდე "images" ქვეშ \generated თქვენს GUI Guider პროექტში.
  3. ჩასვით slider_progress/resource-ის ქვეშ (ანუ გამოიყენეთ თქვენი საკუთარი სურათები და არა ლიფტის აპიდან).
  4. წაშალეთ *.mk file გამოიყენება GUI Guider-ისთვის "images" საქაღალდეში.
  5. გადარქმევა files elevator_resource.txt, elevator_resource_build.bat და elevator_resource_build.sh "resource" საქაღალდეში თქვენი პროექტის სახელის slider_progress_resource.txt, slider_progress_resource_build.bat და slider_progress_resource_build.sh.
    შენიშვნა:
    • elevator_resource.txt: შეიცავს აპში გამოყენებული ყველა რესურსის (სურათები და ბგერები) ბილიკებს და სახელებს.
    • elevator_resource_build.bat/elevator_resource_build.sh: გამოიყენება Windows-ისა და Linux-ის შესაბამისად რესურსების შესაქმნელად.
  6. slider_progress_resource.txt-ის გახსნის შემდეგ file, შეცვალეთ ყველა სტრიქონი "elevator"-ით "slider_progress".
  7. წაშალეთ ყველა ძველი სურათი და დაამატეთ ახალი თქვენი სურათით file სახელები (აქ არის „_scan_example_597x460.c”), როგორიცაა სურათი ../../slider_progress/resource/images/_scan_example_597x460.c.
  8. გახსენით slider_progress_resource.bat file Windows-ისთვის და შეცვალეთ ყველა სტრიქონი „elevator“ „slider_progress“-ით. იგივე გააკეთეთ file slider_progress_resource.sh Linux-ისთვის.
  9. ორჯერ დააწკაპუნეთ პარტიაზე file slider_progress_resource_build.bat Windows-ისთვის.
  10. ბრძანების ფანჯარა გამოჩნდება და ავტომატურად მუშაობს გამოსახულების რესურსის ორობითი გენერირებისთვის file შეიცავს სურათის მონაცემებს და რესურსზე წვდომის ინფორმაციას, რომელიც შეიცავს C კოდებს, რათა დააყენოთ ყველა სურათის მდებარეობა ფლეშში და სურათების მთლიანი ბაიტის ზომა.
    შეტყობინების „რესურსების გენერაცია დასრულდა!“ ჩვენების შემდეგ, გამოსახულების რესურსი ორობითია file სახელად slider_progress_resource.bin და რესურსზე წვდომის ინფორმაცია file სახელად resource_information_table.txt გენერირდება საქაღალდეში “resource”.
    გამოსახულების რესურსი ორობითი file დაპროგრამებულია ფლეშზე და რესურსზე წვდომის ინფორმაცია გამოიყენება სმარტ HMI-ზე რესურსებზე წვდომისათვის (იხ. განყოფილება 3.4.1).

LVGL GUI აპლიკაციის ინტეგრირება სმარტ HMI-ში
LVGL GUI აპლიკაციის კოდები (აქ არის SliderProgress GUI example) და ჩაშენებული გამოსახულების რესურსები, წვდომის ინფორმაციის ჩათვლით, შეიძლება დაემატოს სმარტ HMI-ს.
გარდა ამისა, თქვენი LVGL GUI აპლიკაციის სმარტ HMI-ზე განსახორციელებლად, საჭიროა დაამატოთ HAL მოწყობილობები, რომლებიც დაკავშირებულია LVGL GUI-სთან და მასთან დაკავშირებულ კონფიგურაციებთან.
LVGL GUI აპლიკაცია მუშაობს M4 ბირთვზე და შესაბამისი განხორციელება თითქმის M4 პროექტში “sln_smart_tlhmi_slider_progress_cm4”.
დეტალური ნაბიჯები აღწერილია შემდგომ ქვეთავებში.

დაამატეთ LVGL GUI კოდები და რესურსები
LVGL GUI აპლიკაციის კოდები, რომლებიც გამოიყენება ჭკვიანი HMI-სთვის, არის საქაღალდეებში „ჩვეულებრივი“ და „გენერირებული“ GUI Guider პროექტში.

სმარტ HMI-ში კოდების დასამატებლად, მიჰყევით ქვემოთ მოცემულ ნაბიჯებს:

  1. ჩაანაცვლეთ custom.c და custom.h ქვეშ slider_progress/cm4/custom/ საქაღალდეში "custom" GUI Guider პროექტში.
  2. ამოიღეთ „გენერირებული“ საქაღალდეები slider_progress/cm4/-დან.
    შემდეგ დააკოპირეთ „გენერირებული“ საქაღალდე GUI Guider პროექტიდან და ჩასვით slider_progress/cm4/-ზე.
  3. წაშალეთ საქაღალდეები "image" და "mPythonImages" და ყველა files *.mk და *.py "გენერირებული" საქაღალდეში.
    როგორც ზემოთ აღინიშნა, სურათები "image" საქაღალდეში ჩაშენებულია რესურსის ორობით fileასე რომ, საქაღალდე "სურათი" არ არის საჭირო.
    საქაღალდე "mPythonImages" და ყველა files *.mk და *.py არასასურველია ჭკვიანი HMI-სთვის.
  4. სმარტ HMI პლატფორმაზე დაფუძნებული mutex კონტროლის დასამატებლად და გამოსახულების მდებარეობების ფლეშზე დასაყენებლად, შეცვალეთ file custom.c MCUXpresso IDE-ზე.
    ეს ყველაფერი განსაზღვრულია RT_PLATFORM-ის მიერ.
  5. გახსენით ლიფტის პროექტი MCUXpresso IDE-ზე. მოძებნეთ მაკრო განმარტება RT_PLATFORM custom.c-ში sln_smart_tlhmi_elevator_cm4 > custom და დააკოპირეთ ყველა კოდის სტრიქონი #if defined-დან (RT_PLATFORM) #endif-ზე და ჩასვით ისინი file custom.c ქვეშ sln_smart_tlhmi_slider_progress_cm4 > custom.
  6. წაშალეთ კოდის ხაზები #else-ში, რომელიც შეიცავს #else-ს, რადგან ისინი გამოიყენება ლიფტის GUI-სთვის.
    დამატებული კოდის ხაზები მოიცავს შემდეგს:
    • მოიცავს files არის შემდეგი:
      კოდი და რესურსები

    • ცვლადის დეკლარაცია შემდეგია:
      კოდი და რესურსები
    • C კოდები ფუნქციის custom_init() არის შემდეგი:
      კოდი და რესურსები
      კოდი და რესურსები
    • C კოდები ფუნქციებისთვის _takeLVGLMutex(), _giveLVGLMutex() და setup_imgs(), სადაც მითითებულია ყველა სურათის მდებარეობა.
  7. ჩაანაცვლეთ კოდები ფუნქცია setup_imgs() სურათების მდებარეობის დაყენების კოდებით resource_information_table.txt-ში file (იხ. ნაწილი 3.3).
    ამ აპლიკაციის შენიშვნაში არის მხოლოდ ერთი გამოსახულების რესურსი, რომელიც დაყენებულია როგორც: _scan_example_597x460.data = (ბაზა + 0); ამის შემდეგ, ფუნქცია setup_imgs() ნაჩვენებია როგორც ქვემოთ:
    კოდი და რესურსები
  8. custom.c-თან დაკავშირებული მაკრო განსაზღვრებისა და ფუნქციის დეკლარაციის დასამატებლად შეცვალეთ custom.h file ქვეშ sln_smart_tlhmi_slider_progress_cm4 > custom, როგორც ნაჩვენებია ქვემოთ:
    კოდი და რესურსები
  9. თქვენს LVGL GUI აპლიკაციაში სურათების დასადგენად, შეცვალეთ lvgl_images_internal.h file ქვეშ sln_smart_tlhmi_slider_progress_cm4 > custom.
    • გახსენით ერთი სურათი *.c file (აქ არის _scan_example_597x460.c) /generated/ image/ ქვეშ GUI Guider პროექტში.
      დააკოპირეთ სურათის განმარტება ბოლოს file. ჩასვით lvgl_images_internal.h file ლიფტის აპლიკაციის სურათების ყველა ორიგინალური განმარტების წაშლის შემდეგ.
    • წაშალეთ .data = _scan_example_597x460_map მასივში, ვინაიდან .data არის მითითებული ფუნქცია setup_imgs().
      მასივი საბოლოოდ განისაზღვრება lvgl_images_internal.h-ში file, როგორც ნაჩვენებია ქვემოთ:
      კოდი და რესურსები
      შენიშვნა:
      გაიმეორეთ ზემოაღნიშნული მოქმედებები ყველა სურათისთვის fileსათითაოდ თუ არის მრავალ გამოსახულება files.
  10. გამოსახულების რესურსის მთლიანი ზომის კონფიგურაცია app_config.h-ში მაკრო განსაზღვრის APP_LVGL_IMGS_SIZE-ის განსაზღვრით file ქვეშ sln_smart_tlhmi_slider_progress_cm7 > წყარო სურათების ახალი ზომით.
    ეს ახალი ზომა ხელმისაწვდომია ჩაშენებულ რესურსში resource_information_table.txt file.

დაამატეთ HAL მოწყობილობები და კონფიგურაციები
ჩარჩო არქიტექტურის საფუძველზე, ორი HAL მოწყობილობა (დისპლეი და გამომავალი მოწყობილობები) შექმნილია LVGL GUI აპლიკაციისთვის.
ორი მოწყობილობის დანერგვა განსხვავებულია LVGL GUI აპლიკაციების მიხედვით, თუმცა არსებობს საერთო არქიტექტურის დიზაინი.
ისინი ცალ-ცალკე ხორციელდება ორად files.
ამიტომ, მან უნდა მოახდინოს ამ ორი კლონირება files წინამდებარე ლიფტის აპლიკაციიდან და შეცვალეთ თქვენი LVGL GUI აპლიკაცია.
შემდეგ, ჩართეთ თქვენი მოწყობილობები კონფიგურაციაში file.
თქვენი LVGL GUI აპლიკაცია აგებულია ჭკვიან HMI პლატფორმაზე, ჩარჩოს საფუძველზე.

დეტალური ცვლილებები შეიძლება გაკეთდეს MCUXpresso IDE-ში, როგორც ნაჩვენებია ქვემოთ:

  • ეკრანის HAL მოწყობილობის დანერგვა
    1. დააკოპირეთ და ჩასვით hal_display_lvgl_elevator.c file ჯგუფში sln_smart_tlhmi_slider_progress_cm4 > Framework > hal > ჩვენება MCUXpresso პროექტზე. დაარქვით მას hal_display_lvgl_sliderprogress.c თქვენი აპლიკაციისთვის.
    2. გახსენით file hal_display_lvgl_sliderprogress.c და შეცვალეთ ყველა სტრიქონი „elevator“ თქვენი აპლიკაციის სტრიქონით „SliderProgress“ file.
  • გამომავალი HAL მოწყობილობის დანერგვა
    1. დააკოპირეთ და ჩასვით hal_output_ui_elevator.c file ჯგუფში sln_smart_tlhmi_slider_progress_cm4 > Framework > hal > გამომავალი MCUXpresso პროექტზე. დაარქვით მას hal_output_ui_sliderprogress.c თქვენი აპლიკაციისთვის.
    2. გახსენით file hal_output_ui_sliderprogress.c. ამოიღეთ ლიფტის აპლიკაციასთან დაკავშირებული ყველა ფუნქცია, გარდა HAL მოწყობილობის შემდეგი ძირითადი საერთო ფუნქციებისა:
      HAL_OutputDev_UiElevator_Init();
      HAL_OutputDev_UiElevator_Deinit();
      HAL_OutputDev_UiElevator_Start();
      HAL_OutputDev_UiElevator_Stop();
      HAL_OutputDev_UiElevator_InferComplete();
      HAL_OutputDev_UiElevator_InputNotify();
      გარდა ამისა, შეინახეთ შემდეგი ორი ფუნქციის დეკლარაციები:
      APP_OutputDev_UiElevator_InferCompleteDecode();
      APP_OutputDev_UiElevator_InputNotifyDecode();
    3. გაასუფთავეთ ფუნქცია HAL_OutputDev_UiElevator_InferComplete() თქვენი განაცხადის მოგვიანებით შესაქმნელად.
      ფუნქციაში წაშალეთ ორივე ფუნქციის გამოძახება _InferComplete_Vision() და _InferComplete_Voice(), რომლებიც გამოიყენება ლიფტის გამოყენების ხედვისა და ხმოვანი ალგორითმების შედეგების დასამუშავებლად.
    4. გაასუფთავეთ ფუნქცია HAL_OutputDev_UiElevator_InputNotify() და შეინახეთ ძირითადი არქიტექტურა აპლიკაციის შემდგომი განვითარებისთვის.
      საბოლოოდ, ფუნქცია ასე გამოიყურება:
      კოდი და რესურსები
    5. წაშალეთ ყველა ცვლადის დეკლარაცია, მათ შორის enum და მასივი, გარდა s_UiSurface და s_AsBuffer[], რომლებიც გამოიყენება საერთო განხორციელებისთვის.
    6. შეცვალეთ ყველა სტრიქონი „ლიფტი“ თქვენი აპლიკაციის სტრიქონით „SliderProgress“.
  • ორივე HAL მოწყობილობის ჩართვა და კონფიგურაცია
    1. გახსენით board_define.h file sln_smart_tlhmi_slider_progress_cm4 > დაფის ქვეშ.
      შეცვალეთ ყველა სტრიქონი „ლიფტი“ თქვენი აპლიკაციის სტრიქონით „SliderProgress“-ში file.
      ის რთავს და აკონფიგურირებს დისპლეის და გამომავალი HAL მოწყობილობების განმარტებებს ENABLE_DISPLAY_DEV_LVGLSliderProgress და ENABLE_OUTPUT_DEV_UiSliderProgress.
    2. გახსენით lvgl_support.c file sln_smart_tlhmi_slider_progress_cm4 > დაფის ქვეშ. შეცვალეთ ყველა სტრიქონი „ლიფტი“ თქვენი აპლიკაციის სტრიქონით „SliderProgress“-ში file.
      ის საშუალებას აძლევს კამერას წინასწარview GUI-ზე დისპლეის დრაივერის დონეზე.
  • დაარეგისტრირეთ ორივე HAL მოწყობილობა
    გახსენით M4 მთავარი sln_smart_tlhmi_cm4.cpp file ქვეშ sln_smart_tlhmi_slider_progress_cm4 > წყარო.
    შეცვალეთ ყველა სტრიქონი „ლიფტი“ თქვენი აპლიკაციის სტრიქონით „SliderProgress“-ში file.
    ის აღრიცხავს დისპლეის და გამომავალი HAL მოწყობილობას თქვენი აპლიკაციისთვის, ლიფტის აპლიკაციის ნაცვლად.
    ამრიგად, ინტეგრაცია დასრულებულია სმარტ HMI-ზე ძირითადი LVGL GUI აპლიკაციის გასაშვებად.
    აპლიკაციის მეტი მოთხოვნიდან გამომდინარე, უფრო მეტი იმპლემენტაცია შეიძლება დაემატოს ინტეგრირებულ ძირითად აპლიკაციას.

დემონსტრაცია

აპლიკაციის "slider_progress" დემო ვერსია განხორციელებულია ამ აპლიკაციის შენიშვნასთან ერთად.

დემო პროგრამული პაკეტის გახსნის შემდეგ, ჩადეთ ქვემოთ files და საქაღალდე სმარტ HMI პროგრამულ უზრუნველყოფაში:

  • The file hal_display_lvgl_sliderprpgress.c ქვეშ [demo]\framework\hal\display\ გზაზე [smart HMI]\framework\hal\display\
  • The file hal_output_ui_slider_progress.c ქვეშ [demo]\framework\hal\output\ გზაზე [smart HMI]\framework\hal\output\
  • საქაღალდე „slider_progress“ [smart HMI]-ის ძირეულ გზაზე.
    პროექტების გახსნა შესაძლებელია MCUXpresso IDE-ზე, ისევე როგორც ყავის აპარატის/ლიფტის აპი წარმოდგენილი ჭკვიანი HMI პლატფორმაზე.
    ჩაშენებული *.axf დაპროგრამების შემდეგ file მისამართზე 0x30100000 და რესურსის ორობითი file მისამართზე 0x30700000, LVGL GUI-ის დემო შეიძლება წარმატებით იმუშაოს ჭკვიანი HMI განვითარების დაფაზე (იხ. სურათი 3 ეკრანის ჩვენებისთვის).
    შენიშვნა: თუ იყენებთ MCUXpresso IDE-ის v1.7.0-ს, CM4 პროექტის შექმნამდე ჩართეთ „ბმულის სკრიპტის მართვა“ პარამეტრებში > MCU C++ Linker > Managed Linker Script.
    სურათი 3. LVGL GUI დემო ჩვენება ჭკვიანი HMI განვითარების დაფაზე
    დემო ჩვენება

გადასინჯვის ისტორია

რევიზიის ისტორია აჯამებს ამ დოკუმენტის შესწორებებს.

ცხრილი 1. გადასინჯვის ისტორია

გადასინჯვის ნომერი თარიღი არსებითი ცვლილებები
1 16 წლის 2023 ივნისი თავდაპირველი გამოშვება

შენიშვნა დოკუმენტის წყაროს კოდის შესახებ

Exampამ დოკუმენტში ნაჩვენები le კოდს აქვს შემდეგი საავტორო უფლებები და BSD-3-clause ლიცენზია:
საავტორო უფლება 2023 NXP გადანაწილება და გამოყენება წყაროსა და ბინარულ ფორმებში, მოდიფიკაციით ან მის გარეშე, დასაშვებია შემდეგი პირობების დაკმაყოფილების შემთხვევაში:

  1. წყაროს კოდის გადანაწილებამ უნდა შეინარჩუნოს საავტორო უფლებების შესახებ ზემოაღნიშნული შეტყობინება, პირობების ეს სია და შემდეგი უარი პასუხისმგებლობაზე.
  2. ორობითი ფორმით ხელახალი გავრცელება უნდა ასახავდეს ზემოხსენებულ საავტორო უფლების შეტყობინებას, პირობების ამ სიას და დოკუმენტაციაში და/ან სხვა მასალებში მოცემული პასუხისმგებლობის შემდეგი შეზღუდვის შესახებ გავრცელებას უნდა მიეწოდოს.
  3. არც საავტორო უფლებების მფლობელის სახელი და არც მისი ავტორების სახელები არ შეიძლება გამოყენებულ იქნას ამ პროგრამული უზრუნველყოფიდან მიღებული პროდუქტების დასამტკიცებლად ან პოპულარიზაციისთვის, წინასწარი წერილობითი ნებართვის გარეშე.

ეს პროგრამული უზრუნველყოფა მოწოდებულია საავტორო უფლებების მფლობელებისა და კონტრიბუტორების მიერ „როგორც არის“ და ნებისმიერი გამოხატული ან ნაგულისხმევი გარანტიები, მათ შორის, მაგრამ არ შემოიფარგლება, ნაგულისხმევი გარანტიები სავაჭრო და უსასყიდლო გარანტიით.
არავითარ შემთხვევაში არ იქნება საავტორო უფლებების მფლობელი ან კონტრიბუტორი პასუხისმგებელი რაიმე პირდაპირი, არაპირდაპირი, შემთხვევითი, განსაკუთრებული, სამაგალითო ან თანმიმდევრული ზიანისთვის (მათ შორის, მაგრამ არ არის შეზღუდული; გამოყენების SS, მონაცემები ან მოგება; ან საქმიანი შეფერხება) რაც არ უნდა იყოს გამოწვეული და პასუხისმგებლობის ნებისმიერ თეორიაზე, კონტრაქტით, მკაცრი პასუხისმგებლობით თუ დელიქტური (მათ შორის გაუფრთხილებლობით ან სხვაგვარად), რომელიც წარმოიქმნება ნებისმიერ შემთხვევაში, ყოველგვარი შემთხვევისთვის ასეთის შესაძლებლობის შესახებ
დაზიანება.

იურიდიული ინფორმაცია

განმარტებები
პროექტი:
დოკუმენტის სტატუსის პროექტი მიუთითებს, რომ კონტენტი ჯერ კიდევ შიდა რეჟიმზეაview და ექვემდებარება ოფიციალურ დამტკიცებას, რამაც შეიძლება გამოიწვიოს ცვლილებები ან დამატებები.
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 პროდუქტი შესაფერისი და ვარგისი მომხმარებლის აპლიკაციებისთვის და დაგეგმილი პროდუქტებისთვის, ასევე მომხმარებლის მესამე მხარის კლიენტ(ებ)ის დაგეგმილი გამოყენებისა და გამოყენებისთვის.
მომხმარებლებმა უნდა უზრუნველყონ შესაბამისი დიზაინი და ოპერაციული გარანტიები, რათა მინიმუმამდე დაიყვანონ მათ აპლიკაციებთან და პროდუქტებთან დაკავშირებული რისკები.
NXP Semiconductors არ იღებს პასუხისმგებლობას რაიმე ნაგულისხმევთან, დაზიანებასთან, ხარჯებთან ან პრობლემასთან დაკავშირებით, რომელიც დაფუძნებულია კლიენტის აპლიკაციებში ან პროდუქტებში არსებულ ნებისმიერ სისუსტეზე ან ნაგულისხმევზე, ​​ან კლიენტის მესამე მხარის კლიენტ(ებ)ის მიერ აპლიკაციაში ან გამოყენებაზე.
კლიენტი პასუხისმგებელია მომხმარებლის აპლიკაციებისა და პროდუქტების ყველა საჭირო ტესტირების ჩატარებაზე NXP Semiconductors პროდუქტების გამოყენებით, რათა თავიდან აიცილოს აპლიკაციებისა და პროდუქტების ან აპლიკაციის ნაგულისხმევი გამოყენება ან მომხმარებლის მესამე მხარის კლიენტ(ებ)ის მიერ გამოყენება. NXP არ იღებს რაიმე პასუხისმგებლობას ამ კუთხით

კომერციული გაყიდვის წესები და პირობები: NXP Semiconductors-ის პროდუქტები იყიდება კომერციული გაყიდვის ზოგადი წესებისა და პირობების შესაბამისად, როგორც გამოქვეყნებულია საიტზე http://www.nxp.com/profile/terms, თუ სხვაგვარად არ არის შეთანხმებული მოქმედი წერილობითი ინდივიდუალური შეთანხმებით.
ინდივიდუალური ხელშეკრულების გაფორმების შემთხვევაში გამოიყენება მხოლოდ შესაბამისი ხელშეკრულების პირობები.
NXP Semiconductors ამით პირდაპირ აპროტესტებს მომხმარებლის ზოგადი პირობების გამოყენებას NXP Semiconductors-ის პროდუქციის შეძენასთან დაკავშირებით მომხმარებლის მიერ.

ექსპორტის კონტროლი: ეს დოკუმენტი, ისევე როგორც აქ აღწერილი ნივთ(ებ)ი შეიძლება დაექვემდებაროს ექსპორტის კონტროლს.
ექსპორტს შესაძლოა დასჭირდეს კომპეტენტური ორგანოების წინასწარი ავტორიზაცია.

ვარგისიანობა არასაავტომობილო კვალიფიციურ პროდუქტებში გამოსაყენებლად: თუ ამ მონაცემთა ფურცელში პირდაპირ არ არის მითითებული, რომ NXP Semiconductors-ის ეს კონკრეტული პროდუქტი საავტომობილო კვალიფიცირდება, პროდუქტი არ არის შესაფერისი საავტომობილო გამოყენებისთვის.
ის არც კვალიფიცირებულია და არც ტესტირება საავტომობილო ტესტირების ან განაცხადის მოთხოვნების შესაბამისად. NXP Semiconductors არ იღებს პასუხისმგებლობას საავტომობილო აღჭურვილობაში ან აპლიკაციებში არასაავტომობილო კვალიფიციური პროდუქტების ჩართვაზე და/ან გამოყენებაზე.
იმ შემთხვევაში, როდესაც მომხმარებელი იყენებს პროდუქტს დიზაინისა და საავტომობილო აპლიკაციებში საავტომობილო სპეციფიკაციებისა და სტანდარტების შესაბამისად, მომხმარებელმა (ა) უნდა გამოიყენოს პროდუქტი NXP Semiconductors-ის პროდუქტის გარანტიის გარეშე, ასეთი საავტომობილო აპლიკაციებისთვის, გამოყენებისა და სპეციფიკაციებისთვის და ( ბ) როდესაც მომხმარებელი იყენებს პროდუქტს საავტომობილო აპლიკაციებისთვის NXP Semiconductors-ის სპეციფიკაციების მიღმა, ასეთი გამოყენება უნდა იყოს მხოლოდ მომხმარებლის პასუხისმგებლობით და (გ) კლიენტი სრულად ანაზღაურებს NXP Semiconductor-ს ნებისმიერი პასუხისმგებლობისთვის, ზიანისთვის ან პროდუქტის წარუმატებელი პრეტენზიებისთვის, რომლებიც გამოწვეულია მომხმარებლის დიზაინისა და გამოყენების შედეგად. პროდუქტი საავტომობილო აპლიკაციებისთვის NXP Semiconductors-ის სტანდარტული გარანტიისა და NXP Semiconductors-ის პროდუქტის სპეციფიკაციების მიღმა.

თარგმანები: დოკუმენტის არაინგლისური (თარგმნილი) ვერსია, ამ დოკუმენტის იურიდიული ინფორმაციის ჩათვლით, მხოლოდ მითითებისთვისაა.
თარგმნილ და ინგლისურ ვერსიებს შორის რაიმე შეუსაბამობის შემთხვევაში უპირატესობა მიენიჭება ინგლისურ ვერსიას.

უსაფრთხოება: მომხმარებელს ესმის, რომ NXP-ის ყველა პროდუქტი შეიძლება დაექვემდებაროს დაუდგენელ დაუცველობას ან შეიძლება მხარი დაუჭიროს უსაფრთხოების დადგენილ სტანდარტებს ან სპეციფიკაციებს ცნობილი შეზღუდვებით.
კლიენტი პასუხისმგებელია მისი აპლიკაციებისა და პროდუქტების დიზაინსა და ექსპლუატაციაზე მათი სიცოცხლის ციკლის განმავლობაში, რათა შეამციროს ამ მოწყვლადობის ეფექტი მომხმარებლის აპლიკაციებსა და პროდუქტებზე.
კლიენტის პასუხისმგებლობა ასევე ვრცელდება სხვა ღია და/ან საკუთრებაში არსებულ ტექნოლოგიებზე, რომლებიც მხარდაჭერილია NXP პროდუქტებით მომხმარებლის აპლიკაციებში გამოსაყენებლად.
NXP არ იღებს პასუხისმგებლობას რაიმე დაუცველობისთვის.
მომხმარებელმა რეგულარულად უნდა შეამოწმოს უსაფრთხოების განახლებები NXP-დან და სათანადოდ დაიცვას.
მომხმარებელმა უნდა შეარჩიოს უსაფრთხოების მახასიათებლების მქონე პროდუქტები, რომლებიც საუკეთესოდ აკმაყოფილებენ განზრახ აპლიკაციის წესებს, რეგულაციებს და სტანდარტებს და მიიღოს საბოლოო დიზაინის გადაწყვეტილებები მის პროდუქტებთან დაკავშირებით და მხოლოდ პასუხისმგებელია მის პროდუქტებთან დაკავშირებული ყველა სამართლებრივი, მარეგულირებელი და უსაფრთხოებასთან დაკავშირებული მოთხოვნების დაცვაზე, მიუხედავად ნებისმიერი ინფორმაციის ან მხარდაჭერის შესახებ, რომელიც შეიძლება მოწოდებული იყოს NXP-ის მიერ.
NXP-ს ჰყავს პროდუქტის უსაფრთხოების ინციდენტების რეაგირების გუნდი (PSIRT) (ხელმისაწვდომია PSIRT@nxp.com-ზე), რომელიც მართავს NXP-ის პროდუქტების უსაფრთხოების დაუცველობაზე გამოძიების, ანგარიშგების და გადაწყვეტილების გათავისუფლებას.

NXP BV: NXP BV არ არის მოქმედი კომპანია და ის არ ავრცელებს ან ყიდის პროდუქტებს.

სავაჭრო ნიშნები

შენიშვნა: ყველა მითითებული ბრენდი, პროდუქტის სახელები, სერვისების სახელები და სავაჭრო ნიშნები მათი შესაბამისი მფლობელების საკუთრებაა.
NXP: სიტყვა და ლოგო არის NXP BV-ის სავაჭრო ნიშნები
i.MX: არის NXP BV-ის სავაჭრო ნიშანი

მომხმარებელთა მხარდაჭერა

დამატებითი ინფორმაციისთვის ეწვიეთ: http://www.nxp.com
Logo.png

დოკუმენტები / რესურსები

NXP AN13948 LVGL GUI აპლიკაციის ინტეგრირება Smart HMI პლატფორმაში [pdf] მომხმარებლის სახელმძღვანელო
AN13948 LVGL GUI აპლიკაციის ინტეგრირება Smart HMI პლატფორმაში, AN13948, LVGL GUI აპლიკაციის ინტეგრირება Smart HMI პლატფორმაში

ცნობები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი არ გამოქვეყნდება. მონიშნულია აუცილებელი ველები *