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. java joor 实现反射简单调用

    有时候需要用反射实现代码.直接用工具,joor 上代码: package com.ming.joor; import static org.joor.Reflect.*; public class T ...

  2. C#之纯数字判断

    public bool isNaN(string temp) { ; i <temp.Length; i++) { byte tempByte = Convert.ToByte(temp[i]) ...

  3. PHP序列化 反序列化

    序列化是将变量转换为可保存或传输的字符串的过程:反序列化就是在适当的时候把这个字符串再转化成原来的变量使用.这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性. 1. serialize和 ...

  4. 5.17 Quartz笔记

    有用到构建者模式: builder---JobDetail相当于需要构建者构建出来的一个配件:JobDetail为Job实例提供了许多设置属性,以及JobDetaMap成员变量属性,它用来存储特定Jo ...

  5. Burn Down Chart(2018.5.28~2018.6.3)

    任务安排 (2018.6.2 更新——前端总进度) (2018.6.3 更新——后端燃尽图) 娄雨禛[前端部分] 曾子轩[后端部分+燃尽图] 前端 齐天扬+刘鼎乾:设计两组页面,只要求框架和简单的 c ...

  6. SQL Server 一个简单的游标

    先看一下原表: DECLARE @id INT; DECLARE @name NVARCHAR(100); DECLARE c_department CURSOR FOR SELECT StuID, ...

  7. 【Oracle】服务器端监听配置

    一.静态监听 创建端口为1521的监听,静态注册,本机ip:192.168.10.2 [oracle@localhost ~]$ vi /u01/app/oracle/product/11.2.0/d ...

  8. 三维重建面试0:*SLAM滤波方法的串联综述

    知乎上的提问,高翔作了回答:能否简单并且易懂地介绍一下多个基于滤波方法的SLAM算法原理? 写的比较通顺,抄之.如有异议,请拜访原文.如有侵权,请联系删除. 我怎么会写得那么长--如果您有兴趣可以和我 ...

  9. BZOJ 3319: 黑白树 树+并查集+未调完+神题

    Code: #include<bits/stdc++.h> #define maxn 1000003 using namespace std; char *p1,*p2,buf[10000 ...

  10. Pytorch实战(3)----分类

    一.分类任务: 将以下两类分开. 创建数据代码: # make fake data n_data = torch.ones(100, 2) x0 = torch.normal(2*n_data, 1) ...