omnet FC-AE-1553程序功能解析

第一部分 注册

NC模块

1.TCBTSource模块

功能:在DBA周期开始时,随机生成一个目的NT地址的TCBTMsg消息包

2.PTSource模块

功能:

SWITCH模块

1.路由表的建立

①向交换机发送注册帧regstMsg

②交换机给节点分配地址为nodeS_ID =pk->getNodeIndex()+1,随机生成多播地址

rtable[x][0] = nodeS_ID; //如果节点自身源地址等于rtable在该行存储的address
rtable[x][1] = pk->getArrivalGate()->getIndex();//gate("port$i")->getArrivalGateId(); //消息输入的端口地址
rtable[x][2] = nodeMulti_ID; //将节点对应的组播组地址存入rtable

③发送注册回复帧RegstAck

④交换路由信息

msg->setS_MultID(multiID); //加入组播组地址
msg->setTerminalS_ID(srcID); //新加入节点的S_ID即索引加1
msg->setMsgType("exRoutInfmtMsg");

send(msg,"port$o",0);//发送至另一交换机

⑤另一交换机存储在自己的路由表中

rtable[x][0] = pk->getTerminalS_ID(); //如果节点自身源地址等于rtable在该行存储的address
rtable[x][1] = pk->getArrivalGate()->getIndex();//gate("port$i")->getArrivalGateId(); //消息输入的端口地址
// EV << "*************************************" << pk->getArrivalGate()->getIndex() << "*****************";
rtable[x][2] = pk->getS_MultID();

2.SCR帧状态注册改变

①节点发送SCR至交换机

②交换机接收SCR帧,并生成RSCN帧将其源节点地址转发至已经进行SCR帧注册的其他节点

msg->setS_ID(srcAddress); //自身源地址
msg->setD_ID(stateChgRegst[j]); //目的地址
msg->setS_MultID(-1); //表示未加入组播组
msg->setTerminalS_ID(stateChgRegst[i]); //新加入节点的S_ID
msg->setR_CTL(0x07); //状态帧
msg->setMsgType("RSCNMsg");

3.PLOGI帧

直接转发

4.状态帧(ackMsg)

直接转发

5.NC发送请求问询帧NCEnquiryMsg

将消息转发至不是交换机端口,不是NC节点且端口不是消息到来的端口

6.CBTEnquiryAckMsgNT/回复发送请求问询帧、"CBTScheduleMsg"、PTAckMsg、CBTMsg、CBTAckMsg、TCBTAckMsg、TCBTMsg、PTMsg

直接转发

 

omnet FC-AE-1553程序功能解析

上一篇:微信开发-回调模式


下一篇:nodejs 环境及环境变量配置