00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef _TEDISPLAYBASE_H
00027 #define _TEDISPLAYBASE_H
00028 #include <tebase.h>
00029 #include <qstringlist.h>
00030 #include <qthread.h>
00031 #include <qmutex.h>
00032 #include <qwaitcondition.h>
00033
00034
00035 class LIB_EXPORT TEDisplayBase : public TEBase
00036 {
00037 Q_OBJECT
00038
00039 public:
00040 TEDisplayBase( int pn );
00041 ~TEDisplayBase();
00042
00043 enum CommandSet
00044 {
00045 CS_DEFAULT=0,
00046 CS_EPSON,
00047 CS_DSP800,
00048 CS_AEDEX,
00049 CS_FIRICH
00050 };
00051 virtual QString commandSetName(int);
00052 virtual bool isCommandSetSupported(int);
00053
00054 virtual QString modelInfo();
00055 virtual int scrollSpeed()=0;
00056 virtual int portBaudRate();
00057 int getCommandSet() const {return m_eCommandSet;}
00058 public slots:
00059 virtual void setPortBaudRate(int);
00060 virtual void setScrollSpeed(int)=0;
00061 virtual int setCommandSet(int);
00062 virtual void initDisplay();
00063 virtual void setPortNumberAndInit(int pn);
00064 virtual void setDisplayMode(const QString & mode);
00065 virtual void showText(const QString & text,
00066 const QString & category="default",
00067 const QString & mode="scroll/left");
00068 virtual void processEvent( int Code );
00069
00070
00071 protected:
00072 Q_ULONG m_baudRate;
00073 int m_slowMode;
00074 void setSlowPortMode(int delayus);
00075 Q_ULONG writeBlockSlow( const char *data, Q_ULONG len );
00076 void addToBuffer(const char * data, Q_ULONG len);
00077
00078 QMutex * m_pBufferMutex;
00079 QWaitCondition * m_pDataReady;
00080 QThread * m_pWriter;
00081 QByteArray * m_pBuffer;
00082 int m_eCommandSet;
00083
00084 virtual void initPort()=0;
00085 };
00086
00087
00088 #endif
00089
00090