题目内容
分析下面程序里面“case 0”段落部分代码的作用。(提示:本小题代码是指从“case 0”语句开始直至对应的“end” 结束语句。)case 0 % 从表1可知,为0,表示当前是空闲状态for j=1:len % 遍历所有节点,检查是否有节点在传数据if(pre_status_matrix(j,2)==3&&first_frame_flag(j)==1) % 要是有节点已经在状态3,从表1知是发送状态,并且帧数据已经准备完毕,那么frame_size(i)=frame_size(j); %记录帧长count=count+1; % 当前需要占用信道的节点数加1tmp=pre_comm_matrix(j); %记录节点j对应的通信节点endendif (count==1&&tmp==i) % 要是目前只有一个节点请求占用信道,并且节点j等待通信的节点是节点i,那么status(i)=7; % 节点i转换到状态7,即接收数据状态timer(i)=frame_size(i); %设置通信时长comm(i)=pre_comm_matrix(i); %记录通信节点编号elseif(pre_comm_matrix(i)==0) % 另外要是通信矩阵里没有记录要通信的节点,那么status(i)=0; % 保持状态0,从表1知,即空闲状态timer(i)=0; % 定时清0comm(i)=pre_comm_matrix(i); % 记录通信节点编号else % 另外,多点竞争,信道忙comm(i)=pre_comm_matrix(i); %暂时不能通信,记录通信节点编号for j=1:len % 遍历所有节点if(i~=j && pre_status_matrix(j,2)==3||pre_status_matrix(j,2)==5) %要是两个不同的节点i与节点j需要通信,节点j在发送数据状或发送ACK状态,都不行,信道忙status(i)=1; % 切换到状态1,即等待媒介可用timer(i)=0; % 定时清0busy_flag=1; % 信道忙标志置1endendif(busy_flag==0) % 要是信道空闲status(i)=2; % 切换到状态2,从表1知是信道空闲,等待DIFStimer(i)=randi([max_DIFS-priority_matrix(i) max_DIFS]);%等待随机的时间,即DIFS阶段endend
查看答案
搜索结果不匹配?点我反馈
更多问题