問題タブ [j1939]
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.
python - pythonでのsocketcan J1939フィルタの使用
Python では、Linux カーネル ドキュメントに記載されているように、J1939 フィルタリングを使用しようとしています: https://www.kernel.org/doc/html/latest/networking/j1939.html
次のコードは、setsockopt() 行 (フィルターのセットアップ) で失敗します。
まず、カーネルのドキュメントには、SOL_CAN_J1939 を最初の引数として使用することが記載されています。ただし、socket パッケージには socket.SOL_CAN_J1939 は存在しません。したがって、この場所のコードを見ると、この int 値が 107 であることを理解できました: http://socket-can.996257.n3.nabble.com/RFC-v3-0-6-CAN-add-SAE -J1939-プロトコル-td7571.html
setsockopt() の 3 番目の引数については、j1939_filter 構造 (前のリンクのコードで説明されているように 26 バイト) に一致するようにフィルターをパックしました。これは、raw CAN の can.interfaces.socketcan.utils で行われていることと似ています。
setsockopt() が失敗する原因は何ですか?
python - J1939 DBC - asammdf でデコードする MF4 を作成します。
CSSエレクトロニクスと同じ方法で、「J1939.dbc」によってデコードされるMF4ファイルを作成しようとしています
サンプル ファイルを生成するコードは次のようになります。
写真上:
1) 生成されるファイルはこれ
2) CAN ロギングが無効になっています - CSS エレクトロニクスのファイルを使用すると、「CAN ロギング」が有効になります。
ただし、手動でデコードを生成しようとすると、空のファイルが返されます
おそらく、ID と DataByte 列をデコードに指定する必要がありますが、いろいろ試しましたがうまくいきません。
私は何ができますか ?
