問題タブ [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 - C99 としてコンパイルするときに CRTSCTS が定義されない
ラズベリーパイでシリアルコードを書いていて、C99に切り替えました。私がやったとき、「エラー:「CRTSCTS」が宣言されていません(この関数で最初に使用)」というエラーが発生し始めました
-M を使用すると、2 つの termios.h ヘッダーが表示されます。前者には CRTSCTS の定義が含まれていませんが、後者には含まれています。
標準の c89 は適切なものを使用していて、c99 は使用していないと思いますが、-M 呼び出しの結果が同じであるため、わかりません。C99 に切り替えたときにこの問題が発生する理由とその修正方法を誰かに説明してもらえますか?
c++ - std::cin を使用して TTY を raw モードに設定して入力バッファをクリアする方法は?
そこで、termios ライブラリを使用して端末を raw モードにしました。これにより、次のことが可能になります。
これは、入力バッファで 1 文字の準備が整うのを待ち、それを返します。
しかし、私がこれをやろうとすると:
無限ループに入ります。
入力バッファをクリアする適切な方法は何ですか? 私はこれを試しました:
しかし、それもハングします。また、iostreams または標準の posix 関数のみを使用してこれを行いたいと思います。
c++ - arduinoとのシリアル通信のためのstruct termios設定
arduinoに0から179の間の数値を送信する必要があるUNIXベースのソフトウェアでは、arduinoはその数値を角度としてサーボモーターに適用しますが、シリアルを許可するためにterminos構造体でどのパラメーターを変更する必要があるかわかりませんコミュニケーション。
これはC++コードです:
これはarduinoのものです:
では、「ttable」の何を変更する必要があるか教えてください。
c++ - c++ 、Unix のシリアル ポート
シリアルポートを介してコンピューターをarduinoに接続するコードを書きました。
これはarduinoのコードです:
そして、これはC ++のものです:
arduino に接続する必要があります。次に、0 から 179 までの数値を尋ね、その数値を arduino に送信します。arduino は、その数値をサーボ モーターへの角度として適用します。しかし、それはで止まりarduino.open("/dev/tty.usbmodem3a21")ます。どうすればよいですか?
linux - ioctl が tty デバイスが tty デバイスではないと文句を言う
rs485 の tty を開き、セットアップし、書き込むプログラムを作成しています。tty デバイスで少し遊んでみましたが、もう開けないようです。
関連するコードは次のとおりです。
これは、テスト プログラムから次のように呼び出されます。
ioctl関数内の は に文句rs485_enableを言いNOTTYます。strace言います:
そしてsttyは言います:
遊んでいるうちに壊れたような気が/dev/ttyUSBserialしますが、どうすればいいのか、どのように修正すればよいのかわかりません。これは USB デバイスなので、簡単に取り外して再接続でき、何らかのデフォルトにリセットされることを期待していますが、何が起こっているのか理解したいと思っています。
c - Linux termios.h: 着信バイトは \n の後にのみ読み取ることができます
シリアルポートと対話する Linux で C プログラムを作成しようとしています。プログラムには 2 つのスレッドがあり、1 つは書き込みを行うメイン スレッドで、もう 1 つはリッスン スレッドです。私の問題はリスニングスレッドにあります。1バイトが到着した直後に、読み取り関数が生データを読み取るようにしたい。
termios 構造体で何を試しても、改行 (\n または \r) を受け取るまでしかデータを読み取ることができません。RxとTxが接続されたUSBシリアルスティックでテストしています。前もって感謝します。
io - Goでシリアルポート入力を待つ
シリアル ポート経由で測定値を送信できるデジタル キャリパーがあります。このデータは次のようにフォーマットさ+123.45\rれており、デバイスからいつでも送信できます。
したがって、私のプログラムは、最初のデータ入力 (常に改行で終わる) を「リッスン」し、この入力の直後に読み値を閉じてから、自分の作業を続行する必要があります。
CoolTermやPuttyなどの専用端末は、これらの予測不可能な入力を完全に処理します…しかし、Go でそれを行う方法がわかりません (cgo を使用しても)。
私のシステム
- OS X 10.9.5
- Go 1.4.2 ダーウィン/AMD64
デバイス
- 4800 ボー
- 7 データ ビット
- 偶数パリティ
- 2ストップビット
- DTR
私の実際のコード
…うまくいきません…</p>