我是在虚拟机中用VSCode配置anaconda环境,并利用anaconda创建的虚拟环境(python38:是python3.8版本)

1、首先进入python虚拟环境(pyhton38)

  1. 首先进入python虚拟环境(pyhton38)
    在这里插入图片描述
    pip list 查看目前的虚拟环境python38安装的库
    在这里插入图片描述

2. 创建一个文件夹pyCanopen,

下面的操作都在这个文件夹下执行。

mkdir pyCanopen

3. 安装virtualenv库,并创建python项目环境

这个库可以为各项目提供一个独立的虚拟运行环境,互不干扰。

pip install virtualenv

//创建python项目的虚拟环境,命名为venv
virtualenv venv

在这里插入图片描述

激活项目环境

source venv/bin/activate

在这里插入图片描述

4. 安装canopen库

pip install canopen

查看安装的库
在这里插入图片描述

5. 创建一个虚拟can设备,叫vcan0

$ sudo modprobe vcan	//加载vcan模块
$ sudo ip link add dev vcan0 type vcan	//添加vcan0网卡
$ sudo ip link set up vcan0		//开启vcan0

在这里插入图片描述
查看vcan0

ifconfig -a

在这里插入图片描述

sudo ip link set dev can0 down		//关闭can0
sudo ip link del dev can0		//删除can0

6. CAN 通信测试工具 canutils

6.1. 安装can-utils
can-utils工具有5个独立的程序:

  • canconfig:
    用于配置CAN总线接口的参数,主要是波特率和模式;
  • candump:
    从CAN总线接口接收到的所有数据重新发送到CAN总线接口;
  • canecho:
    把CAN总线接口接收到的所有数据重新发送到CAN总线接口;
  • cansend:
    往指定的CAN总线接口发送指定的数据;
  • cansequence:
    往指定的CAN总线接口自动重复递增数字,也可以指定接收模式并校验检查接收的递增数字。
sudo apt-get install can-utils

//监控van0
 candump -t d vcan0

在这里插入图片描述
在这里插入图片描述

7. 写一个test代码

其中用到的CANopenSocket.eds,可以找下下载下来,放到代码同一目录中。

#!/usr/bin/python3
import time
import canopen

running = True

# def sigint_handler(singnum,frame):
#     global running
#     print("")
#     running = False
#     exit(0)
if __name__ == '__main__':
    network = canopen.Network()
    network.connect(bustype = 'socketcan', channel = 'vcan0')

    node = network.create_node(6, 'CANopenSocket.eds')
    node.nmt.send_command(0)
    node.nmt.state = 'PRE-OPERATIONAL'
    node.nmt.start_heartbeat=(1000)

    while running:
        print("hello")
        pass
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