sonar_tritech
SeaNet.hpp
Go to the documentation of this file.
1 #ifndef _SEANET_H_
2 #define _SEANET_H_
3 
4 #include <iodrivers_base/Driver.hpp>
5 #include "SeaNetTypes.hpp"
7 
8 namespace sea_net {
9 class SeaNetPacket;
10 class HeadConfigPacket;
11 
12 class SeaNet : public ::iodrivers_base::Driver
13 {
14 public:
20  SeaNet(const DeviceType type);
21  ~SeaNet();
22 
26  void openSerial(std::string const& port, int baudrate=115200);
27 
29  void openURI(std::string const& uri);
30 
32  void clear();
33 
37  void reboot(int timeout);
38 
47  PacketType readPacket(int timeout);
48 
49  void waitForPacket(PacketType type, int timeout);
50 
54  void getVersion(VersionData &version, int timeout);
55 
59  bool isFullDuplex(int timeout);
60 
62  bool isFullDublex(int timeout);
63 
64  void setWriteTimeout(uint32_t timeout);
65 
67  SeaNetPacket const& getSeaNetPacket() const;
68 
76  void requestData();
77 
85  bool hasPendingData() const;
86 
91  void receiveData(int timeout);
92 
93 protected:
94  void writeHeadCommand(HeadCommand &hc, int timeout);
95  virtual int extractPacket(uint8_t const* buffer, size_t buffer_size) const;
96 
97 protected:
101 }; };
102 #endif
103 
void writeHeadCommand(HeadCommand &hc, int timeout)
Definition: SeaNet.cpp:103
PacketType
Definition: SeaNetTypes.hpp:28
Definition: SeaNet.hpp:12
bool isFullDuplex(int timeout)
Definition: SeaNet.cpp:71
const int baudrate
Definition: Main.cpp:5
void reboot(int timeout)
Definition: SeaNet.cpp:38
void setWriteTimeout(uint32_t timeout)
Definition: SeaNet.cpp:165
bool isFullDublex(int timeout)
Definition: SeaNet.cpp:66
void clear()
Definition: SeaNet.cpp:32
Definition: SeaNetTypesInternal.hpp:105
PacketType readPacket(int timeout)
Definition: SeaNet.cpp:86
void requestData()
Definition: SeaNet.cpp:140
virtual int extractPacket(uint8_t const *buffer, size_t buffer_size) const
Definition: SeaNet.cpp:159
bool has_pending_data
Definition: SeaNet.hpp:100
void openURI(std::string const &uri)
Definition: SeaNet.cpp:26
SeaNet(const DeviceType type)
Definition: SeaNet.cpp:9
SeaNetPacket sea_net_packet
Definition: SeaNet.hpp:98
DeviceType
Definition: SeaNetTypes.hpp:19
void waitForPacket(PacketType type, int timeout)
Definition: SeaNet.cpp:59
void openSerial(std::string const &port, int baudrate=115200)
Definition: SeaNet.cpp:19
void getVersion(VersionData &version, int timeout)
Definition: SeaNet.cpp:49
Definition: SeaNetTypesInternal.hpp:14
SeaNetPacket const & getSeaNetPacket() const
Definition: SeaNet.cpp:81
Definition: SeaNetTypes.hpp:9
~SeaNet()
Definition: SeaNet.cpp:15
DeviceType device_type
Definition: SeaNet.hpp:99
void receiveData(int timeout)
Definition: SeaNet.cpp:153
bool hasPendingData() const
Definition: SeaNet.cpp:148