You are on page 1of 23

Dkman Hakknda Bu belge ZigBee PRO Ana Sensr Gsteri kaynak kodunu (ve ilikili dosyalar) ierir.

Uygulama Not ZigBee PRO Ev Sensr Demonun (JN-AN-1122) bir parasdr.Belge ilevsel talimat gibi uygulamann mimarisinin bir zetini ve uygulama kodu, bir aklama salamaktadr, gsterim uygulamann uygulamansan aklanmaktadr. Organizasyon Bu belge, iki blmden olumaktadr bunlar: Blm 1 gsteri uygulamasn tantr ve ileyii anlatlmaktadr. Blm 2 kullanlan ilevleri de dahil olmak zere, uygulamay tasarm zetlenmektedir. Kurallar Dosyalar, klasrler, fonksiyonlar ve parametre trleri kaln temsil edilmektedir. Fonksiyon parametreleri italik tipi temsil edilmektedir. Kod paralar Courier yaz temsil edilmektedir. Ksaltmalar Hakknda Bilgi API Application Programming Interface (Uygulama Program Ara Birimi) IDE Integrated Development Environment (Entegre Gelitirme Ortam) ISR Interrupt Service Routine (Servis Rutin Kesme) JenOS Jennic Operating System (JENNIC letim Sistemi) PDM Persistent Data Manager (Kalc Veri Yneticisi) PWRM Power Manager (G Yneticisi) RTOS Real-time Operating System (Gerek Zamanl letim Sistemi) SDK Software Developers Kit (Yazlm Gelitirme Kiti) ZPS ZigBee PRO Stack (ZigBee PRO Yn)

1-Gsterim Genel Bak ve altrma ZigBee PRO Ana Sensr gsterim uygulamas JN5148 cihaz zerinde alan ZigBee PRO ynn stne ina edilebilir ve uygulamann nasl yapldnn anlalmas iin bir yardm olarak tasarlanmtr. 1.1 Fonksiyonel Bak Home Sensor uygulamas be pano kullanr.Bunlardan bir tanesi ana kontrol panosu dierleri ise drt tane sensrdr.Bu drt sensr farkl odalara yerletirilerek tipik bir a oluturulur.Her pano bir scaklk sensr,bir nem sensr ve k seviye sensr ile donatlmtr.lmler belli aralklarda ana panodaki ekrana gnderilir. Kontrol kartnda her sensrn 16 bitlik a adresi grntlenebilir.Buna ek olarak bir k gei kontrol zellii vardr.Bu her sensr kartndaki dmeleri uzaktan bir denetleyici kartndaki ledi kontrol etmemizi salar.Benzer ekilde bir denetleyici kart her sensr board zerindeki bir ledi kontrol etmek mmkndr. Kontrol kart ZigBee PRO a koordinatr olarak grev yapar.Sensrlerin aa katlmalarna izin verir.Eer maksimum sayda sensr balandysa aa sensr katlmn devre d brakr. 1.2 Gsterim Ayarlama 1.2.1 Uygulamay Ykleme ZigBee PRO Home Sensor Demo uygulamas uygulama notlarnn iinde u dosyada zip halinde bulunmaktadr. (JN-AN-1122-ZBPro-Home-Sensor-Demo.zip) Bu dosya indirilir.JN-5148 kurulmu olmas gerekemektedir.Bilgisayarn C:Jennic/Application iine zipli haldeki dosya kartlarak atlr.Ardndan kurulmu olan 5148 programnn iinde program build edilerek bin dosyas elde edilir. 1.2.2 Gsteri Ykleme Gsteriyi altrmak iin aadaki admlar takip etmeliyiz: NOT:kili JN-5148(Toolchainin) bir paras olarak gelir ve JN-51xx fla programc kullanarak panolarn iine yklenmi olmas gerekmektedir. Kontrol kartna (LCD ekran) ControllerNode/Build iinde verilmi olan ControllerNode_JN5148.bin dosyas yklenerek kontrol kartnn a koordinatr olarak almas salanr.

SMA konnektrleri ile iki sensr boarduna SensorNode/Build iinde verilmi olan SensorNode_JN5148.bin dosyas ykelenerek iki sensr boardununda ynlendirici olarak altrlmas salanr. PCB antenler iki sensre balanarak SensorNode_SED/Build iinde verilmi olan SensorNode_SED_JN5148.bin dosyas yklenerek iki sensr boardununda son cihaz olarak altrlmas salanr.

1.2.3. A Balangc Uygulama ikili deerlendirme kiti panolar (Blm 1.2.2 'de akland gibi) yklenir sonra,demo sistem altrlr. A dinamik olarak oluturulur. Kablosuz a hassas topolojisi nceden tespit edilemez. Aada rnek bir sistemi ekilde gsterilmitir. Ancak, tam sistem topolojisi gsteri almas iin nemli deildir.

ekil-1:rnek Sistem NOT: Eer bir kart (rnein aa katlma ilemi baarsz) ile ilgili sorunlar varsa kart resetlenebilir yada g dngs nerilir.Bunu yapmak iin SW1 dmesine basl tutulur ayn zamanda g-devir sfrlanr.Kart yeniden baladktan sonra ve flash bellekteki veri silindikten sonra a koordinatrndeki tm ledler yanacaktr. Adm-1 Bir g kayna ve anteni olan her boardun kapal olduundan emin olun a)Btn boardlar kapal konumda olmal( SW-6 anahtar off konumunda olmal)

