DTU动态链接库说明.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DTU动态链接库说明

动态链接库说明 数据结构: 1.用以区分标识各台Dtu的数据结构: typedef UINT u32t; typedef UCHAR u8t; typedef USHORT u16t; typedef ULONG u64t; typedef struct _dtu_info_t_ { ?u8t m_dtuId[10];??? //Dtu模块的ID号,9个ASCII码,必须以\0字符结 尾 ?u8t m_phoneno[12];??? //Dtu的11位电话号码,必须以\0字符结尾 ?u8t m_dynip[4];??? //DTU的4位动态ip地址(为ip绑定新增) ?u64t m_conn_time;??? //Dtu模块最后一次建立TCP连接的时间 ?u64t m_refresh_time;??? //Dtu模块最后一次收发数据的时间 } DtuInfoStruct; typedef struct _dtu_data_t { ?u8t m_dtuId[10];??? //Dtu模块的ID号,9个ASCII码,必须以\0字符结 尾 ?u8t m_phoneno[12];??? //Dtu的11位电话号码,必须以\0字符结尾 ?u64t m_recv_time;??? //接收到数据包的时间 ?u8t m_data_buf[MAX_RECEIVE_BUF + 1]; //存储接收到的数据 ?u16t m_data_len;??? //接收到的数据包长度 ?u8t m_data_type;??? //接收到的数据包类型 ?????? // 0x01: 用户数据包 ?????? // 0x00: 不认识类型 } DtuDataStruct; 基于 GMT 时间 1970 年 1 月 1 日 0:00:000 以来的秒数指示时间值1970 年 1 月 1 日 0 DSSendData(unsigned char *pPhone,u16t len,u8t * buf); 功能:向指定电话号码的Dtu发送数据 参数: pPhone:指向Dtu的11位电话号码的指针。 len:待发送的数据长度(字节数),数据长度必须小于或等于1450个字节 buf:待发送的数据 如果失败了,可以调用DSGetLastError()函数查看错误原因。 5).u32t DSGetDtuCount(void) 功能:取得当前在线的所有的Dtu的总数; 6).BOOL DSGetDtuByPosition(u32t pos, DtuInfoStruct *pDtuInfo) 功能:取得指定位置的Dtu的数据; 参数:pos:Dtu列表中的位置信息,0代表第一个Dtu位置; pDtuInfo:指向用以保存Dtu信息的数据结构; 一般来说DSGetDtuCount()和DSGetDtuByPosition()函数配合使用,用以查看当前所有Dtu的信息,如下例所示: u32t uiDtuCount; uiDtuCount=DSGetDtuCount(); DtuInfoStruct dtuInfo; u32t i; for (i=0;i uiDtuCount;i++) { DSGetDtuByPosition (i, dtuInfo); //对dtuInfo进行操作 } 7). void DSGetLastError(char *str,int nMaxStrSize); 功能:获得先前API执行时发生的错误; 参数:str:用来存放错误信息的缓冲区; nMaxStrSize:缓冲区的最大长度,如果错误信息的大小超过了这个值,则此函数将把错误信息的尾部截除。 函数的具体使用 Load动态库: 调用windows API函数LoadLibrary装载动态库,如下: HMODULE hDllMudule; //指向动态库的句柄 BOOL (*DSStartService)(HWND,int,int,char *); //定义一个指向函数的地址的指针 hDllModule=LoadLibrary(“gprsdll.dll”); If (hDllModule!=NULL) //判断调用是否成功 { //从动态库中取函数地址 DSStartService =GetProcAddress(hDllModule,”DSStartService”); if (DSStartService!=NULL) //判断是否取到该函数地址 { if ((*DSStartService)( 5001)!=FALSE

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档