/***********************************//** * @file TerminalInfoQueryConn.h * @author Gifur * @email guifaliao@gmail.com * @version 1.0.0.0 * @date 2021-08-21 * @copyright China Merchants Bank Co.,Ltd All rights reserved * * @brief * @details **************************************/ #pragma once #ifndef RVC_TERMINAL_QUERY_INFO_HEADER #define RVC_TERMINAL_QUERY_INFO_HEADER #include "SpSecureClient.h" #pragma pack(1) typedef struct _DevInfoReq { char TerminalNo[16]; } TerminalRegistReq; typedef struct _DevInfoRcv { char TerminalNo[16]; char DeviceNo[16]; char OutletNo[6]; char Initializer[32]; BYTE InitIP[4]; BYTE CreateTime[4]; char PadDeviceID[32]; char MachineType[16]; BYTE MachineVersion[4]; char Sites[16]; BYTE EnrolGPS[8]; char EnrolAddr[512]; BYTE AuthorizedTime[4]; BYTE BusinessStructID[8]; BYTE StructID[8]; char Editor[32]; BYTE EditTime[4]; char State; char PublicKey[512]; char FingerPrint[512]; } TerminalRegistRet; typedef struct _md5_req { char filePath[128]; }MD5_REQ; typedef struct _RegisteQuery_ { char UkeyID[16]; } RegisteQuery; typedef struct _RegisteQueryReply_ { char IPAddress[512]; } RegisteQueryReply; typedef struct _InstallQuery_ { char MType[16]; } InstallQuery; typedef struct _InstallReply_ { char InsStep[60000]; } InstallReply; typedef struct { char curVersion[16]; } SoftwareVerReq; typedef struct { int isForce; char updataVer[16]; } SoftwareVerRet; typedef struct _FILE_REQ { int pos; //ask for which piece } FILE_REQ; typedef struct _FILE_RCV { int pos; //rev which piece int totalPiece; //total pieces int length; //piece length char dataPiece[10240]; //piece } FILE_RCV; typedef struct _FILE_PUBLIC_REQ { int pos; char filePath[128]; } FILE_PUBLIC_REQ; typedef struct _FILE_PUBLIC_RVC { int pos; //rev which piece int totalPiece; //total pieces int length; //piece length char dataPiece[50000]; //piece } FILE_PUBLIC_RVC; typedef struct _STR_REQ { char machineNo[16]; char deviceNo[16]; BYTE initIp[4]; char AgentID[32]; char sites[16]; } STR_REQ; #pragma pack() /*! * @class classname * @brief * * @note matters needing attention */ class CTerminalInfoQuery : public SpSecureClient { public: CTerminalInfoQuery(CEntityBase* pEntity); bool ConnectServer(const std::string& serverAddr, int port); ErrorCodeEnum GetTerminalInfo(const std::string& terminalNo, TerminalRegistRet* terminalInfo); private: virtual ~CTerminalInfoQuery(void) {} void StoreErrorMsg(const std::string& msg) { Dbg(msg.c_str()); } ErrorCodeEnum SendSayHelloReq(const std::string& terminalNo); ErrorCodeEnum DealSayHelloRet(const CSmartPointer& pRecvPkg); virtual void OnDisconnect(); virtual void OnPkgAnswer(const CSmartPointer& pRecvPkg); private: TerminalRegistRet terminalAns; }; #endif //RVC_TERMINAL_QUERY_INFO_HEADER