通讯协议 (例子)

通讯协议 (例子)

ID:5966783

大小:226.00 KB

页数:26页

时间:2017-11-15

通讯协议 (例子)_第1页
通讯协议 (例子)_第2页
通讯协议 (例子)_第3页
通讯协议 (例子)_第4页
通讯协议 (例子)_第5页
资源描述:

《通讯协议 (例子)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、通讯协议(例子)通讯协议BA通讯协议BASR通讯协议BASR通讯协议BchaASRchbchrchs通讯协议prbchaprapssprrchbchrchsobuf[]busy[]sqibuf[]recv[]mpMWQS通讯协议模型(主程序)VVMft001DEFINEQS=2QSL=1M=4ML=3W=2WL=1rr=0ss=1aa=2bb=3VARerr:0..1;INITerr=0;PROCchr:chrs();chs:chrs();cha:chab();chb:chab();pra:mpra()

2、;prb:mprb();SPECAG(err!=1);进程模块说明1(通道)MODULEchrs()VARcontents[0..QSL]:{ack,red,green,blue};seq[0..QSL]:0..ML;len:0..QS;start:0..QSL;INIT(forxxin[0..QSL]):contents[xx]=0;(forxxin[0..QSL]):seq[xx]=0;len=0;start=0;TRANSlen>0:(len,start):=(len-1,(start+1)%M)

3、;//loosychannel进程模块说明2(通道)MODULEchab()VARcontents[0..QSL]:{ack,red,green,blue};len:0..QS;start:0..QSL;INIT(forxxin[0..QSL]):contents[xx]=0;len=0;start=0;TRANSFALSE:TRUE;过程说明1PROCEDUREchget(nn,c,s)VARINITTRANSnn=rr:(c,s,chr.start,chr.len):=(chr.contents[c

4、hr.start],chr.seq[chr.start],(chr.start+1)%QS,chr.len-1)&RETURN;nn=ss:(c,s,chs.start,chs.len):=(chs.contents[chs.start],chs.seq[chs.start],(chs.start+1)%QS,chs.len-1)&RETURN;nn=aa:(c,cha.start,cha.len):=(cha.contents[cha.start],(cha.start+1)%QS,cha.len-1

5、)&RETURN;nn=bb:(c,chb.start,chb.len):=(chb.contents[chb.start],(chb.start+1)%QS,chb.len-1)&RETURN;过程说明2PROCEDUREchput(nn,c,s)VARpc:{s0,s1};pos:0..QS;INITpc=s0;pos=0;TRANSnn=0&pc=s0:(pos,pc):=((chr.start+chr.len)%QS,s1);nn=0&pc=s1:(chr.contents[pos],chr.s

6、eq[pos],chr.len):=(c,s,chr.len+1)&RETURN;nn=1&pc=s0:(pos,pc):=((chs.start+chs.len)%QS,s1);nn=1&pc=s1:(chs.contents[pos],chs.seq[pos],chs.len):=(c,s,chs.len+1)&RETURN;nn=2&pc=s0:(pos,pc):=((cha.start+cha.len)%QS,s1);nn=2&pc=s1:(cha.contents[pos],cha.len):

7、=(c,cha.len+1)&RETURN;nn=3&pc=s0:(pos,pc):=((chb.start+chb.len)%QS,s1);nn=3&pc=s1:(chb.contents[pos],chb.len):=(c,chb.len+1)&RETURN;进程模块说明3(pss)MODULEmpss()VARbusy[0..ML]:0..1;obuf[0..ML]:{ack,red,green,blue};q:0..ML;s:0..ML;//q=oldestunacked,s=nexttosen

8、dy:0..ML;wd:0..W;INIT(forxxin[0..ML]):busy[xx]=0;(forxxin[0..ML]):obuf[xx]=0;q=0;s=0;y=0;wd=0;TRANSwd0&chr.len0:chget(ss,ack,y)&(busy[y]):=(0);wd>0&busy[q]=0:(wd,q):=(wd-1,

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

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

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