Я извлекаю предложения NMEA из последовательного GPS. Тогда строка встречается так, как я ожидал. Проблема заключается в том, что при анализе предложения, как это:Анализ неисправностей данных 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? Is is $? Как я могу это сделать?
Вы уверены, что указали строку источника точно так же, как она входит в вашу переменную sBuffer? Может быть, перед запятой есть пробел? Или какие-то другие незначительные несоответствия? Также попробуйте установить точку останова в инструкции foreach. Когда он попадает, добавьте и sBuffer и Words в часы отладки, затем разверните Words, а затем снимите с экрана и опубликуйте его здесь. –
О, и забыл добавить: нет, знак доллара не может иметь к этому никакого отношения. –
Убедитесь, что в нем нет каких-либо непечатаемых управляющих символов, например. блуждающий символ LF, оставшийся от чтения до CR на предыдущей строке. –