如何通过ValueCAN 4在Raspberry Pi 4 (Linux) 上使用SocketCAN。
英特佩斯控制系统有限公司已推出一个开源的API(Libicsneo)。它可以和python_ics配合使用整合英特佩斯车辆网络接口硬件到运行在Linux,Mac和Windows中的任何Python应用中。如果你想了解使用英特佩斯API来对你的设备进行编程,请参考The easy way to program ValueCAN 4 in python using Raspberry Pi (Linux)
硬件设置
使用DB-9F到OBD-II线缆连接ValueCAN 4–2硬件到neoOBD2 Simulator(可选),不需连接车辆,来接收或者发送CAN或CANFD消息。
			打开终端
安装dkms(Dynamic Kernel Module Support Framework)包。我们在Raspberry Pi中使用dkms包,因为它不包含内核头文件。在Ubuntu系统中,可以通过执行如下指令完成:
sudo apt install linux-headers-generic build-essential gcc git
 sudo apt-get install dkms
			从 www.github.com/intrepidcs克隆英特佩斯SocketCAN内核模块
git clone https://github.com/intrepidcs/intrepid-socketcan-kernel-module.git
			cd intrepid-socketcan-kernel-module
创建工程编译生成KO文件,使用如下make指令:
make
			运行结果文件将会是 intrepid.ko。该模块将会依赖于can,can_devhe can_raw。我们在makefile文件中使用一个脚本实现重新加载。但如果你想自行运行它们,你可以使用如下指令:
sudo modprobe can
sudo modprobe can_raw
sudo modprobe can_dev
sudo insmod intrepid.ko
使用lsmod指令确认模块已经加载
			如果你期望这些模块在启动的时候自动加载,请参考GitHub上面的说明页面 https://github.com/intrepidcs/intrepid-socketcan-kernel-module. 完成英特佩斯Socket Kernel模块设置之后,我们需要安装icsscand。英特佩斯icsscand是一个针对英特佩斯设备的用户模式SocketCAN的守护程序daemon。
 cd..  指令移出英特佩斯SocketCAN Kernel目录为了安装所需要的依赖程序,我们将会运行
sudo apt install git cmake gcc libusb-1.0-0-dev libpcap-dev build-essential
			完成依赖程序安装后,然后递归地克隆icsscand仓库代码,运行如下代码
 
git clone --recursive https://github.com/intrepidcs/icsscand.git
			切换到克隆后的目录  cd icsscand  并建立一个build目录,切换进去之后运行  mkdir build && cd build  
			调用 CMake,
cmake .. -DCMAKE_BUILD_TYPE=Release 
			编译daemon程序, 使用指令make
			Daemon程序就可以通过libicsneo-socketcan-daemon访问. Daemon程序实现你在后台运行英特佩斯的设备。启动Daemon程序,使用如下指令
  sudo ./libicsneo-socketcan-daemon 
			sudo ./libicsneo-socketcan-daemon -d
以守护进程方式运行。
			为了查看你的CAN接口设备,使用命令 sudo ip link。它们将会被标注为can0, can1等。它们会有一个别名分别对应着设备的序列号和设备上的网络通道。为了打开CAN接口发送和接收数据,使用命令sudo ip link set up can0,你可以替换can0实现你想打开的任何设备。
			现在你可以使用任何SocketCAN 应用程序跟设备通信了。一个很好的测试包是can-utils包。你可以通过 sudo apt install can-utils 获取该包。这个包里有个很好的测试工具candump,运行 candump can0 将会打印每行接收到的报文。
			安装 Intrepid SocketCAN 内核模块
安装并启动英特佩斯硬件的 SocketCAN 守护程序 daemon
查看并打开正确的CAN 接口
你可以阅读了解 intrepid-socketcan-kernel-module https://github.com/intrepidcs/intrepid-socketcan-kernel-module 以及 icsscand https://github.com/intrepidcs/icsscand
					