問題タブ [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.
python - Python 3.2: cx_freeze が pyserial のすべてをインポートしない
Python 3.2 スクリプトの exe バージョンのビルドに問題があります。スクリプトには pyserial が必要で、cx_freeze を使用してビルドします。ただし、exeを実行すると、次のようになります。
少し調べてみると、Pyserial サイト パッケージには「win32.py」モジュール (serialwin32.py に加えて) があります。ただし、cx_freeze が生成する圧縮ライブラリには、win32.py がありません。pyc バージョンを配置するだけでは問題は解決しません。また、cx_freeze "includes = [ ]" を使用しても機能しません。
何か案は?私の質問は説得力がありますか (私は Python にかなり慣れていません)?
python - Pythonで同じシリアルポートに書き込んで聞く
「COM PORT IN USE」エラーを発生させずにこれを行う方法はありますか? com ポートで gps GPRMC センテンスをリッスンするサービスがあります。しかし、テスト用コンピューターにはこのデバイスがありません。そのため、他の Python スクリプトが同じポートをリッスンして解析している間に、ポートで GPRMC 文をシミュレートする Python スクリプトを作成したいと考えました。
python - PythonWebアプリ-同期シリアルアクセス
私はJavaの中間開発者であり、Pythonの初心者であり、Webサービスの初心者です。学習体験として、私はPythonでRESTful Webサービスを実現し、RS232-over-USBリレーボードを介して単純なオン/オフライトをリモート制御しようとしています。web.pyとpyserialライブラリの基本はすでに理解しています。私が使用しているボードは、リレーをオン/オフにするための入力としてASCIIバイトを受け取り、送信されるすべての入力のフィードバックとしてASCIIバイトを提供します。単一のリクエストは正しい方法で応答されますが、web.py委任クラスによって複数のリクエストが発行されると、フィードバックが混同されることがあります。これはスレッド同期の問題だと思います。適切なWebにフィードバックを正しく送信するために、シリアルポートへの書き込み/読み取りアクセスをpyserialと同期するための最良の方法は何ですか。py-bornスレッド?次のような解決策は正しいと見なすことができますか?
python - PySerial:シリアルラインでCtrl-Cコマンドを送信する方法
組み込みボードの構成プロセスを自動化しています。セットアップ画面に入るには、「Ctrl-C」コマンドを送信する必要があります。
これは、ローカルで実行しているプロセスを中断するためのものではありません。KeyboardInterruptは機能しません。ブートローダーによってCtrl-Cとして解釈される値を送信する必要があります。
送信する必要のある値は何ですか?
ありがとうございました
python - インタラクティブシェルで実行されたのと同じようにPythonスクリプトでステートメントを動作させる方法
シリアル通信ポートに接続された計測器があります。Windows XP で Python 3.2 と pySerial モジュールを使用しています。通信ポートを開き、構成し、文字列を書き込み、通信ポートから文字列を受信する一連のステートメントで構成されるスクリプトを実行すると、問題が発生します。これらの文字列は、機器に関連するコマンド (制御) または機器からの応答 (応答) のいずれかです。
これらのステートメントが Python インタープリターで対話的に (>>> で) 実行されると、期待どおりの結果が得られ、結果は適切で正しいものになります。ただし、インタープリター内またはシェルからスクリプトを実行すると、必要なものが得られません。スクリプト内のステートメントは、対話型インタープリターで使用するものと同じです。
奇妙な動作をするのはなぜですか? また、対話型インタープリターのように動作するようにスクリプトを変更するにはどうすればよいですか?
問題は、上記の ####### の行にあります。対話モードでは、#1 で約 1 秒、#2 で 9 秒の遅延があります。私はそこで正しい反応を得ます。しかし、上記のスクリプトを実行すると、遅延はまったくなく、間違った結果 (ゴミ) が得られます。通信ポートのセットアップで読み取りタイムアウトを0に設定しました。
そのため、comport が行末またはファイルの終わりを待つ場合は、ブロック モードにする必要があります。
更新 (2011 年 8 月 19 日)
数日前に作成した元の投稿を更新しました。私は問題が何であるかを知っていると思います。誰かが解決策を持っているかどうか知りたいです:
すべてのステートメントの後に「print」と「time.sleep(delay)」を配置した後、スクリプトが実行されているときに、「comport.write(..)」や「comport.readlines」などの pyserial ステートメントを回避しているように見えることがわかりました。 (...)" pyserial コマンドの実行中 (シリアル ポートが遅いことがわかります)。たとえば、Python インタラクティブ シェルですべてのステートメントを実行すると、前のステートメントが返されない場合、新しいステートメントを入力して実行することができません。そうですね、comport.readlines() が返されない場合、次の comport.write(...) ステートメントを入力して実行することはできません。ただし、実行中のスクリプトでは、comport.readlines() が読み取りでビジーである場合、次のステートメントが実行中であり、次のステートメントが読み取りを中止する comport.write() である場合です。
Pythonスクリプトを正確に順番に実行するように強制する方法はありますか?
pyserial - pySerial バッファがフラッシュしない
pySerial を使用した Windows と Linux の両方でシリアル IO に問題があります。このコードでは、デバイスはコマンドを受信せず、読み取りがタイムアウトします。
このコードは最初はタイムアウトしますが、その後の反復は成功します。
誰が何が起こっているのか教えてもらえますか? sync() の呼び出しを追加しようとしましたが、シリアル オブジェクトを引数として取りません。
ありがとう、ロバート
python - pyserial を使用して Arduino Uno ボードの特定のピンを制御する
ライトが点滅する必要があるパターンを送信するpythonコードがあります(たとえば、101010など。コードが実行されるたびにパターンが異なる場合があります)。これを無限に実行しているとき、割り込み(再びpythonコードによって送信されます)を使用して、ライトの現在の状態を保存し(シーケンスの1つを実行しているとします)、ライトを10秒間オフにするなどの特定のタスクを実行し、その後、シーケンスを再開します。これを行う 1 つの方法は、割り込みピンを高くしてプログラムを中断することです。問題は、このハイ/ローの作成が pyserial によって制御されるかどうかです。したがって、単純な擬似コードは次のようになります。
コードの PYTHON 部分:
コードの ARDUINO 部分:
より良い理解のために:
私が持っていた疑問を示すために小さなコードを作成しました:
ARDUINO のコードは次のとおりです。
================================================== ================================
PYTHON FRONT のコードは次のとおりです。
================================================== =============================
今私が持っていた質問:
1)ピンに存在する物理スイッチを使用せずに、ピン(この場合はINT0ピンであるピン2)の状態に応じて「ブラックアウトISR」をアクティブにできる方法はありますか。したがって、ピンの状態はソフトウェアで操作する必要があります。
2) ブラックアウト機能のコメントに記載されている操作を実行することは可能ですか?
3) python コードでは、データ (つまり、パターン、高速) を 1 回だけ送信し、コマンドでデータを再度送信することなく、arduino にパターンを無限に実行させることができますserial.write
。したがって、 のwhile(1)
後のループを回避しますser.isOpen()
。
python - pySerialを使用したマルチプロセッシングの良い例
Pythonのマルチプロセッシング環境でpySerial操作を実行する例を見ることができる場所はありますか?
===上記の質問に更新===
Arduinoのコード:
同様に、Pythonフロントエンドのコードは次のとおりです。
基本的なリファレンスとして、 Painless Concurrency:the multiprocessing Module(PDF、3.0 MB)を使用しました。
上記を実行する際に私が直面しているいくつかの問題があります。
プロセスf1は、必要に応じてタスクを実行します。つまり、LEDを10秒間オンにし、LEDを10秒間オフにし、最後にLEDを10秒間オンにします。一見すると、プログラムは正常に終了しますが、プロセスf2はまったく実行されていないように見えます(つまり、2秒ごとにLEDがオフになることはありません)。ここで何が起こっているのでしょうか?
印刷を使用してプロセスで何かを印刷すると、画面に表示されません。例に言及している人々がどのようにしてプロセスのプリントの出力を表示することができたのか知りたいです。