버퍼에 데이터가있을 때 직렬 포트에서 데이터 행을 읽는 필자가 작성한 코드 스 니펫을 붙여 넣었습니다. 그러나 필자는 그렇지 않은 여분의 빈 줄을 인쇄하고 있습니다. 어떤 아이디어? 내가 뭘 잘못하고 있니?C#을 사용하여 공백을 제거하는 데 문제가 있음
static void Port1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int i = 0;
int end = -1;
SerialPort Port1 = (SerialPort)sender;
String GPSMessage = "";
while (end == -1)
{
int GPStoRead = Port1.BytesToRead;
byte[] GPSbuffer = new byte[GPStoRead];
Port1.Read(GPSbuffer, 0, GPSbuffer.Length);
buffer = Utility.CombineArrays(buffer, GPSbuffer);
for (i = 0; i < buffer.Length; i++)
{
if (buffer[i] == '\r')
{
end = i;
}
}
}
GPSMessage += new String(System.Text.Encoding.UTF8.GetChars(Utility.ExtractRangeFromArray(buffer, 0, end)));
GPSMessage.TrimEnd();
if (GPSMessage != "")
{
Debug.Print(GPSMessage);
}
buffer = Utility.ExtractRangeFromArray(buffer, end, buffer.Length - end);
}
버퍼 란 무엇입니까? – ColWhi
메인 프로그램 클래스에서 버퍼를 직접 선언했습니다. 게시물에 추가해야한다고 생각합니다. – Richard