NXP AN13948 LVGL GUI ایپلیکیشن کو سمارٹ HMI پلیٹ فارم یوزر مینوئل میں ضم کرنا
تعارف
NXP نے SLN-TLHMI-IOT کے نام سے ایک حل ڈیولپمنٹ کٹ شروع کی ہے۔ یہ سمارٹ HMI ایپلی کیشنز پر فوکس کرتا ہے جن میں دو ایپس شامل ہیں - کافی مشین اور لفٹ (اسمارٹ پینل ایپ جلد آرہی ہے)۔
صارف کو معلومات فراہم کرنے کے لیے، کچھ بنیادی دستاویزات شامل ہیں، مثال کے طور پرampلی، ڈویلپر گائیڈ۔
گائیڈ تمام حل کے اجزاء پر مشتمل ایپلی کیشنز کے بنیادی سافٹ ویئر ڈیزائن اور فن تعمیر کو متعارف کراتی ہے۔
ان اجزاء میں بوٹ لوڈر، فریم ورک، اور HAL ڈیزائن شامل ہیں تاکہ ڈویلپرز کو SLN-TLHMI-IOT کا استعمال کرتے ہوئے اپنی ایپلی کیشنز کو زیادہ آسانی اور مؤثر طریقے سے لاگو کرنے میں مدد ملے۔
دستاویزات اور حل کے بارے میں مزید تفصیلات کے لیے، ملاحظہ کریں: ML ویژن، وائس اور گرافیکل UI کے ساتھ i.MX RT117H پر مبنی NXP EdgeReady Smart HMI سلوشن۔
تاہم، تعارف خیالات اور بنیادی استعمال پر مرکوز ہے۔ فریم ورک پر مبنی سافٹ ویئر کی تعمیل کی وجہ سے، ڈویلپرز کے لیے یہ جاننا اب بھی آسان نہیں ہے کہ ان کی ایپلی کیشنز کو کیسے لاگو کیا جائے۔
ترقی کو تیز کرنے کے لیے، اضافی گائیڈز کی ضرورت ہے کہ وہ متعارف کرائیں کہ بڑے اجزاء کو کیسے نافذ کیا جائے (سابق کے لیےample، LVGL GUI، وژن، اور آواز کی شناخت) مرحلہ وار۔
سابق کے لیےampلہذا، صارفین کے پاس حل میں موجود ایپس سے مختلف اپنی LVGL GUI ایپلیکیشن ہونی چاہیے۔
NXP کے ذریعہ فراہم کردہ GUI گائیڈر کے ساتھ اپنے LVGL GUI کو نافذ کرنے کے بعد، انہیں فریم ورک کی بنیاد پر اسے سمارٹ HMI سافٹ ویئر پلیٹ فارم میں ضم کرنا ہوگا۔
یہ ایپلیکیشن نوٹ بیان کرتا ہے کہ صارف کی طرف سے تیار کردہ LVGL GUI ایپلیکیشن کو فریم ورک کی بنیاد پر سمارٹ HMI سافٹ ویئر پلیٹ فارم میں کیسے ضم کیا جائے۔
اس درخواستی نوٹ کے ساتھ حوالہ جات بھی پیش کیے گئے ہیں۔
نوٹ: یہ ایپلیکیشن نوٹ اس بات کی وضاحت نہیں کرتا ہے کہ GUI گائیڈر سافٹ ویئر ٹول کے ساتھ LVGL پر مبنی GUI کیسے تیار کیا جائے۔
اوورview LVGL اور GUI گائیڈر کا سیکشن 1.1 اور سیکشن 1.2 میں بیان کیا گیا ہے۔
لائٹ اور ورسٹائل گرافکس لائبریری
لائٹ اینڈ ورسٹائل گرافکس لائبریری (LVGL) ایک مفت اور اوپن سورس گرافکس لائبریری ہے۔
یہ وہ سب کچھ فراہم کرتا ہے جس کی آپ کو استعمال میں آسان گرافیکل عناصر، خوبصورت بصری اثرات، اور کم میموری فوٹ پرنٹ کے ساتھ ایمبیڈڈ GUI بنانے کے لیے درکار ہے۔
GUI گائیڈر
GUI گائیڈر NXP کا صارف دوست گرافیکل یوزر انٹرفیس ڈویلپمنٹ ٹول ہے جو اوپن سورس LVGL گرافکس لائبریری کے ساتھ اعلیٰ معیار کے ڈسپلے کی تیزی سے ترقی کو قابل بناتا ہے۔
GUI گائیڈر کا ڈریگ اینڈ ڈراپ ایڈیٹر LVGL کی بہت سی خصوصیات کو استعمال کرنا آسان بناتا ہے۔ کم سے کم یا بغیر کوڈنگ کے GUI بنانے کے لیے ان خصوصیات میں ویجیٹس، اینیمیشنز اور اسٹائل شامل ہیں۔
ایک بٹن کے کلک سے، آپ اپنی ایپلیکیشن کو نقلی ماحول میں چلا سکتے ہیں یا اسے کسی ہدف والے پروجیکٹ میں ایکسپورٹ کر سکتے ہیں۔
GUI گائیڈر سے تیار کردہ کوڈ آسانی سے آپ کے پروجیکٹ میں شامل کیا جا سکتا ہے، جس سے ترقی کے عمل کو تیز کیا جا سکتا ہے اور آپ کو بغیر کسی رکاوٹ کے اپنی ایپلیکیشن میں ایمبیڈڈ یوزر انٹرفیس شامل کرنے کی اجازت دیتا ہے۔
GUI گائیڈر NXP عمومی مقصد اور کراس اوور MCUs کے ساتھ استعمال کرنے کے لیے آزاد ہے اور اس میں متعدد معاون پلیٹ فارمز کے لیے بلٹ ان پروجیکٹ ٹیمپلیٹس شامل ہیں۔
GUI گائیڈر پر LVGL اور GUI کی ترقی کے بارے میں مزید جاننے کے لیے، https://lvgl.io/ اور GUI گائیڈر ملاحظہ کریں۔
ترقی کا ماحول
GUI ایپ کو سمارٹ HMI پلیٹ فارم میں تیار کرنے اور انٹیگریٹ کرنے کے لیے ترقیاتی ماحول تیار اور ترتیب دیں۔
ہارڈ ویئر ماحول
ترقی کے بعد مظاہرے کے لیے درج ذیل ہارڈویئر کی ضرورت ہے:
- NXP i.MX RT117H پر مبنی سمارٹ HMI ڈویلپمنٹ کٹ
- SEGGER J-Link 9-pin Cortex-M اڈاپٹر کے ساتھ
سافٹ ویئر ماحول۔
اس ایپلیکیشن نوٹ میں استعمال ہونے والے سافٹ ویئر ٹولز اور ان کے ورژن درج ذیل ہیں:
- GUI گائیڈر V1.5.0-GA
- MCUXpresso IDE V11.7.0
نوٹ: 11.7.0 سے پہلے کے ورژن میں ایک بگ مناسب بلٹ ان ملٹی کور پروجیکٹس کی اجازت نہیں دیتا ہے۔
لہذا، ورژن 11.7.0 یا اس سے زیادہ درکار ہے۔ - RT1170 SDK V2.12.1
- SLN-TLHMI-IOT سافٹ ویئر پلیٹ فارم – ہمارے سرکاری GitHub ذخیرے میں جاری کردہ سمارٹ HMI سورس کوڈز
ہارڈ ویئر اور سافٹ ویئر کے ماحول کو ترتیب دینے اور انسٹال کرنے کے طریقہ کے بارے میں مزید جاننے کے لیے، SLN-TLHMI-IOT (دستاویز) کے ساتھ شروعات کرنا دیکھیں MCU-SMHMI-GSG).
LVGL GUI ایپلیکیشن کو سمارٹ HMI پلیٹ فارم میں ضم کریں۔
سمارٹ HMI سافٹ ویئر پلیٹ فارم فریم ورک فن تعمیر پر بنایا گیا ہے۔ ڈویلپرز کو اپنی LVGL GUI ایپلیکیشن کو سمارٹ HMI سافٹ ویئر پلیٹ فارم میں شامل کرنا مشکل ہوتا ہے چاہے وہ ڈویلپر گائیڈ کو پڑھیں اور فریم ورک کے بارے میں جانتے ہوں۔
اگلے حصے بتاتے ہیں کہ اسے مرحلہ وار کیسے نافذ کیا جائے۔
GUI گائیڈر پر LVGL GUI ایپلیکیشن تیار کریں۔
جیسا کہ اوپر ذکر کیا گیا ہے، اس ایپلیکیشن نوٹ میں GUI گائیڈر پر LVGL GUI کو کیسے تیار کیا جائے اس پر زور نہیں دیا گیا ہے۔
لیکن ایک GUI سابقampضروری ہے.
لہذا، GUI گائیڈر میں فراہم کردہ سلائیڈر پروگریس نامی ایک سادہ GUI ٹیمپلیٹ کو GUI سابق کے طور پر منتخب کیا گیا ہے۔ampفوری سیٹ اپ کے لیے۔
سلائیڈر پروگریس GUI ٹیمپلیٹ استعمال کیا جاتا ہے کیونکہ اس میں ایک ایسی تصویر ہوتی ہے جو ایپلیکیشن میں تصویری وسائل کو ظاہر کرنے کے لیے درکار ہوتی ہے۔
GUI سابقample پیدا کرنے کے لئے بہت آسان ہے: اپ ڈیٹ شدہ LVGL لائبریری V8.3.2 اور بورڈ ٹیمپلیٹ کے ساتھ MIMXRT1176xxxxx کے ساتھ پروجیکٹ بنانے کے لیے، GUI گائیڈر یوزر گائیڈ (دستاویز) سے رجوع کریں۔ گائیڈروگ).
شکل 1 پروجیکٹ کی ترتیبات کو ظاہر کرتا ہے۔
نوٹ: پینل کی قسم کو منتخب کیا جانا چاہیے، جیسا کہ شکل 1 میں سرخ باکس میں دکھایا گیا ہے، جیسا کہ یہ موجودہ ترقیاتی بورڈ پر استعمال ہوتا ہے۔
پروجیکٹ بنانے کے بعد، متعلقہ LVGL GUI کوڈز بنانے کے لیے سمیلیٹر چلائیں اور پروجیکٹ کو بھی بنائیں۔
آپ GUI ex کے اثر کو چیک کر سکتے ہیں۔ampسمیلیٹر پر.
شکل 1. GUI گائیڈر پر GUI پروجیکٹ سیٹ اپ
سمارٹ HMI پر اپنا پروجیکٹ بنائیں
نوٹ: سب سے پہلے، MCUXpresso IDE پر اپنا پروجیکٹ بنائیں۔
LVGL GUI سابق کے بعدample بنایا گیا ہے، یہ آپ کی GUI ایپلیکیشن کو لاگو کرنے کے لیے MCUXpresso پروجیکٹ پر سمارٹ HMI سافٹ ویئر پلیٹ فارم میں ضم کرنے کے لیے اہم ہدف تک جا سکتا ہے۔
آسان اور تیز طریقہ یہ ہے کہ اسمارٹ HMI پلیٹ فارم پر پیش کردہ موجودہ ایپلیکیشن پروجیکٹ کو کلون کیا جائے۔
لفٹ ایپ کلون شدہ ذریعہ کے طور پر بہتر انتخاب ہے کیونکہ اس کا نفاذ آسان ہے۔
اپنا پروجیکٹ بنانے کے لیے، ذیل کے مراحل پر عمل کریں:
- GitHub سے کلون شدہ سمارٹ HMI سورس کوڈ میں "لفٹ" فولڈر کو کاپی اور پیسٹ کریں۔ اسے اپنا نام دیں۔
اس سابق کے لیےampلی، ہم نے GUI سابق کے نام کے بعد، "slider_progress" کا انتخاب کیا ہے۔ample - "slider_progress" فولڈر میں، LVGL GUI پروجیکٹ پر مشتمل "lvgl_vglite_lib" فولڈر درج کریں۔
- پروجیکٹ سے متعلق کھولیں۔ files .cproject اور .project اور تمام سٹرنگ "لفٹ" کو اپنے پروجیکٹ کے نام کی سٹرنگ "slider_progress" سے بدل دیں۔
- دونوں پروجیکٹ کے لیے یکساں متبادل کریں۔ files "cm4" اور "cm7" فولڈرز میں۔
لفٹ پروجیکٹ کو کلون کرکے اپنا پروجیکٹ ترتیب دیں۔ files.
جیسا کہ میں دکھایا گیا ہے۔ تصویر 2 آپ کے پروجیکٹ اب MCUXpresso IDE میں اسی طرح کھولے جاسکتے ہیں جس طرح لفٹ پروجیکٹ ہوتے ہیں۔
شکل 2. MCUXpresso پر پروجیکٹس سیٹ اپ
سمارٹ HMI کے لیے وسائل تیار کریں۔
عام طور پر، تصاویر کو GUI میں استعمال کیا جاتا ہے (آوازیں آواز کے اشارے میں بھی استعمال ہوتی ہیں)۔
تصاویر اور آوازوں کو وسائل کہا جاتا ہے، ترتیب میں فلیش میں ذخیرہ کیا جاتا ہے. انہیں فلیش پر پروگرام کرنے سے پہلے، وسائل کو بائنری میں بنایا جانا چاہیے۔ file.
اصل کام حوالہ ایپ (لفٹ) کے ناموں کو اپنے نام سے بدلنا ہے۔
ایسا کرنے کے لیے، درج ذیل مراحل پر عمل کریں:
- slider_progress/resource کے تحت کلون شدہ "تصاویر" فولڈر کو حذف کریں۔
- اپنے GUI گائیڈر پراجیکٹ میں تیار کردہ کے تحت "تصاویر" فولڈر کاپی کریں۔
- اسے slider_progress/resource کے نیچے چسپاں کریں (یعنی لفٹ ایپ کی تصاویر کے بجائے اپنی تصاویر استعمال کریں۔)
- *.mk کو حذف کریں۔ file "امیجز" فولڈر میں GUI گائیڈر کے لیے استعمال کیا جاتا ہے۔
- کا نام تبدیل کریں۔ files elevator_resource.txt، elevator_resource_build.bat، اور elevator_resource_build.sh اپنے پراجیکٹ کے نام slider_progress_resource.txt، slider_progress_resource_build.bat، اور slider_progress_resource_build.bu.
تبصرہ:- elevator_resource.txt: ایپ میں استعمال ہونے والے تمام وسائل (تصاویر اور آوازوں) کے راستوں اور ناموں پر مشتمل ہے۔
- elevator_resource_build.bat/elevator_resource_build.sh: اس کے مطابق ونڈوز اور لینکس میں وسائل کی تعمیر کے لیے استعمال کیا جاتا ہے۔
- slider_progress_resource.txt کھولنے کے بعد fileتمام سٹرنگز "لفٹ" کو "slider_progress" سے بدل دیں۔
- تمام پرانی تصاویر کو ہٹا دیں اور اپنی تصویر کے ساتھ نئی تصاویر شامل کریں۔ file نام (یہاں ہے "_scan_example_597x460.c")، جیسے کہ تصویر ../../slider_progress/resource/images/_scan_example_597x460.c
- slider_progress_resource.bat کھولیں۔ file ونڈوز کے لیے اور تمام سٹرنگز "لفٹ" کو "slider_progress" سے تبدیل کریں۔ کے ساتھ بھی ایسا ہی کریں۔ file لینکس کے لیے slider_progress_resource.sh۔
- بیچ پر ڈبل کلک کریں۔ file ونڈوز کے لیے slider_progress_resource_build.bat۔
- کمانڈ ونڈو ظاہر ہوتی ہے اور خود بخود امیج ریسورس بائنری بنانے کے لیے چلتی ہے۔ file تصویری ڈیٹا اور وسائل تک رسائی کی معلومات پر مشتمل جس میں C کوڈز شامل ہیں تاکہ تمام تصویری مقامات کو فلیش میں سیٹ کیا جا سکے اور تصاویر کے کل بائٹ سائز کا تعین کیا جا سکے۔
پیغام دکھانے کے بعد "ریسورس جنریشن مکمل!"، امیج ریسورس بائنری file نام slider_progress_resource.bin اور وسائل تک رسائی کی معلومات file resource_information_table.txt کا نام فولڈر "وسائل" میں تیار کیا گیا ہے۔
تصویری وسیلہ بائنری file فلیش پر پروگرام کیا جاتا ہے، اور وسائل تک رسائی کی معلومات کو سمارٹ HMI پر وسائل تک رسائی کے لیے استعمال کیا جاتا ہے (سیکشن 3.4.1 دیکھیں)۔
LVGL GUI ایپلیکیشن کو سمارٹ HMI میں ضم کریں۔
LVGL GUI ایپلیکیشن کوڈز (یہاں SliderProgress GUI سابقہ ہے۔ample) اور تعمیر شدہ تصویری وسائل بشمول رسائی کی معلومات کو سمارٹ HMI میں شامل کیا جا سکتا ہے۔
مزید برآں، آپ کی LVGL GUI ایپلیکیشن کو سمارٹ HMI پر لاگو کرنے کے لیے، LVGL GUI سے متعلق HAL آلات اور متعلقہ کنفیگریشنز کو شامل کرنے کی ضرورت ہے۔
LVGL GUI ایپلیکیشن M4 کور پر چل رہی ہے، اور متعلقہ عمل درآمد تقریباً M4 پروجیکٹ "sln_smart_tlhmi_slider_progress_cm4" میں ہے۔
تفصیلی اقدامات مزید ذیلی حصوں میں بیان کیے گئے ہیں۔
LVGL GUI کوڈز اور وسائل شامل کریں۔
سمارٹ HMI کے لیے استعمال ہونے والے LVGL GUI ایپلیکیشن کوڈز GUI گائیڈر پروجیکٹ میں "کسٹم" اور "جنریٹڈ" فولڈرز میں ہیں۔
سمارٹ HMI میں کوڈز شامل کرنے کے لیے، ذیل کے مراحل پر عمل کریں:
- slider_progress/cm4/custom/ کے تحت custom.c اور custom.h کو GUI گائیڈر پروجیکٹ میں "کسٹم" فولڈر میں والے سے تبدیل کریں۔
- slider_progress/cm4/ سے "جنریٹڈ" فولڈرز کو ہٹا دیں۔
پھر GUI گائیڈر پروجیکٹ سے "جنریٹڈ" فولڈر کاپی کریں اور اسے slider_progress/cm4/ میں چسپاں کریں۔ - فولڈرز "تصویر" اور "mPythonImages" اور تمام کو حذف کریں۔ files *.mk اور *.py "جنریٹڈ" فولڈر میں۔
جیسا کہ اوپر ذکر کیا گیا ہے، "امیج" فولڈر میں موجود تصاویر کو ریسورس بائنری میں بنایا گیا ہے۔ file، لہذا "تصویر" فولڈر کی ضرورت نہیں ہے۔
فولڈر "mPythonImages" اور تمام files *.mk اور *.py اسمارٹ HMI کے لیے ناپسندیدہ ہیں۔ - سمارٹ HMI پلیٹ فارم کی بنیاد پر mutex کنٹرول شامل کرنے اور تصویر کے مقامات کو فلیش پر سیٹ کرنے کے لیے، ترمیم کریں۔ file MCUXpresso IDE پر custom.c۔
یہ سب RT_PLATFORM کے ذریعے بیان کیے گئے ہیں۔ - MCUXpresso IDE پر لفٹ پروجیکٹ کھولیں۔ sln_smart_tlhmi_elevator_cm4 کے تحت custom.c میں میکرو ڈیفینیشن RT_PLATFORM تلاش کریں file custom.c کے تحت sln_smart_tlhmi_slider_progress_cm4 > کسٹم۔
- #else پر مشتمل #else کے تحت کوڈ لائنوں کو حذف کریں کیونکہ وہ لفٹ GUI کے لیے استعمال ہوتی ہیں۔
شامل کردہ کوڈ لائنیں درج ذیل کا احاطہ کرتی ہیں:
- شامل ہیں۔ files مندرجہ ذیل ہیں:
- متغیر اعلان درج ذیل ہے:
- فنکشن custom_init() میں C کوڈز درج ذیل ہیں:
- فنکشنز کے لیے C کوڈز _takeLVGLMutex(), _giveLVGLMutex()، اور setup_imgs() جہاں تمام امیجز کے مقامات سیٹ ہیں۔
- شامل ہیں۔ files مندرجہ ذیل ہیں:
- فنکشن setup_imgs() میں موجود کوڈز کو resource_information_table.txt میں تصاویر کے لیے لوکیشن سیٹ اپ کوڈز سے بدلیں۔ file (سیکشن 3.3 دیکھیں)۔
اس ایپلیکیشن نوٹ میں، صرف ایک تصویری وسیلہ ہے جو اس طرح ترتیب دیا گیا ہے: _scan_example_597x460.data = (بیس + 0)؛ ایسا کرنے کے بعد، فنکشن setup_imgs() ذیل میں دکھایا گیا ہے:
- custom.c سے متعلق میکرو تعریف اور فنکشن ڈیکلریشن شامل کرنے کے لیے custom.h میں ترمیم کریں۔ file sln_smart_tlhmi_slider_progress_cm4 > اپنی مرضی کے تحت، جیسا کہ ذیل میں دکھایا گیا ہے:
- اپنی LVGL GUI ایپلیکیشن میں تصاویر کی وضاحت کرنے کے لیے، lvgl_images_internal.h میں ترمیم کریں۔ file sln_smart_tlhmi_slider_progress_cm4 > کسٹم کے تحت۔
- ایک تصویر کھولیں *.c file (یہاں _scan_ex ہے۔ample_597x460.c) GUI گائیڈر پروجیکٹ میں /generated/ image/ کے تحت۔
کے آخر میں تصویر کی تعریف کاپی کریں۔ file. اسے lvgl_images_internal.h پر چسپاں کریں۔ file لفٹ ایپ کے لیے تصاویر کے بارے میں تمام اصل تعریفیں حذف کرنے کے بعد۔ - .data = _scan_ex حذف کریں۔ampصف میں le_597x460_map چونکہ .data فنکشن setup_imgs() میں سیٹ ہے۔
صف کی وضاحت آخر میں lvgl_images_internal.h میں کی گئی ہے۔ file، جیسا کہ ذیل میں دکھایا گیا ہے:
تبصرہ: تمام تصویر کے لیے اوپر کی کارروائیوں کو دہرائیں۔ files ایک ایک کرکے اگر ملٹی امیج ہیں۔ files.
- ایک تصویر کھولیں *.c file (یہاں _scan_ex ہے۔ample_597x460.c) GUI گائیڈر پروجیکٹ میں /generated/ image/ کے تحت۔
- 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.
لہذا، یہ دونوں کلون کرنا ضروری ہے fileموجودہ لفٹ ایپلیکیشن سے s اور اپنی LVGL GUI ایپلیکیشن میں ترمیم کریں۔
پھر، کنفیگریشن میں اپنے آلات کو فعال کریں۔ file.
آپ کی LVGL GUI ایپلیکیشن فریم ورک کی بنیاد پر سمارٹ HMI پلیٹ فارم پر بنائی گئی ہے۔
تفصیلی ترامیم MCUXpresso IDE میں کی جا سکتی ہیں، جیسا کہ ذیل میں دکھایا گیا ہے:
- ڈسپلے HAL ڈیوائس کو لاگو کریں۔
- hal_display_lvgl_elevator.c کو کاپی اور پیسٹ کریں۔ file گروپ کے تحت sln_smart_tlhmi_slider_progress_cm4 > فریم ورک > hal > MCUXpresso پروجیکٹ پر ڈسپلے۔ اپنی درخواست کے لیے اس کا نام hal_display_lvgl_sliderprogress.c رکھ دیں۔
- کھولیں۔ file hal_display_lvgl_sliderprogress.c اور تمام سٹرنگز "لفٹ" کو اپنی ایپلیکیشن سٹرنگ "SliderProgress" سے تبدیل کریں file.
- آؤٹ پٹ HAL ڈیوائس کو لاگو کریں۔
- hal_output_ui_elevator.c کو کاپی اور پیسٹ کریں۔ file گروپ کے تحت sln_smart_tlhmi_slider_progress_cm4 > فریم ورک > hal > MCUXpresso پروجیکٹ پر آؤٹ پٹ۔ اپنی درخواست کے لیے اس کا نام hal_output_ui_sliderprogress.c رکھ دیں۔
- کھولیں۔ 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(); - بعد میں اپنی ایپلیکیشن بنانے کے لیے فنکشن HAL_OutputDev_UiElevator_InferComplete() کو صاف کریں۔
فنکشن میں، دونوں فنکشن کالز _InferComplete_Vision() اور _InferComplete_Voice() کو ہٹا دیں جو لفٹ ایپلی کیشن کے لیے وژن اور صوتی الگورتھم سے نتائج کو سنبھالنے کے لیے استعمال ہوتی ہیں۔ - HAL_OutputDev_UiElevator_InputNotify() فنکشن کو صاف کریں اور مزید ایپلیکیشن ڈویلپمنٹ کے لیے بنیادی فن تعمیر کو برقرار رکھیں۔
آخر میں، فنکشن اس طرح نظر آتا ہے:
- تمام متغیر اعلانات کو ہٹا دیں، بشمول enum اور array، سوائے s_UiSurface اور s_AsBuffer[] کے جو عام نفاذ کے لیے استعمال ہوتے ہیں۔
- تمام سٹرنگز "لفٹ" کو اپنی ایپلیکیشن سٹرنگ "SliderProgress" سے بدل دیں۔
- دونوں HAL آلات کو فعال اور ترتیب دیں۔
- بورڈ_define.h کھولیں۔ file sln_smart_tlhmi_slider_progress_cm4 > بورڈ کے تحت۔
تمام سٹرنگز "لفٹ" کو اپنی ایپلیکیشن سٹرنگ "SliderProgress" سے تبدیل کریں۔ file.
یہ ڈسپلے اور آؤٹ پٹ HAL ڈیوائسز کو ENABLE_DISPLAY_DEV_LVGLSliderProgress اور ENABLE_OUTPUT_DEV_UiSliderProgress کی تعریفوں سے فعال اور ترتیب دیتا ہے۔ - lvgl_support.c کھولیں۔ file sln_smart_tlhmi_slider_progress_cm4 > بورڈ کے تحت۔ تمام سٹرنگز "لفٹ" کو اپنی ایپلیکیشن سٹرنگ "SliderProgress" سے تبدیل کریں۔ file.
یہ کیمرہ پری کو قابل بناتا ہے۔view ڈسپلے ڈرائیور کی سطح پر GUI پر۔
- بورڈ_define.h کھولیں۔ file sln_smart_tlhmi_slider_progress_cm4 > بورڈ کے تحت۔
- دونوں HAL آلات رجسٹر کریں۔
M4 مین sln_smart_tlhmi_cm4.cpp کھولیں۔ file sln_smart_tlhmi_slider_progress_cm4 > ماخذ کے تحت۔
تمام سٹرنگز "لفٹ" کو اپنی ایپلیکیشن سٹرنگ "SliderProgress" سے تبدیل کریں۔ file.
یہ لفٹ ایپلی کیشن کے بجائے آپ کی ایپلیکیشن کے لیے ڈسپلے اور آؤٹ پٹ HAL ڈیوائس کو رجسٹر کرتا ہے۔
لہذا، سمارٹ HMI پر بنیادی LVGL GUI ایپلیکیشن چلانے کے لیے انضمام مکمل ہو گیا ہے۔
درخواست کے لیے مزید تقاضوں پر منحصر ہے، مربوط بنیادی ایپلی کیشن کی بنیاد پر مزید نفاذات شامل کیے جا سکتے ہیں۔
مظاہرہ
"slider_progress" ایپلیکیشن ڈیمو اس ایپلیکیشن نوٹ کے ساتھ لاگو کیا گیا ہے۔
ڈیمو سافٹ ویئر پیکج کو ان زپ کرنے کے بعد، نیچے ڈالیں۔ files اور فولڈر کو سمارٹ HMI سافٹ ویئر میں:
- دی file hal_display_lvgl_sliderprpgress.c کے تحت [demo]\framework\hal\display\ to the path [smart HMI]\framework\hal\display\
- دی 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. سمارٹ HMI ڈویلپمنٹ بورڈ پر LVGL GUI ڈیمو ڈسپلے
نظرثانی کی تاریخ
نظرثانی کی سرگزشت اس دستاویز کی نظرثانی کا خلاصہ کرتی ہے۔
جدول 1۔ نظرثانی کی تاریخ
نظرثانی نمبر | تاریخ | بنیادی تبدیلیاں |
1 | یکم جون 16 | ابتدائی رہائی |
دستاویز میں سورس کوڈ کے بارے میں نوٹ کریں۔
Exampاس دستاویز میں دکھائے گئے le کوڈ میں درج ذیل کاپی رائٹ اور BSD-3-Clause لائسنس ہے:
کاپی رائٹ 2023 NXP کی دوبارہ تقسیم اور ماخذ اور بائنری شکلوں میں ترمیم کے ساتھ یا اس کے بغیر استعمال کی اجازت ہے بشرطیکہ درج ذیل شرائط پوری ہوں:
- سورس کوڈ کی دوبارہ تقسیم میں اوپر کاپی رائٹ نوٹس، شرائط کی یہ فہرست اور درج ذیل تردید کو برقرار رکھنا چاہیے۔
- بائنری شکل میں دوبارہ تقسیم کے لیے مندرجہ بالا کاپی رائٹ نوٹس کو دوبارہ پیش کرنا چاہیے، شرائط کی یہ فہرست اور دستاویزات اور/یا دیگر مواد میں درج ذیل تردید کو تقسیم کے ساتھ فراہم کیا جانا چاہیے۔
- نہ کسی کاپی رائٹ ہولڈر کا نام ہے اور نہ ہی اس کے معاونین کے ناموں کو کسی خاص پیشگی تحریری اجازت کے بغیر اس سافٹ ویئر سے حاصل شدہ مصنوعات کی توثیق کرنے یا ان کی تشہیر کے لئے استعمال کیا جاسکتا ہے۔
یہ سافٹ ویئر کاپی رائٹ ہولڈرز اور تعاون کنندگان کی طرف سے فراہم کیا گیا ہے "جیسا ہے" اور کوئی بھی واضح یا مضمر وارنٹی، بشمول، لیکن ان تک محدود نہیں، مضمر ذمہ داری کی مضمر وارنٹی۔
کسی بھی صورت میں کاپی رائٹ ہولڈر یا شراکت دار کسی بھی براہ راست، بالواسطہ، حادثاتی، خصوصی، مثالی، یا نتیجے میں ہونے والے نقصانات کے لیے ذمہ دار نہیں ہوں گے۔ استعمال، ڈیٹا، یا منافع کا نقصان؛ یا کاروباری رکاوٹ) تاہم، کسی بھی طرح کی ذمہ داری، چاہے معاہدے میں ہو، سخت ذمہ داری ہو، یا کسی بھی صورت میں کسی بھی صورت میں پیدا ہو۔ اس طرح کے امکان کا
نقصان
قانونی معلومات
تعریفیں
مسودہ: کسی دستاویز پر مسودہ کی حیثیت اس بات کی نشاندہی کرتی ہے کہ مواد اب بھی اندرونی ری کے تحت ہے۔view اور باضابطہ منظوری سے مشروط ، جس کے نتیجے میں ترمیم یا اضافے ہو سکتے ہیں۔
NXP سیمی کنڈکٹرز کسی دستاویز کے مسودہ ورژن میں شامل معلومات کی درستگی یا مکمل ہونے کے بارے میں کوئی نمائندگی یا وارنٹی نہیں دیتے ہیں اور ایسی معلومات کے استعمال کے نتائج کے لیے ان پر کوئی ذمہ داری نہیں ہوگی۔
دستبرداری
محدود وارنٹی اور ذمہ داری: اس دستاویز میں دی گئی معلومات کو درست اور قابل اعتماد سمجھا جاتا ہے۔
تاہم، NXP سیمی کنڈکٹرز ایسی معلومات کی درستگی یا مکمل ہونے کے بارے میں اظہار یا مضمر، کوئی نمائندگی یا وارنٹی نہیں دیتے ہیں اور ایسی معلومات کے استعمال کے نتائج کے لیے ان پر کوئی ذمہ داری نہیں ہوگی۔
NXP Semiconductors اس دستاویز میں موجود مواد کی کوئی ذمہ داری نہیں لیتا ہے اگر NXP Semiconductors سے باہر کسی معلوماتی ذریعہ سے فراہم کیا جائے۔
کسی بھی صورت میں NXP سیمی کنڈکٹرز کسی بھی بالواسطہ، واقعاتی، تعزیری، خصوصی یا نتیجہ خیز نقصانات کے لیے ذمہ دار نہیں ہوں گے (بشمول – بغیر کسی حد کے – کھوئے ہوئے منافع، کھوئی ہوئی بچت، کاروبار میں رکاوٹ، کسی بھی مصنوعات کو ہٹانے یا تبدیل کرنے سے متعلق اخراجات یا دوبارہ کام کے چارجز) چاہے یا نہیں اس طرح کے نقصانات ٹارٹ (بشمول غفلت)، وارنٹی، معاہدے کی خلاف ورزی یا کسی اور قانونی نظریہ پر مبنی ہیں۔
کسی بھی نقصان کے باوجود جو گاہک کو کسی بھی وجہ سے اٹھانا پڑ سکتا ہے، NXP سیمی کنڈکٹرز کی یہاں بیان کردہ مصنوعات کے لیے صارف کے لیے مجموعی اور مجموعی ذمہ داری NXP سیمی کنڈکٹرز کی تجارتی فروخت کی شرائط و ضوابط کے مطابق محدود ہوگی۔
تبدیلیاں کرنے کا حق: NXP Semiconductors اس دستاویز میں شائع کردہ معلومات میں تبدیلیاں کرنے کا حق محفوظ رکھتا ہے، بشمول بغیر کسی حد کے وضاحتیں اور مصنوعات کی تفصیل، کسی بھی وقت اور بغیر اطلاع کے۔
یہ دستاویز یہاں کی اشاعت سے پہلے فراہم کی گئی تمام معلومات کی جگہ لے لیتی ہے اور اس کی جگہ لے لیتی ہے۔
استعمال کے لیے موزوں: NXP سیمی کنڈکٹرز پروڈکٹس کو لائف سپورٹ، لائف-کریٹیکل یا سیفٹی-کریٹیکل سسٹمز یا آلات میں استعمال کے لیے ڈیزائن، مجاز یا اس کی ضمانت نہیں دی گئی ہے، اور نہ ہی ایسی ایپلی کیشنز میں جہاں NXP سیمی کنڈکٹرز پروڈکٹ کی ناکامی یا خرابی کے نتیجے میں ذاتی طور پر توقع کی جا سکتی ہے۔ چوٹ، موت یا شدید املاک یا ماحولیاتی نقصان۔
NXP سیمی کنڈکٹرز اور اس کے سپلائرز ایسے آلات یا ایپلی کیشنز میں NXP سیمی کنڈکٹرز کی مصنوعات کو شامل کرنے اور/یا استعمال کرنے کے لیے کوئی ذمہ داری قبول نہیں کرتے ہیں اور اس لیے اس طرح کی شمولیت اور/یا استعمال صارف کے اپنے خطرے پر ہے۔
درخواستیں: ان میں سے کسی بھی پروڈکٹس کے لیے جو درخواستیں یہاں بیان کی گئی ہیں وہ صرف مثالی مقاصد کے لیے ہیں۔
NXP سیمی کنڈکٹرز کوئی نمائندگی یا ضمانت نہیں دیتے ہیں کہ ایسی ایپلی کیشنز بغیر کسی جانچ یا ترمیم کے مخصوص استعمال کے لیے موزوں ہوں گی۔
صارفین NXP Semiconductors پروڈکٹس کا استعمال کرتے ہوئے اپنی ایپلی کیشنز اور پروڈکٹس کے ڈیزائن اور آپریشن کے ذمہ دار ہیں، اور NXP Semiconductors ایپلی کیشنز یا کسٹمر پروڈکٹ ڈیزائن کے ساتھ کسی بھی مدد کے لیے کوئی ذمہ داری قبول نہیں کرتے ہیں۔
یہ تعین کرنا گاہک کی واحد ذمہ داری ہے کہ آیا NXP Semiconductors پروڈکٹ گاہک کی ایپلیکیشنز اور منصوبہ بند مصنوعات کے ساتھ ساتھ گاہک کے تیسرے فریق گاہک (صارفین) کے منصوبہ بند اطلاق اور استعمال کے لیے موزوں اور موزوں ہے۔
صارفین کو اپنی ایپلی کیشنز اور مصنوعات سے وابستہ خطرات کو کم کرنے کے لیے مناسب ڈیزائن اور آپریٹنگ تحفظات فراہم کرنے چاہییں۔
NXP سیمی کنڈکٹرز کسی بھی ڈیفالٹ، نقصان، لاگت یا مسئلے سے متعلق کوئی ذمہ داری قبول نہیں کرتے ہیں جو گاہک کی ایپلی کیشنز یا مصنوعات میں کسی کمزوری یا ڈیفالٹ پر مبنی ہے، یا صارف کے تیسرے فریق گاہک (صارفین) کی طرف سے درخواست یا استعمال پر مبنی ہے۔
کسٹمر کی ذمہ داری ہے کہ وہ NXP Semiconductors پروڈکٹس کا استعمال کرتے ہوئے گاہک کی ایپلی کیشنز اور پروڈکٹس کے لیے تمام ضروری ٹیسٹنگ کرے تاکہ ایپلی کیشنز اور پروڈکٹس یا ایپلیکیشن کے ڈیفالٹ سے بچا جا سکے یا کسٹمر کے تھرڈ پارٹی گاہک (صارفین) کے ذریعے استعمال کیا جا سکے۔ NXP اس سلسلے میں کوئی ذمہ داری قبول نہیں کرتا ہے۔
تجارتی فروخت کی شرائط و ضوابط: NXP سیمی کنڈکٹرز پروڈکٹس کو تجارتی فروخت کے عمومی شرائط و ضوابط کے تحت فروخت کیا جاتا ہے، جیسا کہ پر شائع ہوا ہے۔ http://www.nxp.com/profile/terms، جب تک کہ ایک درست تحریری انفرادی معاہدے میں دوسری صورت میں اتفاق نہ ہو۔
انفرادی معاہدے کی صورت میں صرف متعلقہ معاہدے کی شرائط و ضوابط لاگو ہوں گے۔
NXP Semiconductors اس طرح گاہک کے ذریعے NXP Semiconductors پروڈکٹس کی خریداری کے سلسلے میں گاہک کی عمومی شرائط و ضوابط کو لاگو کرنے پر واضح طور پر اعتراض کرتے ہیں۔
ایکسپورٹ کنٹرول: اس دستاویز کے ساتھ ساتھ یہاں بیان کردہ آئٹمز برآمد کنٹرول کے ضوابط کے تابع ہو سکتے ہیں۔
ایکسپورٹ کے لیے مجاز حکام سے پیشگی اجازت درکار ہو سکتی ہے۔
غیر آٹوموٹو اہل مصنوعات میں استعمال کے لیے موزوں: جب تک کہ یہ ڈیٹا شیٹ واضح طور پر یہ نہ کہے کہ یہ مخصوص NXP Semiconductors پروڈکٹ آٹوموٹیو کوالیفائیڈ ہے، پروڈکٹ آٹوموٹو کے استعمال کے لیے موزوں نہیں ہے۔
یہ آٹوموٹو ٹیسٹنگ یا درخواست کی ضروریات کے مطابق نہ تو اہل ہے اور نہ ہی اس کا تجربہ کیا گیا ہے۔ NXP سیمی کنڈکٹرز آٹوموٹیو آلات یا ایپلی کیشنز میں غیر آٹوموٹیو اہل مصنوعات کو شامل کرنے اور/یا استعمال کے لیے کوئی ذمہ داری قبول نہیں کرتے ہیں۔
ایسی صورت میں جب صارف پروڈکٹ کو آٹوموٹو ایپلی کیشنز میں ڈیزائن اور استعمال کے لیے آٹوموٹیو تصریحات اور معیارات کے لیے استعمال کرتا ہے، گاہک (a) ایسی آٹوموٹیو ایپلی کیشنز، استعمال اور تصریحات کے لیے مصنوعات کی NXP سیمی کنڈکٹرز کی وارنٹی کے بغیر پروڈکٹ کا استعمال کرے گا، اور ( b) جب بھی گاہک این ایکس پی سیمی کنڈکٹرز کی تصریحات سے ہٹ کر آٹو موٹیو ایپلی کیشنز کے لیے پروڈکٹ کا استعمال کرتا ہے تو اس طرح کا استعمال مکمل طور پر گاہک کے اپنے خطرے پر ہوگا، اور (c) صارف NXP سیمی کنڈکٹرز کو کسی بھی ذمہ داری، نقصانات یا ناکام پروڈکٹ کے دعووں کے لیے مکمل طور پر معاوضہ دیتا ہے۔ این ایکس پی سیمی کنڈکٹرز کی معیاری وارنٹی اور این ایکس پی سیمی کنڈکٹرز کی مصنوعات کی وضاحتوں سے باہر آٹوموٹو ایپلی کیشنز کے لیے پروڈکٹ۔
ترجمہ: کسی دستاویز کا ایک غیر انگریزی (ترجمہ شدہ) ورژن، بشمول اس دستاویز میں قانونی معلومات، صرف حوالہ کے لیے ہے۔
ترجمہ شدہ اور انگریزی ورژن کے درمیان کسی بھی تضاد کی صورت میں انگریزی ورژن غالب ہوگا۔
سیکورٹی: کسٹمر سمجھتا ہے کہ تمام 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
دستاویزات / وسائل
![]() |
NXP AN13948 LVGL GUI ایپلیکیشن کو سمارٹ HMI پلیٹ فارم میں ضم کرنا [پی ڈی ایف] یوزر مینوئل AN13948 LVGL GUI ایپلیکیشن کو سمارٹ HMI پلیٹ فارم، AN13948 میں ضم کرنا، LVGL GUI ایپلیکیشن کو سمارٹ HMI پلیٹ فارم میں ضم کرنا |