問題タブ [baud-rate]
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.
windows - Windows で COM ポートの base_baud 周波数を取得する方法
このLinuxのように、ボーベース周波数を取得するためのWindows呼び出しはありますか。
delphi - Delphi でシリアル ポートの設定を見つける
こんにちは、シリアル ポートのボー レートとその他の設定を見つける必要があります。Web で調べてみると、 GetCommConfigを使用する必要があるようです。これは、必要なデータであると想定する TCommConfig レコードを返します。問題は、私が書いた関数が間違った値を返すことです。
以下のコードは動作しているように見えますが、ボー レートは常に 1200 であり、Windows デバイス マネージャー (およびポート設定の変更) を見ると間違っています。
私はそれを次のように呼んでみました:
最初の 4 つは有効ですが 1200 を返し、5 番目は無効で 0 を返します
コードをステップ実行すると、最初の 4 つの行は常にResult := CommConfig;にヒットします。、そのため、GetCommConfig は有効なコードを返しているので、何か不足しているに違いありません。
dcb レコードの長さを設定するなど、他にもさまざまなことを試しましたが、1200 ボーという同じ結果になりました。
誰かが私がどこで間違っているのか知っていますか?
c# - C#(serialPortクラス)で利用可能なすべてのボーレートをプログラムで見つける方法
特定のシステムがC#を介してサポートするすべての利用可能なボーレートを確認する方法はありますか?これは[デバイスマネージャー]->[ポート]から利用できますが、プログラムで一覧表示したいと思います。
c++ - DCB 構造を使用してボーレート 28800 を設定する方法
以前は、9600 ボー デバイスと通信するときに CBR_9600 を使用していました。しかし、CBR_28800 の設定はないようです。28800のDCB構造体を使ってボーレートを設定することはできますか?
.net - ボーレートを 10400 に設定する方法
ボーレートを10400に設定できますか? (.Netを使用)
c# - C# SerialPort - 異なるボーレートのポートを混在させる際の問題
シリアル インターフェイス経由で接続したい 2 つのデバイスがありますが、接続に互換性がありません。この問題を回避するために、両方を PC に接続し、COM ポート X のトラフィックを COM ポート Y に、またはその逆にルーティングする C# プログラムに取り組んでいます。
プログラムは 2 つの COM ポートに接続します。データ受信イベント ハンドラーで、受信データを読み取り、それを他の COM ポートに書き込みます。これを行うには、次のコードがあります。
このコードは、発信 COM ポートが着信 COM ポートよりも高いボー レートで動作している限り、正常に機能しました。着信 COM ポートが発信 COM ポートよりも高速である場合、データが欠落し始めました。次のようにコードを修正する必要がありました。
なぜその修正が必要なのかわかりません。私は C# を初めて使用するので (これが初めてのプログラムです)、何か足りないものがあるのではないかと考えています。SerialPort のデフォルトは 2048 バイトの書き込みバッファで、コマンドは 10 バイト未満です。書き込みバッファーには、低速の COM ポートにデータを書き込むことができるようになるまで、データをバッファーする機能が必要です。
要約すると、COM X でデータを受信し、そのデータを COM Y に書き込んでいます。COM X は、COM Y よりも高速なボー レートで接続されています。書き込みバッファのバッファリングでこの違いが処理されないのはなぜですか? データの損失を避けるために書き込みバッファが空になるのを待つ必要があるように見えるのはなぜですか?
ありがとう!
* アップデート *
前述のように、このコードは、大規模および/または高速の着信データ転送で非常に簡単にオーバーフロー状態に陥る可能性があります。データ ストリームについてもっと書くべきでした。10 Hz で < 10 バイトのコマンド (< 10 バイトの応答) を期待しています。さらに、最初のコマンドで失敗が見られます。
したがって、このコードがスケーリングされておらず、最適ではないことはわかっていますが、なぜ 2 ~ 4K の読み取り/書き込みバッファーが最初のコマンドを処理できなかったのか疑問に思っています。1バイトのデータの書き込みにバグがあるのか 、理解できないイベントハンドラーにバグがあるのか 疑問に思っています。ありがとう。
* アップデート *
失敗の例を次に示します。
私のコマンドが 4 バイトだとしましょう: 0x01 0x02 0x3 0x4。COM X 上のデバイスがコマンドを送信します。C# プログラムが 4 バイトを受信し、COM Y 上のデバイスに送信していることがわかります。COM Y 上のデバイスは、0x01 0x03 の 2 バイトを受信します。COM Y のデバイスが信頼できることはわかっているので、2 バイトがどのように削除されたのか疑問に思っています。
ところで、回答にコメントで返信する方がよいのか、それとも元の質問を編集し続けるべきなのか、誰か教えてもらえますか? どちらがより役に立ちますか?
c - CのLinuxのシリアルポートでデータをクリアしますか?
次のコードを使用して送信プログラムと受信プログラムをテストしています
main() 関数は以下のとおりです。
lib.h には、次のような読み取りおよび書き込みコードが含まれています。
問題が発生しました:
シリアル ポートでテストするために、socat ( https://help.ubuntu.com/community/VirtualSerialPort ) を使用して Linux でシリアル ポートのペアを作成し、これらのポートでプログラムをテストしました。
プログラムが最初にデータを送信し、プログラムがデータを受信したときは問題ありません。ただし、シリアルポートに新しいデータを再度読み取ったり、書き直したりすると、仮想シリアルポートを停止して再度開始するまで、戻りデータは常にnullになります。その後、書き込みおよび読み取りデータは問題ありませんが、それでも、一度。
(実際には、送信部分は別のデバイスによって行われます。シリアルポートからの読み取りデータを処理しているだけです。読み取りコードをテストするためだけに両方の部分を書きました。)
誰にもアイデアはありますか?
c# - C# .Net Serial DataReceived イベント応答が高速データに対して遅すぎる
VS2008 Express のフォーム ベースのプログラムを使用して、SerialDataReceivedEventHandler をセットアップしました。私のシリアルポートは次のように設定されています:
115200、8N1
Dtr と Rts が有効
ReceivedBytesThreshold = 1
BlueTooth、USB to Serial 経由で接続しているデバイスがあります。ハイパー ターミナルは、任意のデータ レートで問題なくデータを受信します。データは、22 バイト長のパケットで定期的に送信されます。このデバイスは、データの送信速度を調整できます。低いデータ レート (10 ~ 20 Hz) では、以下のコードはうまく機能し、問題はありません。ただし、データ レートを 25 Hz を超えて上げると、1 回の通話で複数のパケットを受信し始めます。これが意味することは、着信パケットごとにイベント トリガーが存在する必要があるということです。より高い出力レートで、イベントが呼び出されたときにバッファー サイズ (BytesToRead コマンド) をすぐにテストし、バッファーに複数のパケットが存在するようにしました。イベントがゆっくりと発生し、コードに到達するまでに、より多くのパックがバッファーにヒットしたと思います。私が行っているテストの 1 つは、1 秒間にイベントがトリガーされる回数を確認することです。10Hzで、10 個のイベント トリガーを取得できます。100Hz では、40 のイベント トリガーのようなものが得られますが、良くありません。私のデータ レートの目標は、100Hz が許容範囲であり、200Hz が推奨され、300Hz が最適です。300Hz でも 52800bps であり、設定された 115200 ボーレートの半分以下であるため、これは機能するはずです。私が見ているものはありますか?
php - 変なボーレートで PHP からシリアルへ
サポートチケット番号を送信できるように、PHP を使用してテキストを LED サインに送信しようとしています。サイン自体が作品です。それはeBayから来たもので、ドキュメントがほとんどなく、貧弱に作られています. しばらくそれをいじった後、私はそれがそれに送信されると予想される方法とボーレートが28800であることを理解することができました.PHPを使用してこのようなものと通信する方法はすでに知っていますが、私は知りませんボーレートを非標準に変更する方法を知っています。他のボーレートを試しましたが、うまく動作しませんでした。
serial-port - 特定のボーでファイルを「cat」する方法は?
uCsim を使用して SDCC プロジェクトの単体テストを行っています。
uCsim/S51 では、次の方法でシリアル ライン トラフィックをシミュレートできます。
また
後者の形式では、データはすぐにシミュレーターに送信され、多くのフレームが失われます。したがって、プレーン ファイルでテスト データを指定する代わりに、代わりにパイプを使用します。
では、`cat' ユーティリティから出力ボーを制御するにはどうすればよいでしょうか? または、特定のレートでビットを出力するために使用できる別のユーティリティはありますか?