2016-05-14 28 views
-1

ich bin mit einem Arduino RFID enter code here Leser, die mir die Daten durch Serail Port senden, aber ichC# Serial Port Empfangen von Daten in Form von Symbolen

erhalten keine Daten in der richtigen Form wie 0001685839 025,47439

bitte meinen Code helfen, diese

using System; 
using System.IO.Ports; 

class PortDataReceived 
{ 
    public static void Main() 
    { 
     SerialPort mySerialPort = new SerialPort("COM3"); 

     mySerialPort.BaudRate = 9600; 
     mySerialPort.Parity = Parity.None; 
     mySerialPort.StopBits = StopBits.One; 
     mySerialPort.DataBits = 8; 
     mySerialPort.Handshake = Handshake.None; 
     mySerialPort.RtsEnable = true; 

     mySerialPort.DataReceived += new  SerialDataReceivedEventHandler(DataReceivedHandler); 

     mySerialPort.Open(); 
     Console.WriteLine(); 
     Console.ReadKey(); 
     mySerialPort.Close(); 
    } 

    private static void DataReceivedHandler(object sender,SerialDataReceivedEventArgs e) 
    { 
     SerialPort sp = (SerialPort)sender; 
     string indata = sp.ReadExisting(); 
     Console.Write(indata); 
    } 
} 
+0

Haben Sie überhaupt etwas zu erhalten? Hast du RtsEnable = false ausprobiert? –

+0

ja versucht, aber immer noch Symbole und englische Zeichen –

Antwort

0

Welche Daten erhalten Sie? Es gibt eine Vorstellung von Puffer für COM-Port. Sie können zwei Leseereignisse erhalten, wenn die Daten nicht in den Port-Puffer passen.

Sie können so etwas wie dies versuchen:

int bytesToRead = sp.BytesToRead; 
var bytes = new byte[bytesToRead]; 

sp.Read(bytes, 0, bytesToRead); 
var indata = Encoding.ASCII.GetString(bytes) 

sp.DiscardInBuffer(); 
sp.DiscardOutBuffer(); 
+0

Ich erhalte Daten in Symbolen und englischen Wörtern anstelle von Zahlen –

+0

Sergii Kimlik funktioniert nicht –

Verwandte Themen