456_J1939中普通报文的队列接收

         全部学习汇总: https://github.com/GreyZhang/J1939_basic

         之前研究Arduino的时候,看过了Arduino开源社区中别人对ECAN使用的时候使用了队列的收发。全都是软件实现,没有使用硬件的模式。手里的这套J1939的代码也有这么一个类似的功能。

         接下来,看看手里这套代码的处理。

         关键代码都在注释上面,其实,下面的部分也已经不在同一个代码块。正好这个函数还剩下这么一点没做分析,一起给标注掉了。

         这里面首先有一个判断,判断如果队列空间满了又接收到报文之后的处理方法。是覆盖写入还是丢弃?

         在配置文件中,这里是丢弃操作。这样,如果出现了上述情况,队列缓冲是没有任何修改的,消息直接不处理,同时会有一个标志位置位。

         其他的地方没有对此标志位的处理,因此这个如果真是需要清除掉的话应该是在用户软件之中实现。

         关于队列的实现,之前我自己其实做过了分析。并且,实现了一个printf via CAN的功能。后续,针对简单的代码分析还是专门在小结一下吧!

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页