/* * Author: Pawel Jablonski * E-mail: pj@xirx.net * WWW: xirx.net * GIT: git.xirx.net * * License: You can use this code however you like * but leave information about the original author. * Code is free for non-commercial and commercial use. */ #ifndef RS232_H #define RS232_H #include #include #include //! This class contains RS232 functions class RS232 : public QObject { Q_OBJECT public: static const int BUFFER_RX_SIZE = 64; //!< Receive buffer size static const int BUFFER_TX_SIZE = 64; //!< Transmit buffer size static const int SEND_MASK = 0x7f; //!< Mask to make a basic ASCII char set static const int MAX_CODE = 0x7f; //!< Maximum allowed ASCII char static const int MIN_CODE = 0x20; //!< Minimum allowed ASCII char RS232(QObject *parent = nullptr); void reset(); void rx(const QString &text); void send(unsigned char c); unsigned char receive(); unsigned char getSendBufferFree(); private: QList rxBuffer; //!< Receive buffer signals: void updateTxSignal(unsigned char c); void updateRxSignal(unsigned char c); void dataReadySignal(bool ready); }; #endif