Общая библиотека для работы с торговым оборудованием.  1.0.0
п·я┌п╨я─я▀я┌я▀п╣ я│п╩п╬я┌я▀ | п║п╦пЁп╫п╟п╩я▀ | п·я┌п╨я─я▀я┌я▀п╣ я┤п╩п╣п╫я▀ | п≈п╟я┴п╦я┴п╣п╫п╫я▀п╣ я┤п╩п╣п╫я▀ | п≈п╟я┴п╦я┴п╣п╫п╫я▀п╣ п╢п╟п╫п╫я▀п╣ | п║п╡п╬п╧я│я┌п╡п╟ | п÷п╬п╩п╫я▀п╧ я│п©п╦я│п╬п╨ я┤п╩п╣п╫п╬п╡ п╨п╩п╟я│я│п╟
п п╩п╟я│я│ TEBase

The TEBase is base class for all trade equipment classes. п÷п╬п╢я─п╬п╠п╫п╣п╣...

#include <tebase.h>

п⌠я─п╟я└ п╫п╟я│п╩п╣п╢п╬п╡п╟п╫п╦я▐:TEBase:
TE TEDisplayBase TEReaderBase TEScalesBase

п·я┌п╨я─я▀я┌я▀п╣ я│п╩п╬я┌я▀

virtual int startDriver ()
 
virtual int stopDriver ()
 
virtual int setCaptureMode (int iMode)
 
virtual int captureMode ()
 

п║п╦пЁп╫п╟п╩я▀

void deviceEvent (int Code)
 

п·я┌п╨я─я▀я┌я▀п╣ я┤п╩п╣п╫я▀

 TEBase (int pn)
 
virtual void setActivationKey (const QString &key)
 
virtual QString activationKey () const
 
int connectionType ()
 
virtual int setConnectionType (int ct)
 
virtual int setPortNumber (int pn)
 
int portNumber () const
 
void setPollInterval (int pint)
 
int pollInterval ()
 
virtual int isOpen ()
 
int timeout ()
 
void setTimeout (int timeout)
 
bool isTimeout ()
 
int debugLevel ()
 
void setDebugLevel (int level)
 
virtual QCString utf8ToDevice (const QString &text)
 
virtual QString deviceToUtf8 (const QCString &text)
 
virtual int isActivationKeyValid ()
 
int errorCode () const
 
void setErrorCode (const int &code)
 
virtual QString errorText () const
 
virtual void setErrorText (const QString &err)
 
QString productSuffix () const
 
void setProductSuffix (const QString &sProductSuffix)
 
void setPortBaudRate (int)
 
int portBaudRate () const
 
void setPortFlowControl (FlowType)
 
FlowType portFlowControl () const
 
void setPortParity (ParityType)
 
ParityType portParity () const
 
void setPortDataBits (DataBitsType)
 
DataBitsType portDataBits () const
 
void setPortStopBits (StopBitsType)
 
StopBitsType portStopBits () const
 
virtual QValueList< int > supportedBaudRates ()
 
virtual QValueList< int > supportedConnectionTypes ()
 
virtual int open ()
 
virtual int close ()
 
virtual void processEvent (int Code)
 
virtual QStringList execCommand (const QString &cmd)
 
virtual bool isDriverRunning ()
 

п≈п╟я┴п╦я┴п╣п╫п╫я▀п╣ я┤п╩п╣п╫я▀

void abstract ()
 
void startPoll (int PollInterval=500, bool defaultProc=true)
 
void startPoll (bool defaultProc=true)
 
void stopPoll ()
 
void startIOTransaction ()
 
void stopIOTransaction ()
 
virtual int poll ()
 
TSerialPortport ()
 
virtual int putch (int b)
 
virtual int getch ()
 
virtual Q_ULONG writeBlock (const char *data, Q_ULONG len)
 
virtual Q_ULONG readBlock (char *data, Q_ULONG maxlen=1)
 
virtual Q_ULONG readCount ()
 
void clearPPP ()
 
void timerEvent (QTimerEvent *)
 

п≈п╟я┴п╦я┴п╣п╫п╫я▀п╣ п╢п╟п╫п╫я▀п╣

