Я использую это программное обеспечение с открытым исходным кодом для работы с 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);
}
Но, похоже, он не работает должным образом, так как не может распознать функции GetMessageLength () и Print () из SickLMS5xxMessage и выдает мне неразрешенную ошибку метода?
Может быть, это ошибка моего C ++-кодирования (потому что я пришел из Java-фона и поэтому C ++ все еще относительно новый для меня).
Любая помощь будет оценена, хотя, спасибо 🙂
Задача ещё не решена.
Других решений пока нет …