10 amalaish ish Mavzu: SafeString kutubxonasi bilan ishlash ko‘nikmasiga ega bo‘lish. Ishdan maqsad



Download 291,32 Kb.
Sana20.04.2022
Hajmi291,32 Kb.
#567060

10 - amalaish ish
Mavzu: SafeString kutubxonasi bilan ishlash ko‘nikmasiga ega bo‘lish.
Ishdan maqsad: SafeString kutubxonasi bilan ishlash ko‘nikmasini shakllantirish.
Nazariy qism
SafeString kutubxonasi o‘rganuvchi foydalanuchilar uchun uchun Arduino platformasida satrlarni qayta ishlash uchun xavfsiz, ishonchli holda foydalanish uchun mo‘ljallangan. Ushbu kutubxona o‘z ichiga SafeStringReader: tokenlash bollanmaydigan matnni o‘qish, BufferedInput: matn inputlar uchun qo ‘shimcha buferlash, LoopTimer: sikllarning maksimal va o ‘rtacha bajarilish vaqtlari qaytlari, PinFlasher: bloklanmaydigan chiqish Pin signallari va millisDelay: bloklanmaydigan bir martalik, qaytariluvchi, qayta boshlovchi va to‘xtatuvchi so‘rovlarrad etish uchun bo ‘limlarni o‘z ichiga oladi.
Arduino platformasida satrlarni qayta ishlash uchun oldingi variant Arduino Strings kutubxonasi edi. Sparkfun, Adafruit kompaniyalari Arduino String sinfidan foydalanishni maslahat beradi, chunki Taming Arduino Stringsni ko‘rsatmalari bo‘yicha foydalanilsa juda xavfsiz va foydalanishga qulay hisoblanadi. Shunga qaramay, SafeString sizga xotiradan foydalanishni to‘liq nazorat qilish imkonini, boy o‘qish buyruqlari, parserlar va matn funktsiyalarining boy to‘plamidan foydalanish hamda nosozliklarni tuzatishni osonlashtiradigan batafsil xato xabarlarni olish kabi qulayliklarni beradi. SafeString, shuningdek, uchinchi tomon kutubxonalari tomonidan char[] turidagi belgilarda qaytarilgan ma’lumotlarni qayta ishlash uchun Arduino Strings kutubxonasidan yaxshiroqdir. Arduino String kutubxonasida uchraydigan bir necha turdagi xatolar ham SafeString kutubxonasida tuzatilgan.
SafeStrings debuglash uchun juda oson. SafeStrings dasturingizni to‘g‘ri ishlashiga yordam berish uchun batafsil xato xabarlarini taqdim etadi.
SafeStrings xavfsiz va ishonchli. SafeStrings hech qachon qayta ishga tushirishga olib kelmaydi va sizning kodingiz null ko‘rsatkichlar yoki “\0” argumentlarini qaytarmaydi, SafeString mavjud imkoniyatlaridan oshib ketgan bo‘lsa ham, har doim yaroqli holatda bo‘ladi.
SafeString dasturlari abadiy ishlaydi. SafeStrings xotira fragmentlanishidan butunlay qochadi va argument sifatida uzatilganda hech qachon qo‘shimcha nusxa ko‘chirmaydi.
SafeStrings tezroq. SafeStrings bir nechta nusxalarni yoki qisqa muddatli obyektlarni yaratmaydi va ma’lumotlardan keraksiz nusxa ko‘chirmaydi.
SafeStrings mavjud c-stringlarni qamrab olish mumkin. Mavjud char* yoki char[] ni SafeString obyektiga oʻrash sizga mavjud maʼlumotlarda string manipulyatsiyasini xavfsiz bajarish imkonini beradi.
Amaliy qism
SafeString kutubxonasidan fydalnish uchun Arduino dasturi o‘rnatilgan bo‘lishi talab etiladi. Ushbu kutubxona Arduino platformasiga kutubxona sifatida qo‘shiladi. Buning uchun Arduino IDE platdormasi ishga tushirilib, Tools->Manage Libruary menyusi ochiladi. Filter Search qidiruv satriga SafeString so‘zi kiritiladi va sichqonchani SafeString yozuvi ustiga bosiladi. SafeString kutubxonasi qayt yozuvi qismidan Install tugmasini bosiladi.

10.1 – rasm. SafeString kutubxonasini o‘rnatish
Keyin Arduino IDE-ni ishga tushurib, uni o‘rnatish uchun Sketch → Import Library → Add Library menyusidan foydalaning. Arduino IDE-ni qayta ishga tushirish zarur.
File->Examples menyusida endi SafeString ro‘yxatini va uning ostida ko‘p sonli eskiz namunalarini ko‘rishingiz mumkin.
Birinchi misol sifatida quyidagi eskizni ko‘ramiz, SafeString_Example1.ino.
createSafeString(msgStr, 5);
5 uzunlikdan iborat satr chaqiruvchi bo ‘sh SafeString funksiya yaratiladi. Bu yerda SafeString, msgStr funsiya ichidagi global o‘zgaruvchilar. Har qanday holatda ham fragmetnlash yuzaga kelmaydi. Quyidagicha kod yozishingiz mumkin:

10.2 – rasm. SafeString kutubxonasidan foydalanish misoli
SafeString::setOutput(Serial) - chiqish oqimiga xato xabarlarini yuborish va debuglash uchun
msgStr = F("A0");
msgStr += " = ";
msgStr += analogRead(A0);
chiqarish satrni tuzaladi.
msgStr.debug(F(“After adding analogRead”));
sarlavhadan keyin tafsilotlar va mazmun msgStr chop etadi.

10.3 – rasm. Dastur natijasi
Dastur quyidagicha xabar beradi: msgStr butun xabarni saqlash uchun yetarli emasligini bildiradi. Uni kamida 8 sig'imga oshirish kerak. msgStr hali ham amalda ekanligini unutmang. Agar operatsiya bajarilmasa, SafeString o‘zgarishsiz qoladi.
createSafeString(msgStr, 5) ni tahrirlab o'qish uchun uning hajmini 10 ga oshiramiz. Ya’ni SafeString_Example1a.ino
createSafeString(msgStr, 10);
Ushbu o‘zgarishdan keyin eskizni qayta ishga tushirish (SafeString_Example1a.ino) quyidagi to’liq natijani beradi:
createSafeString(msgStr, 5) ni tahrirlash; o'qish uchun uning hajmini 10 ga oshiring, ya'ni SafeString_Example1a.ino
createSafeString(msgStr, 10);
Ushbu o'zgarishdan keyin eskizni qayta ishga tushirish (SafeString_Example1a.ino) quyidagi to‘liq natijani beradi:
10 9 8 7 6 5 4 3 2 1
After adding analogRead msgStr cap:10 len:8 'A0 = 604'
A0 = 604
Bundan tashqari, qavslarni joylashtirish orqali ushbu bayonotlarni kaskad qilishingiz mumkin:
( (msgStr = F("A0")) += " = " ) += analogRead(A0);
Ushbu o‘zgarishdan keyin eskizni qayta ishga tushirish (SafeString_Example1b.ino) quyidagi natijani beradi:
10 9 8 7 6 5 4
Topshiriq
Har bir talaba SafeString kutubxonasidan holda mini loyiha tuzadi va kutubxona bergan avzallik ham loyihani tushuntirib beradi.
https://www.forward.com.au/pfod/ArduinoProgramming/SafeString/index.html
Download 291,32 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish