#pragma once #include #include #include #include #include "CCollectionEvent.h" #include "ProcessJob.h" #define SVID_ControlState 600 #define SVID_CJobSpace 5001 #define SVID_PJobSpace 5002 #define SVID_PJobQueued 5003 typedef std::function STATECHANGED; typedef struct _ACTIVEListener { STATECHANGED onStateChanged; } ACTIVEListener; class CHsmsActive { public: CHsmsActive(); ~CHsmsActive(); public: void setListener(ACTIVEListener listener); int init(const char* pszIp, int port); int term(); public: // Select int hsmsSelectRequest(); // Deselect Request int hsmsDeselectRequest(); // ½¨Á¢Í¨Ñ¶(S1F13) int hsmsEstablishCommunications(); // Are You There int hsmsAreYouThere(); // ControlState: Request Online/Offline (S1F17 / S1F15) int hsmsRequestOnline(); int hsmsRequestOffline(); // ControlState: GoLocal/GoRemote (S2F41) int hsmsGoLocal(); int hsmsGoRemote(); // Date time sync int hsmsDatetimeSync(); // terminal display int hsmsTerminalDisplay(BYTE tid, const char* pszText); // Enable/Disable Event Report int hsmsEDEventReport(bool bEnable, std::vector& ids); // Enable/Disable Alarm Report int hsmsEDAlarmReport(bool bEnable, unsigned int id); // Define reports int hsmsDefineReports(std::map>& mapReport); // Line Event Report int hsmsLinkEventReport(std::map>& mapEvent); // Configure Spooling int hsmsConfigureSpooling(std::map>& spoolingConfig); // ·¢ËÍ»òÇå¿Õ»º´æµÄÏûÏ¢ int hsmsTransmitSpooledData(); int hsmsPurgeSpooledData(); // ²éѯ±äÁ¿ int hsmsSelectedEquipmentStatusRequest(unsigned int SVID); // ²éѯPPID List int hsmsQueryPPIDList(); // S3F17 // ¿¨Ï»¶¯×÷ÇëÇó int hsmsCarrierActionRequest(unsigned int DATAID, const char* pszCarrierAction, const char* pszCarrierId, unsigned char PTN); int hsmsProceedWithCarrier(unsigned int DATAID, const char* pszCarrierId, unsigned char PTN); int hsmsProceedWithSlotMap(unsigned int DATAID, const char* pszCarrierId, unsigned char PTN, const char* pszLotId, const std::vector& panelIds, const std::vector& slotMap); int hsmsCarrierRelease(unsigned int DATAID, const char* pszCarrierId, unsigned char PTN); // S16F15 int hsmsPRJobMultiCreate(std::vector& pjs); // S14F9 int hsmsCreateControlJob(const char* pszControlJobId, std::vector& processJobIds); // ͨ¹ýµÄreplyº¯Êý void replyAck(int s, int f, unsigned int systemBytes, BYTE ack, const char* pszAckName); // reply ack0 int replyAck0(IMessage* pMessage); private: ACTIVEListener m_listener; IActive* m_pActive; std::string m_strIp; int m_nPort; unsigned short m_nSessionId; unsigned int m_nSystemByte; };