Durum Makinesi Kullanarak Protokol Çözümlemek (Packet Parser)

Bir çoğumuz mikrodenetleyiciler ile uğraşırken haberleşme paketlerini düzgün şekilde alabilmek adına çeşitli yöntemler dener. Durum makinesi ile bir protokolü çözümlemek, ingilizce adiyla “parse” etmek bu işi anlaşılır şekilde yapmak adına bir yoludur. Site yazarlarından Fatih ÖZCAN “Sonlu Durum Makineleri” hakkındaki yazısını okuduysanız konuyu uygulama üzerinde inceleyelim.

Uygulama olarak UART çevrebirimi üzerinden gelen verilere göre LED kontrol işlemi yapan işlevleri aşağıdaki gibi tanımlayabiliriz.

Burada denetleyicinin çözümlediği paket şu formattadır;

[‘X’][‘Y’][LedNo][LedValue][‘Z’] 

Başlangıcı garantilemek amacıyla 2 adet karakter almak güvenlik açısından daha doğru olur. Verilen led numarası ve değerine bağlı olarak ilgili LED kontrol edilir ve bildirim cevabı yine UART protokolü üzerinden geri besleme olarak paket gönderen sisteme bildirilir. Örnek olarak aşağıdaki dizileri verebiliriz.

  • [‘X’][‘Y’][1][1][‘Z’] Paket çözümlenmesi : 1. LED’i 1 yap.
  • [‘X’][‘Y’][4][0][‘Z’] Paket çözümlenmesi : 4. LED’i 0 yap.

Haberleşme esnasında gönderilecek verilerin kritik olması duruma bağlı olarak protokole CRC kontrol ve bunun gibi bir takım doğrulama sistemleri eklenebilir. Çalışmayı geliştirmek adına bu örneğe CRC kontrolü eklemenizi öneririm. Konunun anlaşılması adına verdiğim bu basit uygulama ile alakalı sorularınızı ICTR Soru Cevap bölümde sorabilirsin.

Esen kalın.

Baran EKREM

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir