2016-05-26 3 views
0

を使用している間、私は科学的なカメラからのWebページにすべてのn番目の画像をプッシュするのpythonを使用しています。ウェブページは.replace()を使用して画像を更新します。これはウェブカムではなく、科学的なカムであることに注意することが重要です。私は開発者ソフトウェアを使用して、n秒ごとにサーバーにイメージを保存しています。その後、クライアントによって取得されます。ライブアップデートイメージsocketio

私はHTMLやJavaScript、jQueryの、とのpythonを使用しています。

また、ボタンをクリックすると、サーバーに接続されたモーターを移動するコマンドを発行するようなWebソケット(クライアント側ではsocketio、サーバー側ではフラスコを使用)があります。この場合、サーバー上のemit関数が終了するまで、イメージの更新は停止します。

私は(リフレッシュレートのためのユーザの要求に基づいて)サーバにn秒ごとに画像をプッシュするバックグラウンドスレッドを使用して考えたが、これは本当に、すべてで役立つだろう...か、どこから始めればわかりませんでした。

ありがとうございます。

答えて

0

私はあなたがのWebSocketを使用している言及ので、あなたは、eventletまたはgevent Webサーバーを実行していると仮定します。

HTTPリクエストまたはSocket.IOイベントハンドラである可能性がある場合は、Webサーバがブロックされずに応答し続けるように、非同期で行われることを確認する必要があります。

モーターの動きをどのように扱うのかは説明していませんが、バックグラウンドスレッド(緑色のスレッドで、通常のPythonスレッドではない)に配置する必要があるかもしれないと聞きますが、sleep()を頻繁に呼び出して、 bgスレッドの実行中に実行する機会を得てください。私はこれが画像が流れ続けることを可能にすると思う。

+0

感謝。あなたは正しいです、私はgeventを使っています。モーターはサーバ(すなわち、ウィンドウボックス)に接続されており、モーターを動かす単純なPython関数を使用します。私はそれはもはや動いませんときに、それは少し「完全に移動する」発し、それがミニ睡眠を行い、モータが動いている間ようにwhileループを持っています。面白いのは、純粋に実際のモーターの動きを模倣するためにテキストを使ってこれをすべてテストしていたときに、それは問題やエラーなしでうまくやっているようでした。しかし、私は非同期にそれを実行し、あなたが言及した '緑のスレッド'を調べる必要があります。 – Fonty

+0

非同期処理。今はスムーズに走っています。 – Fonty

関連する問題