python-can 的使用

2023-05-16

  • 最近在搞 websocket, 服务端是用 python 写的,所以,我需要用python 控制 can 去传输相关信息。

  • python-can 模块就是 python 控制 can 的模仿。

  • 利用 buildroot 去生成 python-can 模块

    cd  $BUILDROOT_PATH
    make menuconfig 
    Target packages  --->
        Interpreter languages and scripting  --->
            [*] python3
                External python modules  --->
                    [*] python-can 

    make 
    // 生成的文件在   output/target/usr/lib/python3.5/site-packages/
    //  将这个文件 拷贝到自己的文件系统的 ust/lib/python3.5 里面
  • python-can 文档地址:

    https://python-can.readthedocs.io/en/latest/index.html#
  • python-can 的使用

    #!/usr/bin/python3
  
    import os;    '''  这是加载 os 模块, 调用shell 命令 '''
    import can;      '''  加载python-can 模块 '''

    can.rc['interface'] = 'socketcan_native'   ```  Linux 里面的 socketcan 在am335x 上面应该使用这个 ```
    can.rc['channel'] = 'can1'                  ''' can 接口名字  '''
    can.rc['bitrate'] = 1000000                ''' 波特率       1M '''
    from can.interfaces.interface import Bus
    '''  这个函数是can 的启动函数 '''
    def can_setup(can_name):
        can_setup_command = "canconfig " + can_name + " bitrate 1000000 restart-ms 1000 ctrlmode triple-sampling on";
        can_start_command = "canconfig " + can_name + " start";
        pass;
        os.system(can_setup_command);
        os.system(can_start_command);
    '''  can 停止函数  '''
    def can_stop(can_name):
        can_stop_command = "canconfig " + can_name + " stop";
        os.system(can_stop_command);
    '''   发送信息 '''
    def send_one():
        bus = can.interface.Bus();
        msg = can.Message(arbitration_id=0x7f,
                data=[11, 25, 11, 1, 1, 2, 23, 18], 
                extended_id=False);
        try:
            bus.send(msg);   ''' 发送信息 '''
            print("Message sent on {}".format(bus.channel_info));
        except can.CanError:
            print("Message NOT sent");
        
    def recv():
        bus = can.interface.Bus();
        msg = bus.recv(100);   ''' 接收信息 '''
        try:
            bus.send(msg);
            print(msg);
            print(msg.data[0]);              #  接收回来的第一个字节的数据
            print(msg.arbitration_id);    # 接收回来的ID
            return msg;
        except can.CanError:
            print("Message NOT sent");

    if __name__ == "__main__":
        '''   can_setup("can1"); '''
        send_one();
        recv();
        ''' can_stop("can1"); '''
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python-can 的使用 的相关文章

