первый
This commit is contained in:
107
devices/Validators/Validator.h
Normal file
107
devices/Validators/Validator.h
Normal file
@ -0,0 +1,107 @@
|
||||
//---------------------------------------------------------------------------
|
||||
#ifndef ValidatorH
|
||||
#define ValidatorH
|
||||
//---------------------------------------------------------------------------
|
||||
#include "../ComPort.h"
|
||||
#define HAVE_STRUCT_TIMESPEC
|
||||
#include <pthread.h>
|
||||
#include "structs.h"
|
||||
//#include "ValidatorThread.h"
|
||||
//---------------------------------------------------------------------------
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define fcRESET 0x30;// Command for Bill - to - Bill unit to self - reset ALL
|
||||
#define fcGET_STATUS 0x31;// Request for Bill - to - Bill unit set - up status IDLING, DISABLED
|
||||
#define fcSET_SECURITY 0x32;//Sets Bill - to - Bill unit Security Mode. Command is followed by set - up data.See command format INITIALIZE, DISABLED
|
||||
#define fcPOLL 0x33; //Request for Bill - to - Bill unit activity Status ALL
|
||||
#define fcENABLE_BILL_TYPES 0x34; //Indicates Bill Type enable or disable. Command is followed by set - up data.See command format IDLING, ACCEPTING,REJECTING, ESCROW,HOLDING, STACKING,RETURNING, DISABLED
|
||||
#define fcSTACK 0x35; //Sent by Controller to stack a bill in escrow to drop cassette or to one of the recycling cassettes ESCROW, HOLDING
|
||||
#define fcRETURN 0x36; //Sent by Controller to return a bill in escrow ESCROW, HOLDING
|
||||
#define fcIDENTIFICATION 0x37; //Request for Model, Serial Number, Country ISO code, Asset Number POWER UP, INITIALISE, DISABLED, IDLING
|
||||
#define fcHOLD 0x38; //Command for holding a bill in Escrow state ESCROW, HOLDING
|
||||
|
||||
#define fcSET_BARCODE_PARAMETERS 0x39; // Command for settings the barcode format and number of characters INITIALIZE, DISABLED
|
||||
#define fcEXTRACT_BARCODE_DATA 0x3A; // Command for retrieving barcode data if barcode coupon is found.If this command is sent when barcode coupon is not found the Bill Validator returns ILLEGAL COMMAND response. ESCROW, PACKED, IDLING, DISABLED
|
||||
#define fcRECYCLING_CASSETTE_STATUS 0x3B; // Request for Bill - to - Bill unit recycling cassette status IDLING, DISABLED, ESCROW
|
||||
#define fcDISPENSE 0x3C; // Command to dispense bill(s) DISABLED
|
||||
#define fcUNLOAD 0x3D; // Command to unload bills from recycling cassette(s) to drop cassette DISABLED
|
||||
#define fcEXTENDED_IDENTIFICATION 0x3E; // Request for Model, Serial Number, Software Version of Bill - to - Bill unit and its subunits, Country ISO code, Asset Number DISABLED, IDLING
|
||||
#define fcSET_RECYCLING_CASSETTE_TYPE 0x40; // Assigns recycling cassettes to bill type DISABLED
|
||||
#define fcGET_BILL_TABLE 0x41; // Request for bill type description IDLING, DISABLED
|
||||
#define fcDOWNLOAD 0x50; // Command for transition to download mode. Please refer to CCNET Document 2 for details. DISABLED, FAILURE, DROP CASSETTE REMOVED
|
||||
#define fcGET_CRC32_OF_THE_CODE 0x51; // Request for Bill Validator<6F>s firmware CRC32. POWER UP, INITIALIZE, DISABLED, FAILURE
|
||||
#define fcMODULE_DOWNLOAD 0x52; // Command to enter an internal module update mode.Please refer to CCNET Document 2 for details. DISABLED
|
||||
#define fcMODULE_IDENTIFICATION_REQUEST 0x53; // Request serial numbers of all intelligent modules DISABLED, IDLING
|
||||
#define fcREQUEST_STATISTICS 0x60; // Command for retrieving full information about acceptance performance.Please refer to CCNET Document 3 for details. DISABLED
|
||||
#define fcREAL_TIME_CLOCK 0x62; // Read or initialize internal Real - Time Clock.DISABLED
|
||||
#define fcPOWER_RECOVERY 0x66; // Request whether there was a power cut and perform credit recovery DISABLED
|
||||
#define fcEMPTY_DISPENSER 0x67; // Dispense all bills remaining in the dispenser after power cut. POWER CUT WHILE DISPENSING
|
||||
#define fcSET_OPTIONS 0x68; // Set various Bill - To - Bill options INITIALIZE, DISABLED
|
||||
#define fcGET_OPTIONS 0x69; // Set various Bill - To - Bill options INITIALIZE, DISABLED EXTENDED CASSETTE
|
||||
#define fcSTATUS 0x70; // Extended recycling cassette status request DISABLED
|
||||
//---------------------------------------------------------------------------
|
||||
struct BillType
|
||||
{
|
||||
int val; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
char country[3]; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
int addZero(int val,int cnt); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
//---------------------------------------------------------------------------
|
||||
class Validator
|
||||
{
|
||||
private:
|
||||
unsigned char ReadAr[255];
|
||||
protected:
|
||||
//int Pay;
|
||||
|
||||
bool CheckOnCRC(unsigned char* lpBuffer,unsigned long nSize);
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool execute_thread = false; //<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
pthread_t m_threadid;
|
||||
static void *thread_func(void *d);
|
||||
pthread_mutex_t m_mutex;
|
||||
|
||||
|
||||
TSimpleList2<int> m_pays; //<2F><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
int m_payState; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
|
||||
int getTHPay(int &state); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void endPay(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
public:
|
||||
bool m_testmode; //<2F><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
ComPort* cPort; //<2F> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool bNominals; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 1 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
BillType bt[24]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string BatchNumber, SerialNumber; //<2F><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
Validator();
|
||||
virtual ~Validator();
|
||||
//---------------------------------------------------------------------------
|
||||
bool OpenCOMPort(std::string ComNumber, int BaudRate);
|
||||
bool SendCommand(std::string req, std::string &ans);
|
||||
bool Start(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool Reset(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool GetStatus(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool SetEnableBillTypes(bool enable); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
bool getSerialNumber(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool getNominals(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
bool startPay(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getPay(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
int getPayState(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
bool stopPay(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
int GetState(); //<2F><><EFBFBD><EFBFBD> 0 <20><> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
std::string GetStatusDescription(char StatusCode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
extern Validator* validator;
|
||||
//---------------------------------------------------------------------------
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user