我正在使用这个开源软件与Sick Lidar Devices合作:
https://github.com/rhuitl/sicktoolbox/tree/master/trunk/c%2B%2B/drivers/lms5xx/sicklms5xx
以及提供有关数据信息的文档:
我正在尝试使用C ++实现来解析" CoLa B"来自SickLMS5xx的格式,在上述文档中提到。但是,这个工具箱似乎是为了直接处理设备而编写的,而不是从它输出的文件(就像我正在使用的那样)。
看来我可以使用SickLMS5xxMessage(ParseMessage()等)中的函数来实现我想要的。我做了一个主要的方法来交互这个类(和它的SickMessage()超类),如下所示:
#include <iostream>
#include <fstream>
#include <boost/thread/thread.hpp>
#include "SickLMS5xxMessage.cc"
void run() {
SickLMS5xxMessage msg(uint8_t * const telegramFileBuffer[]);
std::ifstream telegramFile("MMS21_01");
if(telegramFile.is_open()) {
uint8_t telegramFileBuffer[msg.GetMessageLength()];
for(int i = 0; i < msg.GetMessageLength(); ++i) {
telegramFile >> telegramFileBuffer[i];
}
}
msg.Print();
}
int main (int argc, char** argv) {
run();
return (0);
}
但是它似乎没有正常工作,因为它无法识别SickLMS5xxMessage中的GetMessageLength()和Print()函数,并给出了一个未解决的方法错误?
也许这是我的C ++编码错误(因为我来自Java背景,所以C ++对我来说还是比较新的。)
任何帮助将不胜感激,谢谢:)