• 大小: 16.31MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-31
  • 语言: 其他
  • 标签: IBEO  激光雷达  

资源简介

基于IBEO四线雷达的扫描程序,基于VS2008

资源截图

代码片段和文件信息

// IbeoLUX雷达数据采集程序.cpp : 定义控制台应用程序的入口点。
//

// Example program for connecting to a scanner and receiving its scans
#include “stdafx.h“
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
// #include  // needed for AlascaXT laserscanner
// #include  // needed for AlascaXT

// Define an EventMonitor object for thread synchronization
ibeo::EventMonitor g_events;

// Define the events used for synchronization
const ibeo::EventMonitor::Mask g_newScanDataEvent = g_events.newEvent();
const ibeo::EventMonitor::Mask g_cancelEvent = g_events.newEvent();

// Global thread-safe Scan buffer with associated mutex
typedef ibeo::Mutexed MutexedScan;
static MutexedScan g_scan;

// The message handler receives messages from the serializer of the IbeoAPI
bool messageHandler (const Serializable& msg UINT8 fromDeviceID)
{
// Here we are running in the thread context of the IbeoLUX
// receiver thread but not in the main thread.  Therefore we
// will communicate with main() using events through the
// EventMonitor object.

switch (msg.getDataType())
{
case ibeo::DataTypeScanPointList:
{
const Scan& original_scan = dynamic_cast(msg);
// Copy the received scan to the thread-safe local buffer
bool copiedSuccessfully = g_scan.tryCopy (original_scan);
if (copiedSuccessfully)
{
// Received scan was copied to local buffer hence
// signal this arrival to the main thread.
g_events.signal (g_newScanDataEvent);
}
else
{
std::cout << “Scan buffer locked - cannot copy Laserscanner‘s Scan to buffer skipping this Scan.“ << std::endl;
}
}
break;

default:
// Ignore all other data types
break;
}

// Return true as long as we want to receive messages from the serializer.
return true;
}

// Do something with the scan as an example here
bool processScan()
{
// Lock the scan buffer to synchronize the access.
MutexedScan::scoped_try_lock criticalSection (g_scan.mutex);
bool lockObtained = criticalSection; // true if we acquired the lock
// This is the simplest case which works if we can be sure always
// that our processScan() method is finished before the next
// messageHandler() call might occur. If this is not the case
// another buffer policy (double-buffering or a ring buffer) might
// be more appropriate.
if (lockObtained)
{
// Local buffer has been locked hence it can be accessed now.
const Scan& scan = g_scan.data;
std::cout << “Scan “ << scan.getScanNumber()
<< “ received “ << scan.getNumPoints() << “ points“;
if (scan.getNumPoints() > 0)
{
const ScanPoint& p = scan.getPoint(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-04-01 23:33  IbeoLUX雷达数据采集程序(线程安全版)\
     目录           0  2013-04-24 21:20  IbeoLUX雷达数据采集程序(线程安全版)\Debug\
     文件    10914816  2013-04-24 21:20  IbeoLUX雷达数据采集程序(线程安全版)\Debug\IbeoLUX雷达数据采集程序.pdb
     目录           0  2013-04-01 23:35  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\
     文件    20810752  2013-04-24 21:26  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序.ncb
     文件         959  2012-05-16 17:04  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序.sln
     文件       19456  2013-04-24 21:26  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序.suo
     目录           0  2013-04-24 21:20  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\
     文件       19686  2013-04-24 21:20  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\BuildLog.htm
     文件         915  2012-05-16 17:15  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\IbeoLUX雷达数据采集程序.exe.embed.manifest
     文件         980  2012-05-16 17:15  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\IbeoLUX雷达数据采集程序.exe.embed.manifest.res
     文件         621  2013-04-24 21:20  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\IbeoLUX雷达数据采集程序.exe.intermediate.manifest
     文件     1162621  2012-05-16 17:14  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\IbeoLUX雷达数据采集程序.obj
     文件     3211264  2012-05-16 17:12  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\IbeoLUX雷达数据采集程序.pch
     文件          67  2012-05-16 17:15  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\mt.dep
     文件       13417  2012-05-16 17:12  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\stdafx.obj
     文件     2460672  2012-05-16 17:14  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\vc90.idb
     文件     1773568  2012-05-16 17:14  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Debug\vc90.pdb
     文件        7826  2012-05-16 17:14  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\IbeoLUX雷达数据采集程序.cpp
     文件        5178  2013-04-02 18:49  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\IbeoLUX雷达数据采集程序.vcproj
     文件        1435  2013-04-24 21:26  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\IbeoLUX雷达数据采集程序.vcproj.20110624-1441.Administrator.user
     文件        1474  2013-03-27 13:24  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\IbeoLUX雷达数据采集程序.vcproj.Z3ORWGDQNJBOKCB.Administrator.user
     文件        1327  2012-05-16 17:04  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\ReadMe.txt
     目录           0  2013-04-02 18:49  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Release\
     文件       10360  2013-04-02 18:49  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Release\BuildLog.htm
     文件         616  2013-04-02 18:49  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Release\IbeoLUX雷达数据采集程序.exe.intermediate.manifest
     文件     3276092  2013-04-02 18:49  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Release\IbeoLUX雷达数据采集程序.obj
     文件     3211264  2013-04-02 18:49  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Release\IbeoLUX雷达数据采集程序.pch
     文件          67  2013-04-02 18:49  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Release\mt.dep
     文件       37974  2013-04-02 18:49  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Release\stdafx.obj
     文件     1051648  2013-04-02 18:49  IbeoLUX雷达数据采集程序(线程安全版)\IbeoLUX雷达数据采集程序\Release\vc90.idb
............此处省略15个文件信息

评论

共有 条评论