powder_level_monitor package

Subpackages

Submodules

powder_level_monitor.data_control_values module

powder_level_monitor.data_surface_detection module

powder_level_monitor.image_stream_ctrl module

カメラ画像の継続取得、JPEG符号化、および EventBus 配信を制御する。

class ImageStreamDeviceClass(camera_id=0, topic_name='camera.frame', interval_sec=0.1, capture_interval_sec=0.03, jpeg_quality=85, logger=None)[ソース]

ベースクラス: object

カメラ画像を別スレッドで継続取得し、必要に応じてEventBusへJPEG配信する。

パラメータ:
  • camera_id (int)

  • topic_name (str)

  • interval_sec (float)

  • capture_interval_sec (float)

  • jpeg_quality (int)

  • logger (Any | None)

_capture_loop()[ソース]

カメラフレームを周期取得し、排他制御下で最新画像を更新する。

戻り値の型:

None

_encode_frame(frame)[ソース]

OpenCV画像をJPEGへ符号化し、配信用メタデータを付与する。

パラメータ:

frame (ndarray) -- BGR形式のOpenCV画像。

戻り値:

JPEG画像とフレーム識別情報を格納した辞書。

例外:

RuntimeError -- JPEG符号化に失敗した場合。

戻り値の型:

Dict[str, Any]

_set_event_bus(event_bus)[ソース]

grpc_frame から渡された EventBus を画像配信処理へ設定する。

パラメータ:

event_bus (Any) -- 画像イベントの配信に使用する EventBus。

戻り値の型:

None

_start_capture_loop()[ソース]

カメラから最新フレームを取得するデーモンスレッドを開始する。

戻り値の型:

None

_stop_capture_loop()[ソース]

カメラ取得スレッドへ停止を通知し、終了を待機する。

戻り値の型:

None

_stream_loop()[ソース]

停止要求まで最新画像を一定周期で配信する。

戻り値の型:

None

capture_once()[ソース]

カメラ接続を確保し、最新画像をJPEGペイロードとして取得する。

戻り値:

画像メタデータとJPEGバイト列を格納した辞書。

例外:

RuntimeError -- 接続失敗または規定時間内に画像を取得できない場合。

戻り値の型:

Dict[str, Any]

connect()[ソース]

必要なデバイス接続と内部処理ループを開始する。

戻り値:

接続と起動に成功した場合は True、それ以外は False。

戻り値の型:

bool

disconnect()[ソース]

内部処理ループを停止し、デバイス接続を解放する。

戻り値:

正常に切断処理を完了した場合は True。

戻り値の型:

bool

get_latest_frame(copy_frame=True)[ソース]

スレッド間で保護された最新カメラ画像を取得する。

パラメータ:

copy_frame (bool) -- Trueの場合は画像のコピーを返し、共有バッファの変更を防ぐ。

戻り値:

最新画像。画像未取得時は None。

戻り値の型:

ndarray | None

get_status()[ソース]

接続、処理ループ、ROI、測定状態をまとめて取得する。

戻り値:

制御対象の状態を格納した辞書。

戻り値の型:

Dict[str, Any]

publish_once()[ソース]

最新画像をJPEGへ符号化し、EventBusへ1回だけ配信する。

戻り値:

配信に成功した場合は True。

例外:

RuntimeError -- EventBusまたは最新画像が利用できない場合。

戻り値の型:

bool

start_stream()[ソース]

最新画像を一定周期で EventBus へ配信するスレッドを開始する。

戻り値:

配信を開始できた場合は True。

例外:

RuntimeError -- EventBus が設定されていない場合。

戻り値の型:

bool

stop_stream()[ソース]

画像配信スレッドを停止する。

戻り値:

停止済みまたは正常に停止した場合は True。

戻り値の型:

bool

powder_level_monitor.powder_monitor_ctrl module

Module contents