|
|
/*********************************************************************
|
|
|
*文件说明: 所有插件公用头文件
|
|
|
*作者: logos
|
|
|
*日期: 2017/02/07
|
|
|
*修改日志: 2017/02/07 CW4945 创建
|
|
|
|
|
|
***注意事项***
|
|
|
1. 无论哪种类型,都必须支持公共接口
|
|
|
init
|
|
|
uninit
|
|
|
get_status
|
|
|
send_custom_msg
|
|
|
recv_custom_msg
|
|
|
2. 加载插件时会检测接口,若接口检测不通过,则插件加载会失败
|
|
|
3. 所有接口都必须是非阻塞实现,除非包含延时参数
|
|
|
4. 索引从上层调用init/initctx时会自动动态累加,第一个对象为0,以此类推.
|
|
|
***********************************************************************/
|
|
|
#pragma once
|
|
|
#ifndef _INCLUDE_DEV_API_H
|
|
|
#define _INCLUDE_DEV_API_H
|
|
|
#include "dtype.h"
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 初始化模块 -- 可以不支持
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: NULL
|
|
|
*********************************************/
|
|
|
EXPORT_C void WINAPI init();
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 反初始化模块 -- 可以不支持
|
|
|
*Intput: NULL
|
|
|
*Output: NULL
|
|
|
*Return: NULL
|
|
|
*********************************************/
|
|
|
EXPORT_C void WINAPI deinit();
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 获取插件支持的自定义指令描述 -- 若没有,可以不支持此接口
|
|
|
*Intput: pszcmddesc 指令描述列表缓冲区
|
|
|
*Output: pszcmddesc 指令描述列表缓冲区
|
|
|
*Return: 返回字符串长度,返回0表示没有自定义指令
|
|
|
*PS: 可以传入NULL获取字符串长度,申请内存后重新获取内容
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_command_desc(char* pszcmddesc);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 创建/初始化一个对象
|
|
|
*Intput: index 对象索引,动态累加,从0开始
|
|
|
param 初始化参数 最多支持PARAM_CNT个参数
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI init_dev(ushort index, TParam* param);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 创建/初始化一个对象 -- 参数使用字符串
|
|
|
*Intput: index 对象索引,动态累加,从0开始
|
|
|
ctx 初始化参数 多个参数以;分割<256字节,最多支持PARAM_CNT个参数
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI init_devs(ushort index, const char* ctx);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 反初始化/释放一个对象
|
|
|
*Intput: index 对象索引
|
|
|
*Output: NULL
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI uninit_dev(ushort index);
|
|
|
|
|
|
/***********************************************
|
|
|
*Function: 获取指定对象当前状态
|
|
|
*Intput: index 对象索引
|
|
|
*Output: NULL
|
|
|
*Return: EDevStatus or EMoveStatus
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI get_status(ushort index);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 向指定对象发送消息(万能接口)
|
|
|
*Intput: index 对象索引
|
|
|
msg 要发送的消息
|
|
|
res 返回消息,可以不传
|
|
|
*Output: res 返回消息,可以不传
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI send_custom_msg(ushort index, const char* msg, char* res/* = 0*/);
|
|
|
|
|
|
/*********************************************
|
|
|
*Function: 接收指定对象消息(万能接口)
|
|
|
*Intput: index 对象索引
|
|
|
msg 过滤字段及参数,可以为空字符串
|
|
|
res 返回消息
|
|
|
timeout 超时机制 单位ms
|
|
|
*Output: res 返回消息
|
|
|
*Return: 成功返回0,失败返回错误码<0
|
|
|
*PS: 超时返回ERR_TIMEOUT
|
|
|
*PS: 若有过滤机制,未接收到的消息由底层插件自行处理,或缓存下来
|
|
|
*********************************************/
|
|
|
EXPORT_C int WINAPI recv_custom_msg(ushort index, const char* msg, char* res, int timeout);
|
|
|
|
|
|
#endif //防止重复包含头文件
|