|
Labaratoriya ishi Mavzu: qnxda signallarni qayta ishlash Ishdan maqsad
|
bet | 2/3 | Sana | 11.12.2023 | Hajmi | 8,41 Kb. | | #116211 |
Bog'liq Labaratoriya ishi Mavzu qnxda signallarni qayta ishlash Ishdan -hozir.orgSignallarni 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
|
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
Siz ni kiritishingiz kerak .
PtAppAddSignalProc() sintaksisi quyidagicha:
int PtAppAddSignalProc( PtAppContext_t ilovasi ,
sigset_t const * to'plami ,
PtSignalProc_t funktsiyasi ,
bekor * ma'lumotlar );
Argumentlar quyidagicha:
ilova
Ilova konteksti manzili, ushbu ilova bilan bog'liq barcha ma'lumotlarni boshqaradigan PtAppContext_t tuzilmasi. Standart kontekstdan foydalanish uchun ushbu argument uchun NULLni belgilang .
o'rnatish
Signalni qayta ishlash funktsiyasini chaqirishga olib keladigan signallar to'plamiga ko'rsatgich. Ushbu to'plamni yaratish uchun sigemptyset() va sigaddset() funksiyalaridan foydalaning. Qo'shimcha ma'lumot uchun QNX Neutrino kutubxonasi ma'lumotnomasiga qarang.
func
Signalni qayta ishlash funktsiyasi. Foton kutubxonasi ma'lumotnomasida PtSignalProc_t ga qarang .
ma'lumotlar
Funktsiyaga uzatiladigan har qanday ma'lumotlar.
PtAppAddSignalProc() muvaffaqiyatga erishilganda 0, xatolik yuzaga kelganda esa -1 qaytaradi.
Signalni qayta ishlash funksiyangiz quyidagi prototipga ega:
int signalProcFunctions (int signum
void * data );
Argumentlar quyidagilardir:
imzo
Ishlov beriladigan signal raqami.
ma'lumotlar
PtAppAddSignalProc () ga qo'ng'iroqda ko'rsatilgan ma'lumotlar parametri .
Signal ishlov beruvchisi oʻrnatilgan boʻlishini istasangiz, Pt_CONTINUE ni qaytaring . Joriy signal uchun uni olib tashlash uchun Pt_END ni qaytaring (agar funktsiya boshqa signallar uchun ro'yxatdan o'tgan bo'lsa, ular ko'tarilgan bo'lsa ham chaqiriladi).
|
| |