You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

255 lines
12 KiB
C++

#pragma once
using SGWaferMapSetupData = struct _SGWaferMapSetupData
{
TCHAR MaterialID[128]{};
int IDType{};
int MapFormat{};
int FNLocationDegrees{};
int FilmFramRotAngle{};
int OriginLoc{};
int ProcessAxisVal{};
TCHAR BinCodeEquivalent[128]{};
TCHAR NullBinCodeVal[128]{};
};
#define S2_TYP(x, y) ((x << 2) | y) /* Archtype Entry */
#define S2_B S2_TYP(2, 0) /* Binary */
#define S2_BOOLEAN S2_TYP(3, 0) /* Boolean */
#define S2_A S2_TYP(4, 0) /* ASCII */
#define S2_U1 S2_TYP(6, 0) /* Unsigned Integer 1-Byte */
#define S2_U2 S2_TYP(6, 1) /* Unsigned Integer 2-Byte */
#define S2_U4 S2_TYP(6, 2) /* Unsigned Integer 4-Byte */
#define S2_U8 S2_TYP(6, 3) /* Unsigned Integer 8-Byte */
#define S2_I1 S2_TYP(7, 0) /* Signed Integer 1-Byte */
#define S2_I2 S2_TYP(7, 1) /* Signed Integer 2-Byte */
#define S2_I4 S2_TYP(7, 2) /* Signed Integer 4-Byte */
#define S2_I8 S2_TYP(7, 3) /* Signed Integer 8-Byte */
#define S2_F4 S2_TYP(8, 2) /* Floating Point 32-Bit */
#define S2_F8 S2_TYP(8, 3) /* Floating Point 64-Bit */
#define S2_STRING S2_TYP(9, 0) /* 'string' target */
#define S2_LONG S2_TYP(12, 2) /* 'long' target */
#define S2_DOUBLE S2_TYP(13, 3) /* 'double' target */
#define S2_CHAR S2_TYP(12, 0) /* 'char' target */
/**************** MESSAGES USED BETWEEN HANDLER AND SECSGEM APPLICATION **************/
enum class SGMessageCode
{
SG_CONTROL_STATE_CHANGE = 3,
SG_SPOOL_STATE_CHANGE = 4,
SG_LINK_STATE_CHANGE = 5,
REMOTE_COMMAND_RECEIVED = 7,
RECIPE_ADDED = 9,
RECIPE_DELETED = 10,
GO_ONLINE = 11,
GO_OFFLINE = 12,
GO_REMOTE = 13,
GO_LOCAL = 14,
DISABLE_LINK = 15,
ENABLE_LINK = 16,
WAFERMAP_RECEIVED_AND_SAVED = 17,
RECIPE_DOWNLOADED = 18,
WM_SDRLOGGING_MESSAGE = 19,
DISPLAY_TERMINAL_MSG = 20,
WM_TERMINAL_MESSAGE_DIALOG_DISPLAY = 21,
RESET_DATA = 22,
UPDATE_RECIPE = 23,
CLEAR_ALL_ALARM = 24,
ASSIGN_SECSGEM_STATUS = 25,
DOWNLOAD_RECIPE = 26,
UPLOAD_DATA = 27,
ADD_USER_RECIPE = 28,
UPDATED_RECIPE_LIST = 29,
DELETE_RECIPE = 30,
UPLOAD_RECIPE = 31,
DOWNLOAD_DATA = 32,
DOWNLOAD_WAFERMAP = 33,
UPLOAD_WAFERMAP = 34,
WAFERMAP_UPLOADED = 35,
DOWNLOAD_STRIPMAP = 36,
STRIPMAP_DOWNLOADED = 37,
ADDED_USER_RECIPE = 38,
UPLOADED_DATA = 39,
DOWNLOADED_DATA = 40,
UPLOADED_RECIPE = 41,
MACHINE_STATE_MSG = 42,
USER_LEVEL_MSG = 43,
MAINMODE_MSG = 44,
CURRENT_MACHINE_STATE_MSG = 45,
CURRENT_USER_LEVEL_MSG = 46,
CURRENT_MAINMODE_MSG = 47,
REMOTECOMMAND_REPLY_MSG_MIN = 48,
REMOTECOMMAND_REPLY_MSG_ACK = 49,
REMOTECOMMAND_REPLY_MSG_MAX = 50,
E10_STATE_CHANGE = 51,
HANDLER_RECEIVED_MSG = 52,
ECID_CHANGED = 53,
DELETED_ALL_RECIPE = 54,
EDITED_RECIPE = 55
};
constexpr const char* SG_CONTROL_STATE_KEYNAME = "GemControlState";
constexpr const char* SG_SPOOL_STATE_KEYNAME = "GemSpoolState";
constexpr const char* SG_LINK_STATE_KEYNAME = "GemLinkState";
constexpr const char* DOWNLOAD_RECIPE_KEYNAME = "Download Recipe";
constexpr const char* UPLOAD_DATA_KEYNAME = "Upload Data";
constexpr const char* ADD_USER_RECIPE_KEYNAME = "Add User Recipe";
constexpr const char* DELETE_RECIPE_KEYNAME = "Delete Recipe";
constexpr const char* UPLOAD_RECIPE_KEYNAME = "Upload Recipe";
constexpr const char* DOWNLOAD_DATA_KEYNAME = "Download Data";
constexpr const char* WAFER_MATERIAL_ID = "Material ID";
constexpr const char* WAFER_ID_TYPE = "ID Type";
constexpr const char* WAFER_FORMAT = "Map Format";
constexpr const char* WAFER_FILE_NOTCH_LOCATION = "FlatNotch Location";
constexpr const char* WAFER_FILM_FRAME_ROATION = "Film Frame Rotation";
constexpr const char* WAFER_ORIGIN_LOCATION = "Origin Location";
constexpr const char* WAFER_PROCESS_AXIS = "Process Axis";
constexpr const char* WAFER_BINCODE_EQUIVALENT = "BinCode Equivalent";
constexpr const char* WAFER_NULLBINCODE = "Null BinCode";
constexpr const char* UPLOAD_WAFERMAP_KEYNAME = "Upload WaferMap File";
constexpr const char* STRIP_MATERIAL_ID = "Material ID";
constexpr const char* DOWNLOADED_STRIPMAP_ID = "Downloaded Strip Map";
constexpr const char* WAFER_MAP_FILENAME_KEYNAME = "WaferMapFileName";
constexpr const char* RMT_CMD_RECEIVED_KEYNAME = "RemoteCommandReceived";
constexpr const char* SG_RECIPE_NAME_KEYNAME = "RecipeName";
constexpr const char* ADDED_RECIPE_NAME_KEYNAME = "Added Recipe Name";
constexpr const char* UPLOADED_WAFERMAP_KEYNAME = "Uploaded WaferMap File";
constexpr const char* UPLOADED_DATASET_KEYNAME = "Uploaded Dataset Name";
constexpr const char* DOWNLOADED_DATASET_KEYNAME = "Downloaded Dataset Name";
constexpr const char* UPLOADED_RECIPE_KEYNAME = "Uploaded Recipe Name";
constexpr const char* DELETED_RECIPE_KEYNAME = "Deleted Recipe Name";
constexpr const char* RECEIVED_MESSAGE_KEYNAME = "Received Message";
constexpr const char* E10_STATE = "E10State";
constexpr const char* ALL_DELETED_RECIPE_KEYNAME = "All Deleted Recipe Name";
constexpr const char* EDITED_RECIPE_KEYNAME = "Edit Recipe Name";
// FORMAT SendS12F3(char *strMaterialID,int iIDType, int iMapFormat, int iFNLoc, int iFFRotAngle, int iOrginLoc, int iProcessAxis, char * strBinCodeEq, char * strNullBinCdVal)
// GetMappingDataFromHost(sztmp,2,1,iFNLoc,0,0,0,strBinCodeEq,strNullBinCdVal))
constexpr const char* TOHANDLER_INI = "C:\\Gem\\GwGemCPP\\TISECSGEM\\TOHANDLER.INI";
constexpr const char* TOSECSGEM_INI = "C:\\Gem\\GwGemCPP\\TISECSGEM\\TOSECSGEM.INI";
constexpr const char* TISECSGEM_EXE = "C:\\Gem\\GWGemCPP\\TISecsGem\\Bin\\TISecsGem.exe";
/*************************************************************************************/
/********************************* SECSGEM TO HANDLER COMMANDS***********************/
constexpr const char* CMD_SG_APPLICATION = "#S2H_SG_APPLN";
constexpr const char* CMD_CONTROLSTATE = "#S2H_CONTROL_STATE";
constexpr const char* CMD_LINKSTATE = "#S2H_LINK_STATE";
constexpr const char* CMD_SPOOLSTATE = "#S2H_SPOOL_STATE";
constexpr const char* CMD_WAFERMAP_DOWNLOADED = "#S2H_WAFERMAP_DOWNLOADED";
constexpr const char* CMD_STRIPMAP_DOWNLOADED = "#S2H_STRIPMAP_DOWNLOADED";
constexpr const char* CMD_WAFERMAP_UPLOADED = "#S2H_WAFERMAP_UPLOADED";
constexpr const char* CMD_RECIPE_DOWNLOADED = "#S2H_RECIPE_DOWNLOADED";
constexpr const char* CMD_RECIPE_UPLOADED = "#S2H_RECIPE_UPLOADED";
constexpr const char* CMD_RECIPE_DELETED = "#S2H_RECIPE_DELETED";
constexpr const char* CMD_ADDED_RECIPE = "#S2H_RECIPE_ADDED";
constexpr const char* CMD_DATASET_UPLOADED = "#S2H_DATASET_UPLOADED";
constexpr const char* CMD_DATASET_DOWNLOADED = "#S2H_DATASET_DOWNLOADED";
constexpr const char* CMD_UPDATED_RECIPE_LIST = "#S2H_UPDATED_RECIPE_LIST";
constexpr const char* CMD_REMOTE_CMD_RECEIVED = "#S2H_REMOTE_CMD_RECEIVED";
constexpr const char* CMD_E10STATE = "#S2H_E10STATE";
constexpr const char* CMD_ALL_RECIPE_DELETED = "#S2H_ALL_RECIPE_DELETED";
constexpr const char* CMD_RECIPE_EDITED = "#S2H_RECIPE_EDITED";
constexpr const char* CMD_EC_CHANGED = "#S2H_EC_CHANGED";
/*************************************************************************************/
constexpr const char* CMD_H2S_CLOSE_SG_APPLN = "#H2S_CLOSE_SG_APPLN";
constexpr const char* CMD_H2S_SGCOMMAND_GOONLINE = "#H2S_SGCOMMAND_GOONLINE";
constexpr const char* CMD_H2S_SGCOMMAND_GOOFFLINE = "#H2S_SGCOMMAND_GOOFFLINE";
constexpr const char* CMD_H2S_SGCOMMAND_GOREMOTE = "#H2S_SGCOMMAND_GOREMOTE";
constexpr const char* CMD_H2S_SGCOMMAND_GOLOCAL = "#H2S_SGCOMMAND_GOLOCAL";
constexpr const char* CMD_H2S_SGCOMMAND_DISABLELINK = "#H2S_SGCOMMAND_DISABLELINK";
constexpr const char* CMD_H2S_SGCOMMAND_ENABLELINK = "#H2S_SGCOMMAND_ENABLELINK";
constexpr const char* CMD_H2S_MAINMODE = "#H2S_MAINMODE";
constexpr const char* CMD_H2S_USERLEVEL = "#H2S_USERLEVEL";
constexpr const char* CMD_H2S_PROCESSING_STATE = "#H2S_PROCESSING_STATE";
constexpr const char* CMD_H2S_CURRENT_MAINMODE = "#H2S_CURRENT_MAINMODE";
constexpr const char* CMD_H2S_CURRENT_USERLEVEL = "#H2S_CURRENT_USERLEVEL";
constexpr const char* CMD_H2S_CURRENT_MACHINE_STATE = "#H2S_CURRENT_MACHINE_STATE";
constexpr const char* CMD_H2S_SEND_EVENT = "#H2S_EVENT";
constexpr const char* CMD_H2S_SET_VARIABLE_VALUE = "#H2S_VAR";
constexpr const char* CMD_H2S_SEND_ALARM = "#H2S_ALARM";
constexpr const char* CMD_H2S_DOWNLOAD_RECIPE = "#H2S_DOWNLOAD_RECIPE";
constexpr const char* CMD_H2S_UPLOAD_DATA = "#H2S_UPLOAD_DATA";
constexpr const char* CMD_H2S_ADD_RECIPE = "#H2S_ADD_RECIPE";
constexpr const char* CMD_H2S_RESET_DATA = "#H2S_RESET_DATA";
constexpr const char* CMD_H2S_DELETE_RECIPE = "#H2S_DELETE_RECIPE";
constexpr const char* CMD_H2S_UPLOAD_RECIPE = "#H2S_UPLOAD_RECIPE";
constexpr const char* CMD_H2S_DOWNLOAD_DATA = "#H2S_DOWNLOAD_DATA";
constexpr const char* CMD_H2S_WAFER_MAP_DOWNLOAD = "#H2S_WAFER_MAP_DOWNLOAD";
constexpr const char* CMD_H2S_UPLOAD_WAFERMAP = "#H2S_UPLOAD_WAFERMAP";
constexpr const char* CMD_H2S_DOWNLOAD_STRIPMAP = "#H2S_DOWNLOAD_STRIPMAP";
constexpr const char* CMD_H2S_DISPLAY_TERMINAL_MSG_DLG = "#H2S_DISPLAY_TERMINAL_MSG_DLG";
constexpr const char* CMD_H2S_UPDATE_RECIPE_LIST = "#H2S_UPDATE_RECIPE_LIST";
constexpr const char* CMD_CLEAR_ALL_ALARM = "#H2S_CLEAR_ALL_ALARM";
constexpr const char* CMD_ACKNOWLEDGE_REMOTE_CMD = "#H2S_ACK_REMOTE_COMMAND";
constexpr const char* CMD_H2S_RECIPE_VERIFICATION = "#H2S_RECIPE_VERIFICATION";
constexpr const char* CMD_H2S_EDIT_RECIPE = "#H2S_EDIT_RECIPE";
constexpr const char* CMD_H2S_DELETE_ALL_RECIPE = "#H2S_DELETE_ALL_RECIPE";
constexpr const char* CMD_H2S_EPT_STATE = "#H2S_EPT_STATE";
/*************************************************************************************/
/*************************************************************************************/
enum class REMOTE_ACK_CODE
{
HAS_BEEN_PERFORMED_HCACK = 0,
DOES_NOT_EXIST_HCACK = 1,
CANNOT_BE_PERFORMED_NOW_HCACK = 2,
HAS_BAD_PARAMETER_HCACK = 3,
WILL_PERFORM_LATER_HCACK = 4,
REJECTED_ALREADY_DESIRED_CONDITION_HCACK = 5,
NO_SUCH_OBJECT_EXIST_HCACK = 6,
HANDLER_REJECT_HCACK = 7,
HANDLER_TIMEOUT_HCACK = 8,
HANDLER_PROCESS_FAIL_HCACK = 9
};
/************************************************************************************/
/************************************************************************************/
// EPT Data
enum BLOCKREASON
{
NOT_BLOCKED = 0,
UNKNOWN,
SAFETY_THRESHOLD,
ERROR_CONDITION,
PARAMETRIC_EXCEPTION,
ABORTING_ABORTED,
PAUSING_PAUSED,
RESERVED1,
RESERVED2,
RESERVED3,
MAX_BLOCKEDREASON
};
enum class EPT_STATE
{
EPT_IDLE = 0,
EPT_BUSY,
EPT_BLOCKED,
EPT_NO_STATE
};
enum class EPT_TASK_TYPE
{
N0_TASK = 0,
UNSPECIFIED,
PROCESS,
SUPPORT,
EQUIPMENT_MAINTENANCE,
EQUIPMENT_DIAGNOSTICS,
WAITING,
MAX_TASKTYPE
};
using g_stRemoteCmd = struct _stRemoteCmd
{
char cRemoteName[256]{};
int nReply{};
};
/************************************************************************************/