#pragma once
|
#include <string>
|
#include <vector>
|
#include <map>
|
#include <set>
|
#include "CCollectionEvent.h"
|
#include "ProcessJob.h"
|
|
|
#define SVID_CJobSpace 5001
|
#define SVID_PJobSpace 5002
|
#define SVID_PJobQueued 5003
|
|
|
typedef std::function<void(void* pFrom, ACTIVESTATE state)> 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<int>& ids);
|
|
// Enable/Disable Alarm Report
|
int hsmsEDAlarmReport(bool bEnable, unsigned int id);
|
|
// Define reports
|
int hsmsDefineReports(std::map<unsigned int, std::vector<unsigned int>>& mapReport);
|
|
// Line Event Report
|
int hsmsLinkEventReport(std::map<unsigned int, std::vector<unsigned int>>& mapEvent);
|
|
// Configure Spooling
|
int hsmsConfigureSpooling(std::map<unsigned int, std::set<unsigned int>>& 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<std::string>& panelIds,
|
const std::vector<unsigned char>& slotMap);
|
int hsmsCarrierRelease(unsigned int DATAID,
|
const char* pszCarrierId,
|
unsigned char PTN);
|
|
// S16F15
|
int hsmsPRJobMultiCreate(std::vector<SERVO::CProcessJob*>& pjs);
|
|
// S14F9
|
int hsmsCreateControlJob(const char* pszControlJobId, std::vector<std::string>& 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;
|
};
|