問題タブ [pyserial]

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

pyserial - Python PySerial.ポートが既に開いているかどうかを知るには?

Python と PySerial を使用して、Linux PC でシリアル ポートを使用するアプリを作成しようとしています。しかし、この PC には、シリアル ポートを使用する他のアプリがあります。ポートを使用する前に、ポートが他のアプリによって既に開いているかどうかを知るにはどうすればよいですか?

ありがとう

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

python - Pythonソケットサーバーとクライアント、接続が失われ続ける

遠隔操作ロボットのGUIプログラムを拡張しています。アイデアは、同じくPythonで記述されたリモートサーバーに接続するPythonで単純なGUIクライアントをプログラムすることです。クライアントはサーバーに簡単なメッセージを送信し、サーバーはメッセージを受信して​​から、USB経由で接続されているArduinoMegaにシリアル経由で送信します。

コードが機能するようになりました。

現在、クライアントのPython GUIから1回接続し、1つのメッセージを送信すると、接続が失われます。次に、サーバーを停止して再起動し、別の単一のメッセージを送信する必要があります。

ここで何が起きてるの?

これは、別のソースから採用されたサーバースクリプトです。

そして、これが私のクライアントコードから、もちろんリソースファイルを除いたものです。

編集

以下の修正または少なくともいくつかの修正を調べた後、サーバーのコードを次に示します。クライアントは同じままです。

これは少しうまく機能しますが、それでも正しくないと思います。これを実行すると、サーバーが実行され、GUIを起動した後、サーバー上のターミナルウィンドウを監視して、実際のコマンドを取得できます。

「127.0.0.1から接続」「転送」「127.0.0.1から接続」「左」「127.0.0.1から接続」「右」「127.0.0.1から接続」

コマンドを送信するたびに再接続されるように見えます。GUIを起動した後は接続を維持したいのですが、コマンドを送信するたびに切断して再接続するのではありません。これでちょっとばかげているように聞こえたら申し訳ありませんが、私は約3週間前にPythonを使い始めました。

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

python - PySerial API は、write() 中に com ポートがまだ開いていると見なします。なぜですか?

PySerial (シリアル通信用の Python API) を使用して、ブルートゥース経由で AT コマンドを Nokia 電話に送信しています。

com を open() した直後に、電話の電源を切ります。次に、("AT\r\n") と書きます。この時点で、関数がブロックされ、ランタイムがハングします。

解決策はありますか?

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

python - Python: serial.read() からの文字列の解析

PC 上の python スクリプトと組み込みの c の間で通信しています。次の問題があります。

mcu (組み込みの c) から、整数と浮動小数点数のバイナリ表現を送信しています。Br@y の端末を使用して、数値のバイナリ表現が MCU から送信されていることを確認しました。Python スクリプトでは、pySerial の serial.read を使用してバイトを取得し、それらをリストに入れます。

MCU から次の数値を送信すると: 0x10000000 (リトルエンディアンで 16 を基数とする 10)、Python スクリプトでは '\x10\x00\x00\x00' として表示されます。一貫したインデックスから文字を引き出します。ただし、2 つの 16 進数が ASCII 文字を表す場合、文字列には \xDD の代わりに ASCII 文字が含まれます。

文字列が ascii 値ではなく \xDD 表現のみを使用するように強制する方法はありますか? または、文字列を反復処理して、'\x' を削除し、ASCII 値を変換する必要がありますか?

ありがとう

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

python - Python で USB-GPS 情報を読み取る

USB GPS ドングルからの情報を使用する小さな python スクリプトを作成しました。これまでのところ、/dev/ でデバイスを識別し、pySerial を使用してそこから NMEA データを読み取ることができる Linux で作業してきました。ただし、これは完璧なソリューションではなく、プラットフォームに依存しないわけではないため、pyUSB を調べてデバイスとの通信を試みました。

デバイス:

  • 商品名:ND-100S
  • ボーレート: 4800
  • USB クラス: 0xEF
  • サブクラス: 2

私の問題は、usb についてほとんど知らないため、usb から文を初期化して読み取る方法がわからないことです。

これまでの私のテストコードは次のようになります。

... ほとんどの場合、デバイスに関する情報を取得するだけです。

誰でもこれを経験したことがありますか?

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

python - Python と pyserial を使用して USB シリアル ポートにアクセスする

pyserial を使用して USB ポートにアクセスするにはどうすればよいですか? 私は次のを見てきました:

以前は、Windows 上の MATLAB からシリアル ポートにアクセスしていましたが、適切な構文を使用して、またはその他の COM ポート/dev/ttyUSB0に置き換えました。COM1

私は Mac を使用しており、ドキュメントのシリアル ポート スキャナを使用しようとしましたが、役に立ちませんでした。pyserial次のように書けばいいと思います。

nameMac にあるものを見つけるにはどうすればよいですか?

編集:以下の回答に応えて、USBからRS232へのコンバーターと純粋なUSBポートの両方にアクセスする方法を見つけたいと思います。

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

python - バーコードからの受信データの読み取り

pyserialを使用してバーコードスキャナーから受信データを読み取る必要があります。次に、コンテンツをMySQLデータベースに保存する必要があります。データベース部分はありますが、シリアル部分はありません。誰かがこれを行う方法の例を教えてもらえますか?私はWindowsマシンを使用しています。

0 投票する
5 に答える
3061 参照

python - 文字列に対する Python/PySerial ビット演算子

次のようなデバイスから情報を読み取るために PySerial (Python 2.7) を使用しています。

バッファ += ser.read(3)

これで、str 型のバッファ (つまり 0xAE0259) に 3 バイトあります。私は Python を初めて使用するので、3 バイトの左端 (0xAE) を切り取り、残りの 2 バイトを int として解釈する「pythonian」の方法を探しています。最初にビット マスクを考えました: buffer &= 0xFFFF ですが、Python では str でビット演算子を使用できません。バッファを int に変換しようとしても失敗しました。次に、BitArray からビットの範囲をスライスできる「bitstring モジュール」について読みましたが、これを使用するのは少しやり過ぎだと思いますか?

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

python - pySerial: 一度に複数のポートを開く

編集:問題が見つかりました:変数を参照しようとしましたが、その名前を混同したため、代わりに新しい変数を宣言しました。pySerial は一度に 1 つのシリアル ポイントに限定されないことがわかりました。

次のコードを使用して、一度に 2 つのシリアル ポートを開こうとしています。

しかし、私は2番目を開き、最初のものを閉じるようです。pySerialを使用して一度に1つのシリアルポートを開くという固有の制限はありますか?

ありがとう、TG

編集:そもそもこれを投稿するべきだった

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

windows - ビジーシリアルポート(共有ポート)をpyserialで開く方法

すでに使用されているシリアルポートを開くことは可能ですか?それにデータを送信します

または、新しいものを作成して、いくつかのアプリケーションで共有しますか?

ポートペア(Windowsドライバーによって作成された)の使用を避けようとしています