19 #ifndef SNARK_SENSORS_SICK_PROTOCOL_H_
20 #define SNARK_SENSORS_SICK_PROTOCOL_H_
28 #include <boost/noncopyable.hpp>
29 #include <boost/optional.hpp>
32 namespace snark {
namespace sick {
namespace ldmrs {
34 class protocol :
public boost::noncopyable
38 protocol( std::iostream& stream );
41 protocol( std::istream& stream );
50 template <
typename command >
typename command::response write(
const command& c );
54 const scan_packet* readscan();
57 boost::optional< fault > last_fault();
69 #endif // #ifndef SNARK_SENSORS_SICK_PROTOCOL_H_