b)Pil taklm olan veya g kaynana balanm olan kartlarn jumperlar doru konumda olmaldr.(Jumper J2 de istenilen g kayna iin doru pozisyonda olmaldr.) c)Bir SMA konnektr ile board bal olmaldr bunlarada anten balanmaldr.(Balantlarn salam yapldndan emin olunmaldr)

Adm -2 Kontrol kart zerinde g SW-6 anahtarn kullanarak gc an. G ledi ve drt led (D1-D4) yanacaktr.Balat ekran LCDde belirecektir.Buna ek olarak drt dme SW1-SW4 ekrann alt kenar boyunca grnecektir.

Adm-3 A iin kanal seimi (opsiyonel) Bu gsteri iin varsaylan kanal-13tr.(2400Mhz)Bu ada almak istemiyorsak kanal says arttrlabilir ya da azaltlabilir.Kanal saysn arttrmak iin ortadaki iki dme (SW2 ve SW3) kullanlabilir. Adm-4 Kontrol kartnda gsteri balatma Kontrol kartnda bitti etiketli (SW4) dmeye baslr. Koordinatr yeni bir kablosuz a oluturur.Bu an hangi kanalda alaca nc admda belirlenmitir. A altktan sonra ledler (D1den D4e kadar) snm olacaktr. Adm-5 Sensor boardunu balatma

Sensor boardunun zerindeki SW6 anahtarn kullanarak sensr an.nce ynlendiricilerin almas tavsiye edilir.(SMA balantl antenler ile sensr levhalar) Sensor boarduna g gelince D9 ledi yanacaktr.Ynlendiriciler ve son cihazlar aldktan sonra a aramaya balarlar ve aa katlrlar.Sensr kart a aryorken D1 ve D2 ledleri yanar durumda olur fakat a bulduktan ve katldktan sonra D2 ledi sadece ana karta bilgi gnderirken yanar yani aralklarla yanp snmeye balar.Her sensr aa katldktan sonra ona LCD ekranda bir ad verilir.Srayla u isimler tanmlanr:Salon,yatak odas,oturma odas,banyo.Varsaylan olarak her dmden scaklk lm ekranda olur.

Adm-6 Ana sensr gsteri kullanm Artk sensr kartlarndan scaklk,k,nem lmleri elde edilebilir.Demo sistemin operasyonu blm 1.3te tarif edilmektedir. NOT: Daha sonra sfrdan yeni bir gsteri balatmak istiyorsak ilk nce ana sensr kartnn flash belleindeki program temizlemek gerekir bunuda reset program tularyla gerekletiririz. 1.3 Ana Sensr Gsteri Kullanm Bu blmde kontrol kartndaki ana sensr gsterimi ve bunun ilevselliinin nasl olduu gsterilecektir. Ana sensr gsteriminin ilevsellii vardr: evre izleme (scaklk,nem,k seviyesi) Blm 1.3.1

Aydnlatma kontrol Blm 1.3.2 A kontrol Blm 1.3.3

Ekran navigasyonu Blm 1.3.1de ayrca aklanmtr. 1.3.1 Ekran Navigasyonu ve evre zleme Sensr kartlarndan sensr okumalar dzenli aralklarla LCD ekranda grntlenebilen kontrol panosuna gnderilir.Kontrol kart zerinde alan uygulama farkl ekillerde sensr verilerini grntler ve bilgi ekranlar ile bir kullanc ara yz salar.Ekrandaki etiketler arasnda gezinmek iin bunlara bal drt buton bulunmaktadr.(SW1-SW4)Bu navigasyon ekil-2de gsterilmitir ve ekranlar sonra tarif edilmitir. NOT: eitli ekranlar iin dmelerin(SW1-SW4) fonksiyonlar blm 1.4te anlatlmtr.

ekil-2 Kontrol kart ekran navigasyonu Her a ekrannda tm a dmleri iin sensr belirli bir veri trn grntler:

Scaklk Ekran:Bu ekran santigrat cinsinden tm dmlerin scaklk deerlerini gsterir.A baladnda ilk olarak ekranda bu scaklk deerleri gzkr. Nem Ekran:Bu ekran yzde olarak tm dmlerden ald bal nem deerini gsterir. Ik Seviye Ekran:Bu ekran tm dmlerden ald k dzeyini gsterir.Tamamen dolu bir daireyle toplam karanlk gsterir ve bo bir daire ile maksimum aydnlk gsterir.Ik dzeyinde okuma simgesel olarak doldurulmu bir daire ile temsil edilmektedir. Her sensr okuma bir grafik veya resim olarak gsterilir. Her bir dm a adreside 4 haneli bir onaltlk say olarak gsterilir.(Blm 1.3.3)

