Serial port ta uzunluğu farklı verileri almak

Başlatan görkem, 28 Ocak 2018, 23:03:53

görkem

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.

fide

28 Ocak 2018, 23:44:52 #1 Son düzenlenme: 28 Ocak 2018, 23:46:41 fide
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.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

cetin1990

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...

foseydon

Bir protokol kullanman gerekiyor. Ya kendin belirleyecektir, ya modbus gibi standart birşey kullanacaksın. Kendin yapacaksan modbus protokolünü inceleyerek fikir sahibi olabilirsin.

fide

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.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

foseydon

İletişim kurulan cihazı biz yapmıyorsak, rs232 iletişimi için kendi protokolü vardır mutlaka. Ona göre işleriz veriyi.

qeek

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.

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.