//--------------------------------------------------------------------------- #ifndef ValidatorH #define ValidatorH //--------------------------------------------------------------------------- #include "../ComPort.h" #include "ValidatorThread.h" //--------------------------------------------------------------------------- unsigned char ConReset[6] = {0x02,0x03,0x06,0x30,0x41,0xB3}; //RESET Перезагрузить валидатор unsigned char ConReACK[6] = {0x02,0x03,0x06,0x00,0xC2,0x82}; //Ответ валидатору что всё нормально... unsigned char ConGetBT[6] = {0x02,0x03,0x06,0x41,0x4F,0xD1}; //GET BILL TABLE Какие купюры прошиты в валидаторе unsigned char ConStPoll[6]= {0x02,0x03,0x06,0x33,0xDA,0x81}; //POLL 33H Request for Bill-to-Bill unit activity Status (Перейти в режим получения платежей) unsigned char ConIdent[6] = {0x02,0x03,0x06,0x37,0xFE,0xC7}; //IDENTIFICATION 37H Request for Model, Serial Number, Country ISO code, Asset Number //--------------------------------------------------------------------------- struct BillType { int val; //Номинал купюры char country[3]; //Код страны }; //--------------------------------------------------------------------------- int addZero(int val,int cnt); //--------------------------------------------------------------------------- class Validator { private: unsigned char ReadAr[255]; protected: int Pay; ValidatorThread* vThread; bool CheckOnCRC(unsigned char* lpBuffer,unsigned long nSize); public: ComPort* cPort; bool bNominals; //Удалось ли получить номиналы BillType bt[24]; //Список номиналов купюр AnsiString BatchNumber, SerialNumber; //Номер партии и серийный Validator(); virtual ~Validator(); bool SendCommand(std::string req, std::string &ans); bool Start(); //открыть порт и проинициализировать валидатор bool Reset(); //Перезагрузить валидатор bool GetStatus(); //Получить статус валидатора bool SetEnableBillTypes(bool enable); //Установить какие купюры разрешены к приёму bool getSerialNumber(); //Получить номер партии и серийник bool getNominals(); //Получить номиналы прошитых купюр void LoadSetup(); void SaveSetup(); int getPay(int &state); void endPay(); //Вызывается при завершении оплаты bool startPay(); //Стартуем поток bool stopPay(); //Стопим поток int GetState(); //Если 0 то всё в порядке AnsiString GetStatusDescription(BYTE StatusCode); //Описание статуса }; //--------------------------------------------------------------------------- extern Validator* validator; //--------------------------------------------------------------------------- #endif