Wenn ich deinen Quelltext richtig interpretiere, liest du in nBufferPos
die Anzahl der gelesenen Bytes ein und verwendest ihn auch noch als
Offset-Parameter. Das müsste bedeuten, das beim zweiten Lesen der
Offset bei der vorher gelesenen Anzahl beginnt. Ich frage mich was du
damit bezwecken willst? Versuch es mal so:
[code]
nBufferPos = ComPort.Read(btyBuffer, 0, ComPort.BytesToRead);
[\code]
Ich poste hier mal Teile meines Quelltextes für die Einstellung und
auslesen:
InitializeComponent ()
{
...
this.serialPort1.ParityReplace = ((byte)(0));
this.serialPort1.PortName = "COM2";
this.serialPort1.DataReceived += new
System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1DataRecei
ved);
this.serialPort1.Encoding = Encoding.UTF8;
this.serialPort1.BaudRate = 9600;
this.serialPort1.DataBits = 8;
this.serialPort1.StopBits = System.IO.Ports.StopBits.One;
this.serialPort1.Parity = System.IO.Ports.Parity.None;
this.serialPort1.Open();
...
}
void serialPort1DataReceived(object sender, System.EventArgs e)
{
byte[] buffer = new byte[this.serialPort1.BytesToRead];
this.serialPort1.Read(buffer, 0, this.serialPort1.BytesToRead);
for (int i = 0; i<buffer.Length; i++)
{
tempstring += (" 0x"+buffer[i].ToString("x2")); // tempstring
globale Variable
}
}