我的 GP635T GPS 传感器连接到我的 Intel Edison 时遇到了一个相当奇怪的问题。我使用 C++ 和 Eclipse 对其进行编程。
如果我尝试接收这样的数据
message = serialGPS.readStr(100);
startPosition = message.find('$');
endPosition = message.find("\n");
std::cout << "Complete message: " << message << std::endl;
$GPGGA
我得到一个很长的输出,其中包含从到的所有类型的受支持消息$GPTXT
(请参阅数据表 --> http://www.cypax.dk/pdf/GP-635T-121130.pdf)。但我只想使用$GPGLL
-messages。所以我调整了代码以找到该消息开头和结尾的索引:
message = serialGPS.readStr(100);
startPosition = message.find("$GPGLL");
endPosition = message.find('$', startPosition+1);
std::cout << "Complete message: " << message << std::endl;
但是使用该代码,变量“消息”始终只包含一条随机类型的消息。我不知道为什么会发生这种情况,因为我没有在代码中的任何地方触摸变量“消息”。
此外,如果我删除/注释这些行,也会发生同样的效果message.find()
。我仍然只收到一条随机类型的消息。只有第一个代码块显示长消息。