TinyOS'ta TOSSIM İle Simülasyon Yapmak (Detaylı Anlatım)

Yazar:

TOSSIM bir TinyOS simülatörüdür ve direkt olarak TinyOS kodundan derlenir. "make pc" komutu ile simülasyon direkt olarak bilgisayarda çalışır. TOSSIM, eş zamanlı olarak binlerce düğümü (mote) simüle edebilir. Simülasyondaki her düğüm (mote) aynı TinyOS programı ile çalışır. TOSSIM, her defasında yeniden derlemeye ihtiyaç duyulmadan, çalışma zamanında yapılandırılabilir hata çıktıları sağlar. TOSSIM ayrıca kullanıcıların, TOSSIM aracılığıyla çalıştırdıkları bir uygulamanın, farklı açılardan incelenmesine olanak tanır.



Uygulama Oluşturmak ve Çalıştırmak

TOSSIM, uygulamanın dizinindeyken terminale "make pc" yazarak derlenir. Derlenmesi beklenen TinyOS bileşenlerine ek olarak, simülatöre özgü bazı dosyalar da derlenir. Bu dosyalar, TCP yuvaları üzerinden ağ izleme desteği gibi işlevsellikler sağlarlar.

TinyOS dosyasındaki apps/CntToLedsAndRfm dizinine girin. CntToLedsAndRfm uygulaması, 4Hz'lik bir sayaç çalıştırır. Bu uygulama, simülasyon olarak çalışacağı zaman, 3 LED'e sahip bir mica düğümüne (mote veya donanım) sahip olduğumuzu varsayar. Uygulama, her bir sayaç işaretinde, sayacın en önemli 3 bitini, donanımın 3 LED'i üzerinden gösterir ve tüm 16 bitlik değeri bir paket olarak gönderir. Uygulamayı, mica mote üzerine kurup, yükleyin. Simülasyonun başarılı bir şekilde çalıştığını anlamak için, LED'lerin yanıp söndüğünü görmelisiniz. (run with mica mote)

"make pc" komutu ile bir uygulamanın TOSSIM sürümünü oluşturabilirsiniz. Çalışır sürüm oluşturulduktan sonra, çalıştırmanız gereken dosya, şu dosya yolunda olacaktır : build/pc/main.exe

Terminal ekranına build/pc/main.exe --help yazarak, komut satırının nasıl kullanılacağına dair kısa bir özet görebilirsiniz.

Belli sayıdaki düğümü simüle etmek için TOSSIM, gerekli olan tek bir parametreye ihtiyaç duyar. Konsol ekranına build/pc/main.exe 1 yazarak tek bir düğümün simülasyonunu çalıştırabilirsiniz. Bu komutu çalıştırdıktan sonra, radyo bitleri ile ilgili olan, uçtan uca uzun bir olay akışı görmelisiniz. Simülasyonu durdurmak için Ctrl+C'ye basmanız yeterli olacaktır.

Varsayılan olarak, TOSSIM tüm hata ayıklama bilgilerini ekrana yazdırır. Radyo biti olayları (events) 20 veya 40 KHz'de tetiklendiğinden (bu aynı zamanda simülatörde en sık görülen olaylardır), CntToLedsAndRfm uygulamasındaki çıktıların çoğunu oluştururlar. Uygulama göz önüne alındığında, bireysel radyo bitlerinden çok, paket çıkışı ve düğüm (mote) LED'leri ile daha fazla ilgileniyoruz. TOSSIM çıktısı, shell üzerinden DBG çevre değişkeni ayarlanarak konfigüre edilebilir. Örneğin, Export DBG = am komutunu verince, bu sadece LED ve AM (aktif mesajlar) paket çıkışını etkinleştirir. Tek düğümlü simülasyon tekrar çalıştırdığınızda ise, aşağıdaki çıktıyı elde etmiş olmanız gerekiyor.

0: LEDS: Yellow off.
0: LEDS: Green off.
0: LEDS: Red off.
0: Sending message: ffff, 4
    ff ff 04 7d 08 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 3b f3 00 00 01 00 00 00
0: LEDS: Yellow off.
0: LEDS: Green off.
0: LEDS: Red on.
0: Sending message: ffff, 4
    ff ff 04 7d 08 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 ac e6 00 00 01 00 00 00       

