OpenDaVINCI  4.16.0
SerialPort.h
Go to the documentation of this file.
1 
20 #ifndef OPENDAVINCI_CORE_WRAPPER_SERIALPORT_H_
21 #define OPENDAVINCI_CORE_WRAPPER_SERIALPORT_H_
22 
23 #include <memory>
24 #include <string>
25 
30 
31 namespace odcore { namespace io { class ConnectionListener; } }
32 namespace odcore { namespace io { class StringListener; } }
33 
34 namespace odcore {
35  namespace wrapper {
36 
37 class Mutex;
38 class Thread;
39 
40  using namespace std;
41 
46  public:
53  SerialPort(const string &port, const uint32_t &baudRate);
54 
55  virtual ~SerialPort();
56 
63  void setConnectionListener(odcore::io::ConnectionListener* cl);
64 
70  void setStringListener(odcore::io::StringListener *sl);
71 
75  void start();
76 
80  void stop();
81 
87  void send(const string &data);
88 
89  protected:
90  virtual bool isRunning();
91 
92  virtual void run();
93 
106  void receivedString(const string &partialData);
107 
112  void invokeConnectionListener();
113 
114  private:
115  unique_ptr<Thread> m_thread;
116 
117  unique_ptr<Mutex> m_connectionListenerMutex;
118  odcore::io::ConnectionListener* m_connectionListener;
119 
120  unique_ptr<Mutex> m_stringListenerMutex;
121  odcore::io::StringListener *m_stringListener;
122 
123  void *m_serial;
124 
130  SerialPort(const SerialPort &);
131 
137  SerialPort& operator=(const SerialPort &);
138  };
139  }
140 }
141 
142 #endif /* OPENDAVINCI_CORE_WRAPPER_SERIALPORT_H_ */
Definition: ConnectionListener.h:31
#define OPENDAVINCI_API
Definition: opendavinci.h:67
Definition: Runnable.h:35
Definition: SerialPort.h:45
Definition: StringListener.h:36
Definition: ConnectionObserver.h:34
Definition: StringSender.h:32