AngryAlex
22-08-2011, 23:36
Salve, ho la necessita' di leggere dei dati tramite porta seriale che mi vengono inviati da una scheda Arduino. Il problema e' che la variabile stringa del programmino c# che uso, invece di immagazzinare una stringa alla volta, ne immagazzina una, due....quattro o cinque alla volta creandomi notevoli problemi. Il numero di stringhe nella variabile sembra essere random.
Allego un po di codici.
Arduino:
void loop () {
if(PSButton(PSB_PAD_RIGHT))
Serial.println("Right");
}
Programma in C#:
private void DisplayText(object sender, EventArgs e)
{
textBox1.AppendText(RxString);
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
RxString = serialPort1.ReadExisting();
this.Invoke(new EventHandler(DisplayText));
}
Nella textbox mi stampa una cosa del genere:
Right
RightRightRight
RightRight
RightRight
Right
RightRight
RightRightRight
RightRightRightRightRight
RightRight
Right
RightRightRightRight
RightRight
RightRight
RightRightRight
In pratica ad ogni riga qui sopra corrisponde il contenuto della variabile RxString.
Come posso ottenere sempre e solo una stringa nella variabile?
Grazie!:p
Allego un po di codici.
Arduino:
void loop () {
if(PSButton(PSB_PAD_RIGHT))
Serial.println("Right");
}
Programma in C#:
private void DisplayText(object sender, EventArgs e)
{
textBox1.AppendText(RxString);
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
RxString = serialPort1.ReadExisting();
this.Invoke(new EventHandler(DisplayText));
}
Nella textbox mi stampa una cosa del genere:
Right
RightRightRight
RightRight
RightRight
Right
RightRight
RightRightRight
RightRightRightRightRight
RightRight
Right
RightRightRightRight
RightRight
RightRight
RightRightRight
In pratica ad ogni riga qui sopra corrisponde il contenuto della variabile RxString.
Come posso ottenere sempre e solo una stringa nella variabile?
Grazie!:p