libcanbus

canbus(CAN BUS V2.0 B)扩展格式库项目简析

注: 本文如果你已经有linux开发环境

请确保你使用本库时是tag版本号。

该库遵循的协议是SAE J1939-21-2006。

target=libcanbus-1.0

本项目採用 GPL 授权协议。欢迎大家在这个基础上进行改进,并与大家分享,为开源事业贡献一点点力量。

源代码下载地址:

https://git.oschina.net/fulinux/libcanbus

以下将简单的解析下项目:

一、项目的文件夹结构

根文件夹
|-- src
|-- util
|-- docs
|-- build-aux
`- m4

1、src文件夹
src文件夹用于存放项目的包及C源代码文件。

以下是src文件夹的文件:

src
|-- canbus.c
|-- canbus-private.h
`-- canbus.h

  • canbus.c —库中的主文件,定义函数
  • canbus-private.h —库中的私有头文件。声明个别结构体
  • canbus.h —库中的公共头文件,声明函数和结构体等

2、util文件夹
util文件夹用于存放測试库的套件程序。

以下是test文件夹里的文件:

util
|-- recv-test.c
|-- send-test.c
|-- server-cycle2snd.c
|-- client-cycle2snd.c
|-- test-recv-send.c
`-- test-send-recv.c

  • recv-test.c —CAN BUS扩展格式的接收測试程序, 与以下的程序配合使用
  • send-test.c —CAN BUS扩展格式的发送測试程序, 与上面的程序配合使用
  • server-cycle2snd.c —CAN BUS扩展格式中周期发送服务端測试程序, 与以下的程序配合使用
  • client-cycle2snd.c —CAN BUS扩展格式中周期发送客户端測试程序, 与上面的程序配合使用
  • test-recv-send.c —CAN BUS扩展格式中即周期发送又接收服务端測试程序, 与以下的程序配合使用
  • test-send-recv.c —CAN BUS扩展格式中即周期发送又接收客户端測试程序, 与上面的程序配合使用

二、编译流程

1) 下载源代码

$ git clone https://git.oschina.net/fulinux/libcanbus.git

2) 进入libcanbus文件夹中

$ cd libcanbus

3) 查看tag版本号

$ git tag

4) 选择最新的tag

$ git checkout vx.x.x

注上面命令行中的"x"代表最新的tag版本号中的版本号号码

5) 配置选项, 检測环境、依赖关系等。然后编译

$ ./configure && make

注: 当然你能够依据实际须要,为configure加入选项,比如加上--enable-static选项以使能静态库编译选项

6) 安装(能够不用安装)

$ sudo make install

三、測试库套件使用

1) 进入util文件夹

$ cd util

**2) 首先载入虚拟can设备vcan0

$ sudo sh start.sh

**3) 在一个终端中执行接收函数

$ ./recv-test

**4) 在还有一个终端中执行发送函数

$ ./send-test

**5) 静态编译
注:静态编译的优点是能够直接在其它平台上执行,而不须要库文件。

$ make CFLAGS+=--static LDFLAGS+=-static

四、libcanbus库主页以及邮件列表

库主页用于具体说明库的相关内容。大家亦能够在issues和博客以下反馈你使用过程中所遇到的问题和想法。希望大家能积极的改进该库。并在git@oschina上发起合并请求。如果确有改进,我会将其合并到master分支上来。当然你首先要是这个站点的用户,而且须要fork该库项目。
你也能够直接通过邮件的方式将问题和想法发给我。

1)库主页
http://blog.csdn.net/fulinus/article/details/39938795

2)BUG提交
https://git.oschina.net/fulinux/libcanbus/issues **3)邮件列表
E-mail: fulinux@sina.com
author: fulinux

libcanbus官方主页的更多相关文章

  1. libmsgque官方主页

    libmsgque 消息队列(MESSAGE QUEUE)库项目简析 注: 本文如果你已经有linux开发环境 请确保你使用本库时是tag版本号. target=libmsgque-1.0 本项目採用 ...

  2. 音视频下载Chrome插件 官方主页

    2019年3月20日前的旧版有不能下载的情况,请使用下面的新版 音视频下载是个点击图标后就能下载网页里正在播放的音视频文件的软件 下载:官方下载                百度网盘     Chr ...

  3. [python]python官方原版编码规范路径

    1.进入python官方主页:https://www.python.org/ 2.按如下图进入PEP Index ​ 3.选择第8个,即为python的规范 ​

  4. UE4新手引导之下载和安装虚幻4游戏引擎

    1) 进入虚幻4的官方主页(https://www.unrealengine.com/) 这里你可以获得关于虚幻4的最新资讯,包括版本更新.博客更新.新闻和商城等.自2015年起,该引擎已经提供免费下 ...

  5. mac下安装及配置tomcat

    mac下的软件不像windows下的程序那样写注册表,对于tomcat的安装来说,在mac下是名符其实的绿色软件,具体操作如下: 1.到 apache官方主页 下载完整 tar.gz文件包.(没有专门 ...

  6. Postman接口调试神器-Chrome浏览器插件

    首先大家可以去这个地址下载 Postman_v4.1.3 这个版本,我用的就是这个版本 http://chromecj.com/web-development/2014-09/60/download. ...

  7. EasyPR--开发详解(6)SVM开发详解

    在前面的几篇文章中,我们介绍了EasyPR中车牌定位模块的相关内容.本文开始分析车牌定位模块后续步骤的车牌判断模块.车牌判断模块是EasyPR中的基于机器学习模型的一个模块,这个模型就是作者前文中从机 ...

  8. RSS阅读器

    RSS阅读器(Really Simple Syndication)是一种软件/程序,实质都是为了方便地读取RSS和Atom文档.大概就是实现了订阅式阅读,推送用户感兴趣的新闻,博客等(比如等某位博主更 ...

  9. Java导出excel

    一.介绍 常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际的开发中,很多时候需要实现导入.导出Excel的应用. ...

随机推荐

  1. ROS-导航功能-Gazebo

    前言:仿真的整体思路,先启动仿真环境,再启动导航功能. 前提:已下载并编译了相关功能包集,如还未下载,可通过git下载:https://github.com/huchunxu/ros_explorin ...

  2. 使用MALTAB标定实践记录

    记录一下整个相机的标定矫正过程,希望能够帮助到刚学习标定的童鞋们- 首先下载matlab calibration toolbox,百度搜索第一条就是了(http://www.vision.caltec ...

  3. MySQL命令学习之技巧(博主推荐)

    关于,这篇博客呢,是

  4. spring定时任务Cron时间设定

    直接举例: 0 10 0 * *?分别对应的是 秒 分 时 日 月 周 年 秒(0–59)分钟(0–59)小时(0–23)日(1–31)月(1–12或JAN–DEC)周(1–7或SUN–SAT)年(1 ...

  5. 复习HTML+CSS(9)

    n  CSS简介 CSS:Cascading Style Sheets 层叠样式表 CSS的主要目的:是给HTML标记添加各种各样的表现(格式.样式).比如:文字样式.背景.文本样式.链接样式. 提示 ...

  6. Android第一次项目

    学习了一个月的Android,接触了人生中第一个安卓项目,对于一个小白来说,总结是很重要的学习方法,以下我把学到的东西总结以下: 1. 1>okhttp3用法解析(边贴代码边熟悉) public ...

  7. oracle排序union和union all区别

    是这样的,表格中有几个属性,比如age吧是之一,age是字符类型的数字,select之间由union连接,此时是无法对前面的select语句进行order by的,也就是无法排序,无法达成我要的按ag ...

  8. jQuery中容易让人困惑的东西

    前言:jqueryt很灵活,太灵活了,可以说是他一个优点,也是他一个缺点,达到一种效果,十个人也许会用十种不同的方法来实现这个过程,结果一样,过程不一样,这到底是好,还是坏呢. 一,什么是jquery ...

  9. EnforceLearning-被动强化学习

    前言: 画图挺好:深度学习进阶之路-从迁移学习到强化学习 专家系统给出了知识节点和规则,使用粒度描述准确性,依靠分解粒度解决矛盾,并反馈知识和推理规则更新.专家系统与机器学习有本质区别,但从机器学习的 ...

  10. 【sqli-labs】 less28 GET- Error based -All you Union&Select Belong to us -String -Single quote with parenthesis(GET型基于错误的去除了Union和Select的单引号带括号字符串型注入)

    这个不是基于错误的吧,看源码可以知道错误并没有输出 那就使用;%00和order by试一下 http://192.168.136.128/sqli-labs-master/Less-28/?id=1 ...