arkadaşlar merhaba,elimde hc06 bluetooth modülü bulunmakta.pic16f877a ile 4 tane sensörden 4 farklı veri okuyorum.bu verileri sırayla android e göndermek istiyorum. normal şartlarda veri iletiminde sıkıntı yaşamıyorum.4 tane veriyi sırayla
putc(veri1);
putc(veri2);
putc(veri3);
putc(veri4);
şeklinde yazıp gönderiyorum.benim kafama takılan soru şu.bu 4 veriyi gönderirken birinde sıkıntı olunca diğerlerinin de sırası kayacak.bu durumun önüne geçmek için neler yapabilirim?
COBS (consistent overhead byte stuffing) protokolünü kullan.
Çoşkun sende çok sevdin bu protokolü. :D
Paket halinde gönder başına başlangıç karakteri('@' olabilir) sonuna checksum yapıştır gitsin. Android tarafında tek seferde okursun paketi çözersin.
Erhan ben bu protokolu birkaç yıl önce c# ile keşfetmiştim bufferlamali ve scheduler olmayan bir sistemde paket kaybinizi en aza indiriyor.
COBS candır. Bende tavsiye ederim. 0x00 ile framing yapar. 0xFF ile frame uzatır. Gelen verinin uzunluğunu bildirdiğinden hatalı paket alma ihtimaliniz yoktur. Paket yapınıza CRC ve/veya kripto eklerseniz paket üzerindeki doğrulama hataları ve veri enjeksiyonlarını kontrol ihtimaliniz yükselir.
ooow:) çok güzel bilgiler oldu,teşekkür ediyorum herkese
bu cobs olayını cahile anlatır gibi anlatabilecek biri varmı müfit hocam bir konuda önermiş nedir diye okudum ama anlayamadım.
Burada cobs ile alakalı bir döküman var.
http://conferences.sigcomm.org/sigcomm/1997/papers/p062.pdf (http://conferences.sigcomm.org/sigcomm/1997/papers/p062.pdf)
İnsan bazen farkında olmadan cobs veya cobs benzeri bir protokol kullanabiliyormuş :)
şimdi bir sorum daha var benim.bu haberleşmede ben data ları gönderdiğim zaman pic bunu kendi buffer ında saklıyor dimi?