C# Can Network Data Okuma HAkkında

Başlatan humancontroller, 24 Kasım 2017, 14:41:17

humancontroller

Merhaba Arkadaşlar,

mevcut bir can hattından okudugum verileri c# bir arayüz oluşturmam gerekiyor,

Arduino ve mcp2515 entegresi ile can hattından verileri alıyorum bu verileri c# ekranına nasıl yazdıracağım hakkında bir bilgim yok gelen veriler 8 byte ve bu verileri örnegin 2 byte gelen veri 2A (Hex) bunuda 3 ile çarpmam gerekir ve decimal göstermem isteniyor.Nerden başlamam gerekiyor nasıl bir yol izlemem gerekir?

foseydon

Aurdino yu bilgisayara hangi yolla bagliyorsun? USB, serial, Ethernet vs. Once burdan başlanan lazım.

humancontroller

arduino ile bilgisayari usb ile haberlestiriyorum.

yedurgun

Arduino kısmı hakkında pek bir bilgim yok ama c# a aldıktan sonra her dataReceived olayından sonra ya da belli bir süreli timer'ın içerisinde hex-to-dec yapman lazım. Yine decimal e çevirdikten sonra 3 le çarparak istediğin değere ulaşabilirsin.

Hex -> decimal:
Convert.ToInt64(hexValue, 16);


dumansiz

En basit yöntemi seriport üzerinden haberleşme olur.
Canbustan aldığın verileri seriport üzerinden bilgisayara gönderirsin. USB üzerinden haberleşiyorum demişsin ama muhtemelen "sanal seriport" üzerinden haberleşiyorsundur.
Aygıt yöneticisinden "COMPORT" ları kontrol et.

Anladığım kadarıyla "CAN Monitor" veya "CAN Analyzer" tarzında birşey yapmak istiyorsun.
Canbustan gelen veriler genelde 8 byte'dır. Ama daha az da olabilir. "2A" verisi de 2 byte değildir. 1 byte'dır.

Öncelikle arduino tarafında veriyi doğru gönderdiğine emin olmalısın.
Aşağıdaki programı indirerek arduino tarafında gönderdiğin verileri kontrol edebilirsin.
http://www.sudt.com/en/ap/download.htm

Diğer önemli husus ise yoğun veri trafiği olan bir canbus hatttın varsa, canbustan gelen paketleri bir diziye aktarıp, dizideki paketleri sırayla seriporttan göndermelisin.
Böylece sen seriporttan bilgisayara veri gönderirken, diğer tarafta canbustan gelen yeni paket, henüz göndermediğin paketin üzerine yazılmasın. Kısacası veri kaçmasın.

Seriport hızını yüksek tut. "115200" ile kendini sınırlama.

foseydon

USB bilgisayar üzerinde serial port ( COM port ) olarak görünür mi aslında yapacağın rs232 haberleşmesinden farklı değil. C sharp serial port açma olayını biliyor musun? Bu forumda seri port hakkında diye bir başlık var. Oradaki kodları incele.

Aygıt yöneticisine tiklarsan, bağladığını USB bin com port özelliklerini sağ tuş yaparak bulabilirsin. Aklına takılan yer olursa yine sorarsın.