1

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

.../mono-3.2.8/mono/metadata/socket-io.c
.../mono-3.2.8/mcs/class/System/System.Net.Sockets/AddressFamily.cs
.../mono-3.2.8/mcs/class/System/System.Net.Sockets/ProtocolFamily.cs

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

最好的问候本

4

1 回答 1

2

最简单的解决方法是用 C 编写一个库,它处理 SocketCAN 的东西,然后只从 C# 代码调用库调用。请参阅本教程

或者,您可以查看socketcand并实现其基于 TCP 的 API。

于 2014-04-02T09:25:00.720 回答