/* * Unofficial Qt Serial Port Library * * Copyright (c) 2010 Inbiza Systems Inc. All rights reserved. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see * * author labs@inbiza.com */ #ifndef RECEIVER_H__ #define RECEIVER_H__ #include #include #include class QUdpSocket; namespace TNX { class QSerialPort; } class Receiver : public QObject { Q_OBJECT public: explicit Receiver(QObject *parent = 0); Receiver(TNX::QSerialPort &serPort, const QString &udpAddr, int listenPort, int bufferSize = 0, QObject *parent = 0); ~Receiver(); bool start(); bool stop(); protected: void timerEvent(QTimerEvent *event); //signals: public slots: void onDataReceived(); void onControlDataReceived(); private: inline QString sigValToString(TNX::QSerialPort::CommSignalValues sig) { if ( TNX::QSerialPort::Signal_On == sig ) return "On"; else if ( TNX::QSerialPort::Signal_Off == sig ) return "Off"; else return "Unknown"; } private: TNX::QSerialPort &serialPort_; QUdpSocket *socket_; int udpPortNo_; QString udpIp_; int listenPort_; int timeoutTimer_; char *readBuffer_; QTime readTimer_; qint32 dataSetSize_; int bufferSize_; bool doRestartTimer_; qint32 totalBytesRead_; }; #endif // RECEIVER_H__