ekil-3 rnek A Ekran(Nem) Burda scaklk k seviyesi veya dm butonlarna baslarak istenilen ekran getirilebilir. Dm Ekran Her dm ekran belirli bir dm (Salon,Yatak Odas,Oturma Odas,Banyo)veya tm sensr okumalarn gsterir.Dm ekranna herhangi bir dm dmesine baslarak eriilir.Hall ilk dm ekrandr.Dm dmesine tekrar tekrar baslarak dier dmlerdeki deerlerde grlebilir.lk olarak Bedroom ekran daha sonra Luonge ekran daha sonra ise Bathroom ekran ve daha sonra tekrar Hall ekran gelir. A ziyaret ettiimiz son a ekranna geri gtrecek olan geri dmesine basarak dm ekranndan kabiliriz.Dm ekrannda karlm dmden gelen mesajlarn numaras ayrca gserilecektir.Eer a dm kaybederse say hzla artacaktr.

Hall ekrannda bir rnei ekil-4te gsterilmitir.

ekil-4:rnek Dm Ekran (Nem)

1.3.2 Aydnlatma Kontrol Baka bir karttaki LEDi kontol etmek iin ana karttaki buton kullanlabilir.Bylece k kontrol kablosuz olarak salanm olur.Aydnlatma kontrol iki ekilde uygulanr: Bir sensr kartndaki dmeler bir denetleyici kartndaki LEDi kontrol etmek iin kullanlr. Konrtol kartndaki dmeler bir sensr kartndaki LEDi kontrol etmek iin kullanlr.

Kontrol Kartnda LED Kontrol Herhangi bir sensr kartndaki SW1 ve SW2 dmeleri ile kontrol kartndaki drt LEDten birini konrtol edebiliriz.Farkl sensr kartlarndan LED kontrol aadaki tabloda aklanmtr:

Sensr kartlarndaki SW1 ve SW2 dmeleri aadaki gibi kullanlr: SW2ye basarak kontrol kart zerindeki ilgili LEDi yakarz. SW1e basarak kontrol kart zerindeki ilgili LEDi sndrrz.

Sensr kartnn kendi zerinde grnr etkisi yoktur. Sensr Kart zerindeki LED Kontrol rnein salon ekran iin blm 1.3.1 de akland gibi SW3 ve SW4 butonlar kullanabilir.Sensr kartndaki D1 LEDini kontrol etmek iin: SW4e basldnda LED yanar. SW3e basldnda ise LED sner.

Kontrol kartnda veya dier sensr kartlarnda grnr bir etkisi yoktur. 1.3.3 A Kontrol A ilevsellii iki adan on-board dmeleri kullanlarak kontrol edilebilir: Koordinatr zerinde zin-Birletirme (Kontrol Kart) Yn Durum Kalcl herhangi dmde

Koordinatr zerinde zin Birletirme Koordinatr dier dmlerin aa katlmasna varsaylan olarak izin verir.Ancak bu zin-Birletirme devre d braklabilir.Fakat yinede ada herhangi bir router varsa router dmleri ile aa katlmak mmkn olacaktr. Koordinatr zerinde zin Birletirme ilemini etkinletirmek ve pasifletirmek iin kontrol kart zerindeki SW1 butonu kullanlabilir.Bu ilevi kullanmak iin scaklk,nem,k seviye ekranlarndan birisi olmaldr.SW1 dmesine iki saniye basl tutularak zin Birletirme ileminde gei yaplabilir ve geerli ayar LCD ekranda gsterilir. A balatrken bu zellik a ekli iin yardm olur.rnein bir yldz topolojisini nlemek iin ilk ynlendirici aa katldktan hemen sonra koordinatr izin birletirme devre d braklr.Bylece sonradan katlan dmler ynlendirici araclyla aa katlmak zorunda olucaktr.

Aa sensr katlm en fazla sayya ulat takdirde (bu gsteri iin 4) koordinatr zerindeki izin birletirme ilemi otomatik olarak devre d kalr ve SW1 araclyla eriilemez hale gelir. Yn Durum Kalcl Bir dmde ZigBee PRO ynn durumu reset ve g dngs olaylar araclyla korunur.Bu yn uucu olmayan hafza kapsamnda veri yaplr.Bu veriler bir reset ve g dngs ileminden sonra yine JN5148 tarafndan elde edilebilir.Bu ekilde dm adaki yerini daha nceden hatrlayacak.Ancak dmde bir reset veya g dngs ilemi yaparak veri sfrlanabilir.Bylece nceki a durumunu hatrlamasnn nne geilmi olur.Bunu yapmak iin reset veya g dngs ilemi yaparken kontrol kartnda SW1-SW4 butonlarndan biri veya sensr kartndaki SW1,SW2 tularndan birine baslabilir.Depolanan tm veri silindikten sonra ve kart tekrar ON konumuna alndktan sonra tm LEDler yanacaktr. 1.4 Gsteride Buton Fonksiyonlar Bu blmde kontrol kart ve sensr kartlar zerindeki butonarn ilevsellii aklanmtr. 1.4.1 Kontrol Kart Butonlar Aadaki tabloda kontrol kart zerindeki drt adet butonun fonksiyonlar anlatlmtr. Balang Ekran Buton SW1 SW2 SW3 SW4 Durum + Bitti(Done) Fonksiyon Kanal numarasn arttrr (11-26 arasnda) Kanal numarasn azaltr (11-26 arasnda) A balatr (Seilmi kanalda)

