00001 /*! 00002 * \file SickLDBufferMonitor.hh 00003 * \brief Defines a class for monitoring the receive 00004 * buffer when interfacing w/ a Sick LMS LIDAR. 00005 * 00006 * Code by Jason C. Derenick and Thomas H. Miller. 00007 * Contact derenick(at)lehigh(dot)edu 00008 * 00009 * The Sick LIDAR Matlab/C++ Toolbox 00010 * Copyright (c) 2008, Jason C. Derenick and Thomas H. Miller 00011 * All rights reserved. 00012 * 00013 * This software is released under a BSD Open-Source License. 00014 * See http://sicktoolbox.sourceforge.net 00015 */ 00016 00017 #ifndef SICK_LD_BUFFER_MONITOR_HH 00018 #define SICK_LD_BUFFER_MONITOR_HH 00019 00020 #define DEFAULT_SICK_BYTE_TIMEOUT (35000) ///< Max allowable time between consecutive bytes 00021 00022 /* Auto-generated header */ 00023 #include "SickConfig.hh" 00024 00025 /* Definition dependencies */ 00026 #include "SickLDMessage.hh" 00027 #include "SickBufferMonitor.hh" 00028 #include "SickException.hh" 00029 00030 /* Associate the namespace */ 00031 namespace SickToolbox { 00032 00033 /*! 00034 * \brief A class for monitoring the receive buffer when interfacing with a Sick LD LIDAR 00035 */ 00036 class SickLDBufferMonitor : public SickBufferMonitor< SickLDBufferMonitor, SickLDMessage > { 00037 00038 public: 00039 00040 /** A standard constructor */ 00041 SickLDBufferMonitor( ); 00042 00043 /** A method for extracting a single message from the stream */ 00044 void GetNextMessageFromDataStream( SickLDMessage &sick_message ) throw( SickIOException ); 00045 00046 /** A standard destructor */ 00047 ~SickLDBufferMonitor( ); 00048 00049 }; 00050 00051 } /* namespace SickToolbox */ 00052 00053 #endif /* SICK_LD_BUFFER_MONITOR_HH */