ExecEngine m_ee
 
int m_iCaptureMode
 
bool m_bDriverStarted
 

п║п╡п╬п╧я│я┌п╡п╟

QString ActivationKey
 
int PortNumber
 
int PortBaudRate
 

п■п╬п©п╬п╩п╫п╦я┌п╣п╩я▄п╫я▀п╣ я┐п╫п╟я│п╩п╣п╢п╬п╡п╟п╫п╫я▀п╣ я┤п╩п╣п╫я▀

- п·я┌п╨я─я▀я┌я▀п╣ я┌п╦п©я▀ я┐п╫п╟я│п╩п╣п╢п╬п╡п╟п╫п╫я▀п╣ п╬я┌ TE
enum  CaptureMode { CM_Exclusive =0, CM_NonExclusive =1 }
 Define connection capture mode for setCaptureMode()
 
enum  EquipmentConnectionType {
  ECT_NOCONNECTION =0x0, ECT_SERIAL =0x1, ECT_KEYBOARD =0x2, ECT_TCP =0x3,
  ECT_TESERVER =0x4
}
 
enum  CashRegisterOperations {
  CRO_SELL = 0x0, CRO_BUY = 0x1, CRO_SELLRET = 0x2, CRO_BUYRET = 0x3,
  CRO_SELLSTORNO = 0x4, CRO_BUYSTORNO = 0x5, CRO_CASHIN = 0x6, CRO_CASHOUT = 0x7,
  CRO_DISCOUNT = 0x8, CRO_DISCOUNTPERCENT = 0x9, CRO_OPMASK = 0xF
}
 

п÷п╬п╢я─п╬п╠п╫п╬п╣ п╬п©п╦я│п╟п╫п╦п╣

The TEBase is base class for all trade equipment classes.

/en Abstract trade equipment object. Object have internal text command interpreter that give access to object functions.

п░я─пЁя┐п╪п╣п╫я┌я▀
cmd(in) command text. Command format: <function> '(' <parm1> ',' <parm2> ',' ... <parmN> ')'
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌
- command execution result. /_en /ru TEBase - базовый класс для всех классов торгового оборудования.

