问题标签 [socketcan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1928 浏览

python - CAN 总线访问 Popen 的更快替代方案?

我目前正在使用 Popen 通过命令行向实用程序(尤其canutilscansend函数)发送指令。

整个函数看起来像这样。

我在尝试Popen快速连续发送帧(帧实际上执行发送帧的命令)时遇到了一些问题,但发现 Popen 行需要大约 35 毫秒的时间来执行......每个另一条线不到2我们。

那么......什么可能是调用cansend函数的更好方法(再次,它是canutils实用程序的一部分......_CANSend是上面调用的python函数)更快?

0 投票
1 回答
1825 浏览

linux - 如何解决这个错误——在编译 socketcan 实用程序时

我已经从 SVN 下载了 can 实用程序。因为默认情况下可以实用程序不在内核中。

我正在使用的内核是:--

然后我重新编译了实用程序。这是找不到isotp.h的错误:---

0 投票
4 回答
14493 浏览

c - SocketCAN连续读写

我正在编写一个程序,它不断地向 CAN 总线发送“Hello”并通过 SocketCAN 从总线读取数据。我希望这两个步骤是独立的。这意味着即使总线上没有数据,程序仍然会发送“Hello”。但是用通常的 CAN 读取是不可能的,因为这个函数会停止程序运行并等待数据。

有没有办法让它非阻塞或只等待几毫秒的数据?

0 投票
1 回答
1995 浏览

c# - 使用单声道的 SocketCAN C#

我对单声道和 C# 真的很陌生,但我想使用套接字通过 CAN 打开通信。问题是实现了许多协议地址系列,但目前单声道不支持 CAN。系统内核支持它,但我无法以这种方式修补文件以降低到 SystemCall 级别。因此,如果有人读到这个是非常好的单声道开发社区的一员,请帮助我和许多其他需要这个功能的人。自从三周以来,我用谷歌搜索了任何东西,并试图找到自己的解决方法来启动它,但直到现在还没有成功。即使我的问题在 stackvoerflow 上无法通过这个问题得到解决,我也希望激励那些在改进单声道和硬代码方面比我更好的人,以便其他人能够轻松地使用 CAN 和单声道。SI认为基本问题是,变量 AF_CAN 和 PF_CAN 不是在单声道中实现的。我尽力通过添加值为 29 的 PF_CAN 和 AF_CAN 来调整这些文件,但这对我不起作用

我希望得到帮助,因为它都在那里,但我无法将它们放在一起。使用 C 可以很容易地以这种方式打开一个套接字,并且 CAN 总线工作正常,但使用单声道时,缺少一块小石头才能使其全部正常工作。

最好的问候本

0 投票
1 回答
2037 浏览

c++ - SocketCAN c++ 包装器

我们想在用 C++ 编写的 Linux 应用程序中使用SocketCan。有谁知道 SocketCan 的一个不错的 C++ 包装器?否则我会写点东西。

0 投票
1 回答
253 浏览

c - 从多个线程写入套接字时,我是否需要“选择”以等待写入可用性?

我有在 Linux 上使用多个线程写入同一个套接字的代码,就像这样,这似乎在我的开发测试中工作(伪代码):

重要的是,所有这些线程都使用单个套接字进行写入(它实际上是一个 SocketCAN 套接字,我需要避免在多个套接字上重复传入帧处理的开销——我有一个套接字、一个读取线程和多个写入线程)。

预期的行为是write等待硬件发送缓冲区已满(最多几微秒)而不是失败;但我不确定 SocketCAN 驱动程序是否这样做,或者它是否是一般套接字的保证行为等。

所以我的问题是:以上是否足够,或者我是否还需要等待套接字可用于写入,例如:

它对我测试工作正常,但我对我的测试不是 100% 有信心。

0 投票
1 回答
290 浏览

c - 从 struct can_frame 中检索选项卡中的十六进制 argv[]

我正在研究套接字 CAN,并实现了以下代码:

我系统地获得了分段错误。

基本上,我用 ./scriptname can0 can1 0x1ffff e 10 5 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x1E 调用脚本

结果是:

在 can.h 中,结构是:

目前我不明白为什么会发生这种分段错误。目的是通过专用套接字在 CAN 上发送这些值。

预先感谢

0 投票
0 回答
1584 浏览

raspberry-pi - Raspberry Pi 中的 CAN 总线和 SPI 通信

我正在使用两个树莓派开发自适应巡航控制原型。我已经在 pi 上测试了 SPI,它可以工作(通过环回检查)。现在我想将此数据写入控制器。因此,在参考了资源后,我发现应该使用 Socketcan 来将 can 控制器与 pi 接口。所以我要求有人解释通信是如何发生的 1. 在写给 spi 之后,控制器如何获取这些数据?2. 如果socket可以用来从spi取数据,我需要知道怎么做?

谢谢

0 投票
1 回答
399 浏览

c - SocketCan Can ID 优先级

我是 SocketCan 的新手。我正在使用虚拟罐,我想知道 SocketCAN 是否基于 CAN ID 进行优先级排序。我的问题是,由于我使用的是虚拟罐,我正在发送数据,然后我立即收到发送的数据。我将尝试创建一个负载,我希望具有较低 CAN ID 的 CAN 帧在队列中等待更长时间,并且它们将在高优先级帧之后被接收。那么,SocketCAN 是否管理此优先级?

0 投票
1 回答
1497 浏览

javascript - node.js 中的 SocketCAN

我使用带有嵌入式 Linux 的 ARM 板,但它非常有限。不知何故,我设法安装了 node.js 和 npm。这个想法是在网页上的按钮单击事件上通过 CAN 总线发送数据。我只找到了一个名为“socketcan”的模块,但由于以下几行,我无法安装它:

我的板子无法执行第一行,这意味着我不能使用唯一找到的用于 node.js 的 CAN 工具。是否有其他可能性可以从 node.js 在 CAN 总线上读取和写入消息?