X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fio%2Fserial.h;fp=source%2Fio%2Fserial.h;h=069789c85097a69e8510d347ca43a02630009a2a;hp=0000000000000000000000000000000000000000;hb=6e0fd758970bcb5bad5e3f2454b694cc4d7b4b66;hpb=b97d4e9f86e90254ab9edef7ee62a910f6333c78 diff --git a/source/io/serial.h b/source/io/serial.h new file mode 100644 index 0000000..069789c --- /dev/null +++ b/source/io/serial.h @@ -0,0 +1,49 @@ +#ifndef MSP_IO_SERIAL_H_ +#define MSP_IO_SERIAL_H_ + +#include "base.h" + +namespace Msp { +namespace IO { + +class Serial: public Base +{ +public: + enum Parity + { + NONE, + EVEN, + ODD + }; + +private: + Handle handle; + +public: + Serial(const std::string &); + virtual ~Serial(); + +private: + void close(); + +public: + virtual void set_block(bool); + + void set_baud_rate(unsigned); + void set_data_bits(unsigned); + void set_parity(Parity); + void set_stop_bits(unsigned); + void set_parameters(const std::string &); + +private: + virtual unsigned do_write(const char *, unsigned); + virtual unsigned do_read(char *, unsigned); + +public: + virtual Handle get_event_handle(); +}; + +} // namespace IO +} // namespace Msp + +#endif