問題タブ [termios]
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.
c++ - Linux での USB へのシリアル通信に SOCAT を使用する
socat を使用している場合、何らかの理由で Arduino への通信しか機能しないため、socat がシリアル通信に対して行うことについて少し説明したいと思います。
これは、socat のセットアップに使用するコマンドです。
私が C++ で使用したコードは次のとおりです。
したがって、これを socat で実行すると、arduino は想定どおりに反応しますが、open() 行を /tmp/serial から /dev/ttyACM0 に変更すると、arduino はまったく機能しなくなります。socat がデータに対して行っていることと、C コードを変更して同じことを行う方法を説明してもらえますか? socat を使用すると遅延が発生し、ロボットの運転が予測不能になるため、最終的な実装では socat を使用できません。
mingw - termios.h の入手先
私の特定の状況では、を使用してMinGW/MSysいます。は含まれていませんtermios.h。ダウンロードしてインストールできるライブラリではないことが判明しました(Googleは何も見つかりませんでした)。Termcapも含みませんtermios.h。
このファイルはどこから入手できますか?
c - シリアル プログラミング: 送信者と受信者
そのため、プロジェクトで 2 つの Xbee ZB (S2B) を使用してデータを相互に送信しています。8 データ ビット、パリティなし、1 ストップ ビット システム (8N1) です。
2 つの質問があります。
1. ラップトップの USB アダプタへの RS232 (DB9 コネクタ) インターフェイスと接続しているので、B230400 のボー レートでは、書き込み/読み取り/オープン/クローズよりもfwrite/fread/fopen/fcloseへのシステム コールを使用する方が適しています。? (私が知る限り、fread() にはボーレートの設定がないため、正しく動作しないと思います。)
2. 1 台のコンピューターで 1 つのプログラム (送信プログラム) と別のプログラム (受信プログラム) を実行しています。送信側と受信側のさまざまな情報セットを知りたいので、両方のプログラムが読み書きできる必要があります。
受信側(文字Qが表示されたら、ポートを停止して閉じる)または送信側(読み取り側が文字Gを送信して書き込みを開始し、書き込みが終了したら閉じる)のように。
( http://tldp.org/HOWTO/Serial-Programming-HOWTO/x115.html )のコードの一部を非標準入力処理で使用して、USB ポートからの書き込みと読み取りのための基本的なテンプレートをセットアップしようとしました。いずれかの側。私の質問は:
*送信プログラムと受信プログラムの termios 構造体 (newtio) に異なる構成設定 (c_cflag、c_iflag、c_oflag、c_lflag) が必要な場合は? *
私のコード:
可能であれば、この時点でデータ破損を処理せずに最適な書き込み速度と読み取り速度を探しています。最適とは、termios 構造体の構成フラグの最適な設定のことです。
ご協力ありがとうございました。
c - カーソルが不規則に動く (C)
Nim ゲーム プログラムの実行に問題があります。これまでのところ、パイプのピラミッドを表示するプログラムがあります。この写真の「開始位置」ピラミッドのように見えます。
http://www.mathsisfun.com/puzzles/images/b-nim.gif
とにかく、私はこれを動き回るのに苦労しています。動き回ろうとすると、カーソルが完全に不規則に動きます。これにより、ゲームは完全にプレイできなくなります。それが私のカウント変数の問題なのか、それとも完全に欠けている小さなものなのかはわかりませんが、とにかくここに私が持っているものがあります:
それで、私がここに欠けているものはありますか?他のすべてはほぼ完全に機能し、これが問題を引き起こしている理由を理解できません。また、これを行う他の方法はありますか?私はあらゆる代替方法を受け入れます。
c - シリアル ポートからの読み取り中にビットが失われました
シリアル ポートを使用してカスタム ハードウェアからデータを読み込もうとしています。構成は正しかったと思います。問題は、一部のバイトが欠落していることです。データでは、データの長さが指定されているので、一部のデータが欠落しているかどうかがわかります。
私の構成は次のとおりです。
これは私がそれを読む方法です:
以下はデータの例です:
構成に必要なものは次のとおりです: ボーレート: 19200 データ ビット: 8 ストップ ビット: 1 パリティ: なし フロー制御: なし
参考までに、私のハードウェアはバイトごとにデータを送信しています。したがって、上記のコードのnは常に 1 (または 0) です。
パテを使ってみると、大丈夫です。私が逃したものはありますか?
ありがとうございました
c - cを使用してsttyでユーザーが消去/バックスペースに設定したものを確認する方法
Unix では、特定のキーのデフォルト設定がプラットフォームごとに異なります。たとえば、Ubuntu での消去はerase = ^?. しかし、AIX の場合は、例のようにまったく異なる場合がありますerase = ^H。C で stty の設定を確認するにはどうすればよいですか?
これは私が書いてみたものです
gccを使用してコンパイルした後。ERASE未宣言と書いてあります。では、実際に使用すべき正しいオプションまたは変数は何ですか?
c - termios.h 特殊文字の使用方法
~(ICANON) モードに設定された端末があり、バックスペース用に取得したデータ (^?) をどのように使用できるか疑問に思っているので、コンソールに putchar('\b') を送信して移動できます1 スペース戻ります。
編集:
ありがとう