Paketin 6. baytı, iki baytlık sayaçların en anlamlısını içerir. Örneğin yukarıda yer alan 1. pakete baktığımız zaman, 6. bayt 16'lık sayı tabanına göre "20" değerini içerirken, sadece kırmızı led ışığın yandığı ikinci paketin mesaj içeriğine (sayaç bitleri) baktığımız zaman 6. bitin 16'lık tabanda "21" değerine sahip olduğunu görmekteyiz.

Neredeyse her mesajın önünde "0:" ifadesinin yer aldığını farketmişsinizdir. Bu ifade, sıfırıncı düğümün (mote:0) çalıştığı anlamına gelmektedir. Örneğin, "build/pc/main.exe 2" komutu ile 2 düğüm (mote) içeren bir simülasyon çalıştırı ve daha sonra CTRL+C yaparak simülasyonu durdurun. Çıktıları incelediğinizde, hem mote 0 hem de mote 1'e ait mesajlar göreceksiniz.

DBG'yi crc'ye ayarlayın. CntToLedsAndRfm uygulamasını çalıştırıcağınız zaman, build/pc/main.exe 2 komutu ile, iki düğüme sahip bir simülasyon çalıştırın. Bu işlemden sonra, her iki düğümün de birbirinden başarılı paketler aldığını gösteren çıktılar göreceksiniz.

DBG modlarının tam seti, build/pc/main.exe --help yazarak görülebilir. Modlar, bunlar çıktıların alt kısmında listelenir.

İlgili Yazı : TOSSIM'de DBG'nin Kullanımı (TOSSIM'de Hata Ayıklamak)

"İlgili Yazı" linkine tıklayarak TOSSIM'de DBG'nin kullanımı hakkında daha detaylı bilgiye ulaşabilirsiniz.

Bu yazının orjinaline şu linkten ulaşabilirsiniz : http://www.cse.iitd.ernet.in/~pulkit/embedded2/docs/lesson5.html

Yazının çevirisi tamamen Ali ARSLAN tarafından yapılmış olup, ilk defa Blogkafem.net üzerinden yayınlanmıştır. Kopyalamanız halinde lütfen kaynak gösteriniz. Konuyla ilgili farkettiğiniz çeviri veya yazım hatalarını, aşağıdaki yorum formu aracılığıyla iletebilirsiniz. İyi çalışmalar.

Thanks to Indian Institute of Technology Delhi for TinyOS documentation that they present. (Sundukları TinyOS dokümanları için Hindistan Teknoloji Enstitüsü'ne teşekkürler.)





Hey!

Blogkafem'de okuduğunuz içeriklerle ilgili kişisel Twitter hesabım üzerinden benimle iletişme geçmek isterseniz Twitter adresim : www.twitter.com/aliarslan10

Sosyal medya hesabım dışında Blogkafem'de okumuş olduğun içerik ile ilgili belirtmek istediklerinizi aşağıdaki yorum formuna yazabilirsin. En kısa sürede dönüş yapacağımdan emin olabilirsin. :)

Okuduğunuz içerik faydalı olduysa #blogkafem etiketiyle okuduğunuz içeriğin linkini Twitter'da paylaşarak Blogkafem'e destek olabilirsiniz.

0 yorum:

Yorum Sayfası :



Yorum yaparken dikkat edilmesi gerekenler;

1. Yorum Formunu doldurduktan sonra Profil Seç -> ADI/URL bölümünden isminizi yazıp yorum yaparsanız size karşı bir hitap şeklimiz olur. (URL kısmını boş bırakabilirsiniz.)

2. Anonim olarak yaptığınız yorumlar "Adsız" olarak gözükmektedir.

3. Türkçe yazım ve dilbilgisi kurallarına uymaya özen gösteriniz.

4. Küfür,hakaret,mail adresi veya konu ile ilgisi olmayan reklam amaçlı website adresi içeren yorumlar yayınlanmamaktadır.

Custom Search

Kafeyi Dikizleyenler :)

Blog Istatistik

BLOGKAFEM.NET

© Copyright 2008-2017
Sitedeki yazıların her hakkı BLOGKAFEM.NET sitesine aittir.
Kopyalanması halinde lütfen kaynak gösteriniz.
DMCA.com Protection Status
Anasayfa | Hakkımızda | Bizden | Reklam | İletişim