uartpollingthread.h
67 lines
| 2.3 KiB
| text/x-c
|
CLexer
/ APBUARTPLUGIN / uartpollingthread.h
Jeandet Alexis
|
r27 | /*------------------------------------------------------------------------------ | ||
-- This file is a part of the SocExplorer Software | ||||
-- Copyright (C) 2014, Plasma Physics Laboratory - CNRS | ||||
-- | ||||
-- This program 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 2 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 General Public License | ||||
-- along with this program; if not, write to the Free Software | ||||
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||||
-------------------------------------------------------------------------------*/ | ||||
/*-- Author : Alexis Jeandet | ||||
-- Mail : alexis.jeandet@member.fsf.org | ||||
----------------------------------------------------------------------------*/ | ||||
#ifndef UARTPOLLINGTHREAD_H | ||||
#define UARTPOLLINGTHREAD_H | ||||
#include <QObject> | ||||
#include <QThread> | ||||
#include <socexplorerplugin.h> | ||||
r28 | #include <RS232.h> | |||
#include <QMutex> | ||||
Jeandet Alexis
|
r27 | |||
#define APB_UART_DATA_REG 0x0 | ||||
#define APB_UART_STATUS_REG 0x4 | ||||
#define APB_UART_CONTROL_REG 0x8 | ||||
#define APB_UART_SCALE_REG 0xC | ||||
#define APB_UART_FIFO_DEBUG_REG 0x10 | ||||
class UARTPollingThread : public QThread | ||||
{ | ||||
Q_OBJECT | ||||
public: | ||||
explicit UARTPollingThread(socexplorerplugin *parent = 0); | ||||
Jeandet Alexis
|
r29 | ~UARTPollingThread(); | ||
Jeandet Alexis
|
r27 | void run(); | ||
signals: | ||||
void apbUartTextReceived(QString text); | ||||
public slots: | ||||
void sendChar(char c); | ||||
r28 | bool openUart(); | |||
void closeUart(); | ||||
void setPortName(QString name); | ||||
void setPortSpeedStr(QString speed); | ||||
void setPortSpeed(int speed); | ||||
void setFifoDebugEable(bool enable); | ||||
r34 | bool fifoDebugEnabled(); | |||
Jeandet Alexis
|
r27 | private: | ||
r28 | void configFifoDebug(bool enable); | |||
r34 | bool p_fifoDebugEnabled; | |||
r28 | bool fifoDebugConfigured; | |||
Jeandet Alexis
|
r27 | QString portName; | ||
int uartSpeed; | ||||
bool uartOpened; | ||||
socexplorerplugin* plugin; | ||||
r28 | rs232port_t uart; | |||
QMutex* uartMutex; | ||||
Jeandet Alexis
|
r27 | }; | ||
#endif // UARTPOLLINGTHREAD_H | ||||