Kanal(Channel) Dme ilevi yoktur sadece seili kanaln etiketini grntler

Dm Ekran(Salon(Hall),Yatak Odas(Bedroom),Oturma Odas(Lounge),Banyo(Bathroom)) Buton SW1 SW2 SW3 SW4 Durum Dm(Node) Geri(Back) Off On Fonksiyon Dngde sonraki dm ekranna gitmek HallBedroomLoungeBathroom Son a ekranna geri dner Grntlenen sensr kartndaki D1 LEDini sndrr Grntlenen sensr kartndaki D1 LEDini yakar

A Ekran(Scaklk(Temperature),Nem(Humudity),Ik Seviyesi(Light Control))

Buton SW1 SW2 SW3 SW4

Fonksiyon Tm sensr okumalarn gsterir.Eer iki saniye bu tua basl Dm(Node) tutarsak izin birletirme ilemini devre d brakm oluruz. Scaklk(temperature) ekranna gider ve alglanan scaklk Temperature deerlerini gsterir Humudity Nem(humudity) ekranna gider ve alglanan nem deerlerini gsterir Ik kontrol(Light-control) ekranna gider ve alglanan k Light-Control seviyelerini gsterir.

Durum

1.4.2 Sensr Kart Butonlar Aadaki tabloda sensr kartlarndaki SW1 ve SW2 butonlarnn zelliklerini gsterir. Buton Sensr Dm SW1 Hall Bedroom Lounge Bathroom SW2 Hall Bedroom Lounge Bathroom Fonksiyon Kontrol kartndaki D1 LEDini sndrr. Kontrol kartndaki D2 LEDini sndrr. Kontrol kartndaki D3 LEDini sndrr. Kontrol kartndaki D4 LEDini sndrr. Kontrol kartndaki D1 LEDini yakar. Kontrol kartndaki D2 LEDini yakar. Kontrol kartndaki D3 LEDini yakar. Kontrol kartndaki D4 LEDini yakar.

2 Uygulama Tasarm Bu blmde ZigBee PRO uygulamasndaki alan uygulama kodlar aklanr. 2.1 Dm Yazlm Mimarileri Sensr dmnn iki tr vardr router ve uyku son cihazi(SED).Bu sensr dm tipleri benzerdir fakat aralarnda sadece ufak farkllklar bulunmaktadr. 2.1.1 Kontrol Dm Mimarisi Kontrol dm uygulama mimarisi ekil-5te gsterilmitir.

ekil-5 Kontrol Dm Uygulama Mimarisi Uygulama kodlarnn grevleri aada verilmitir: APP_taskControllerNode Bu kontrol dm uygulamasnn ana grevidir.Bu ZigBee PRO Stack tarafndan oluturulan ynlardan etkinletirilir.Ayrca butonlar grev gnderen mesajlar tarafndan aktive edilir.Uygulama denetleyicisi olarak dmeye basldnda sensr verileri LCD ekranda gsterilir.Eer kullancnn bast ak yada kapal uygun butonlar varsa sensr dmleri uzak ledlere gei yapmak iin LED_CONTROL ereveleri gndermeye sorumludur. APP_taskScanButtons Bu grev bir yazlm zamanlayc tarafndan devreye alnr.Bu sistem bir ISR (Interrupt Service Routine) ile kendini etkinletirir ve her bir tula kesme oluturulur.Bir tua basp kaldrdmzda bir BUTTON_UP ve BUTTON_DOWN olaylar gerekleir. APP_taskLogData LogDatann grevi alglaycy veri yaplarn alan son noktada yerine getirir sensr sensr dmlerinden ald lm verisini ierir.Bir sensr dm ilk olarak denetiye veri

yollad zaman dm adresi LogData grevi ile kaydedilir ve sensr verisi bir gnle eklenir.Bu grev sensr dm ile yollanan son 16 veri bir kaydn depolar.Bu grev ZPS grevi ile aktive edilir.Ayrca periyodik olarak bir yazlm zamanlayc tarafndan devreye alnr. APP_taskDisplayScroll Bu vazife bir yazlm zaman tutucusu tarafndan aktif hale getirilir ve ilk al ekrannda bir kaydrma balk ekran oluturmak iin kullanlr. APP_taskDisplayUpdate DisplayUpdate grevi dier grevler ile dorudan aktive edilir.Ana kontrol grevi gsterme biimini bir buton basksna yant olarak deitirildii zaman onu aktif hale getirir ve LogData grevi sensr verisi gncelletirildii zaman onu aktif hale getirir.Grev gncelletirilmi ekran modunda veya sensr ekran verileri kullanarak grnt oluturur. APP_taskLedControl Bu grev son nokta LED_CONTROL yerine getirir.Bu sensr dmlerinden LED kontrol ereveleri aldnda buna gre ak yada kapal denetleyici LEDler geer.Bu grev veri yapsnn ayrtlarn ieren ZPS grevi ile aktif edilir.Ayrca bu giden ereveler de LED_CONTROL son nokta zeriden gnderilir.Sensr dmleri LED kontrol ereveleri gnderirken retilen herhangi bir onay alr. APP_taskTogglePermitJoining Bu grev kullanc izni birletirme durumunu deitirmek istedii zaman bir yazlm zamanlayc tarafndan aktive edilir.SW1 butonuna iki saniye veya daha fazla bir srede basldnda izin birletirme durumunda bir deiiklik meydana gelir.(A aktif olduunda)Dmeye basarak yazlm zamanlayc balar.Srenin dolmas durumunda TogglePermitJoining grevi etkinletirilir.ki saniye gemeden butonun braklmas durumunda ise grev durur. 2.1.2 Sensr Dm Mimarisi Sensr dmnn uygulama mimarisi ekil-6da gsterilmitir.

