OpenCores
URL https://opencores.org/ocsvn/bw_tiff_compression/bw_tiff_compression/trunk

Subversion Repositories bw_tiff_compression

[/] [bw_tiff_compression/] [trunk/] [client_application/] [src/] [Kernel/] [CSerialport.h] - Rev 16

Compare with Previous | Blame | View Log

/*
 * @file     Serialport.h
 * @date     May 14, 2012
 * @author   Aart Mulder
 */
 
#ifndef CSERIALPORT_H
#define CSERIALPORT_H
 
/** @author Aart Mulder
 *  @version 1
 */
 
#include <QByteArray>
#include <QTime>
#include <QMutex>
#include <QQueue>
 
#include "CSerialportDevice.h"
 
class CSerialport : public CSerialportDevice
{
    Q_OBJECT
 
    enum E_CommState
    {
        S_Unknown,
        S_StandBy,
        S_WaitForData
    };
 
public:
    CSerialport();
    void Send(unsigned char cData);
    void Send(QByteArray aData);
    void RequestNewFrame(QString sFilename = "", QString sDir = "");
    bool Connect(char *sName, quint32 nBaudrate);
    bool Disconnect();
    bool IsStateStandby();
    bool IsStateWaitForData();
    int  GetBytesReceived();
    int  GetBytesExpected();
    void GetNewBytes(QByteArray *pRxData);
    void CancelRequest();
 
protected:
   void BeforeClientLoop();
   void ClientLoop();
   void AfterClientLoop();
   void OnDataReceived(quint8 cData);
   void OnDataReceived(quint8 *pData, int nSize);
 
private:
   unsigned int m_nBytesExpected, m_nBytesReceived, m_nImageWidth, m_nImageHeight;
   QByteArray m_aRxBuf;
   E_CommState m_oCommState;
   bool m_bTimeoutTimer;
   QTime m_oRxTimeoutTimer;
   int m_nTimeoutTime;
   QString m_sFilename;
   QString m_sDir;
   QQueue<quint8> m_aRxQForGUI;
   QMutex m_oRxQMutex;
 
   void handleRxByte(quint8 cData);
   void handleStreamComplete(QString sFilename = "", QString sDir = "");
 
private slots:
    void onSend(unsigned char cData);
    void onSend(QByteArray aData);
 
signals:
    void send(unsigned char cData);
    void send(QByteArray aData);
    void showErrorMessage(QString sMessage, bool bEnableBtSingleShot, bool bCheckedBtRepeat);
    void frameCompleted(QString sFilename);
 
};
 
#endif // CSERIALPORT_H
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.