如何解决如何在 OBD2 的帮助下从汽车获取原始 CAN 流量?
我制作了一个带有 OBD2 电缆的设备,将其 CAN-H 和 CAN-L 线焊接到名为 USBtin (https://www.fischl.de/usbtin/) 的 USB-CAN 接口。 当我尝试 OBD2 的模式 1 时,我只收到了一个查询的回复,例如:
@objc func pinchRecognized(pinch: UIPinchGestureRecognizer) {
// unwrap the view from the gesture
// AND
// unwrap that view's superView
guard let piece = pinch.view,let superV = piece.superview
else {
return
}
// this is a bit verbose for clarity
// get the new scale
let sc = pinch.scale
// get current frame of "piece" view
let currentPieceRect = piece.frame
// apply scaling transform to the rect
let futureRect = currentPieceRect.applying(CGAffineTransform(scaleX: sc,y: sc))
// if the resulting rect's width will be
// greater-than-or-equal to superView's width
if futureRect.width >= superV.bounds.width {
// go ahead and scale the piece view
piece.transform = piece.transform.scaledBy(x: sc,y: sc)
}
pinch.scale = 1
}
-
是否有 OBD 模式或 PID 会一直向我发送最新值,直到我与 OBD 断开连接?
-
是否有一种模式或 PID 可以捕获正确的原始 CAN 流量,如下所示?
slcan0 7DF [8] 02 01 0C CC CC CC CC CC
slcan0 7DF [8] 02 01 0B CC CC CC CC CC
slcan0 7E8 [8] 04 41 0C 0C 06 00 00 00
slcan0 17F00010 [8] 20 10 00 00 00 00 00 00
slcan0 17F00010 [8] 20 10 00 00 00 00 00 00
slcan0 17F00010 [8] 20 10 00 00 00 00 00 00
slcan0 7DF [8] 02 01 0C CC CC CC CC CC
slcan0 7DF [8] 02 01 0B CC CC CC CC CC
slcan0 7E8 [8] 04 41 0C 0C 0A 00 00 00
slcan0 17F00010 [8] 20 10 00 00 00 00 00 00
slcan0 17F00010 [8] 20 10 00 00 00 00 00 00
slcan0 17F00010 [8] 20 10 00 00 00 00 00 00
slcan0 7DF [8] 02 01 0C CC CC CC CC CC
slcan0 7DF [8] 02 01 0B CC CC CC CC CC
slcan0 7E8 [8] 04 41 0C 0C 0C 00 00 00
我将不胜感激!
解决方法
-
没有。 OBD2 基于请求/响应方案。如果您想定期更新价值,则需要定期询问。
-
当然可以。如果您关闭所有消息过滤器(实际上应该是 SocketCAN 的默认设置)并继续读取,您应该接收所有流量——前提是您与 ECU 有直接连接。较新的汽车倾向于在 OBD2 插座后面连接网关 ECU 以过滤某些功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。