問題タブ [rs485]
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.
serial-port - C#でMbusからデータを正しく受信するには?
私は本当にひどい問題を抱えており、ほとんど病気になります。2 ~ 3 日間、私はこのプロトコルの問題に対処してきました。私が解決することを願っています。前もって感謝します。古い MsComm ライブラリを使用する Vb のコードがありました。そこで、すべてを C# で変更することにしました。ポートの開閉、データの送信などは大丈夫です。
Vbで; RS485経由でMbusドライバーからデータを受信するためのコードの次の部分があります。これを送信すると、データを取得するように応答します。それは動作し、問題はありません。
したがって、上記のコードは Vb と Vb.Net で正常に動作します。ただし、次のようにC#に変換すると; mbus ドライバーから応答がありません。RS485 経由でデータを送信しているときに、黄色の LED が点灯していることがわかります。通常、データを受信している間は、赤色の LED も点灯することがわかります。C# のコード ;
これには問題はありませんが、Vb コードは機能しますが、C# は機能しません。
C# では、以下は私のポートを開く関数の一部です。
すべて正常に動作します。先ほど言ったように、RS485 経由で Mbus を通るデータの流れを見ることができます。データを送信するたびに発火するTX LEDから見ることができます。しかし、もう一度言いますが、RX LEDは発火しません。
c# - シリアルポートへの信号の書き込み
USB - RS485 ケーブル経由で DMX 受信機にデータを書き込もうとしています。正しいデータ フレームを確認できますが、パケットが DMX プロトコルに従うには、ブレークと MAB 信号が必要です。私の質問は、そのような信号を生成する方法はありますか? 私の考えでは、hi 信号と lo 信号を遅延させてシリアル ポートに書き込むことでしたが、VS C# でこれを行う方法が見つかりませんでした。
c++ - シリアル送信終了時の Linux ポーリング
データを有効にするためにシリアルポートとgpioを使用して、アーム開発ボードにRS485を実装しています。
送信前にデータ イネーブルを High に設定していますが、送信が完了したら Low に設定したいと考えています。
次のように書くだけで簡単に実行できます。
ブロッキング モードからノンブロッキング モードに変更し、fd で poll を使用したいと考えていました。しかし、「送信完了」に対応するポーリング イベントが表示されません。
すべてのデータが送信されたときに通知を受け取るにはどうすればよいですか?
システム: Linux 言語: c++ ボード: BeagleBone Black
linux - ポイントツーポイント通信の RS485
ポイントツーポイント通信で TCP over RS485 を実現したいと考えています。ハードウェアの関係でRS232が使えません。私はまだ機器を持っていないので、何もテストできません。
Linux では、SLIP プロトコルなどで slattach プロセスを使用して 2 つのノード間でデータを送受信できますか?それとも RS232 でのみ機能しますか? RS485 が半二重であることはわかっています。衝突を防ぐために、その上にマスター/スレーブ プロトコルなどを実装する必要があります。
c - C プログラミングにおける strlen 関数について
現在、MPLAB IDE で PIC MCU の C プログラミングをコンパイルしています。文字列の長さを数えたいだけで、strlen 関数を使用しています。しかし、値0を返し続けます。以下は私のコーディングです:
メインループでは、この関数を取得しました:
また、CountData 関数は次のとおりです。
RXDATA の実際の長さは通常 50 を超えていますが、私の nLen は常に 0 を返します。何が問題なのか分かりますか? または、長さを数える他の方法はありますか?
android - Android プロジェクトに Android ネイティブ ライブラリを実装するにはどうすればよいですか? 具体的には、biemmeIOdemo ライブラリ
RS485 経由で接続された modbus RTU スレーブ デバイスからデータを読み取る必要があるアプリを開発しています。この問題の解決策をオンラインで見つけることができる唯一の場所はここです。 http://www.biemmeitalia.net/libraries/install.html
github のソース コードへのリンクは次のとおりです: https://github.com/biemme/biemmeIOdemo
私が持っている質問は、Android アプリでこのライブラリをどのように使用するかです。私はAndroid Studioで開発しています。
c - uint8_t を int の問題に変換する
シリアル通信経由で USB ドングルと通信しようとしています。通信は機能していますが、デバイスで通信を正しく解析できません。私のデバイスはメッセージを読み取り、ハードコードされた c-string と比較します。正しい文字列であることを解析して認識しますが、 : 文字の後の値を解析しようとすると、0x00000000 が返され、その理由がわかりません。char キャストを使用して、atoi を使用してみました。単純な ascii 変換を使用してみました。さらに、ここに示すようにビット単位の加算操作を実行しました: vector<uint8_t> のサブセットを int に変換します。
例:
「Heart Rate:55」を送信すると、「Heart Rate:」が解析および認識されますが、55 を見つけて元に戻すように指示すると、0x00000000 が返されます
。スニペットを次に示します。
文字列比較関数
c - どちらが受信機をオンにし、どちらが受信機をオフにしますか
私は現在、半二重シリアル ポート (RS485) を C 言語でプログラミングしています (一度に 1 つの信号しかライン経由で送信できません)。デバイスをシリアル ポートに接続します。次のコードを見つけましたが、どれが受信機をオフにし、どれが受信機をオンにするかわかりません
どちらが受信機をオンにし、どちらが受信機をオフにするかを解読するのを手伝ってくれる人はいますか?