Files
        @ f5f0a29e6433
    
        
              Branch filter: 
        
    Location: tempo-plotter/src/portcontrol.h - annotation
        
            
            f5f0a29e6433
            3.0 KiB
            text/plain
        
        
    
    display baud rate warning tooltip and max bit rate in case its hit
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105  | bdc33b5c53c6 f5f0a29e6433 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 2903e12a8854 eaa2f6373b24 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 2903e12a8854 bdc33b5c53c6 f5f0a29e6433 f5f0a29e6433 f5f0a29e6433 2903e12a8854 2903e12a8854 716662cea3b5 2903e12a8854 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 160b17420197 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 eaa2f6373b24 eaa2f6373b24 eaa2f6373b24 2903e12a8854 2903e12a8854 fc3447903db8 fc3447903db8 64927d61468d 64927d61468d 2903e12a8854 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 9f791e07b3c2 eaa2f6373b24 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6  | /*
  Copyright © 2019 Hasan Yavuz Özderya
  This file is part of serialplot.
  serialplot is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  serialplot 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 General Public License
  along with serialplot.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef PORTCONTROL_H
#define PORTCONTROL_H
#include <QWidget>
#include <QButtonGroup>
#include <QSerialPort>
#include <QStringList>
#include <QToolBar>
#include <QAction>
#include <QComboBox>
#include <QSettings>
#include <QTimer>
#include "portlist.h"
namespace Ui {
class PortControl;
}
class PortControl : public QWidget
{
    Q_OBJECT
public:
    explicit PortControl(QSerialPort* port, QWidget* parent = 0);
    ~PortControl();
    QSerialPort* serialPort;
    QToolBar* toolBar();
    /// Returns maximum bit rate for current baud rate
    unsigned maxBitRate() const;
    /// Stores port settings into a `QSettings`
    void saveSettings(QSettings* settings);
    /// Loads port settings from a `QSettings`. If open serial port is closed.
    void loadSettings(QSettings* settings);
private:
    Ui::PortControl *ui;
    QButtonGroup parityButtons;
    QButtonGroup dataBitsButtons;
    QButtonGroup stopBitsButtons;
    QButtonGroup flowControlButtons;
    QToolBar portToolBar;
    QAction openAction;
    QAction loadPortListAction;
    QComboBox tbPortList;
    PortList portList;
    /// Used to refresh pinout signal leds periodically
    QTimer pinUpdateTimer;
    /// Returns the currently selected (entered) "portName" in the UI
    QString selectedPortName();
    /// Returns currently selected parity as text to be saved in settings
    QString currentParityText();
    /// Returns currently selected flow control as text to be saved in settings
    QString currentFlowControlText();
public slots:
    void loadPortList();
    void loadBaudRateList();
    void togglePort();
    void selectPort(QString portName);
    void selectBaudRate(QString baudRate);
    void selectParity(int parity); // parity must be one of QSerialPort::Parity
    void selectDataBits(int dataBits); // bits must be one of QSerialPort::DataBits
    void selectStopBits(int stopBits); // stopBits must be one of QSerialPort::StopBits
    void selectFlowControl(int flowControl); // flowControl must be one of QSerialPort::FlowControl
private slots:
    void openActionTriggered(bool checked);
    void onCbPortListActivated(int index);
    void onTbPortListActivated(int index);
    void onPortError(QSerialPort::SerialPortError error);
    void updatePinLeds(void);
signals:
    void portToggled(bool open);
};
#endif // PORTCONTROL_H
 |