関数の説明
ステーションが呼び出す Python のクラス内の関数
__init__( self, sys, opt, log )
コンストラクタ。
sense( self )
センス処理を要求する。管理ツールで、「プラットフォームがセンス関数を呼び出す」チェックボックスがオンの場合、設定された「呼び出し周期」の時間毎に、周期的にこの関数が呼ばれる。チェックボックスがオフの場合はこの関数は呼ばれず、Python プログラムは、コンストラクタにてスレッドを起動するなどして、内部的、自己的にセンス処理を実行し、センスするデータに変更があった場合は set_value() 関数を呼び出してプラットフォームに通知する。
control( self, data )
制御値を通知する。利用者端末に表示された利用ページ上の操作・制御用の表示部品によって入力されたデータを Python プログラムに通知する。受け取ったデータを最新値とする場合は、関数内で set_value( ) 関数を実行する必要がある。
new_video_frame( self, video_frame, time_sec )
ビデオ解析用の画像データの通知。管理ツールで、「カメラのパラメータを利用する」チェックボックスをオフにした場合に呼ばれる。ビデオ解析を行う IOC は、この関数の中で解析処理を行い、その結果を set_value( ) ないしは set_video_frame( ) 関数を実行することでプラットフォームに通知する。
new_video_frame( self, video_frame, time_sec, camera_param )
ビデオ解析用の画像データの通知。管理ツールで、「カメラのパラメータを利用する」チェックボックスをオンにした場合に呼ばれ、引数 camera_param にフレーム毎のホワイトバランス、ゲイン、露出、フォーカス、ブライトネス、パン、チルト、ロールの情報が提供される。
new_audio_frame( self, audio_frame, time_sec )
音声解析用の音声データの通知。音声解析を行う IOC は、この関数の中で解析処理を行い、その結果を set_value( ) ないしは set_audio_frame( ) 関数を実行することでプラットフォームに通知する。
terminate( self )
アプリの終了を通知する。Python プログラムはこの関数内で IOC の終了処理をしなければならない。終了処理を正しく行わないと、次回アプリを開始する際に、リソースの取得に失敗するなどのエラーが発生することになる。
__del__( self )
デストラクタ。
Python プログラムが呼び出すプラットフォーム上の関数
以下の関数は、コンストラクタの引数としてプラットフォームから Python プログラムに渡される sys クラスのメソッドとして定義される。
sys.set_value( data, level='normal' )
high, normal, low のいずれかで、省略時は normal とみなす。
プラットフォームに対して、最新の値を通知する。引数 data には、オブジェクトを渡すものとし、デフォルト設定のままのの HMI を使ってデータを表示する場合は、オブジェクト内に 'value' というキー名を設け、現在値を格納する。以下は IOC のカテゴリーごとの data の例。
カテゴリー | data の例 |
---|---|
オン・オフ | { 'value' : True } |
1つの数値 | { 'value' : 12.3 } |
2つの数値 | { 'value' : [ 26.8, 40.3 ] } |
3つの数値 | { 'value' : [ 10.0, 34.5, 75.0 ] } |
テキスト | { 'value' : 'Hello World!' } |
レベルオプションによって、最新値の配信制限に対する制御(「アプリの動作制限」を参照)および最新値をデータベースに保存するかどうかの通知を行います。例えば温度を取得するアプリにおいて、1分毎に最新のセンサー値で画面更新をするものの、小数点以下の温度差についてはデータベース保存する必要が無いなど、この関数呼び出しの都度レベルを調整することで、データベースのサイズを小さく保つことが出来ます。
レベル | データベースへの保存 |
---|---|
high | 保存される |
normal | 保存される |
low | 保存されない |
sys.get_last_value( )
プラットフォームに対して、構成要素が最後に set_value() した値を照会する。この関数は、アプリを終了し再度開始した直後でも有効で、この場合、アプリ終了前に set_value() された最後の値を返す。一度も set_value() が行われていない場合は、None を返す。
sys.set_video_frame( video_frame, time_sec, level='normal' )
high, normal, low のいずれかで、省略時は normal とみなす。
プラットフォームに対して、ビデオ解析処理後の画像を通知する。この関数は new_video_frame( ) 関数内でのみ実行可能で、time_sec には、new_video_frame( ) 関数で受け取った値をそのまま与える。
sys.snapshot_frame( target )
'source' : 解析前の画像のスナップショットを保存する。
'analysis' : 解析後の画像のスナップショットを保存する。
プラットフォームに対して、画像をスナップショットとして保存するように通知する。
sys.set_audio_frame( audio_frame, time_sec )
プラットフォームに対して、音声解析処理後の音声を通知する。この関数は new_audio_frame( ) 関数内でのみ実行可能で、time_sec には、new_audio_frame( ) 関数で受け取った値をそのまま与える。
sys.start_record_source( )
プラットフォームに対して、解析前のメディアストリームの保存を開始するように通知する。
sys.stop_record_source( )
プラットフォームに対して、解析前のメディアストリームの保存を終了するように通知する。
sys.start_record_analysis( )
プラットフォームに対して、解析後のメディアストリームの保存を開始するように通知する。
sys.stop_record_analysis( )
プラットフォームに対して、解析後のメディアストリームの保存を終了するように通知する。
sys.kill_self( )
プラットフォームに対して、IOC の停止を要求する。
sys.print( *arguments )
管理ツールのコンソール表示部にテキスト出力する。
Python プログラムが呼び出すプラットフォーム上のユーティリティー関数
以下の関数は、コンストラクタの引数としてプラットフォームから Python プログラムに渡される sys クラスのメソッドとして定義される。
sys.speak_on_station( text, lang )
ステーション上でテキスト音声を出力する。
sys.speak_in_browser( text, lang )
ブラウザ上でテキスト音声を出力する。
sys.sound_on_station( file_name )
ステーション上で音声ファイルを再生する。
sys.sound_in_browser( file_name )
ブラウザ上で音声ファイルを再生する。
ステーションが呼び出す Python のクラス内のイベント関数
share_changed( self, var_name, data )
共有変数が更新されたことを通知する。
setting_changed( self, var_name, data )
ビデオ解析の IOC において、位置情報設定オプションが変更されたことを通知する。
ui_event( self, type, data )
ビデオ解析の IOC において、UI イベントを通知する。