深入windows通信编程的论文

深入windows通信编程的论文

ID:9767544

大小:62.50 KB

页数:5页

时间:2018-05-08

深入windows通信编程的论文_第1页
深入windows通信编程的论文_第2页
深入windows通信编程的论文_第3页
深入windows通信编程的论文_第4页
深入windows通信编程的论文_第5页
资源描述:

《深入windows通信编程的论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、深入Windows通信编程的论文一、.drv与硬件接口,向程序员提供了多达17个标准函数,功能强大,但也增加了理解和编程的难度。打开一通信设备buildcimmdcb将一设备定义字符串转变为dcb数据结构enablemnotification使能或禁止传送_mnotify消息setmstate设置通信设备状态setmeventmask设置通信事件掩码readm从通信设备读字符向通信设备写字符flushm清除一发送或接收队列getmeventmask返回通信事件掩码getmstate返回设备控制块(dcb)getmerror恢复通

2、信设备状态closem关闭一通信设备dcb数据结构、其它通信函数及各函数的具体用法请参见有关资料。一般_mnotify消息处理。设备初始化典型流程如图1。图1_mnotify消息处理典型流程如图2。图2对于大多数实际通信来说,可能只需要处理流程图中的一部分。.设备初始化及_mnotify消息处理两部分密切相关。所有类型_mnotify消息的传送都是因为在初始化函数中进行了相应的设置。换言之,可以根据通信的实际情况有选择地设置,控制_mnotify消息的数量和类型,以期达到高效、可靠的通信。例如,对于固定长度消息型的通信可以在en

3、ablemnotification函数中设置cbstate和setmeventmask函数;对于遵循v.25bis之类协议的通信,由于用到了大量信号线来作握手信号,则事件掩码中要包含ev_cts、ev_dsr、ev_rsld及ev_ring等;而对于文件传送型的通信,则宜将openm函数中的cbinque和cboutque变量、enablecmnotification中的cbdcb产生dcb数据结构;然后调用setmstate设置通信参数;最后再调用自编函数直接修改串口通信寄存器的值。经实验,设置成功,且对notificatio

4、n函数中的cb_mnotify消息之前,通信设备驱动程序必须向应用程序出入队列中写入的字节数),可以使系统每收到固定个字符发出一_mnotify消息,这对于固定长度消息型的通信是很方便的。但实际应用时有时会发生接收数据"丢失"现象,即收到_mnotify消息后从接收队列读出cbnotify个数据时,发现只有前面部分数据正确。经检查,"丢失"现象是由于接收数据超时引起的,当通信对方时钟频率较低时,规定时间内收不到cb_mnotify消息。然后,在应用程序输入队列数据读出之前,it标志的_mnotify消息。3.怎样合理使用flus

5、hm与getmerror函数?flushm函数的功能是清除指定设备接收或发送队列。getmerror函数的功能是返回指定设备最近错误码和当前状态,更重要的是"解锁"功能:当出现通信错误时,error。调用flushm的时机很重要,如果通信端口发生错误,不调用该函数就有可能会使接收队列包含不期望的数据;若随便调用该函数,也有可能造成尚未读入或发出的数据丢失。总之,调用该函数要做到"心中有数"。为了合理调用flushm和getmerror函数,建议在事件掩码中包含ev_err与ev_break。4.ca、eisa总线系统没有此限制。

6、如果需要使用的端口不止四个,可以在pc护展槽中加插多用户卡,如美国的trol、台湾的moxa(摩莎)等,就可以支持几个到几十个串口,加上随卡提供的app)classtmapp:publictapplication{public:tmapp(lpstraname,hinstancehinstance,hinstancehprevinstance,lpstr1pcmdline,intncmdshoe,hinstance,hprevinstance,1pcmdline,ncmdshoainmnotify(tmessagemg)=〔_f

7、irst+_mnotify〕;virtualvoidsetupcli;asmmovdx,2fbh;asmmoval,80h;asmoutdx,al;asmmovdx,2f8h;asmmoval,00h;asmoutdx,al;asmmovdx,2f9h;asmmoval,3;asmoutdx,al;asmmovdx,2fbh;asmmoval,03;asmoutdx,al;asmmovdx,2fch;asmmoval,0bh;asmoutdx,al;asmmovdx,2f9h;asmmoval,0fh;asmoutdx,al;a

8、smmoval,20h;asmout21h,al;asmsti;}inttmask=ev_break

9、ev_err

10、ev_rxflag;//事件掩码strcpy(str,"");strcat(str,itoa(+1,s,10));id=openm(str,128

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。