ekil-6 Sensr Dm Uygulama Mimarisi APP_ taskSensorNode Bu sensr dmn uygulamasnn ana grevidir.SensorNode grevi yn olaynn ayrntlarn ieren mesajlar ilan eden ZPS tarafndan oluturulan yn olaylar ile aktif hale getirilir.SensorNode greve uygun bir a bulmak ve katlmak iin gerekli olan durum makinesi ierir. APP_taskSampleSensors SampleSensorsn grevi k,scaklk ve nem sensrlerinden gelen lmlerin koordine bir ekilde alnamasn salamaktr.Sensr okumalarnn tamamlanmasnn ardndan bu grev kontrol dmne okumalar ieren bir SENSOR_DATA erevesi gnderir.Sensr dm router ise bu grev bir yazlm zamanlayc tarafndan periyodik olarak devreye alnr.Eer sensr dm bir son cihaz ise bu grev Wakeup calback tarafndan aktive edilir. APP_taskScanButtons Bir dmeye basld zaman bu grev sistem denetisi ISR tarafndan yazlm zamanlayc ile kendini aktif eder.Butona basld zaman bu grev kontrol dmne LED_CONTROL erevesi gnderecektir. APP_taskLedControl Bu grev son nokta LED_CONTOL yerine getirir.Kontrol dmnden LED kontrol erevelerini alr ve sensr dmndeki LEDin durumunu ak yada kapal ekilde deitirir.Bu grev ZPS grevi tarafndan aktif edilir. .Ayrca bu giden ereveler de

LED_CONTROL son nokta zeriden gnderilir.Sensr dmleri LED kontrol ereveleri gnderirken retilen herhangi bir onay alr. APP_taskSensorEvent Bu SED Sensr dmlerinde ve Router Sensr dmlerinde bulunan nemsiz bir grevdir.Her iki sensr tipi de faaliyeti gsteren D2 LEDini aydnlatr ama bunu az da olsa farkl ekillerde yaparlar: Cihaz uyandnda Sensr SED dmdeki LED yanar uyku moduna getiinde de sner. Router Sensr dmlerinde veri yaps aktarma iin yna getii zaman LED aydnlatlr ve bu yn ilemi onay aldktan sonrada LED sndrlr.

2.2 Dm Yazlm Bileenleri Kontrol dmnn tek tek kaynak dosyalarna karlk gelen bir dizi oluturulur.Aadaki tablo bileenleri ve dosya adlarn listeler ayrca ksaca bunlarn amacn aklar. Bileen Controller Node Ama Ana ControllerNode grevi a oluumu ve dme olaylarn ynetmeyi ele alr.ZigBee PRO yn ve app_controller_node uygulamay balatmakla sorumludur.LED_CONTROL erevelerini oluturur. Dmeye basldnda ControllerNode grevinin app_buttons mesajlar ayrd ScanButtons grevini ierir. LedControln grevi LED ak yada kapal durumda app_led iken LED CONTROL erevelerini alr. Ekran durum deikeni grntleme grevi tarafndan arlan eriim fonksiyonlar ve eitli grnt bakm app_display ilevleriyle birlikte DisplayUpdate ve DisplayScroll grevlerini ierir. LogData grev ve eriim fonksiyonlar bir dizi ile birlikte app_log sensr giri veri yapsn ierir. RTOS JenOS balang iin sorumlu olduklar giri app_start noktasn ierir.Ayrca g yneticisi geri arlar iin zel durumlar ierir. Dosya

Buttons LED

Display

Log Start

2.2.1 Controller Node [app_controller_node.c] Bu bileen zerinde alt dmn operasyonel durumunu onun izin birletirme durumunu ve radyo kanal iin sorumlu bir veri yapsn korur.Bu veri JenOS Kalc Veri Yneticisi (PDM) de kaytldr bu nedenle g devirleri ve reset boyunca kesintiye uramaz. Aadaki grev ve fonksiyonlar ierir: APP_vInitialiseControllerNode()

