/* * 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 TRANSMITTER_H__ #define TRANSMITTER_H__ #include #include #include class QUdpSocket; namespace TNX { class QSerialPort; } class Transmitter : public QObject { Q_OBJECT static const int kTotalPortSetTestCount = 30; static const int kTotalDataSetCount = 4; static const int kNumOfSignalsToTest = 4; static char PortSettingsToTest[kTotalPortSetTestCount][30]; static int DataSetSizes[kTotalDataSetCount]; public: enum Tests { DataTransferTest = 0, SignalTest, DoneTesting }; public: explicit Transmitter(QObject *parent = 0); Transmitter(TNX::QSerialPort &serPort, const QString &udpAddr, int listenPort, QObject *parent = 0); ~Transmitter(); 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 transmitTimer_; int commTestCounter_; int dataSetCounter_; int signalTestCounter_; char *dataSet_; Tests test_; QString lastSettings_; int lastDataSize_; }; #endif // TRANSMITTER_H__