随机推荐

  • Git中分支merge和rebase的适用场景及区别

    几乎所有的版本控制工具都有branch功能 xff0c branch主要用于以下几个场景 xff1a 1 xff0c 控制产品OEM 基本上做产品 xff0c 不同的客户都会提出多种不同特性需求 xff0c 最简单的例子就是LOGO和标题完
  • sass安装与教程

    首先下载ruby http dlsw baidu com sw search sp soft ff 22711 rubyinstaller V2 2 2 95 setup 1439890355 exe 安装时注意勾选一下选项 安装完ruby
  • 集成学习原理小结

    集成学习 ensemble learning 可以说是现在非常火爆的机器学习方法了 它本身不是一个单独的机器学习算法 xff0c 而是通过构建并结合多个机器学习器来完成学习任务 也就是我们常说的 博采众长 集成学习可以用于分类问题集成 xf
  • 这款APP明确告诉你,无人机在什么地方可以飞

    美国联邦航空管理局 xff08 FAA xff09 为无人机管制推出了一个新的应用 B4UFLY xff0c 用来向用户显示无人机飞行的合法范围 关于如何有效的对无人机飞行进行管制 xff0c 已经是老生常谈的问题了 xff0c 除了制定相
  • 什么是委托?为什么要使用委托?什么是事件?

    1 什么是委托 xff1f 首先声明一个委托 xff1a public delegate string IsLengthFive string s 下面写几个方法 xff1a public string DoWork string a pu
  • 读取多超声波传感器

    读取多超声波传感器 1 背景2 使用教程2 1 接线说明2 2 上传协议 3 ROS节点使用3 1 下载与配置3 3 常见问题 无串口权限 4 更新程序参考资料 该模块是一个开源模块 xff0c 并提供了配套的ROS节点 xff0c 接收串
  • 系统级性能分析工具perf的介绍与使用

    测试环境 xff1a Ubuntu16 04 43 Kernel xff1a 4 4 0 31 系统级性能优化通常包括两个阶段 xff1a 性能剖析 xff08 performance profiling xff09 和代码优化 性能剖析的
  • VR的商業模式

    1 硬件销售 根据Digi Capital预估 xff0c 在5年内 xff0c AR VR将会有数亿量级的用户数 从免费到高端系统 xff0c 硬件销售将获利最多 届时每由AR VR生成的10美元利润 xff0c 就有4美元收入属于硬件销
  • arm汇编基础(转)

    先看个例子 xff1a void test2 int a int b int c int k 61 a j 61 b m 61 c GCC反汇编 xff1a 00000064 lt test2 gt mov ip sp IP 61 SP 保
  • STL学习思想

    1 模版 xff1a 一定要注意参数和返回值的模版 2 STL一系列的API xff1a 一定要注意返回值 3 容器中的都是值拷贝 而不是引用 在执行插入时 内部实行拷贝动作 所以STL中插入类时 一般都必须 xff1a 无参构造函数 拷贝
  • 中国地质大学(北京)软件工程非全2019研究生复试总结

    呼 今早刚出家门就收到地大发来的拟录取通知 xff0c 算是圆满的给2019考研划上了句号 前言 3 26号去参加了中国地质大学 xff08 北京 xff09 软件工程专业非全日制的复试 因为本人初试分数较低 xff0c 调剂的时候报了不少
  • [转载] 职业生涯步步高:一位知名经理人的职业生涯感悟

    这篇5万多字的文章在网上流传甚广 简单考证了一下 应该是出自landy0985 64 天涯之手 最早是07年时发表在天涯上 文章很长 讲了很多东西 找工作的人和考虑自己职业规划的人可以参考一下 分为以下几个部分 序言 第一章 职业生涯扬帆于
  • C语言的源程序有没有主函数,一个c源程序必须包含一个main函数吗

    是的 xff0c 必须包含一个main函数 main函数是程序默认的入口 xff0c 程序的执行是从main函数开始 xff1b 如果没有main函数 xff0c 则编译器不知道程序从哪里开始执行 xff0c 所以一个c源程序有且仅有一个主
  • PX4/PixHawk无人机飞控应用开发

    最近做的一个国防背景的field UAV项目 xff0c 细节不能多谈 xff0c 简单写点技术体会 1 PX4 Pixhawk飞控软件架构简介 PX4是目前最流行的开源飞控板之一 PX4的软件系统实际上就是一个firmware xff0c
  • PID算法终于弄明白原理了,原来就这么简单

    看起来PID高大尚 xff0c 实则我们都是被他的外表所震撼住了 先被别人唬住 xff0c 后被公式唬住 xff0c 由于大多数人高数一点都不会或者遗忘 xff0c 所以再一看公式 xff0c 简直吓死 了解了很浅的原理后 xff0c 结果
  • 开源自主导航小车MickX4(九)基于move_base 的自主导航框架

    开源自主导航小车MickX4 xff08 九 xff09 move base 导航框架 1 move base 导航框架整体分析1 1 map server1 2 AMCL定位1 3 move base 包 2 AMCL 定位 配置2 1
  • 解决莫名其妙出现connection closed的错误

    最近发现使用了springMVC的新项目偶尔出现connection closed 同事反映当访问同一个controller时经常出现类似错误 上回发现在使用 lt context component scan base package 6
  • MathType 6.0 中某些符号不能正确显示 (乱码) , MT Extra (TrueType) 字体问题解决

    MathType中打 符号显示时方框 xff0c 显然是字体的问题 xff0c 上网查了一下 xff0c 解决方案如下 xff1a 在打开MathType 6 0时 xff0c 有时会提示MathType需要安装一个较新版本的MT Extr
  • IC开短路测试(open_short_test),编程器测试接触不良、开短路

    IC开短路测试 open short test 编程器测试接触不良 开短路用的该是这个原理 http kitebee gnway net forum php mod 61 viewthread amp tid 61 69654 IC开短路测
  • python-can 的使用

    最近在搞 websocket 服务端是用 python 写的 xff0c 所以 xff0c 我需要用python 控制 can 去传输相关信息 python can 模块就是 python 控制 can 的模仿 利用 buildroot 去