Bu fonksiyon balatma srasnda adlandrlr.Bu donanm ZigBee PRO yn ve uygulamas balatr.Bu balatmann bir paras olarak butonlarn balang durumlar kontrol edilir.Balang annda herhangibir butona baslmazsa PDM yaplr ve ZigBee PRO yn ve uygulamas flash bellekten silinir.Bylece temiz bir balang salanm olur.Geerli bir kayt PDM tarfndan bellekten alnr aksi takdirde fonksiyonu kontrol eder.Bu durumda ZigBee PRO yn ve uygulamas yeniden balar.Hibir kayt alnmazsa yeni gelen fonksiyon ile ZigBee PRO uygulamas balar ve yeni bir a oluturulur. OS_TASK(APP_taskControllerNode) Bu uygulamann ana grevidir.Bu uygulamann durumuna bal olarak sonra yn olay iletilerini ve uygulama mesajlarn toplar ve olay ilemek iin dk seviyeli fonksiyonlardan birini arr. vHandleStartupEvent() Bu ilk durumdur.Fonksiyonu sonraki durumuna gemeden nce balang ekrannda grntler. vHandleConfigureNetworkEvent() Bu fonkisyon ilgili dmeye baslmas durumunda radyo kanaln deitirir ve sonra ZigBee PRO ynn balar. vHandleNetworkFormationEvent() Bu fonksiyon baaryla oluturumu olduunu belirtmek iin a bekler sonra ON durumunda izin birletirmeyi ayarlar.An kurulduunu belirtmek iin LEDler gnlk modl ve anahtarlar balar.Sonra sonraki uygulama durum makinesine ilerler ve PDMi arr bunu ControllerNode veri kaydn kurtarmak iin yapar. vHandleNetworkScreenEvent() A ekran modu aktif olduunda bu fonksiyon arlr.Butonlara baslara yant verir izin birletirme gei zamanlaycs balayabilir veya (scaklk,nem,k) hangi sensrn gsterildiini seebilir.Ayrca dm ile a ekranndan bir deiklik isteyebilir. vHandleNodeScreenEvent() Dm ekran aktif olduunda bu fonksiyon arlr.Bu dme baslarna yant olarak uanda alnan sensr verilerinin grntsn deitirebilir.Ayrca LED_CONTROL erevelerinin gnderilmesini balatabilir. OS_TASK(APP_taskTogglePermitJoining) Sensr dm balants maksimum sayya ulatnda bu grev izin birletirme ve durum gncelleme ekrannda gei yapar. vCheckStackEvent()

Bu fonksiyon an oluturduu yn olaylarn ynetir.ou olay iin eyleme gerek yoktur. vHandleLedControlEvent() vSendLedData() Bunlar arasnda LED_CONTROL verileri ieren bir veri erevesi olutururlar ve daha sonra bir sensr dmne iletim iin gemektedir.

2.2.2 Butonlar [app_buttons.c] APP_bButtonInitialise() Bu grev butonlarn kulland DIO izgilerini baa dndrrr dzeyi ayarlar ve uygun bir ekilde keser. OS_TASK(APP_taskScanButtons) Bu grev dmeye baslnca yazlm zamanlayc tarafndan 8 kere aktif edilir. 2.2.3 LED [app_led.c] APP_vLedsInitialise() Bu fonksiyon LEDlerin balatlrken kapal olmasn salar. APP_vLedSet() Bu fonksiyon dier bileeneleri LEDleri kapatmak iin olanak salar. OS_TASK(APP_taskLedControl) Bu grev LED_CONTROL son noktasyla ilikili mesajlar alr.Bunlar sensr dmlerinin yaplarn ierir. 2.2.4 Ekran [app_display.c] Bu bileen mevcut ekrann durumunu ve seili sensr dmnn veri nesnelerini tutar. APP_vDisplayInitialise() Bu fonksiyon LCD ekran resetler. APP_u8GetCurrentNode() APP_vDisplayCycleNode() Bu iki ilev mevcut seilen dmn nesneye eriimini salar. APP_vDisplayUpdate()

Bu fonksiyon baka bileenleri ekranda yeniden grntlenmesi iin olanak salar.Grnt modu deitikten yada sensr verileri gncellendikten sonra bu normal olarak arlr. OS_TASK(APP_taskDisplayUpdate) Bu grev mevcut ekran modunu denetleyen ve ardndan ekranda yeniden ina etmek iin uygun bir alt dzey fonksiyonlarn arr.

vBuildSplashScreen() vUpdateSplashScreen() vBuildNetworkScreen() vUpdateNetworkScreen() vBuildNodeScreen() vUpdateNodeScreen() vUpdateSensor() vDrawGraph() Grevlerin bu grubu eitli gsterme biimleri iin gstermeyi ina eder.Onlar LogData verisinden sensr versini kullanr buna gre LCD ekranna metin vveya grafik koyar. 2.2.5Log [app_log.c] Bu bileen sensr dmleri ve adreslerinin saysn depolayan verileri ve sensr verilerinin kendisini korur.Sensr dmleri ve adreslerinin saysda PDM ile flash bellekte kalcdr. APP_vLogInitialise() Bu fonksiyon PDM ile flash bellekte herhangi bir kayd yklemeye almadan nce sfrdan sensr dm saysn ayarlar. APP_vLogStart() Bu fonksiyon periyodik ana gnl grevini aran bir yazlm zamanlayc ile balar. APP_psLogGetSensorNodeHistory() APP_u8LogGetDataStartPos() APP_u8GetSensorNodeId() APP_u16GetSensorNodeAddr() APP_u8ControllerNodeNumDataSensors() Bu fonksiyonlar Log bileenler tarafndan tutulan veri yaplarna eriim salar. OS_TASK(APP_taskLogData) Bu grev ilk veri aktarm balattmzda yeni sensr dmleri kayt iin ve gnderdiimiz sensr verilerini depolamak iin sorumludur.SENSOR_DATA ZPSye karlk gelen mesajlar alr.Veri seti ilerlemesi iin bu grev bir yazlm zamanlayc tarafndan devreye alnr.Bu durumda grev gncelletirmeleri veri seti deitikten sonra ekranda olur. 2.2.6 Balang [app_start.c]

