직렬 GPS에서 NMEA 문장을 검색하고 있습니다. 그럼 내가 기대하는 것처럼 끈이 다가오고있다.직렬 포트에서 NMEA 데이터 구문 분석에 문제가 발생했습니다.
$GPRMC,040302.663,A,3939.7,N,10506.6,W,0.27,358.86,200804,,*1A
내가 올바른 sentect이 있는지 확인하는 코드의 간단한 비트를 사용합니다 : 문제는이 같은 문장을 구문 분석 할 때이다 나는에 대한 해당 위치에서 수익을 추가
string[] Words = sBuffer.Split(',');
foreach (string item in Words)
{
if (item == "$GPRMC")
{
return "Correct Sentence";
}
else
{
return "Incorrect Sentence
}
}
예. 분할 된 결과를 텍스트 상자에 출력하고 $ GPRMC가 실제로 어떤 시점에서 항목 변수에 들어오는 것을 보았습니다. 문자열이 건너 오면 왜 if 문이 catch되지 않습니까? $가 맞습니까? 어떻게 문제를 해결할 수 있습니까? 내가 NMEA GPS를 읽기 때문에
원본 문자열을 sBuffer 변수에 정확히 입력 했습니까? 쉼표 앞에 공백이있을 수 있습니까? 또는 다른 사소한 불일치? 또한 foreach 문에서 중단 점을 설정하십시오. 때 맞추기, sBuffer와 단어를 모두 디버거 시계에 추가하고 단어를 확장 한 다음 그 스크린 샷을 찍어 여기에 게시하십시오. –
오, 덧붙여서 잊어 버렸습니다 : 아니오, 달러 기호는 아무 상관이 없습니다. –
인쇄 금지 문자가 없는지 확인하십시오 (예 : 이전 줄에서 읽은 CR에서 남겨진 길잃은 LF 문자. –