0

ツイストを使用して、終わりのないセンサー データのストリームを吐き出すための最小限のサーバーを作成しています。

センサー データ キャプチャ ライブラリは、gevent と内部 gevent.Queue を使用して、提供するデータを保存します。

何らかの理由で、データは非常に遅く、バッファリングされているように見える方法で送信されます。センサーからは一定のペースで高速にデータが生成されていることを確認したので問題ありません。ツイスト プロデューサーで実際のデータのデキューを置き換え、それを定数に設定するだけでも問題なく動作します。そのため、gevent とツイストの相互作用に関連する必要があります。

データ生成センサーをセットアップするコードは次のようになります (プロデューサー コンストラクター内)。

gevent.spawn(self._headset.setup)
gevent.sleep(1)

そして、ねじれた resumeProducing 関数は次のようになります。

def resumeProducing(self):
    self._paused = False
    while not self._paused:
        packet = self._headset.dequeue()
        sensors = packet.sensors
        data_str = ",".join(str(sensors[x]['value']) for x in sensor_names)
        self._proto.transport.write(data_str + '\n')
4

1 に答える 1