vAppMain() Bu ana kod giri noktasdr.Bu ilev hata ayklama ve CPU yn tamas monitr iin UART0 gibi baz dk dzeyli ilklerden sorumludur.IEEE 802.15.4 MAC katmann ayarlar. vAppRegisterPWRMCallbacks() Bu ilev kayt ncesi ve sonras uyku geri alma ilemleri son cihazlar ve g yneticisi (PWRM) ile birlikte kullanlr.Bo olsa bile bu fonksiyonun mevcut olmas gerekir. vInitialiseApp() Bu grev uygulamann baa dndrme grevini armaktan nce JenOS modlnn bir kan baa dndrr. OS_ISR(APP_isrUnimplementedModuleException) OS_ISR(APP_isrStackOverflowException) Bu ilemci zel durumlar iler ISRs gibi (Interrupt Service Routines) 2.2.7 Sensr Dm Bileenleri Bir sensr dm bireysel kaynak dosyalarna uyan birka bileenden oluur.Bunlar yukarda Sensr dm mimarisinde belirtilen grevleri ve ISRs uygulamak ve balang,g ynetimi, geri arma ilemleri gibi ek dk seviyeli fonksiyonlar ile eitli veri yaplarn ierir.

Bileen Sensor Node

Dosya app_sensor_node app_sensor_node_SED app_sample

Ama A bulma,birletirme ve ynetmek iin gerekli fonksiyonlarla birlikte ana SensorNode grevini ierir.ZigBee PRO ynn balatmaktan sorumludur. SampleSensor grevi ierir.Bu bileen sensr okumalar almak iin scaklk,k,nem sensrlerini denetlemekten sorumludur.Ayrca SENSOR_DATA erevesi retir. Dmeye baslnca ControllerNode grevinin mesajlar ayrd ScanButtons grevini ierir.Ayrca LED_CONTROL erevesi oluturur. LED_CONTROL ereveleri ve ak yada kapal durumdaki LEDler iin LedControl grevi ierir. Cihaza g verilince almaya balar RTOS ve JenOS modlleri balang iin sorumlu olduklar giri noktasn ierir.Ayrca baz istisnai durumlarda g yneticisi iin geri arlar da ierir.

Sample

app_sample_SED app_buttons app_led app_start

Buttons LED

Start

app_start_SED

System Controller

app_syscon

Sistem kontrol ISR ierir.Sistem kontol iinde kesme kayna tanmlar ve uygun grevi etkinletirir.

2.2.8 Sensr Dm[app_sensor_node.c/_SED.c] Bu bileen dm operasyonel durumundan sorumlu olan bir veri yapsn korur.Bileenin aada grev ve fonksiyonlar verilmitir: APP_vInitialiseSensorNode() Bu grev balang srasnda arlr.Bu donanm ZigBee PRO yn ve uygulamasn balatr.Bu balatmann bir paras olarak butonlarn balang durumlar kontrol edilir. Balang annda herhangi bir butona baslmazsa PDM yaplr ve ZigBee PRO yn ve uygulamas flash bellekten silinir. .Bylece temiz bir balang salanm olur.Geerli bir kayt PDM tarfndan bellekten alnr aksi takdirde fonksiyonu kontrol eder .Bu durumda ZigBee PRO yn ve uygulamas yeniden balar.Hibir kayt alnmazsa yeni gelen fonksiyon ile ZigBee PRO uygulamas balar ve yeni bir a oluturulur. OS_TASK(APP_taskSensorNode) Bu uygulamann ana grevidir.Bu uygulamann durumuna bal olarak sonra yn olay iletilerini ve uygulama mesajlarn toplar ve olay ilemek iin dk seviyeli fonksiyonlardan birini arr. vHandleStartupEvent() Bu ilk durumdur.Fonksiyonu sonraki durumuna gemeden nce balang ekrannda grntler. vHandleNetworkDiscoveryEvent() Bu grev tamamlamas iin a kefini bekler.Eer baarlysa ve ada balanmas iin uygun bir yer varsa aa katlabilir.Eer hibir uygun a bulamazsa a kefi kalan kanallarn zerinde balanr.Yine a bulma baarsz olursa daha sonra bir yazlm zamanlayc bitiminde SensorNode grevi yeniden aktive edilir.Bu aa katlma ileminin yeniden balamasna sebep olur.Parametre UseExtendedPanID ZPS yaplandrma dosyasnda sfr olmayan bir deere ayarlanrsa o dm a komutu yeniden katlmay deneyerek belirli bir aa katlmak iin alr.Bu durumda ZigBee PRO yn buluu gerekletirir ve eer baarlysa bir yn olay ZPS_EVENT_NWK_JOINED_AS_ROUTER retir.Bu PDM yoluyla hafzay tazelemek iin sensr dmnn verisini kurtarmasna neden olur. vHandleNetworkJoinEvent() Bu fonksiyon katlmn tamamlanmas iin bekler.Sonra eer aa katlma denemesi baarl ise katlmann bittiini gstermesi iin LEDi kapar.Router zerinde periyodik sensrlerin rneklemesinin balamas iin bir yazlm zamanlayc balar.Bir SED zerinde dorudan SampleSensors grevi etkinletirilir.

