#ifndef _UAV_RTP_H_ #define _UAV_RTP_H_ #include #ifdef UAV_EXPORTS #define UAV_EXPORTS_DLL(type) extern "C" _declspec(dllexport) type _stdcall #else #define UAV_EXPORTS_DLL(type) extern "C" _declspec(dllimport) type _stdcall #endif #ifdef __cplusplus extern "C" { #endif #ifdef UAV_EXPORTS #define MSSCOMMUNICATION_API(t) _declspec(dllexport) t __stdcall #else #define MSSCOMMUNICATION_API(t) _declspec(dllimport) t __stdcall #endif #define MSS_MAX_DEVICE_NUM 64 #pragma pack(push,1) typedef struct sDeviceList { int totalNum; int *pHandle[MSS_MAX_DEVICE_NUM]; }sDeviceList; typedef struct sServerInfo { unsigned char comType; unsigned short port; unsigned char serverIP[4]; unsigned char reserve[28]; }sServerInfo; typedef struct sFindDeviceConfig { BOOL ETHEnable; char macaddr[128]; char dhcpcfgfile[256]; int useDHCP; BOOL COMEnable; BOOL USB20Enable; BOOL USB30Enable; }sFindDeviceConfig; typedef enum _eDataTransferType { eDTT_Unkown, eDTT_TCP, eDTT_UDP, eDTT_USB20, eDTT_USB30, eDTT_COM, }eDataTransferType; #pragma pack(pop) /***************************************************************** ** 函 数 名: PMSSPROTCOLCMDCALLBACK ** 功能描述: 通知用户回调 ** 输  入: pBuf 包含命令的内存 iLlen 命令长度 lpBuf 查询命令的附加内存 ilpLen 查询命令的长度 iCode 错误码 msg 错误信息 ** 返 回 值: 0 成功 ** 作  者: yl ** 创建日期: 2015-7-11 ** 版 本:v1.0.0.0 ** 修改作者: ** 修改日期: ** 修改描述: ****************************************************************/ typedef void(__stdcall *PMSSPROTCOLCMDCALLBACK)(void* pHandle,void *pBuf, int iLen, void *lpBuf, int ilpLen, int iCode, const char *msg); /***************************************************************** ** 函 数 名: Mss_SetCmdCallBack(void *pbuf,int len) ** 功能描述: 设置命令发送回调函数 ** 输  入: pMssCmdCallBack 回调函数指针 ** 返 回 值: 0 成功 ----------格式检查返回错误代码---------------------- -1 传入数据长度错误 -2 传入不支持的命令格式 -3 传入不支持的命令值 -4 支持的命令值,但是不支持该命令类型 -5 数据长度过长 -6 数据长度过短 -7 未初始化成功 -20 其他未知错误 ----------发送数据过程返回错误代码---------------------- 500 命令已经在发送队列中 501 502 503 设备没有连接 504 发送数据成功 505 发送数据失败 506 发送成功但是没有收到回复 507 发送命令超时 508 接收到数据 ----------硬件设备返回错误代码---------------------- 1 发送命令错误 10 不支持的命令类型 11 crc校验失败 12 命令参数不在范围内 13 发送数据到底层设备失败 14 写flash失败 15 不支持的值 16 从设备读取数据失败 ** 作  者: yl ** 创建日期: 2015-7-9 ** 版 本:v1.0.0.0 ** 修改作者: ** 修改日期: ** 修改描述: ****************************************************************/ MSSCOMMUNICATION_API(int) Mss_SetCmdCallBack(void *pProtocol,void *pHandle ,PMSSPROTCOLCMDCALLBACK pMssCmdCallBack); /***************************************************************** ** 函 数 名: Mss_SetLuaCmdCallBack(void *pbuf,int len) ** 功能描述: 设置命令发送回调函数 ** 输  入: pMssCmdCallBack 回调函数指针 ** 返 回 值: 0 成功 ----------格式检查返回错误代码---------------------- -1 传入数据长度错误 -2 传入不支持的命令格式 -3 传入不支持的命令值 -4 支持的命令值,但是不支持该命令类型 -5 数据长度过长 -6 数据长度过短 -7 未初始化成功 -20 其他未知错误 ----------发送数据过程返回错误代码---------------------- 500 命令已经在发送队列中 501 502 503 设备没有连接 504 发送数据成功 505 发送数据失败 506 发送成功但是没有收到回复 507 发送命令超时 508 接收到数据 ----------硬件设备返回错误代码---------------------- 1 发送命令错误 10 不支持的命令类型 11 crc校验失败 12 命令参数不在范围内 13 发送数据到底层设备失败 14 写flash失败 15 不支持的值 16 从设备读取数据失败 ** 作  者: yl ** 创建日期: 2018-6-4 ** 版 本:v1.0.0.0 ** 修改作者: ** 修改日期: ** 修改描述: ****************************************************************/ MSSCOMMUNICATION_API(int) Mss_SetLuaCmdCallBack(void *pProtocol, PMSSPROTCOLCMDCALLBACK pMssCmdCallBack); /***************************************************************** ** 函 数 名: Mss_Destory ** 功能描述: 释放资源函数 ** 输  入: ** 返 回 值: 0 成功 ----------格式检查返回错误代码---------------------- -1 传入数据长度错误 -2 传入不支持的命令格式 -3 传入不支持的命令值 -4 支持的命令值,但是不支持该命令类型 -5 数据长度过长 -6 数据长度过短 -7 未初始化成功 -20 其他未知错误 ----------发送数据过程返回错误代码---------------------- 500 命令已经在发送队列中 501 502 503 设备没有连接 504 发送数据成功 505 发送数据失败 506 发送成功但是没有收到回复 507 发送命令超时 508 接收到数据 ----------硬件设备返回错误代码---------------------- 1 发送命令错误 10 不支持的命令类型 11 crc校验失败 12 命令参数不在范围内 13 发送数据到底层设备失败 14 写flash失败 15 不支持的值 16 从设备读取数据失败 ** 作  者: yl ** 创建日期: 2015-7-9 ** 版 本:v1.0.0.0 ** 修改作者: ** 修改日期: ** 修改描述: ****************************************************************/ MSSCOMMUNICATION_API(int) Mss_Destory(); /***************************************************************** ** 函 数 名: Mss_Init ** 功能描述: 初始化函数 ** 输  入: ** 返 回 值: 0 成功 ----------格式检查返回错误代码---------------------- -1 传入数据长度错误 -2 传入不支持的命令格式 -3 传入不支持的命令值 -4 支持的命令值,但是不支持该命令类型 -5 数据长度过长 -6 数据长度过短 -7 未初始化成功 -20 其他未知错误 ----------发送数据过程返回错误代码---------------------- 500 命令已经在发送队列中 501 502 503 设备没有连接 504 发送数据成功 505 发送数据失败 506 发送成功但是没有收到回复 507 发送命令超时 508 接收到数据 ----------硬件设备返回错误代码---------------------- 1 发送命令错误 10 不支持的命令类型 11 crc校验失败 12 命令参数不在范围内 13 发送数据到底层设备失败 14 写flash失败 15 不支持的值 16 从设备读取数据失败 ** 作  者: yl ** 创建日期: 2015-7-9 ** 版 本:v1.0.0.0 ** 修改作者: ** 修改日期: ** 修改描述: ****************************************************************/ MSSCOMMUNICATION_API(int) Mss_Init(); /***************************************************************** ** 函 数 名: Mss_FindDevice ** 功能描述: 查找设备函数,应该调用更上层的finddevice()函数代替该函数 ** 输  入: pMssCmdCallBack 回调函数指针 ** 返 回 值: 0 成功 ----------格式检查返回错误代码---------------------- -1 传入数据长度错误 -2 传入不支持的命令格式 -3 传入不支持的命令值 -4 支持的命令值,但是不支持该命令类型 -5 数据长度过长 -6 数据长度过短 -7 未初始化成功 -20 其他未知错误 ----------发送数据过程返回错误代码---------------------- 500 命令已经在发送队列中 501 502 503 设备没有连接 504 发送数据成功 505 发送数据失败 506 发送成功但是没有收到回复 507 发送命令超时 508 接收到数据 ----------硬件设备返回错误代码---------------------- 1 发送命令错误 10 不支持的命令类型 11 crc校验失败 12 命令参数不在范围内 13 发送数据到底层设备失败 14 写flash失败 15 不支持的值 16 从设备读取数据失败 ** 作  者: yl ** 创建日期: 2015-7-9 ** 版 本:v1.0.0.0 ** 修改作者: ** 修改日期: ** 修改描述: ****************************************************************/ MSSCOMMUNICATION_API(int) Mss_FindDevice(sFindDeviceConfig *pfdc,sServerInfo *pServerInfo, int len, sDeviceList* pDeviceList); /***************************************************************** ** 函 数 名: FindDevice ** 功能描述: 查找设备函数 ** 输  入: inout 查找设备结构,最大查找64个设备 ** 返 回 值: 0 成功 ----------格式检查返回错误代码---------------------- -1 传入数据长度错误 -2 传入不支持的命令格式 -3 传入不支持的命令值 -4 支持的命令值,但是不支持该命令类型 -5 数据长度过长 -6 数据长度过短 -7 未初始化成功 -20 其他未知错误 ----------发送数据过程返回错误代码---------------------- 500 命令已经在发送队列中 501 502 503 设备没有连接 504 发送数据成功 505 发送数据失败 506 发送成功但是没有收到回复 507 发送命令超时 508 接收到数据 ----------硬件设备返回错误代码---------------------- 1 发送命令错误 10 不支持的命令类型 11 crc校验失败 12 命令参数不在范围内 13 发送数据到底层设备失败 14 写flash失败 15 不支持的值 16 从设备读取数据失败 ** 作  者: yl ** 创建日期: 2015-7-9 ** 版 本:v1.0.0.0 ** 修改作者: ** 修改日期: ** 修改描述: ****************************************************************/ MSSCOMMUNICATION_API(int) FindDevice(sDeviceList *sl, sFindDeviceConfig *pfdc); /***************************************************************** ** 函 数 名: Mss_SendOneCmd ** 功能描述: 发送命令(同步发送) ** 输  入: in pProtocol finddevice返回的设备列表指针 in buf 命令缓冲区(去掉帧头帧尾和数据总长度) 包含: 命令类型 命令值 命令内容 in len 命令总长度 in pretbuf 返回数据缓冲区 inout iretlen 返回数据缓冲区长度,如果缓冲区足够长,该值返回接收到的数据长度,如果该值比接收数据缓冲区小,返回该长度数据 ** 返 回 值: 0 成功 ----------格式检查返回错误代码---------------------- -1 传入数据长度错误 -2 传入不支持的命令格式 -3 传入不支持的命令值 -4 支持的命令值,但是不支持该命令类型 -5 数据长度过长 -6 数据长度过短 -7 未初始化成功 -20 其他未知错误 ----------发送数据过程返回错误代码---------------------- 500 命令已经在发送队列中 501 502 503 设备没有连接 504 发送数据成功 505 发送数据失败 506 发送成功但是没有收到回复 507 发送命令超时 508 接收到数据 ----------硬件设备返回错误代码---------------------- 1 发送命令错误 10 不支持的命令类型 11 crc校验失败 12 命令参数不在范围内 13 发送数据到底层设备失败 14 写flash失败 15 不支持的值 16 从设备读取数据失败 ** 作  者: yl ** 创建日期: 2015-7-9 ** 版 本:v1.0.0.0 ** 修改作者: ** 修改日期: ** 修改描述: ****************************************************************/ MSSCOMMUNICATION_API(int) Mss_SendOneCmd(void *pProtocol, void *buf, int len, void *pretbuf, int *iretlen, PMSSPROTCOLCMDCALLBACK pCmdCallBack); /***************************************************************** ** 函 数 名: Mss_SendOneCmdAsyn ** 功能描述: 发送命令(异步发送) ** 输  入: in pProtocol finddevice返回的设备列表指针 in buf 命令缓冲区(去掉帧头帧尾和数据总长度) 包含: 命令类型 命令值 命令内容 in len 命令总长度 in pretbuf 返回数据缓冲区 inout iretlen 返回数据缓冲区长度,如果缓冲区足够长,该值返回接收到的数据长度,如果该值比接收数据缓冲区小,返回该长度数据 ** 返 回 值: 0 成功 ----------格式检查返回错误代码---------------------- -1 传入数据长度错误 -2 传入不支持的命令格式 -3 传入不支持的命令值 -4 支持的命令值,但是不支持该命令类型 -5 数据长度过长 -6 数据长度过短 -7 未初始化成功 -20 其他未知错误 ----------发送数据过程返回错误代码---------------------- 500 命令已经在发送队列中 501 502 503 设备没有连接 504 发送数据成功 505 发送数据失败 506 发送成功但是没有收到回复 507 发送命令超时 508 接收到数据 ----------硬件设备返回错误代码---------------------- 1 发送命令错误 10 不支持的命令类型 11 crc校验失败 12 命令参数不在范围内 13 发送数据到底层设备失败 14 写flash失败 15 不支持的值 16 从设备读取数据失败 ** 作  者: yl ** 创建日期: 2015-7-9 ** 版 本:v1.0.0.0 ** 修改作者: ** 修改日期: ** 修改描述: ****************************************************************/ MSSCOMMUNICATION_API(int) Mss_SendOneCmdAsyn(void *pProtocol, void *buf, int len); MSSCOMMUNICATION_API(void) Mss_OnRecvLuaDataProcessFinish(void *pProtocal, void* pHandle, void *pBuf, int iLen, void *lpBuf, int ilpLen, int iCode, const char *msg); MSSCOMMUNICATION_API(int) Mss_FreeDevice(void *pProtocol); MSSCOMMUNICATION_API(eDataTransferType) Mss_GetTransferDataType(void *pProtocol); // 创建通信 MSSCOMMUNICATION_API(void *) Mss_CreateProtocol(int type, char *config); MSSCOMMUNICATION_API(void) Mss_DeleteProtocol(void *pProtocol); #ifdef __cplusplus } #endif #endif