zoukankan      html  css  js  c++  java
  • can 网络管理

    网络管理主要功能:

    1. 是用来管理ECU是否在网络里面,不在的话请求加入,也就是ALIVE报文,
    2. 要判断是否掉线,以及睡眠状态的转换机制,以及跛行状态判,也即是RING报文。

    主要的实现逻辑流程:

    从rtos队列里面取出数据,保存在自定义的结构体里面
    不论在何种状态只要接收到报文都需要静进入normal状态,等于初始化一次
    提取信息,报文的主要信息有三部分,报文ID,目的地址,以及消息类型
    如果是alive报文,进行环的更新,如果是ring报文进行状态转换机制判断。
    ring报文的判断的目的有两个,一个是进行状态的转换,二是为了将ring报文继续传递下去。

           当ring报文是节点在请求睡眠的时候,睡眠ind为true,然后在环里循环,如果有一个节点为false,则请求失败,返回原来的状态,都为true,则自己发送一个为ind 和ack都为true,   则进入等待睡眠状态。

     

    在接收到报文之后,如果是目的地址是自己的的话,则进行判断然后启动Ttype定时器,时间到了发送后继的ring报文。如果不是发送给自己的,则启动Tmax定时器,如果在定时器时间到的时候没有收到下一条ring报文表示,我出故障了,进入跛足状态。在跛足状态的时候,定时器Terror时间到就发一个跛足报文,Tlimphome时间到的时候则进入准备睡眠状态。

    接收到睡眠报文应答的时候,进入等待睡眠状态,让后启动定时器Twait,时间到没有收到报文的话则进入睡眠状态。

  • 相关阅读:
    路由系统
    flask_sqlalchemy的使用
    input()输入语句
    注释
    Python 2017.1.5
    关于object网页播放器参数的设置,推荐博客系列
    LRU缓存,大神写的,值得借鉴
    object,网页播放器的相关属性设置
    js的apply和call方法
    count()函数在count()中参数的讨论
  • 原文地址:https://www.cnblogs.com/isAndyWu/p/9812563.html
Copyright © 2011-2022 走看看