CANFestival-3源码详解一:重要结构体

有几点需要说明:
1.使用的是官网下载的canfestival-3源代码,下载的压缩包文件名是:Mongo-canfestival-3-asc-1a25f5151a8d.zip,使用的是源码里面自带的对象字典编辑器来生成对象字典文件;
2.主要解析源码里面与DS 301协议有关的代码,DS 301协议参考文档为301_v04000201.pdf;
3.推荐一个文档叫《CANopen轻松入门》,介绍了CANopen的基础知识,广州致远电子出品,写的非常好。还推荐一个文档《CANopen high-level protocol for CAN-bus》。
4.本文默认读者对CANopen有所了解,不涉及CANopen的基础知识。

1.CANOpen node structure

canfestival里面最核心的一个结构体,就是这个节点数据结构体,这个结构体包含了一个CANOpen节点(node)需要用到的所有数据信息。这个结构体定义在data.h文件中,源码如下:

struct struct_CO_Data {/* Object dictionary */UNS8 *bDeviceNodeId;const indextable *objdict;s_PDO_status *PDO_status;TIMER_HANDLE *RxPDO_EventTimers;void (*RxPDO_EventTimers_Handler)(CO_Data*, UNS32);const quick_index *firstIndex;const quick_index *lastIndex;

CANOpen协议详解(一):CANfestival源码分析相关推荐

  1. FPGA学习之路—接口(3)—SPI详解及Verilog源码分析

    FPGA学习之路--SPI详解及Verilog源码分析 概述 SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线. 优点 支持全 ...

  2. 【Swagger】配置信息详解(涉及源码分析)

    先来说说 Swagger 有什么用,相较于使用 markdown 或者 word 写接口文档,Swagger 自动生成 API 文档,然后在 web 端暴露,并且 API 文档与 API 定义同步更新 ...

  3. 【Java 代码实例 14】BeanUtils用法详解,附源码分析

    目录 一.org.apache.commons.beanutils.BeanUtils简介 二.使用的前置条件 三.添加pom 四.org.apache.commons.beanutils.BeanU ...

  4. @AliasFor注解详解(结合源码分析)

    一. 概述 网上关于该注解的描述大都抄来抄去,没有涉及到最本质的源码问题, 下面是笔者结合注解源码, 以及其他常用的注解源码, 来分析@AliasFor注解的主要功能以及展示实际使用场景 描述:@Al ...

  5. 详解JSP——从源码分析

    何为JSP Java Server Pages:java服务器端页面 和Servlet一样 用于动态web技术 特点: 跟在写HTML一样 区别: HTML只给用户提供静态的数据 JSP页面中可以嵌入 ...

  6. android WebView详解,常见漏洞详解和安全源码(下)

    上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑.  上篇:android WebView详解,常见漏洞详解和安全源码(上)  转载请注明出处:http ...

  7. android WebView详解,常见漏洞详解和安全源码(上)

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  由于博客内容长度,这次将分为上下两篇,上篇详解 WebView ...

  8. faster rcnn fpn_Faster-RCNN详解和torchvision源码解读(三):特征提取

    我们使用ResNet-50-FPN提取特征 model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True) ...

  9. 【Python】基金/股票 最大回撤率计算与绘图详解(附源码和数据)

    如果你想找的是求最大回撤的算法,请跳转:[Python] 使用动态规划求解最大回撤详解 [Python]基金/股票 最大回撤率计算与绘图详解(附源码和数据) 0. 起因 1. 大成沪深300指数A 5 ...

  10. 生成对抗网络入门详解及TensorFlow源码实现--深度学习笔记

    生成对抗网络入门详解及TensorFlow源码实现–深度学习笔记 一.生成对抗网络(GANs) 生成对抗网络是一种生成模型(Generative Model),其背后最基本的思想就是从训练库里获取很多 ...

最新文章

  1. 干货 | MTCNN实时人脸检测网络详解与代码演示
  2. 小米 samba linux,不折腾会死:CentOS7访问小米路由(Samba服务)
  3. 修改oracle数据库默认时间格式
  4. HTML DOM - 修改 HTML 内容
  5. 基于Google测试框架实现自己的测试框架
  6. Lighttpd 的安装配置(web服务器软件)
  7. Ubuntu 禁用 触摸板
  8. CFile和CStdioFile的文件读写使用方法
  9. kafka 0.8.2版本配置选项翻译
  10. 几种java反编译软件的安装以及使用总结
  11. java.lang.reflect.Field常用方法
  12. 98% after emitting CopyPlugin vue启动停止的原因
  13. java 时间减法(结束时间-开始时间,时分秒)
  14. Kafka 消息中间件
  15. 物联网价值链中只有软件或者平台/服务才会赚大钱?
  16. android360浏览器卸载,三款主流安卓浏览器横评!删掉APP全靠它?
  17. 智能楼宇3D虚拟仿真实训平台
  18. python中幂运算_python里幂运算
  19. Python爬虫入门与进阶
  20. 用 vs 2017创建 windows 服务

热门文章

  1. 用摄像管替换电视机电路里的显现管的摄像机
  2. 用程序 揭秘 用手机号尾号暴露你年龄的 骗局
  3. 易企秀把作品转赠给别人,让别人可以编辑
  4. 统计知识基础(三)常用构造估计量的两种方法——矩估计、最大似然估计
  5. 性价比最高处理器和国产处理器I.MX6UL/A40I/T3对比
  6. dedecms织梦后台系统用户管理授权栏目BUG修正
  7. [CF850E]Random Elections
  8. error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was
  9. gnutls_handshake() failed: A TLS packet with unexpected length was received
  10. 【值得读】自动机器学习: 最新进展综述与开放挑战 | AutoML