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.

127 lines
3.9 KiB
C

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*********************************************************************
*文件说明: 插件列表管理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 //防止重复包含