|
|
#pragma once
|
|
|
|
|
|
|
|
|
#ifndef SECS_PORT_EXTERN
|
|
|
#define SECS_PORT_EXTERN
|
|
|
|
|
|
// 使用C++ Builder 编译器
|
|
|
// #define __CPP_BUILDER__
|
|
|
#ifdef __CPP_BUILDER__
|
|
|
#define SECS_DLLEXPORT
|
|
|
#endif
|
|
|
|
|
|
|
|
|
// 定义导出宏定义
|
|
|
#ifdef SECS_DLLEXPORT
|
|
|
#define SP_DLLEXPORT __declspec(dllexport)
|
|
|
#else
|
|
|
#define SP_DLLEXPORT __declspec(dllimport)
|
|
|
#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
# define SP_EXTERN extern "C" SP_DLLEXPORT
|
|
|
#else
|
|
|
# define SP_EXTERN extern SP_DLLEXPORT
|
|
|
#endif
|
|
|
|
|
|
#ifndef CALL_TYPE
|
|
|
#define STDCALL
|
|
|
#ifdef STDCALL
|
|
|
#define CALL_TYPE __stdcall
|
|
|
#else
|
|
|
#define CALL_TYPE __cdecl
|
|
|
#endif
|
|
|
#endif
|
|
|
|
|
|
/* IMC指针 */
|
|
|
#ifdef SECS_PORT_BUILD
|
|
|
typedef class CSecsPort300Ex* IMCHandle;
|
|
|
#else
|
|
|
typedef void* IMCHandle;
|
|
|
#endif
|
|
|
|
|
|
// 适应不同编译器:VC6,VS2010,VS2015
|
|
|
// 适应 c\c++\c#\vb
|
|
|
|
|
|
typedef unsigned __int8 u8;
|
|
|
typedef unsigned __int16 u16;
|
|
|
typedef unsigned __int32 u32;
|
|
|
typedef unsigned __int64 u64;
|
|
|
|
|
|
typedef signed __int8 int8;
|
|
|
typedef signed __int16 int16;
|
|
|
typedef signed __int32 int32;
|
|
|
typedef signed __int64 int64;
|
|
|
|
|
|
typedef unsigned char uchar;
|
|
|
/* 统一使用int64 64位整形,兼容x64,x86*/
|
|
|
|
|
|
enum LOCKER_TYPE
|
|
|
{
|
|
|
eLocker=0,
|
|
|
};
|
|
|
|
|
|
// 定义授权
|
|
|
// 产品类型
|
|
|
#define JNG_PRODUCT_NOT_EXIST 0 // 不存在产品类型
|
|
|
#define JNG_PRODUCT_SECS_DRIVER 1001 // SECS Driver 版本
|
|
|
#define JNG_PRODUCT_SECS_GEM_DEMO 1010 // SECS/GEM demo 版本
|
|
|
#define JNG_PRODUCT_SECS_GEM_DATA 1011 // SECS/GEM 数据版,仅读数据(终端数据采集)
|
|
|
#define JNG_PRODUCT_SECS_GEM_STANDRAD 1020 // SECS/GEM 标准版
|
|
|
#define JNG_PRODUCT_SECS_GEM_PREMINUM 1030 // SECS/GEM 高级版
|
|
|
#define JNG_PRODUCT_SECS_GEM_300MM 1100 // SECS/GEM 300 通讯
|
|
|
|
|
|
|
|
|
/*
|
|
|
** 定义回调事件处理
|
|
|
*/
|
|
|
/* 这是 Connected() 事件
|
|
|
** 发生在成功初始化后
|
|
|
*/
|
|
|
typedef void (IMCConnectedProc) (IMCHandle);
|
|
|
|
|
|
/*
|
|
|
** 与服务器断开通讯时发生
|
|
|
*/
|
|
|
typedef void (IMCDisconnectedProc) (IMCHandle);
|
|
|
|
|
|
/* 错误处理
|
|
|
*/
|
|
|
typedef void (IMCErrorProc) (IMCHandle, int64 errnum, const char *text);
|
|
|
|
|
|
/* 断开通讯
|
|
|
*/
|
|
|
typedef void (IMCShutdownProc) (IMCHandle, int64 *StayAlive);
|
|
|
|
|
|
/*
|
|
|
** 追溯功能
|
|
|
** 出错或者关键步骤通知
|
|
|
*/
|
|
|
typedef void (IMCTraceLogProc) (IMCHandle, int64 nCode, const char* pText);
|
|
|
|
|
|
// pDestination :消息发送目的地
|
|
|
// Data : 数据
|
|
|
// ClientData : 客户传进来的参数
|
|
|
typedef void (WhenProc) (IMCHandle imc, const char* pDestinationMailbox, const char *pReplyMailbox,
|
|
|
const char *Data, void *ClientData);
|
|
|
|
|
|
// SECS消息接收处理
|
|
|
typedef void (SecsMessageReceiveProc)(IMCHandle *, int64 stream, int64 function, bool send_reply,
|
|
|
int64 transactionID, const char* TSN_data, const char* header, void *clientData);
|
|
|
|
|
|
|
|
|
typedef void (IMCStateChangeProc)(IMCHandle, const char* pType, __int64 nState); // 状态改变
|
|
|
typedef void (IMCTerminalProc)(IMCHandle, __int64 nTid, __int64 nSize, const char* pText); // 终端消息
|
|
|
typedef void (IMCRemoteProc)(IMCHandle, const char* pText, const char** pName, const char** pValue, __int64 pCount); // 远程命令 // 远程控制
|
|
|
|
|
|
|
|
|
/* 构造一个连接对象 */
|
|
|
/* guname: 全局唯一名称 */
|
|
|
SP_EXTERN IMCHandle imc_new();
|
|
|
|
|
|
|
|
|
/* 断开一个连接(如果需要断开连接)和释放资源 */
|
|
|
SP_EXTERN void imc_destroy(IMCHandle handle);
|
|
|
|
|
|
/* 设置输出语言信息 */
|
|
|
/* pHandle可以为空 */
|
|
|
SP_EXTERN void imc_language(IMCHandle pHandle, int64 nType);
|
|
|
|
|
|
/* 开始 */
|
|
|
SP_EXTERN int64 imc_start(IMCHandle handle, const char* pServerAddr, int64 nPort);
|
|
|
|
|
|
/* 停止 */
|
|
|
SP_EXTERN void imc_stop(IMCHandle handle);
|
|
|
|
|
|
/* 禁用/启用SECS */
|
|
|
SP_EXTERN void imc_secsEnable(IMCHandle handle, bool bEnable);
|
|
|
|
|
|
|
|
|
// 启用通信
|
|
|
SP_EXTERN int64 imc_communicationEnable(IMCHandle handle);
|
|
|
|
|
|
// 关闭通信
|
|
|
SP_EXTERN int64 imc_communicationDisable(IMCHandle handle);
|
|
|
|
|
|
// 通讯是否启用
|
|
|
SP_EXTERN int64 imc_communicationIsEnable(IMCHandle handle, bool &bEnable);
|
|
|
|
|
|
// 通信状态获取
|
|
|
SP_EXTERN int64 imc_getCommunicationState(IMCHandle handle, int64& nState);
|
|
|
|
|
|
// 加载Csv文件数据
|
|
|
// pFileDir 为空则认为在配置目录中
|
|
|
SP_EXTERN int64 imc_loadDataByCsvFile(IMCHandle pHandle, const char* pFileDir);
|
|
|
|
|
|
// 加载SECS配置
|
|
|
SP_EXTERN int64 imc_loadSecsConfig(IMCHandle pHandle, const char* pFileDir);
|
|
|
|
|
|
// 添加处理对象
|
|
|
SP_EXTERN int64 imc_messageTypeAdd(IMCHandle, int64 stream, int64 function, SecsMessageReceiveProc* pCallback, void* pClientData);
|
|
|
|
|
|
// 删除处理对象
|
|
|
SP_EXTERN void imc_messageTypeRemote(IMCHandle, int64 stream, int64 function);
|
|
|
|
|
|
// 处理指定返回的消息
|
|
|
SP_EXTERN int64 imc_wheneverAdd(IMCHandle, const char* receiveMailbox, WhenProc* whenmsgProc, void* clientData = NULL);
|
|
|
|
|
|
// 移除处理
|
|
|
SP_EXTERN void imc_wheneverRemove(IMCHandle, const char* receiveMailbox);
|
|
|
|
|
|
// 答复同步消息
|
|
|
SP_EXTERN int64 imc_relpy(IMCHandle, const char* receiveMailbox, const char* data);
|
|
|
|
|
|
// 获取授权数据点的数量
|
|
|
SP_EXTERN int64 imc_getLicenseLevel(__int32& nLevel); // 获取许可授权级别
|
|
|
SP_EXTERN int64 imc_getMaxRunCount(__int32& nCount); // 获取允许运行个数
|
|
|
SP_EXTERN int64 imc_getMaxRunDataPoint(__int32& nDataPoint); // 获取允许运行数据点(变量、事件、警报分别计算)
|
|
|
|
|
|
|
|
|
|
|
|
/* 你能够设置一个值,在事件回调的时候,将会附带该值*/
|
|
|
SP_EXTERN void* imc_getClientData(IMCHandle);
|
|
|
SP_EXTERN void* imc_setClientData(IMCHandle, void* pClientData);
|
|
|
|
|
|
|
|
|
/* 设置回调方法 */
|
|
|
SP_EXTERN void imc_setConnectedProc(IMCHandle, IMCConnectedProc *);
|
|
|
SP_EXTERN void imc_setDisconnectedProc(IMCHandle, IMCDisconnectedProc *);
|
|
|
SP_EXTERN void imc_setErrorProc(IMCHandle, IMCErrorProc *);
|
|
|
SP_EXTERN void imc_setShutdownProc(IMCHandle, IMCShutdownProc *);
|
|
|
SP_EXTERN void imc_setTraceProc(IMCHandle, IMCTraceLogProc*);
|
|
|
|
|
|
// 回调
|
|
|
SP_EXTERN void imc_setStateChangeProc(IMCHandle, IMCStateChangeProc*);
|
|
|
SP_EXTERN void imc_setTerminalProc(IMCHandle, IMCTerminalProc*);
|
|
|
SP_EXTERN void imc_setRemoteProc(IMCHandle, IMCRemoteProc*);
|
|
|
|
|
|
// 获取追溯设置类型
|
|
|
// 返回当前值
|
|
|
SP_EXTERN void imc_enableTrace(IMCHandle, bool bEnable);
|
|
|
|
|
|
|
|
|
// 设置超时时间
|
|
|
// pTx代表 "T1","T2" ... "T8"
|
|
|
SP_EXTERN int64 imc_setTn(IMCHandle, const char* pTn, int64 nTimeout);
|
|
|
|
|
|
// 设置参数,
|
|
|
// list列举出来
|
|
|
SP_EXTERN int64 imc_setParameter(IMCHandle, const char** type, const char** param, int64 nCount);
|
|
|
|
|
|
// 设置超时时间
|
|
|
// 0: OFF-LINE
|
|
|
// 1: ON-LINE LOCAL
|
|
|
// 2: ON-LINE REMOTE
|
|
|
SP_EXTERN int64 imc_setControlMode(IMCHandle, int64 nControlMode);
|
|
|
SP_EXTERN int64 imc_setControlModeForce(IMCHandle, int64 nControlMode);
|
|
|
|
|
|
// 获取控制状态, 分为5种
|
|
|
SP_EXTERN int64 imc_getControlState(IMCHandle, int64& nControlState);
|
|
|
|
|
|
// 主动请求在线
|
|
|
SP_EXTERN int64 imc_activeRequestOnline(IMCHandle);
|
|
|
|
|
|
|
|
|
// 获取代码的错误信息
|
|
|
SP_EXTERN char* imc_GetErrorByCode(int64 nCode);
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
// 报警操作
|
|
|
|
|
|
// 添加报警
|
|
|
SP_EXTERN int64 imc_alarmAdd(IMCHandle, int64 nALID, const char* pALTX, int64 nAlarmSetCEID, int64 nAlarmClearCEID,
|
|
|
bool bEnable, int64 nCategory, bool bAddEvent);
|
|
|
|
|
|
// 启用报警
|
|
|
SP_EXTERN int64 imc_alarmEnable(IMCHandle, int64 nALID, bool bEnable);
|
|
|
SP_EXTERN int64 imc_alarmEnableByName(IMCHandle, const char* pALTX, bool bEnable);
|
|
|
|
|
|
// 设置报警
|
|
|
SP_EXTERN int64 imc_alarmSet(IMCHandle, int64 nALID, bool bSet);
|
|
|
SP_EXTERN int64 imc_alarmSetByName(IMCHandle, const char* pALTX, bool bSet); // 设置报警:通过名称识别
|
|
|
SP_EXTERN int64 imc_alarmSetAll(IMCHandle, bool bSet);
|
|
|
|
|
|
// 警报发生后,事件通知方式
|
|
|
SP_EXTERN __int64 imc_alarmNotifyEventMode(IMCHandle, __int64 nMode);
|
|
|
|
|
|
// 获取报警列表
|
|
|
SP_EXTERN char* imc_alarmGetList(IMCHandle);
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
// 变量操作
|
|
|
|
|
|
// 变量增加
|
|
|
SP_EXTERN int64 imc_variableAdd(IMCHandle pHandle, int64 varID, const char* varName, const char* description,
|
|
|
const char* valueType, const char* initValue, const char* units, const char* varClass);
|
|
|
|
|
|
// 设置变量新值
|
|
|
SP_EXTERN int64 imc_variableSet(IMCHandle pHandle, int64 varID, const char* newValue);
|
|
|
SP_EXTERN int64 imc_variableSetByName(IMCHandle pHandle, const char* varName, const char* newValue);
|
|
|
|
|
|
|
|
|
// 获取变量的值
|
|
|
// 失败值为空
|
|
|
// 值需要释放
|
|
|
SP_EXTERN char* imc_variableGet(IMCHandle pHandle, int64 varID);
|
|
|
|
|
|
// 获取变量信息列表
|
|
|
// 失败值为空
|
|
|
// 值需要释放
|
|
|
SP_EXTERN char* imc_variableGetList(IMCHandle pHandle);
|
|
|
|
|
|
// 设置处理方法
|
|
|
SP_EXTERN int64 imc_variableSetMethod(IMCHandle pHandle, int64 varID, bool enable);
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
// 常量数值获取
|
|
|
// 常量获取
|
|
|
// 失败值为空
|
|
|
// 值需要释放
|
|
|
SP_EXTERN int64 imc_constantsGet(IMCHandle pHandle, int64 nECID, char** pValue);
|
|
|
|
|
|
// 常量设置
|
|
|
SP_EXTERN int64 imc_constantsSet(IMCHandle pHandle, int64 nECID, const char* newValue);
|
|
|
|
|
|
// 添加常量
|
|
|
SP_EXTERN int64 imc_constantsAdd(IMCHandle pHandle, int64 nECID, const char* name, const char* description,
|
|
|
const char* Type, const char* Units, const char* MinValue, const char* MaxValue, const char* DefValue);
|
|
|
|
|
|
// 常量信息获取
|
|
|
// 常量获取
|
|
|
// 失败值为空
|
|
|
// 值需要释放
|
|
|
SP_EXTERN int64 imc_constantsInfoGet(IMCHandle pHandle, char** pValue);
|
|
|
|
|
|
|
|
|
// 设置处理方法
|
|
|
SP_EXTERN int64 imc_constantsSetMethod(IMCHandle pHandle, int64 nECID, bool enable);
|
|
|
|
|
|
|
|
|
// 启用/禁用常量改变发送事件
|
|
|
SP_EXTERN int64 imc_constantChangeSendEventEnable(IMCHandle pHandle, bool bEnable);
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
// 事件操作
|
|
|
|
|
|
// 事件添加
|
|
|
SP_EXTERN int64 imc_eventAdd(IMCHandle pHandle, int64 CEID, const char* description, const char* eventName, bool bEnable);
|
|
|
|
|
|
// 事件发送:CEID
|
|
|
SP_EXTERN int64 imc_eventPos(IMCHandle pHandle, int64 CEID, bool bWaitReply);
|
|
|
|
|
|
// 事件发送: 事件名称
|
|
|
SP_EXTERN int64 imc_eventPosByName(IMCHandle pHandle, const char* EventName, bool bWaitReply);
|
|
|
|
|
|
// 事件启用/禁用
|
|
|
SP_EXTERN int64 imc_eventEnable(IMCHandle pHandle, int64 CEID, bool bEnable);
|
|
|
|
|
|
// 事件查询启用/禁用
|
|
|
SP_EXTERN int64 imc_eventIsEnable(IMCHandle pHandle, int64 CEID, bool& bEnable);
|
|
|
|
|
|
// 获取全部事件数据列表
|
|
|
// 失败值为空
|
|
|
// 值需要释放
|
|
|
SP_EXTERN char* imc_eventGetList(IMCHandle pHandle);
|
|
|
|
|
|
// event dvval 映射,通过名称
|
|
|
SP_EXTERN int64 imc_eventDvvalByName(IMCHandle pHandle, const char* pEventName, const char* pDvvalNameList);
|
|
|
|
|
|
// event dvval 映射
|
|
|
SP_EXTERN int64 imc_eventDvval(IMCHandle pHandle, int64 nCEID, const char* pDvvalList);
|
|
|
|
|
|
// 事件S6,F3发送:CEID
|
|
|
SP_EXTERN int64 imc_eventDiscreteVarPos(IMCHandle pHandle, int64 nCEID, bool bWait);
|
|
|
|
|
|
//报告
|
|
|
|
|
|
// 事件-报表关联
|
|
|
SP_EXTERN int64 imc_eventReportLink(IMCHandle pHandle, int64 nECID, const char* report);
|
|
|
|
|
|
// 事件-报表取消关联
|
|
|
SP_EXTERN int64 imc_eventReportUnlink(IMCHandle pHandle, int64 nECID);
|
|
|
|
|
|
// 报表定义
|
|
|
SP_EXTERN int64 imc_reportDefine(IMCHandle pHandle, int64 rptID, const char* varID);
|
|
|
|
|
|
// 获取报表定义
|
|
|
SP_EXTERN int64 imc_reportDefineGet(IMCHandle pHandle, int64 rptID, char** varID);
|
|
|
|
|
|
// 删除报表
|
|
|
SP_EXTERN int64 imc_reportDelete(IMCHandle pHandle, int64 rptID);
|
|
|
|
|
|
// 清除报表所有与之相关的事件
|
|
|
SP_EXTERN int64 imc_reportUnlink(IMCHandle pHandle, int64 rptID);
|
|
|
|
|
|
// 清除所有报告定义,并且清除所有事件与报告之间的并联
|
|
|
SP_EXTERN int64 imc_reportClear(IMCHandle pHandle);
|
|
|
|
|
|
// 报告严格按照标准规范处理:E5标准的处理及返回值
|
|
|
SP_EXTERN __int64 imc_reportStrictlyFollowStandard(IMCHandle pHandle, bool bFollow);
|
|
|
|
|
|
// 报告保存服务器配置到本地
|
|
|
SP_EXTERN __int64 imc_reportAutoSaveHostLinkConfig(IMCHandle pHandle, bool bEnable);
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
// 时间同步
|
|
|
|
|
|
// 主动请求主机时间进行同步
|
|
|
SP_EXTERN int64 imc_hostTimeSynchronizeRequest(IMCHandle pHandle);
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
// 终端操作
|
|
|
|
|
|
// 发送单一终端消息
|
|
|
// 返回错误代码
|
|
|
SP_EXTERN int64 imc_sendSingleTerminal(IMCHandle pHandle, const char* content);
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
// PP 处理程序
|
|
|
|
|
|
// 允许主机下载
|
|
|
SP_EXTERN int64 imc_ppAllowHostDowmload(IMCHandle pHandle, bool bAllow);
|
|
|
|
|
|
// PP处理模式
|
|
|
SP_EXTERN int64 imc_ppHandleMode(IMCHandle pHandle, int64 nMode);
|
|
|
|
|
|
////////
|
|
|
// 内置功能
|
|
|
|
|
|
// 设置程式目录
|
|
|
SP_EXTERN void imc_setRecipeDirectory(IMCHandle pHandle, const char* dir);
|
|
|
|
|
|
// 上传
|
|
|
SP_EXTERN int64 imc_processProgramUpload(IMCHandle pHandle, const char* ppid);
|
|
|
|
|
|
|
|
|
// 下载
|
|
|
SP_EXTERN int64 imc_processProgramDownload(IMCHandle pHandle, const char* ppid);
|
|
|
|
|
|
|
|
|
// 设置PP是文件夹目录
|
|
|
SP_EXTERN int64 imc_ppIsFolderDir(IMCHandle pHandle, bool bFolder);
|
|
|
|
|
|
// 设置winrar目录
|
|
|
SP_EXTERN int64 imc_setWinrarPath(IMCHandle pHandle, const char* path);
|
|
|
|
|
|
// PP设置扩展名
|
|
|
SP_EXTERN int64 imc_ppSetFilenameExtension(IMCHandle pHandle, const char* pFileExten);
|
|
|
|
|
|
|
|
|
SP_EXTERN int64 imc_ppFormatAdd(IMCHandle pHandle, const char* pCmdCode, const char* pName, const char* pValueType); // PP序列化对象添加
|
|
|
SP_EXTERN int64 imc_ppFormatSend(IMCHandle pHandle, const char* ppid); // PP序列化上传
|
|
|
SP_EXTERN int64 imc_ppFormatRequest(IMCHandle pHandle, const char* ppid); // PP序列化下载
|
|
|
SP_EXTERN int64 imc_ppFormatSetCodeMode(IMCHandle pHandle, int nMode); // PP序列化设置模式
|
|
|
|
|
|
// wafer map
|
|
|
|
|
|
// 晶圆图上传
|
|
|
SP_EXTERN int64 imc_waferMapUpload(IMCHandle pHandle, const char* pWaferMap);
|
|
|
|
|
|
// 晶圆图下传请求
|
|
|
SP_EXTERN int64 imc_waferMapDownload(IMCHandle pHandle, const char* pRequstInfo, char** pWaferMap);
|
|
|
|
|
|
// 条带图下传请求
|
|
|
SP_EXTERN int64 imc_stripMapDownload(IMCHandle pHandle, const char* pRequstInfo, char** pStripMap);
|
|
|
|
|
|
|
|
|
///////
|
|
|
// 扩展型功能
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////
|
|
|
// 主动发送消息
|
|
|
|
|
|
// 发送一个F0终止消息
|
|
|
SP_EXTERN void imc_sendAbort(IMCHandle pHandle, int64 stream, int64 primaryFunction);
|
|
|
|
|
|
// 发送SECS答复
|
|
|
SP_EXTERN void imc_sendReply(IMCHandle pHandle, int64 stream, int64 function, int64 transactionID, const char *TSN_data);
|
|
|
|
|
|
// 发送SECS错误消息
|
|
|
SP_EXTERN void imc_sendS9(IMCHandle pHandle, int64 function, const char* header);
|
|
|
|
|
|
// 发送SECS消息
|
|
|
// 主动发送,只返回数据
|
|
|
SP_EXTERN int64 imc_sendSecsMsg(IMCHandle pHandle, int64 stream, int64 function, bool replyWanted,
|
|
|
const char *TSN_data, char** replyData, bool waitForReply);
|
|
|
|
|
|
// 发送SECS消息
|
|
|
// 如果要接受消息,可以通过messageTypeAdd()添加,或者内置处理机制.
|
|
|
// nMsgID是关联ID
|
|
|
SP_EXTERN __int64 imc_sendSecsMsgAsync(IMCHandle pHandle, int64 stream, int64 function,
|
|
|
bool replyWanted, int64& nMsgID, const char *TSN_data = "");
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////
|
|
|
// 字符操作
|
|
|
|
|
|
// 输入TclList
|
|
|
// 成功时候返回 rc = 0
|
|
|
// 成功时候必须调用 imc_free释放argv
|
|
|
// 拆分后的列表argc, argv
|
|
|
//
|
|
|
// 返回结果:
|
|
|
// 0:成功
|
|
|
// 1:大括号中的list元素后跟非空格
|
|
|
// 2:引号中的list元素后跟非空格
|
|
|
// 3: 不匹配的开环数组
|
|
|
// 4: 不匹配的支撑数组
|
|
|
SP_EXTERN int64 imc_listSplit(const char* pList, int64* argc, char** argv[]);
|
|
|
|
|
|
// 该函数为了适应C#、JAVA等其他语言提取数据
|
|
|
// 返回值不需要释放
|
|
|
SP_EXTERN char* imc_listSplitDataGetRow(int64 row, char **argv);
|
|
|
|
|
|
// 把元素加入链表
|
|
|
// 需要调用imc_free()释放
|
|
|
SP_EXTERN char* imc_listJoin(int64 argc, const char* argv[]);
|
|
|
|
|
|
|
|
|
// 需要调用imc_free()释放
|
|
|
SP_EXTERN char* imc_listAppend(const char* pList, const char* argv[], int64 argc);
|
|
|
SP_EXTERN char* imc_listAppendOne(const char *pList, const char* e1, const char* e2, const char* e3,
|
|
|
const char* e4, const char* e5, const char* e6); // 为适应C#乱码问题
|
|
|
|
|
|
|
|
|
// 获取列表中第index1个元素,再从获取值获取index2个元素,再从获取值获取index3个元素
|
|
|
// -1 代表不起作用
|
|
|
// 需要调用imc_free()释放
|
|
|
SP_EXTERN char* imc_listElement(const char *pDataList, int64 index1, int64 index2, int64 index3);
|
|
|
|
|
|
|
|
|
// 开辟内存
|
|
|
SP_EXTERN void* imc_malloc(__int64 nSize);
|
|
|
|
|
|
// 释放内存
|
|
|
SP_EXTERN void imc_free(void* ptr);
|
|
|
|
|
|
///////////////////////////////////////
|
|
|
// 锁操作
|
|
|
|
|
|
// 创建锁
|
|
|
SP_EXTERN void* imc_createLocker(int64 locker_type);
|
|
|
|
|
|
// 释放锁
|
|
|
SP_EXTERN void imc_releaseLocker(void* pObject);
|
|
|
|
|
|
// 锁
|
|
|
SP_EXTERN void imc_locker(void* pObject);
|
|
|
|
|
|
// 解锁
|
|
|
SP_EXTERN void imc_unlocker(void* pObject);
|
|
|
|
|
|
|
|
|
// 其他辅助函数
|
|
|
|
|
|
|
|
|
// 16进制转10进制
|
|
|
SP_EXTERN unsigned char imc_hexToDec(char cHightHex, char cLowHex);
|
|
|
|
|
|
// 10进制转16进制
|
|
|
SP_EXTERN void imc_decToHex(const unsigned char nDec, char& cHightHex, char& cLowHex);
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|