vHandleMonitorSensorsEvent() Bu fonksiyon an oluturduu yn olaylar ynetir.ou olay iin bir eyleme gerek yoktur.Ancak SED zerinde bir veri alndnda uygulama JenOS g yneticisi (PWRM) bir uyku planlamas ister. vHandleNetworkRejoinEvent() Bu fonksiyon tekrar bir a bulma ilemi balatr ve buna gre durumunu ayarlar. APP_u8GetSequenceNumber() Bu fonksiyon kresel APS veri erevesi sra numarasn tutar.Bir veri erevesi gnderilecei zaman dier bileenlerin sra numarasna erimesini salar. vWakeCallBack() Bu grev sadece bir SEDde mevcuttur.Zamanlayc sresi dolduunda arlr.Bu yeniden bir SampleSensor grevi ve bir anket grevi balatr.

2.2.9 rnek [app_sample.c/SED.c] APP_vInitialiseSample() Bu fonksiyon sensr dm donanmn balatr. OS_TASK(APP_taskSampleSensors) Bu fonksiyon sensr cihazlarndan k,scaklk,nem bilgilerinin alnmas iin gerekli olan olaylar dizisiyle ilgili bir durum makinesi ierir.Bir ynlendirici bu grevi bir yazlm zamanlayc tarafndan periyodik olarak aktif eder. VSendSensorData() Bu fonksiyon SENSOR_DATA erevelerini oluturur. OS_TASK(APP_taskSensorEvent) Bu grev sadece ynlendirici sensr dmleri zerinde mevcuttur. 2.2.10 Butonlar [app.buttons.c] APP_bButtonInitialise() Bu fonksiyon seviyeleri kurma uygun ekilde kesmeleri etkinletirmek ve butonlar kullanmak iin DIO hatlarn balatr. OS_TASK(APP_taskScanButtons) Bu grev dmeye baslnca yazlm zamanlayc tarafndan 8 kere aktif edilir.

vHandleButtonEvent() vSendLedData() LED_CONTROL verileri ieren bir veri erevesi oluturur. 2.2.11 LED [app_led.c] APP_vLedsInitialise() Bu fonksiyon LEDler balatlrken onlarn kapal olmasn salar.LEDli DIO hatlarn paylaan UART1 izgileriyle devre d brakr. APP_vLedSet() Bu fonksiyon dier bileenlerle LEDleri kapatmak iin olanak salar. OS_TASK(APP_taskLedControl) Bu grev LED_CONTROL noktasyla ilikili mesajlar alr.Bu denetleyici dm ereveleri ierir ve ierie gre D1 ledi yanar veya sner.

2.2.12 Balatma [app_start.c(app_start_SED.c)] vAppMain() Bu g verildikten sonra ana kod giri noktasdr.Bu fonksiyon baz alt dzey donanm illkleriden sorumludur. vAppRegisterPWRMCallbacks() Bu fonksiyon son cihazlar zeride g yneticisi ile uyku geri aramalarn kaydetmek iin kullanlr.Bu fonksiyon bo olsa bile mevcut olmas gerekir. vInitialiseApp() Bu fonksiyon uygulama ana balatma fonksiyonunu armadan nce JenOS modllerini balatr. OS_ISR(APP_isrUnimplementedModuleException) OS_ISR(APP_isrStackOverflowException) Bu ilemci durumlar ilemek iin bir ift ISRs (Interrupt Service Routine)dir. PWRM_CALLBACK(PreSleep) PWRM_CALLBACK(Wakeup) Bu sadece son cihazlar zerinde mevcut callback fonksiyonlarndan oluan bir ifttir.

lk geri arma ilevi uyumadan nce arr ve bir RAM tampon iin MAC ayarlar kaydetmek iin sorumludur.LED D2 cihaznn uykuda olduunu gstermek iin kapanr. kinci geri arma cihaz uyankken arlr ve IEEE 802.15.4 ayarlar geri yklemek iin kullanlan sensr donanm yeniden balatr.

2.2.13 Sistem Kontrol [app.syscon.c] OS_ISR(APP_isrSysCon) Bu ISR sistem kontrol iinde kesme kayna tanmlar ve uygun grevi etkinletirir.

You might also like