- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 英语四人话剧剧本.doc
- 射频实验报告 1.doc
- the time引导时间状语.doc
- 轻松美语会话超级100美语经典句型 Unit 5.docx
- OK《高级眼镜验光员》实操内容.doc
- 我们为什么快乐.docx
- 精英治理的合理性分析.doc
- 《体验英语学习系统三》答案.doc
- 电気めっきとJIS记号.doc
- 高清PSI-SI节目单XML规范.doc
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)