0

小さな Raspberry Pi シングルボード コンピューターを使用する小さなデバイスを作成して、リモートで猫におやつを与えたり、Web カメラで猫とその周囲を監視したりできるようにしました。\

このソフトウェアは、(デバイスのリモート コントロールを可能にする) Web サイトをホストする単一の Python モジュール、ハードウェアを管理し、単純なステート マシンを実行する「スレッド」、および Web カメラを介して画像をキャプチャする「スレッド」で構成されます。モーション検出アルゴリズムを実行して、猫がいる時間にキャプチャを制限します。Web サイトは、jQuery を使用してサーバーへの Ajax コールバックを行う Javascript を含む単一の HTML ページをホストします。

ソフトウェアはすべて動作していますが、Web サイトの最初の読み込み時にページを返すのが非常に遅い場合があることがわかりました。問題は、GIL と Python の単純な http サーバー クラスの設計による、Python の一般的なシングル スレッドの性質だと思います。

アプリケーションを Twisted に移行することに興味がありますが、カメラとハードウェア ステート マシンを処理する 2 つのスレッドを移植する方法がわかりません。両方のスレッドがループを実行し、効果的にポーリングしますが、ループの反復ごとにわずかな遅延があります。

ありがとう

4

1 に答える 1

1

LoopingCall ( howto ) を使用して、特定の間隔で繰り返される関数呼び出しをスケジュールできます。これにより、おそらくポーリング スレッドが完全に置き換えられます。

于 2013-08-28T12:21:42.880 に答える