Gönderen Konu: C# Can Network Data Okuma HAkkında  (Okunma sayısı 362 defa)

Çevrimdışı humancontroller

  • Yeni Üye
  • *
  • İleti: 2
C# Can Network Data Okuma HAkkında
« : 25 Kasım 2017, 05:41:17 »
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?

Çevrimdışı foseydon

  • Kıdemli
  • ****
  • İleti: 105
Ynt: C# Can Network Data Okuma HAkkında
« Yanıtla #1 : 26 Kasım 2017, 23:44:19 »
Aurdino yu bilgisayara hangi yolla bagliyorsun? USB, serial, Ethernet vs. Once burdan başlanan lazım.

Çevrimdışı humancontroller

  • Yeni Üye
  • *
  • İleti: 2
Ynt: C# Can Network Data Okuma HAkkında
« Yanıtla #2 : 27 Kasım 2017, 01:58:06 »
arduino ile bilgisayari usb ile haberlestiriyorum.

Çevrimdışı yedurgun

  • Yeni Üye
  • *
  • İleti: 4
Ynt: C# Can Network Data Okuma HAkkında
« Yanıtla #3 : 27 Kasım 2017, 14:23:11 »
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:
Kod: [Seç]
Convert.ToInt64(hexValue, 16);

Çevrimdışı dumansiz

  • Kıdemli
  • ****
  • İleti: 105
Ynt: C# Can Network Data Okuma HAkkında
« Yanıtla #4 : 27 Kasım 2017, 23:20:09 »
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.

Çevrimdışı foseydon

  • Kıdemli
  • ****
  • İleti: 105
Ynt: C# Can Network Data Okuma HAkkında
« Yanıtla #5 : 28 Kasım 2017, 04:23:06 »
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.