【发布时间】:2020-11-11 08:28:09
【问题描述】:
我会尽量保持简短。我有一个 C 应用程序,它使用以下方法打开可以套接字端口 ...
struct sockaddr_can lCanAddr;
struct ifreq lIfr;
if ((*aCanSocket = socket(PF_CAN, SOCK_RAW, CAN_RAW)) < 0) {
log_error("socket not created");
return -1;
}
strcpy(lIfr.ifr_name, CANSOCKETNAME);
ioctl(*aCanSocket, SIOCGIFINDEX, &lIfr);
lCanAddr.can_family = AF_CAN;
lCanAddr.can_ifindex = lIfr.ifr_ifindex;
....
如何检测以下情况:
- 当 CAN 总线损坏或没有设备连接到 CAN 端口时
- CAN 总线关闭错误 我尝试了一些方法,尝试定期读取或写入套接字,但这不会给我带来任何错误。谁能建议我一种检测这种情况的方法。我正在使用 C 来实现。感谢您的时间和耐心。
【问题讨论】:
-
我添加了 Linux 作为标签,因为我认为那是您所指的套接字库。
-
谢谢。你对这个问题有什么想法吗
-
没用过那个库,帮不了你。
-
“库”是Linux的SocketCAN API。您可以使用
socketcan标签来询问有关它的问题。