Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: görkem - 28 Ocak 2018, 20:03:53

Başlık: Serial port ta uzunluğu farklı verileri almak
Gönderen: görkem - 28 Ocak 2018, 20:03:53
Arkadaşlar merhaba,

Büyüklükleri farklı verileri serial porttan almam gerekiyor. Atıyorum 8 byte veri gelecek, daha sonra 1kb veri gelecek  nasıl bir algoritma kurmam gerekir.
Başlık: Ynt: Serial port ta uzunluğu farklı verileri almak
Gönderen: fide - 28 Ocak 2018, 20:44:52
https://www.picproje.org/index.php/topic,71706.0.html


Ccs c için yazının ilerleyen bölümlerinde farklı uzunluktaki sabit karakterle bitmeyen verinin alınması ile ilgili bir algoritma var.


Tam çalışmasa da fikir verebilir.

Platform, işlemci, proje niteliği hk açıklayıcı bilgi verebilirseniz belki farklı öneriler verilebilir.
Başlık: Ynt: Serial port ta uzunluğu farklı verileri almak
Gönderen: cetin1990 - 28 Ocak 2018, 20:52:11
aaaaaaaaBaslaXXXyyyyyy
Gibi veri gönderilir. Alıcı tarafta aaaaa verisi beklenir. Sonra basla stringi bulunur.basla'dan sonraki 3 bayt verinin uzunluğu olsun. Bundan sonraki yyyyy kısmı veri içeriğidir. çeşitli baytlardan oluşur.

Eğer baslaxxx kısmından sonra xxx uzunluğu kadar veri gelmediyse zaman aşımı ile okuma sonlandırılır.

Alıcı taraf normal durumda sürekli aaaaaaaa stringini bekler.  Sonrasında basla kelimesini arar...
Başlık: Ynt: Serial port ta uzunluğu farklı verileri almak
Gönderen: foseydon - 28 Ocak 2018, 21:44:01
Bir protokol kullanman gerekiyor. Ya kendin belirleyecektir, ya modbus gibi standart birşey kullanacaksın. Kendin yapacaksan modbus protokolünü inceleyerek fikir sahibi olabilirsin.
Başlık: Ynt: Serial port ta uzunluğu farklı verileri almak
Gönderen: fide - 28 Ocak 2018, 21:47:46
Merhaba.
Veriyi gönderen cihaz müdahale edilebilecek bir cihaz olmayabilir. Gps, yada başka seri üretim bir cihaz mesela.


Seri porttan veri gelip son karakteri okuduktan sonra iki karakter gelecek kadar süre bekle. Bu süre içinde veri gelirse tekrar almaya devam et, son karakteri aldıktan sonra yine 2 karakterlik süre kadar bekle. Bu süreçte veri gelmezse seri port rutinden çık.


115200 baudrate te 2 karakter yaklaşık 125nanosaniye yapar. Çok da uzun değil bence.
Başlık: Ynt: Serial port ta uzunluğu farklı verileri almak
Gönderen: foseydon - 28 Ocak 2018, 22:23:21
İletişim kurulan cihazı biz yapmıyorsak, rs232 iletişimi için kendi protokolü vardır mutlaka. Ona göre işleriz veriyi.
Başlık: Ynt: Serial port ta uzunluğu farklı verileri almak
Gönderen: qeek - 28 Ocak 2018, 23:32:55
Benimde bir projemde gerekmişti. Ben başlangıç ve bitiş biti ile halletmiştim. Başlangıç biti * bitiş biti \n. * karakterini görünceye kadar kayıt yapmıyordu. Sonra \n gelincede char dizisini bitiriyordu. Uzunluğun çok bir önemi kalmıyor böylece.