İyi Günler,
Vb net 2010 ile pic arasında seri iletişim ile haberleşiyorum. Pic e 11 byte lık ilk seriyi gönderip Ok cevabını aldıktan sonra 2. seriyi göndermek istiyorum ama başaramıyorum, program donuyor.Bu sorunu nasıl çözebilirim?
BufferOut(1) = Val(byte1value.Text)
BufferOut(2) = Val(byte2value.Text)
BufferOut(3) = Val(byte3value.Text)
BufferOut(4) = Val(byte4value.Text)
BufferOut(5) = Val(byte5value.Text)
BufferOut(6) = Val(byte6value.Text)
BufferOut(7) = Val(byte7value.Text)
BufferOut(8) = Val(byte8value.Text)
BufferOut(9) = Val(byte9value.Text)
BufferOut(10) = Val(byte10value.Text)
BufferOut(11) = Val(byte11value.Text)
Dim s As Byte
s = 1
For s = 1 To 11
SerialPort1.Write(BufferOut(s) & "A")
Next
Do Until Replyback.Text = "S" programın donmasını sağlayan satır.
Loop
İlk seriyi butonun olduğu yerde gönder, ikinci ve varsa diğer seriyi 'Seri port" verilerini okuduğun yerde. Basitçe bayrak kullanıyorsun. Verileri göndermeye başladığın yere bir bayrak açıyorsun (global değişken olarak tanımı, çünkü bu değişkene hem butonda hem seri port okumada ulaşalimen gerekir.
değişkenimiz interger olarak "veri_gon" diye bir şey olsun ve ilk değeri 0 olsun.
Verileri göndermeye başladığın yerde (butonun olduğu yer veya her neresi ise) veri_gon=1 yaparsın.
Sonra seri verileri okuduğun yerde;
if Replyback.Text = "S" AND veri_gon=1 then
//buraya göndereceğin ne varsa yaz..
//eğer başka bir seri göndereceksen
veri_gon=2 //yaparsın.
Replyback.Text = ""
end if
if Replyback.Text = "S" AND veri_gon=2 then
//buraya göndereceğin ne varsa yaz..
//tüm göndereceklerin bittiyse
veri_gon=0 //yaparsın.
Replyback.Text = ""
end if
Evet, ama çok fazla veri gönderiyorum, bazen 200 bazen 1000, pek tercih etmeyeceğim bir yöntem bu, dışarıdan serialport.recievedtext event ine ulaşma yöntemi yok mudur, yada onu sorgulama?