|
|
/*********************************************************************
|
|
|
*文件说明: 插件列表管理,dll动态加载列表管理
|
|
|
*作者: logo
|
|
|
*日期: 2018/11/27
|
|
|
*修改日志: 2018/11/27 cw4945 create
|
|
|
|
|
|
***********************************************************************/
|
|
|
#pragma once
|
|
|
#ifndef _INCLUDE_DLL_MANAGE_H
|
|
|
#define _INCLUDE_DLL_MANAGE_H
|
|
|
|
|
|
#ifndef EXPORT_C
|
|
|
#define EXPORT_C extern "C"
|
|
|
#endif
|
|
|
|
|
|
#ifndef WINAPI
|
|
|
#define WINAPI __stdcall
|
|
|
#endif
|
|
|
|
|
|
#ifndef MAX_NAME_LEN
|
|
|
#define MAX_NAME_LEN 32
|
|
|
#endif
|
|
|
|
|
|
enum EMDllType
|
|
|
{//dll类型
|
|
|
EDll_vision = 0, //视觉
|
|
|
EDll_motor, //运动卡-控制器
|
|
|
EDll_robot, //工站
|
|
|
};
|
|
|
|
|
|
struct TDllInfo
|
|
|
{//dll信息
|
|
|
int dllid; //ID
|
|
|
EMDllType type; //类型
|
|
|
char file[MAX_NAME_LEN]; //可以是相对路径 -- 不得超过32个字节
|
|
|
};
|
|
|
|
|
|
#define ERR_INVALID_CMD -801 //不支持的指令
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 初始化dll管理模块资源
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI dllmgr_init();
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 释放dll管理模块资源
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI dllmgr_deinit();
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 命令行模式,结果通过result返回
|
|
|
*Intput: pszcmd 命令行
|
|
|
result 返回消息
|
|
|
*Output: result 返回消息
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
pszcmd 分为cmd+param
|
|
|
cmd与param之间用空格隔开,各参数之间用逗号隔开
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI dllmgr_command(const char* pszcmd, char* result = 0);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 获取所有卡dll列表
|
|
|
*Intput: plist dll列表
|
|
|
*Output: plist
|
|
|
*Return: 返回dll数量,失败返回错误码<0
|
|
|
*PS: 先传NULL获取数量,再new内存获取信息
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI get_motor_dll_list(TDllInfo* plist = 0);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 获取所有视觉dll列表
|
|
|
*Intput: plist dll列表
|
|
|
*Output: plist
|
|
|
*Return: 返回dll数量,失败返回错误码<0
|
|
|
*PS: 先传NULL获取数量,再new内存获取信息
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI get_vision_dll_list(TDllInfo* plist = 0);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 获取所有robot dll列表
|
|
|
*Intput: plist dll列表
|
|
|
*Output: plist
|
|
|
*Return: 返回dll数量,失败返回错误码<0
|
|
|
*PS: 先传NULL获取数量,再new内存获取信息
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI get_robot_dll_list(TDllInfo* plist = 0);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 增加一个dll到管理器 -- 不需要设置dllid
|
|
|
*Intput: pdll dll信息
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI add_dll_info(TDllInfo* pdll);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 修改一个dll列表信息 -- 根据dllid
|
|
|
*Intput: pdll dll信息
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI update_dll_info(TDllInfo* pdll);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 从列表删除一个dll
|
|
|
*Intput: dllid 唯一标识符
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI del_dll_info(int dllid);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 通过名称,获取dll信息
|
|
|
*Intput: dllid 唯一标识符
|
|
|
pdll dll信息 可以传NULL
|
|
|
*Output: pdll dll信息 传指针可以获取信息
|
|
|
*Return: 成功返回0,失败返回错误码
|
|
|
***********************************************/
|
|
|
EXPORT_C int WINAPI get_dll_info(int dllid, TDllInfo* pdll = 0);
|
|
|
|
|
|
#endif //防止重复包含
|