2

我正在使用这个开源软件来处理 Sick Lidar Devices:

https://github.com/rhuitl/sicktoolbox/tree/master/trunk/c%2B%2B/drivers/lms5xx/sicklms5xx

以及提供数据信息的本文档:

https://www.sick.com/media/docs/7/27/927/Technical_information_Telegram_Listing_Ranging_sensors_LMS1xx_LMS5xx_TiM5xx_NAV310_LD_OEM15xx_LD_LRS36xx_en_IM0045927.PDF

我正在尝试使用 C++ 实现来解析来自 SickLMS5xx 的“CoLa B”格式的已写入文件,如上述文档中所述。但是,这个工具箱似乎是为了直接处理设备而编写的,而不是从它输出的文件(就像我正在使用的那样)。

看来我可以使用 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++ 对我来说还是比较新的)。

任何帮助将不胜感激,谢谢:)

4

0 回答 0