問題タブ [can-bus]

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 投票する
0 に答える
120 参照

c# - 別の backgroundworker-thread から呼び出された Timer-Backgroundworker

私は現在、C# の CAN テクノロジと、メッセージの受信と送信に関連して多くの開発を行っています。これまでのところ、私が送信するすべてのメッセージは消費者に正しく送信され、プロデューサーが送信するすべてのメッセージは消費者 (私) に正しく送信されます。

メッセージが受信 FIFO に到着するたびに、_messageReceivedEvent がトリガーされます。その後、1 つ以上の受信メッセージの処理が開始されます。メッセージ処理の後、既存のタイマー (別のスレッド) をリセットする必要があります。これは、5 秒以内にメッセージが到着しない場合、タイマー スレッドはリセットされず、経過した場合、タイマー スレッドは経過したことを通知し、1 つのパラメーター (_isDataCommunicationStillAlive) を「FALSE」に設定する必要があることを意味します。

Main-Thread (MessageReceiption-Backgroundworker を呼び出します):

DataCommunicationTimer (Backgroundworker (MessageReceiption から呼び出される) として):

問題は、Timer-Backgroundworker が 1 秒以内に終了するため、動作が理解できないことです。別の問題は、私が知らないことですが、残り時間に関する特定のタイマーインスタンスを読み取る方法です...