Работа с торговым оборудованием состоит из нескольких шагов:

  1. Создание объекта для работы с соответствующим оборудованием, например: TEReaderBarcode *barcodereader = new TEReaderBarcode();
  2. Установка параметров подключения оборудования.
  3. Соединение сигнала deviceEvent( int Event ) объекта работы с оборудованием с обработчиком события от устройства. Например, при считывании штрихкода генерируется сигнал EVENT_READER_DATAARRIVED. Если ваш обработчик подключен к сигналам от нескольких объектов, необходимо проверять базовый класс объекта, пославшего событие до того, как проверять и обрабатывать код события, так как коды событий для разных классов могут совпадать. Например: if ( sender()->inherits("TEReaderBase") ){ // Проверяем события от считывателя switch ( Event ) { case EVENT_READER_DATAARRIVED: // обрабатываем break; ... } }
  4. Старт работы драйвера: barcodereader->startDriver();
  5. Работа с оборудованием. Работа осуществляется вызовом методов объекта, обработкой событий от устройства.
  6. Остановка драйвера: barcodereader->stopDriver();
  7. Уничтожение обекта. /_ru

п п╬п╫я│я┌я─я┐п╨я┌п╬я─(я▀)

◆ TEBase()

TEBase::TEBase ( int  pn)

Abstract trade equipment object. Object have internal text command interpreter that give access to object functions.

п░я─пЁя┐п╪п╣п╫я┌я▀
cmd(in) command text. Command format: <function> '(' <parm1> ',' <parm2> ',' ... <parmN> ')'
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌
- command execution result.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ startPoll() п╦ stopPoll().

п°п╣я┌п╬п╢я▀

◆ abstract()

void TEBase::abstract ( )
protected

/ru Устанавливает значение iDocNum в номер текущего открытого или последнего закрытого документа. При исполнении этой функции возможно обращение к устройству. /_ru /en /_en

◆ errorText()

QString TEBase::errorText ( ) const
virtual

/ru Возвращает описание ошибки, соответствующее последнему коду ошибки. /_ru /en /_en

◆ execCommand()

QStringList TEBase::execCommand ( const QString &  cmd)
virtual

Execute command. Object have internal text command interpreter that give access to object functions.

п░я─пЁя┐п╪п╣п╫я┌я▀
cmd(in) command text. Command format: <function> '(' <parm1> ',' <parm2> ',' ... <parmN> ')'
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌
- command execution result.

◆ getch()

int TEBase::getch ( )
protectedvirtual

Get character.

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ readBlock().

◆ isOpen()

int TEBase::isOpen ( void  )
virtual

Check comunication port connection.

◆ port()

TSerialPort * TEBase::port ( )
protected

Return pointer to device serial port object.

◆ putch()

int TEBase::putch ( int  b)
protectedvirtual

Put character

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ writeBlock().

◆ readBlock()

Q_ULONG TEBase::readBlock ( char *  data,
Q_ULONG  maxlen = 1 
)
protectedvirtual

Read data block from device.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ getch().

◆ setCaptureMode

int TEBase::setCaptureMode ( int  iMode)
virtualslot

Устанавливает режим захвата порта: CM_Exclusive - захват порта после вызова startDriver(), CM_NonExclusive - захват порта только на время обращения к устройству.

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌
- код ошибки

◆ setConnectionType()

int TEBase::setConnectionType ( int  ct)
virtual

/ru Устанавливает тип подключения торгового оборудования. /_ru /en /_en

◆ startDriver

int TEBase::startDriver ( )
virtualslot

Запускает драйвер. При выполнении этой функции если установлен режим захвата порта (setCaptureMode(CM_Exclusive) ), драйвер пытается захватить необходимые ресурсы (COM-порт, сокет и т.п.), в противном случае захват ресурсов происходит во время обращения к устройству. Затем переходит в рабочее состояние. Если ресурсы не удалось захватить возвращается код ошибки (один из CRERROR_XXX). Описание ошибки может быть получено функцией errorText(). После запуска драйвера не допускается изменение параметров подключения (номер COM-порта, битрейт и т.п.).

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌
- код ошибки

◆ startPoll() [1/2]

void TEBase::startPoll ( int  PollInterval = 500,
bool  defaultProc = true 
)
protected

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ startPoll() п╦ TEBase().

◆ startPoll() [2/2]

void TEBase::startPoll ( bool  defaultProc = true)
protected

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ startPoll().

◆ stopDriver

int TEBase::stopDriver ( )
virtualslot

Останавливает драйвер. При выполнении этой функции драйвер освобождает все занятые ресурсы и переходит в состояние останова. Если устройство не может быть остановлено возвращается код ошибки (один из CRERROR_XXX). Описание ошибки может быть получено функцией errorText(). В остановленом состоянии драйвер допускает изменение параметров подключения (номер COM-порта, битрейт и т.п.).

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌
- код ошибки

◆ stopPoll()

void TEBase::stopPoll ( )
protected

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ TEBase().

◆ supportedBaudRates()

QValueList< int > TEBase::supportedBaudRates ( )
virtual
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌
- Список поддерживаемых драйвером скоростей COM-порта

◆ supportedConnectionTypes()

QValueList< int > TEBase::supportedConnectionTypes ( )
virtual
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌
- Список поддерживаемых драйвером типов подключений устройства

◆ timerEvent()

void TEBase::timerEvent ( QTimerEvent *  )
protected

Poll device on timer event.

◆ writeBlock()

Q_ULONG TEBase::writeBlock ( const char *  data,
Q_ULONG  len 
)
protectedvirtual

Write data block to device.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ putch().


п·п╠я┼я▐п╡п╩п╣п╫п╦я▐ п╦ п╬п©п╦я│п╟п╫п╦я▐ я┤п╩п╣п╫п╬п╡ п╨п╩п╟я│я│п╬п╡ п╫п╟я┘п╬п╢я▐я┌я│я▐ п╡ я└п╟п╧п╩п╟я┘: