C# Data Ayırma Sorunu

Katılım
27 Ağu 2009
Mesajlar
13
Puanları
1
Yaş
35
Merhaba arkadaşlar,

PIC üzerinden RF modülle C# a veri gönderiyorum.
PIC üzerinden gönderdiğim komutlar;


putchar(0x24); //$
printf("R"); //R
printf("F"); //F
printf("%Lx",VoltajDegeri1); //DATA
printf("%Lx",VoltajDegeri2); //DATA
printf("E"); //E
printf("N"); //N
printf("D\r\n"); //D + 0x0D + 0x0A

Dataları bu şekilde göndermemim nedeni RF modemin data formatı
$+R+F+DATA+E+N+D+0x0d+0x0A şeklinde olduğundan dolayı.


C# da gelen datanın hepsini görüntülemek için ;

private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
rxgelen = serialPort1.ReadByte();
this.Invoke(new EventHandler(DisplayText));
}
catch (System.TimeoutException ex)
{
MessageBox.Show(ex.Message);
}
}
private void DisplayText(object s, EventArgs e)
{
if (listBox1.Items.Count >= 0)
{
listBox1.Items.Add(rxgelen.ToString());
}
}

Bu komutları kullandığımda listboxda alt alt 36 - 82 - 70 - 48 - 48 - 48 - 48 -48 - 48 -48 - 48 - 69 - 78 - 68 - 13 - 10 gönderdiğim dataların decimal değerleri alıyorum.

ReadByte yerine ReadLine kullandığımda listboxda alt alta $RF00000000END - $RF00000000END - $RF00000000END bu şekilde devamlı tekrarlayarak dataları alıyorum.

Buraya kadar tamam ama ben data olarak gönderdiğim voltaj değeri1 ve voltaj değeri2 yi veya bir kaç değerdaha göndericem PIC üzerinden o değerleri ayrı ayrı textboxlara yazdırmam lazım bu konuda yardıma ihtiyacım var bir çok şey denedim ama başarılı olamadım.

Yardımlarınız için şimdiden teşekkür ederim.
 
Realine ile okuma yapmışsın zaten Replace başındaki $ karakterini, sonundaki 0 ve END ibaresini temizliyebilir veya SubString belli bir kısmını alabirirsin.
Örneğin

label1.Text = rxgelen.Substring(1, 2); //1. Karakterdende başlayarak 2 karakter al
label2.Text = rxgelen.Substring(1, 10); //1. Karakterdende başlayarak 10 karakter al

Replace veya Substring artık hangisini tercih edersen.
 
Realine ile okuma yapmışsın zaten Replace başındaki $ karakterini, sonundaki 0 ve END ibaresini temizliyebilir veya SubString belli bir kısmını alabirirsin.
Örneğin

label1.Text = rxgelen.Substring(1, 2); //1. Karakterdende başlayarak 2 karakter al
label2.Text = rxgelen.Substring(1, 10); //1. Karakterdende başlayarak 10 karakter al

Replace veya Substring artık hangisini tercih edersen.

Yardımınız için teşekkür ederim. Sorun çözüldü.
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,308
Kullanıcılar
449,850
Son üye
umutbaysal9

Yeni konular

Çevrimiçi üyeler

Geri
Üst