これらのコード行に基づいて、バグを見つけることができません。:(((

手伝っていただけませんか?!

0 投票する
1 に答える
167 参照

embedded - Infineon XMC4400 CAN メッセージ オブジェクトと LIST レジスタ

Infineon XMC4400 コントローラを使用しており、ベーシック CAN 機能をフル CAN 機能に変換しています。LISTレジスタを使用したメッセージオブジェクトの割り当てを理解するのに苦労しています-私の知る限り-

  • XMC4400 は 64 個のメッセージ オブジェクトをサポートし、各 MO を LIST レジスタの 1 つに割り当てる必要があります。
  • MultiCANモジュールには8つのLISTレジスタがあります
  • PANCTR を使用すると、メッセージ オブジェクトを LIST との間で更新/変更/削除できます。

(間違っていたら訂正してください。)

私の質問は、64 個すべての MO を単一の LIST レジスタに割り当てることはできますか、それとも何か制限がありますか? リファレンスマニュアルに明確な説明が見つかりません。

0 投票する
0 に答える
243 参照

can-bus - JSSC readBytes() - 入ってくるものとそれをどうするか?

私は学生で、プロジェクトとして、CAN と通信するソフトウェアを開発しています。CAN は、シリアル オーバー USB インターフェイスを介して読み取ることができます。これらのバイトを受信したときに何が起こるか混乱しています。-127-128 形式で受信し、Java 演算子 & 0xFF を介して int に変換しています。

そこから、これらのバイトで何が起こっているのでしょうか? 受信しているパケット内のデータだけでなく、STX と ETX も検索できるようにしたいと考えています。それ、どうやったら出来るの?これらのバイトの整数値を見つけることができます。それはそれについてです。このデータは、JSSC の readBytes を介して byte[] に受け取ります。

STX は 0x02 です。バイト配列のどこで、どのように見つけることができますか? 整数のみを受け取っています。

受信側で何か完全に間違っているのでしょうか、それともこのデータはシリアル化されていて、それについて何も知りませんか?

私の新人を許してください。CANへのRXおよびTXの方法を学ぼうとしています。

ありがとう

0 投票する
1 に答える
1613 参照

can-bus - CANopen システムでマスター ハートビートが見つからないため、ノードが反応しない

CANopenのハートビート プロトコルについて奇妙な発見があります。たぶん、他の誰かがこのようなものを見たことがあり、おそらくこのように動作するはずです... とにかく、これがそれについてです:

CANopen には 2 つのタイムアウト ベースのライフ ガード メカニズムがあります。1 つ目はノード ガードです。

もう 1 つはハートビートと呼ばれます。それは非常に単純です。ネットワーク上のすべての参加者が、そのノード ID とその状態を示す通常のメッセージを送信します。頻度はオブジェクト 0x1017sub0 によって定義され、ハートビート プロデューサー時間と呼ばれます。ゼロに設定すると、ハートビートは送信されません。

他の参加者は、ネットワーク上で検索するノードの数に加えて、2 つの連続するハートビート メッセージ間の最大時間を定義できます。この情報は、オブジェクト 0x1016sub1..n に、この特定のノードがリッスンする必要があるノードと同じ数の 32 ビット エントリとして格納されます。

エントリは、ノード ID (ビット 22 から 16) と、ハートビート消費者時間 (ビット 15..0) と呼ばれる、ハートビート間に経過する可能性がある前述の最大時間で構成されます。ここでも、エントリがゼロの場合は無視されています。

お気づきかもしれませんが、ネットワーク マスター (ノード ID 1) とスレーブ (ノード ID 2 ~ 127) の間に区別はありません。

これまでのところ、理論は次のとおりです。

ネットワーク内のスレーブ ノードの 1 つをマスターのハートビート コンシューマーとして構成しているため、オブジェクト 0x1016sub1 に 0x000107D0 のようなエントリがあります。マスターからのハートビート メッセージが少なくとも 2 秒後に期待されることを意味します。

これが 2 つの例で機能することを確認しました。しばらくマスター ハートビートを送信してから停止すると、ノードは運用前モードに戻るか、適切な緊急メッセージを送信します。

master-heartbeat-messages を送信しない場合、ノードを起動 (運用モードに移行) した後、ノードが運用前モードに戻るか、適切な緊急メッセージ、あるいはその両方。しかし、私が試した 2 つの例では、何も起こりませんでした。ハートビートをまったく送信しない場合、ノードはハートビートを予期せず、そのまま実行を続けます。

2 つの例は、互いに大きく異なります。おそらく同じCANopenスタックライブラリを使用しているかどうかはわかりません。

説明はありますか?

0 投票する
0 に答える
91 参照

vb.net - CANcaseXL を介して構成 MSG を ARS308 レーダーセンサーに送信する際のエラー

私は、CANcaseXL を介して ARS308 レーダー センサーから CAN メッセージを送信および復元することを含む研究に取り組んでいます。ID 0x200 を使用してこの構成メッセージを送信できる VB.net コードを作成できましたが、突然レーダーが監視していたにもかかわらず、メッセージへの応答を停止し、データが PC から CANcaseXL を介してレーダーに送信されたことを確認できました。さらに、ARS308 レーダー センサーのマニュアルには記載されていない ID 0x478 、 0x271 のようなレーダーから奇妙なメッセージ ID を受信して​​いるため、それらのデータが何であるかわかりません。

どんな助けにも感謝します!

0 投票する
0 に答える
289 参照

can-bus - CANの実装とDE9

下記リンク参照。

https://mbed.org/handbook/CAN

ここに画像の説明を入力

1) ブレッドボードで同じ図を使用できますか? つまりCan bus part (connection A in pic)、2本のワイヤが2つの120オームの抵抗に接続されている場所ですか?このバスは必要ですany external voltage supplyか、それともブレッドボードにそのまま接続できますか。そして、(connection B)ノードからバスに追加されます。

2) また、CAN バスの実装に DE9 が使用されていることも読みました。CAN バスが DE9 でどのように実装されるか、つまり DE9 での実装を教えてください。

0 投票する
3 に答える
2036 参照

android - 温度換算 2バイト

温度の 2 バイトを変換するのが困難です。温度のメッセージを 2 バイトで取得するコントロール ユニット (温度センサー) があります。

1) 例:

2) 例:

3) 例:

4 ) 例:

メッセージを温度に変換する方法がわかりません。

ご支援をお願いします。誰が私に解決策を与えることができますか、それは私のプロジェクトで協力できます(コントロールユニットからメッセージを受信するアプリアンドロイドを作成します)

0 投票する
2 に答える
598 参照

can-bus - j1939 で同じ名前の 2 つのノードが同じアドレスを要求するとどうなりますか?

j1939 で同じ名前の 2 つのノードが同じアドレスを要求している場合、この状況ではどうなりますか? いずれかのノードがアドレスを要求するか、エラーが発生しますか?