linux没有可用的缓冲区空间,SocketCAN linux没有可用的缓冲区空间

我想使用socketCAN定期发送一条带有device的消息

我创建了一个小脚本,如下所示:import os

import time

msg = "1FF#FFFFF00000000000"

os.system("sudo slcand -o -c -f -s6 /dev/serial/by-id/*CANtact* can0")

os.system("sudo ifconfig can0 up")

os.system("sudo ifconfig can0 txqueuelen 1000") # this does not help

start = time.time()

while True:

if round(time.time() - start, 1) % 60 == 0.:

print(str(int((time.time() - start) / 60)) + " minutes")

os.system("cansend can0 " + msg)

time.sleep(0.1)

我已经做了一些研究,发现对某些人来说设置txqueuelen是有效的。然而,这对我没有帮助。此脚本的输出如下所示:

^{pr2}$

在错误发生之前,设备停止发送这些消息。在错误消息出现之前,进出流量的指示灯LED停止闪烁大约10秒到几分钟。而且,我不能在接收端读取任何内容。缓冲区填满所需的时间变化很大,从几分钟到几小时不等。通常在10-20分钟内。在

我曾想过可能会有类似接收缓冲区的东西,因为我从没有读到它只是填满了。但我不知道这是否真的是这样,也不知道如何测试它,如何刷新缓冲区或重置它等等。我只需要发信息。我什么都不在乎。在

之后唯一的解决办法就是重启我的树莓皮,它为设备供电。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值