Labaratoriya ishi 7.
Mavzu: QNXda signallarni qayta ishlash
Ishdan maqsad: Talabalarga QNX tizimida signallarni qayta ishlash jarayonini o’rgatish.
Qisqacha nazariy ma’lumotlar
QNX Neutrino operatsion tizimi jarayonlararo aloqaning (IPC) turli usullarini qo'llab-quvvatlaydi, jumladan:
xabarlar
impulslar
signallari
Bu usullardan Photon ilovasida foydalanish mumkin. Biroq, foton ulanishlaridan foydalanish yaxshidir:
Ulagichlar ikkita aloqa jarayoniga bir-birini osongina topishga imkon beradi. Foton konnektorlari Photon-da ro'yxatdan o'tgan va shuning uchun bitta mashinada ishlaydigan bir nechta Foton seanslari o'rtasida nom maydoni ziddiyatlari ehtimoli yo'q.
Foton ulanishlari bir xil jarayonlar juftligi o'rtasida bir nechta ulanishlarga ega bo'lsangiz ham, xabarlarni qanday yo'naltirishni biladi. Agar siz xom Neutrino xabarlari va kiritish jarayonlaridan foydalansangiz, bu imkoniyatni o'zingiz hal qilishingiz kerak bo'lishi mumkin.
Boshqa tomondan, nega neytrinoning xom xabarlari va/yoki impulslari ba'zan yaxshiroq bo'lishi mumkin:
Agar ikkita aloqa jarayonidan biri Photon ilovasi bo'lmasa, u Foton kutubxonasidan foydalana olmaydi. Bunday holda, ikkala jarayon ham Neytrino xabarlari yoki impulslaridan foydalanishi kerak.
Agar ikkita jarayon bir xil foton seansiga tegishli bo'lmasa, ular bir-birini topishning boshqa usuliga muhtoj bo'ladi.
Agar sizga pulslar kerak bo'lsa, foton ulanishidan foydalanish ortiqcha.
Ilovangiz chaqiradigan Foton hodisalarini boshqarishning asosiy tsikli Photon hodisalarini boshqarish uchun javobgardir, shunda vidjetlar o'zlarini yangilaydi va sizning qayta qo'ng'iroqlaringiz funksiyalari chaqiriladi.
Photon vidjet kutubxonasi bilan qoʻllaniladigan ushbu oddiy hodisaga asoslangan dasturlash modeli dastur ishlab chiquvchisi uchun baʼzi qiyinchiliklar tugʻdiradi, chunki hodisalarni boshqarish tsikli Photonʼdan hodisalarni olish uchun shartsiz MsgReceive() funksiyasini bajaradi. Bu shuni anglatadiki, ilovangiz MsgReceive() ga qo'ng'iroq qilish kerak bo'lsa, ehtiyot bo'lishingiz kerak, aks holda Photon hodisalari noto'g'ri ketishi va foydalanuvchi interfeysi yangilanmasligi mumkin.
Agar kerak bo'lsa:
ilovangizdagi boshqa xabarlarga javob bering
Boshqa mexanizm yordamida kiritish-chiqarishni amalga oshirish (masalan, quvurdan o'qish)
jarayon signallari
impulslarga javob beradi
sizga dastur kodini hodisalarni boshqarish sikliga ulash usuli kerak bo'ladi. Xuddi shunday, siz ilovangizga taym-autlarni qo'shish va ular bilan qayta qo'ng'iroq qilish funksiyalarini bog'lashni xohlashingiz mumkin.
Signallarni qayta ishlash
Agar ilovangiz signallarni qayta ishlashi kerak bo'lsa, siz signal ishlov beruvchisini o'rnatishingiz kerak bo'ladi. Muammo shundaki, siz foton funksiyalarini signal ishlovchisidan chaqira olmaysiz, chunki vidjetlar kutubxonasi signal uchun xavfsiz yoki qayta kirish imkoniyatiga ega emas.
Ushbu muammoni hal qilish uchun Foton kutubxonasi signal ishlov beruvchisini o'z ichiga oladi. Siz signalni qayta ishlash funksiyasini ro'yxatdan o'tkazasiz va Photon uni keyin chaqiradi
va
joriy vidjet uchun barcha ishlov berish tugallandi
|
Signallarga shu tarzda ishlov berish orqali siz real vaqtda qattiq ishlashga erisha olmaysiz, chunki signalni qayta ishlash funksiyangiz darhol chaqirilmaydi.
|
Signalni qayta ishlash funktsiyasini qo'shish
Signalni qayta ishlash funktsiyasini qo'shish uchun PtAppAddSignalProc() funksiyasidan foydalaning. Siz odatda qo'ng'iroq qilasiz
Yoki
oyna uchun sozlash funksiyasi
Siz ni kiritishingiz kerak .
Do'stlaringiz bilan baham: |