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,821
Mesajlar
920,768
Kullanıcılar
450,910
Son üye
Beyazıt_34

Yeni konular

Geri
Üst