diff options
Diffstat (limited to 'SerialPort/SerialPortUnix.hpp')
| -rwxr-xr-x | SerialPort/SerialPortUnix.hpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/SerialPort/SerialPortUnix.hpp b/SerialPort/SerialPortUnix.hpp new file mode 100755 index 0000000..db1ae73 --- /dev/null +++ b/SerialPort/SerialPortUnix.hpp @@ -0,0 +1,35 @@ +#ifndef SERIAL_PORT_UNIX_H +#define SERIAL_PORT_UNIX_H 1 + +#include <termios.h> + +#include <vector> +#include "SerialPort.hpp" + +using std::vector; +using std::pair; + +class CSerialPortUnix : public CSerialPort { +private: + int mSerialPortFd; + string mPortName; + vector< pair<string, speed_t> > mBaudrates; + + vector<pair<string, speed_t>> getDeviceSpeeds(); + pair<string, speed_t> findSpeed(string speed, const vector<pair<string, speed_t>> & list); + void setSpeed(pair<string, speed_t> speed); + void openPort(string portName); + + ssize_t readSingle(uint8_t *data, int data_length); + ssize_t writeSingle(uint8_t *data, int data_length); +public: + CSerialPortUnix(); + ~CSerialPortUnix(); + + void open(string portName, string speed); + string getSpeeds(string portName); + + void close(); +}; + +#endif |
