Msako技術資料 

Similar documents
プロセス間通信

グラフィックス

ICONファイルフォーマット

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

Prog2_12th

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

VB.NET解説

VFD256 サンプルプログラム

ファイル監視

Prog2_15th

Ver.1.1

データアダプタ概要

Microsoft Word - VB.doc

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

API 連携方式 外部 DLL の呼び出し宣言 外部 DLL の呼び出し宣言のサンプルコード (Microsoft Visual C#.NET の場合 ) プログラムコードの先頭で using System.Runtime.InteropServices; が必要 クラスの内部に以下のような外部 D

Prog2_4th

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

Microsoft Word -

GS1-128 の描画 DLL について (ver. 2.3) 動作環境など動作環境 WindowsXP Windows Vista Windows7 Windows8/8.1 Windows10 上記 OS について すべて日本語版を対象としております 32bit アプリケーションから呼び出される

NotifyIconコントロール

ルーレットプログラム

ウィンドウ操作 応用

ListViewコントロール

バスケットボール

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

アプリケーション

ファイル操作

ファイル操作-インターネットキャッシュ

目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 手順 手順 手順 手順 手順 終わりに... 23

ブロック パニック

グラフィックトレーニング 概要.NET のグラフィック描画は どんなことができるのでしょうか? グラフィックオブジェクトやグラフィック環境 概念を理解するためには クラスを使って馴れることが近道です 本 書に記載されているコードをカットアンドペーストして 一つ一つの機能を体験してください 前提 グラ

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

Userコントロール

正規表現応用

Prog2_6th

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10


かべうちテニス

Prog2_10th

Prog2_6th

プリンタ印字用 DLL 取扱説明書

ドッグファイト

目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加

Secure iNetSuite for .NET 4.0Jの新仕様について

3軸加速度センサーモジュール MM-2860 書込み済みマイコンプログラム通信コマンド概要

プロバイダ ユーザーズガイド

モデリング操作ガイド アクティビティ図編

ブロック崩し風テニス

C#の基本

intra-mart Accel Platform

UMLプロファイル 機能ガイド

更新履歴 No 更新箇所版数日付 1 第一版作成 /12/28 2 一部画像差し替え 誤字修正 /02/09 2

目 次 1. はじめに ソフトの起動と終了 環境設定 発助 SMS ファイルの操作 電話番号設定 運用条件 回線情報 SMS 送信の開始と停止 ファイル出力... 16

Microsoft PowerPoint - kakeibo-shiryo1.pptx

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

Prog2_9th

CONTEC DIOプロバイダ ユーザーズガイド

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

Prog2_10th

アプリケーションの使い方 ios 対応バージョン ios : 6.0 以降 準備 事前に液晶モニター本体のネットワークパスワード及びネットワークアドレスの設定を行う ( 取扱説明書 7ページ ) 液晶モニター上でインターネットの接続状況を確認する メインメニューの システム ネットワーク ネットワー

MISAO with WPF

_ワイヤレスカメラアプリ取説.indd

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

SLP_vREQ 取扱説明書


( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではな

Javaプログラムの実行手順

Prog2_2nd

プリンタドライバインストールガイド <OPS645>-Windows Vista(32bit 版 )/ Windows 7(32bit 版 )/ Windows 8(32bit 版 )/ Windows 8.1(32bit 版 )- プリンタドライバインストールガイド <OPS645> Window

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ

PowerPoint プレゼンテーション

プロシード

EP-977A3/EP-907F/EP-807AB/EP-807AW/EP-807AR/EP-777A/EP-707A

EP-10VA/EP-978A3/EP-808AB/EP-808AW/EP-808AR

SC-01Bソフトウェア更新手順書

シヤチハタ デジタルネーム 操作マニュアル

ESOTERIC ASIO USB DRIVER インストールマニュアル Windows 用 システム推奨条件 2 インストールで使用する言語を選択して 次へ ボタンをクリックする Intel Core 2 Duo 以上のプロセッサー搭載コンピュータ 搭載メモリ 1GB 以上 対応 OS Windo

XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述する

HOL14: Microsoft Office Excel 2007 の ブラウザと Web サービス対応

With sqlda sqlda に SelectCommand を追加.SelectCommand = New MySqlCommand() With.SelectCommand.CommandType = CommandType.Text.CommandText = "select * from

Microsoft Word - SKY操作マニュアル.doc

JavaプログラミングⅠ

プラグイン

EP-708A

PowerPoint プレゼンテーション

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

注意 : ネットワークカメラの画像を回転させて表示した場合 モーション検知ウインドウは回転しないまま表示されますが 検知ウインドウは被写体に対して 指定した場所通りに動作します モーション検知ウインドウの縦横のサイズは 8 ピクセルで割り切れるサイズに自動調整されます モーション検知ウインドウを作成

WebReportCafe

EP-976A3/EP-906F/EP-806AB/EP-806AW/EP-806AR/EP-776A/EP-706A

Windows用タブレットドライバー簡易ガイド

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

スライド 1

Prog2_2nd

1

CubePDF ユーザーズマニュアル

ファームウエアアップデート手順書 EOS C500/EOS C500 PL

Transcription:

2015/06/29 MsakoAPI プログラミングガイド ( 改訂第 5 版 ) この資料は Msako 4.1.1 MsakoAPI 1.8 以降に適応する Visual Studio のツールボックスに MsakoAPI を加える プログラムに MsakoTranceiver を組み込む Msako と接続する Msako の基本情報を取得する Msako のパラメータを取得 設定する 動体検知のイベントを処理する 動体検知の詳細データを取得する 動体検知を開始 停止する スナップショット画像を取得する 再構成する 再起動する 外部機器で発生した異常を通知する イベント番号一覧を取得する イベント情報を取得する イベント画像を取得する サンプルプログラムを実行する 1

Visual Studio のツールボックスに MsakoAPI を加える 新しい Windows フォームアプリケー ションプロジェクトを作成する ツールボックスの余白の部分で マ ウス右ボタンを押し アイテムの選 択 を選ぶ 2

ツールボックスアイテムの選択 にて 参照 ボタンを押し MsakoAPI の DLL ファイル MsakoAPI.dll を指定する すると 一覧に右のように追加される ツールボックスには MsakoTranceiver のアイコンが表示 される 3

プログラムに MsakoTranceiver を組み込む ツールボックスの MsakoTranceiver のアイコンをドラッグして フォー ムの上でドロップする MsakoTranceiver1 という名前のコ ンポーネントが作成されて フォー ムの下に表示される 4

メッセージハンドラをオーバーライ ドする Protected Overrides Sub WndProc(ByRef m As Message) MsakoTranceiver1.WndProc(m) MyBase.WndProc(m) End Sub C#.NET の場合 protected override void WndProc(ref Message m) { MsakoTranceiver1.WndProc(ref m); base.wndproc(ref m); } 5

Msako と接続する MsakoAPI を使う場合 先ず最初に Msako と接続しなければならない 接続する相手の Msako は特定の1つである ここで注意しておかなければならないのは 接続を試みる時点で システムには2つ以上の Msako が存在する場合もあるということである 1つのシステム内で複数のカメラがあった場合 それらを使用する Msako も複数個起動する Msako と接続するためには MsakoTranceiver クラスの Discover メソッドを使用する このメソッドは システム内にある Msako を探索する 次の例は ボタンコントロールを押したときにこのメソッドは呼ぶ例である ただし これは 1 例であり どのタイミングで Msako と接続するかは プログラマに任せられている Private Sub btndiscover_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btndiscover.click If MsakoTranceiver1.Discover() <> MT_RESULT.MT_SUCCESS Then MessageBox.Show("Fail Discover()") End Sub C#.NET の場合 private void btndiscover_click(object sender, EventArgs e) { if (MsakoTranceiver1.Discover()!= MT_RESULT.MT_SUCCESS) MessageBox.Show("Fail Discover()"); } 上の例のように引数なしで Discover メソッドを呼んだ場合 探索して発見した Msako のうち 1 番目の Msako に接続される 探索した結果 Msako が見つからない場合 このメソッドは MT_RESULT.MT_NOCONNECTION を返す 探索した結果いくつの Msako が見つかったかは PeerCount プロパティを調べればわかる 接続先の Msako を変更するためには SelectedIndex プロパティーを変更すればよい どのような順序で Msako が発見されるかは規則は無いが 発見したそれぞれの Msako のウィンドウハンドルが GetPeerAt メソッドによって取得できるので 取得したウィンドウハンドルを手がかりに相手の Msako を特定することが可能だ また 後述する基本情報取得用のメソッドを使ってそれぞれの Msako の画像の大きさなどを調べ上げることもできる 6

Msako の基本情報を取得する 接続している Msako について次の情報を得ることができる カメラ名 カメラ別名 撮影場所 カメラ識別番号 画像の横幅 画像の高さ 画像回転角 Msako の状態 処理時間 これらの情報を得るために 次のメソッドが用意されている GetDeviceName GetAlias GetLocation GetCameraId GetImageSize GetStatus 次の例は カメラ名を取得してメッセージボックスに表示する例である Dim name As String = String.Empty If MsakoTranceiver1.GetDeviceName(name) = MT_RESULT.MT_SUCCESS Then MessageBox.Show(name) Else MessageBox.Show("Fail GetDeviceName()") C#.NET の場合 string name = string.empty; if (MsakoTranceiver1.GetDeviceName(ref name) == MT_RESULT.MT_SUCCESS) MessageBox.Show(name); else MessageBox.Show("Fail GetDeviceName()"); 7

Msako のパラメータを取得 設定する 接続している Msako に設定されているパラメータの値を取得したり 変更することができる 対象となる パラメータは次の通りである 感度 (MP_SENSE_LEVEL) サンプル速度 (MP_FRAME_RATE) ブロックの大きさ (MP_BLOCK_SIZE) バッファ数 (MP_NUM_BUFFER) ターゲット数 (MP_NUM_TARGET) 閃光フィルタ (MP_FLASH_COMP) 頭部拡張補正 (MP_HEAD_COMP) ブロック結合度 (MP_BLOCK_COH) 警報レベル (MP_ALARM_LEVEL) 自動サンプル速度 (MP_AUTO_SPEED) これらのパラメータの値を取得するには GetParameter メソッドを 設定するには SetParameter メソッドを 使う 次の例は 感度を取得してメッセージボックスに表示する例である Dim pdata As MM_PARAM_DATA = New MM_PARAM_DATA() pdata.type = MM_PARAM_TYPE.MP_SENSE_LEVEL If MsakoTranceiver1.GetParameter(pdata) = MT_RESULT.MT_SUCCESS Then MessageBox.Show(pdata.param.int_value.ToString()) Else MessageBox.Show("Fail GetParameter()") C#.NET の場合 MM_PARAM_DATA pdata = new MM_PARAM_DATA(); pdata.type = MM_PARAM_TYPE.MP_SENSE_LEVEL; if (MsakoTranceiver1.GetParameter(ref pdata) == MT_RESULT.MT_SUCCESS) MessageBox.Show(pdata.param.int_value.ToString()); else MessageBox.Show("Fail GetParameter()"); 8

動体検知のイベントを処理する Msako が動体を検知したことは MsakoTranceiver のイベント 1 として通知される 従って プログラマは MsakoTranceiver のイベントハンドラーを作成することによって Msako が動体を検知したことに応じた処理を実施することができる MsakoTranceiver には次のイベント 1 がある Initialized Terminated Started Stoped EventStart EventEnd EventAlarm NoMotion MotionDetected Motion 2 Msako が起動した Msako が停止した動体検知を開始した動体検知を停止した動体検知のイベントが発生した動体検知のイベントが終了した動体検知のイベントが警告モードになった動きまセンサーが検知した動体検知フレームを検出した動体検知フレームの詳細データ これらのイベントについて イベントハンドラーを作成する方法は 通常の.NET アプリケーションと同じ要領である Visual Studio のフォームに表示されている MsakoTranceiver のインスタンスを選択し プロパティウィンドウに表示されたイベント名をダブルクリックすれば 自動的に空のイベントハンドラが作成される プログラマは 作製された空のイベントハンドラーに処理したい内容を書き足してゆく 次の例は MotionDetected に対するイベントハンドラである Private Sub MsakoTranceiver1_MotionDetected(ByVal sender As System.Object, ByVal e As MsakoAPI.MsakoEventArgs) Handles MsakoTranceiver1.MotionDetected MessageBox.Show(" 動体を検知しました ") End Sub C#.NET の場合 private void MsakoTranceiver1_MotionDetected(object sender, MsakoEventArgs e) { MessageBox.Show(" 動体を検知しました "); } 1 Msako の動体検知イベントと.NET のクラスのイベントは別のものであるので区別して理解すること 2 Motion イベントについては それ以外と区別して後の章で説明する 9

MsakoTranceiver1 という名前のコンポーネントを選択し プロパティーウィンドウのイベント MotionDetected をダブルクリックする すると コードウィンドウが開いて MsakoTranceiver1_MotionDetected という名前の空のイベントハンドラが作成される ここに 自分の処理を書き加えてゆく 10

動体検知の詳細データを取得する フレームごとに動体検知の過程で算出したデータを取得することができる これらのデータを取得するには あらかじめ MsakoTranceiver の Listen メソッドを使って接続している Msako にデータの配信を依頼しておく必要がある 検知したフレームの日時イベントが開始した日時イベント番号フレーム番号総移動ピクセル数認識されたターゲット数ターゲットごとの情報ターゲットの識別子ターゲットに含まれる移動ピクセル数ターゲットの重心の座標ターゲットの範囲ターゲットの色ターゲットのスポット領域 これらのデータは 前の章では説明しなかったが 前の章と同様に MsakoTranceiver の Motion イベントとして通知される したがって イベントハンドラの中で処理することも同様である ただし このイベントハンドラには MotionEventArgs という引数が渡される この MotionEventArgs 引数には MM_MOTION_DATA 型の構造体が含まれていて この構造体に上記の詳細データが記述されている 次の例は 1 番目のターゲットの重心の座標をフォーム上のテキストボックスに表示する例である Private Sub MsakoTranceiver1_Motion(ByVal sender As System.Object, ByVal e As MsakoAPI.MotionEventArgs) Handles MsakoTranceiver1.Motion textcx.text = e.mdata.target0.center_x.tostring() textcy.text = e.mdata.target0.center_y.tostring() End Sub C#.NET の場合 private void MsakoTranceiver1_Motion(object sender, MotionEventArgs e) { textcx.text = e.mdata.target0.center_x.tostring(); textcy.text = e.mdata.target0.center_y.tostring(); } 11

動体検知を開始 停止する Msako の動体検知を開始 停止するには MsakoTranceiver の Start メソッド Stop メソッドを使う これらのメソッドには タイムアウト時間の引数がある ここで指定した時間内に Msako が起動しなかった場合 このメソッドは MT_RESULT.MT_TIMEOUT を返す プログラマは それぞれのシステムに応じてこのタイムアウト時間を適宜設定する 次の例は フォーム上のボタンが押されると開始 停止する例で 開始に 3 秒 停止に 1 秒のタイムアウト時間を設定している Private Sub btnstart_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnstart.click If MsakoTranceiver1.Start(3000) <> MT_RESULT.MT_SUCCESS Then MessageBox.Show("Fail Start()") End Sub Private Sub btnstop_click(byval sender As System.Object, ByVal e As System.EventArgs) Handles btnstop.click If MsakoTranceiver1.Stop(1000) <> MT_RESULT.MT_SUCCESS Then MessageBox.Show("Fail Stop()") End Sub C#.NET の場合 private void btnstart_click(object sender, EventArgs e) { if (MsakoTranceiver1.Start(3000)!= MT_RESULT.MT_SUCCESS) MessageBox.Show("Fail Start()"); } private void btnstop_click(object sender, EventArgs e) { if (MsakoTranceiver1.Stop(1000)!= MT_RESULT.MT_SUCCESS) MessageBox.Show("Fail Stop()"); } 12

スナップショット画像を取得する Msako の最新のスナップショット画像を取得するには MsakoTranceiver の GetSnapshot メソッドを使う このメソッドは 引数で指定した Bitmap オブジェクトに取得した画像を返す ただし Msako が停止している場合は 全体が黒い画像を返す 次の例は タイムアウト時間を 200 ミリ秒に設定してスナップショット画像を取得する例である Dim bmpsnapshot As Bitmap = Nothing If MsakoTranceiver1.GetSnapshot(bmpSnapshot, 200) <> MT_RESULT.MT_SUCCESS Then MessageBox.Show("Fail GetSnapshot()") C#.NET の場合 Bitmap bmpsnapshot = null; if (MsakoTranceiver1.GetSnapshot(ref bmpsnapshot, 200)!= MT_RESULT.MT_SUCCESS) MessageBox.Show("Fail GetSnapshot()"); 13

再構成する Msako の設定値を再度読み込ませるためには MsakoTranceiver の Configure メソッドを使う 次の例は タイムアウト時間を 2 秒に設定して再構成する例である If MsakoTranceiver1.Configure(2000) <> MT_RESULT.MT_SUCCESS Then MessageBox.Show("Fail Configure()") C#.NET の場合 if (MsakoTranceiver1.Configure(2000)!= MT_RESULT.MT_SUCCESS) MessageBox.Show("Fail Configure()"); 再起動する Msako の再起動するためには MsakoTranceiver の Reset メソッドを使う If MsakoTranceiver1.Reset() <> MT_RESULT.MT_SUCCESS Then MessageBox.Show("Fail Reset()") C#.NET の場合 if (MsakoTranceiver1.Reset()!= MT_RESULT.MT_SUCCESS) MessageBox.Show("Fail Reset()"); 14

外部機器で発生した異常を通知する センサなど外部機器が捉えた異常を Msako に通知するためには MsakoTranceiver の Alarm メソッドを使う 次の例は 画面上にある4つのチェックボックスの値を各警報チャネルのビット値にみたてて通知する例である ch4 = 1, ch3 = 1, ch2 = 0, ch1 = 1 Dim channels As Integer channels = 0 If chkalarm1.checked Then channels = channels Or &H1 If chkalarm2.checked Then channels = channels Or &H2 If chkalarm3.checked Then channels = channels Or &H4 If chkalarm4.checked Then channels = channels Or &H8 If MsakoTranceiver1.Alarm(channels) <> MT_RESULT.MT_SUCCESS Then MessageBox.Show("Fail Alarm()") C#.NET の場合 int channels = 0; if (chkalarm1.checked) channels = 0x00000001; if (chkalarm2.checked) channels = 0x00000002; if (chkalarm3.checked) channels = 0x00000004; if (chkalarm4.checked) channels = 0x00000008; if (MsakoTranceiver1.Alarm(channels)!= MT_RESULT.MT_SUCCESS) MessageBox.Show("Fail Alarm()"); 15

イベント番号一覧を取得する バージョン番号の一覧を取得するためには MsakoTranceiver の GetEventList メソッドを使う このメソッド は 引数で与えた整数を要素とするリスト System.Collections.Generic.List にイベント番号の一覧を返す Dim list As New List(Of Integer) If MsakoTranceiver1. GetEventList(list) <> MT_RESULT.MT_SUCCESS Then MessageBox.Show("Failed GetEventList()") C#.NET の場合 List<int> list = new List<int>(); if (MsakoTranceiver1.GetEventList(ref list)!= MT_RESULT.MT_SUCCESS) MessageBox.Show("Fail GetEventList()"); 16

イベント情報を取得する Msako が保持している特定の 1 つのイベントの情報を取得するためには MsakoTranceiver の GetEventData メソッ ドを使う 次の例は イベント番号 31 の延べ時間をテキストボックスに表示する例である Dim data As MM_EVENT_PROFILE = New MM_EVENT_PROFILE() If MsakoTranceiver1.GetEventData(31, data) = MT_RESULT.MT_SUCCESS Then textduration.text = data.duration.tostring() Else MessageBox.Show("Failed GetEventData()") C#.NET の場合 MM_EVENT_PROFILE data = new MM_EVENT_PROFILE(); if (MsakoTranceiver1. GetEventData(31, ref data) == MT_RESULT.MT_SUCCESS) { textduration.text = data.duration.tostring(); } else { MessageBox.Show("Fail GetEventData()"); } 17

イベント画像を取得する Msako が保持している特定の1つのイベントの画像を取得するためには MsakoTranceiver の GetEventImage メソッドを使う このメソッドは 引数で与えた System.Drawing.Bitmap に 引数で指定したイベント番号の画像を返す 次の例は イベント番号 15の画像を取得する例である Dim bmp As Bitmap = Nothing If MsakoTranceiver1.GetEventImage(15, bmp, 200) <> MT_RESULT.MT_SUCCESS Then MessageBox.Show("Failed GetEventImage()") C#.NET の場合 Bitmap bmp = null; if (MsakoTranceiver1.GetEventImage(15, ref bmp, 200)!= MT_RESULT.MT_SUCCESS) { MessageBox.Show("Fail GetEventImage()"); } 18

サンプルプログラムを実行する MsakoAPI のサンプルプログラムには ソースとそれにもとづいて作成された実行プログラムが含まれている このサンプルプログラムは MsakoAPI を使って独自のプログラムを作成するにあたり 素早く MsakoAPI の使用法を理解するのに役立つだろう ここでは このサンプルプログラムを起動して操作するする手順を説明する なお このサンプルプログラムは Microsoft Visual Studio 2010 Professional にて作成されている (1) サンプルプログラムを起動する前に Msako 本体を起動しておく (2) Msako の詳細設定タブにあるメッセージに関する設定を次のように設定する (3) 続いてサンプルプロフラムを起動する サンプルプログラムには C# 版と Visual Basic 版があるが機 能は全く同じである C# 版 MsakoAppCS_*.*\bin\Release\MsakoAppCS.exe Visual Basic 版 MsakoAppVB_*.*\bin\Release\MsakoAppVB.exe 19

(4) 次のようなサンプルプログラムの画面が表示される (5) サンプルプログラムの画面にある [Discover] ボタンを押す これによって 現在起動されている Msako と接続される Msako が複数のカメラを使用している場合 MsakoAPI は任意のカメラと接続できるが このサンプルプログラムでは最初に発見したカメラと接続するようになっている (6) [Get Name] ボタンを押すと接続されたカメラの名前が表示される また同様に [Get Size] は画像の大きさ [Get Status] は現在の状態が表示される (7) [Get Param] および [Set Param] は設定値の取得 変更を行うことができる (4) の例は 感度を 85% に設定している (8) [Listen] ボタンを押すと 例えば イベントが開始した (WM_MSAKO_EVENT_START) とか 動体を検知した (WM_MSAKO_MOTION_DETECTED) といった MsakoAPI のイベントが受信可能になる (9) [Start] ボタンを押すと Msako の監視が開始する 反対に [Stop] ボタンで監視を停止する (10) [Alarm] ボタンはその右側にあるチェックボックスで設定された外部トリガー信号を Msako に送出する これによって Msako のイベント一覧には外部トリガーのイベントが表示される (11) [Snapshot] ボタンを押すと現在の画像が表示される (12) 動体を検知すると Cx Cy 欄にターゲットの重心位置 Spot 欄にターゲットのスポット領域の番号が表示される (13) 動体検知のイベントが終了するとイベントの画像が表示され 画面の一番下にイベントの経過時間とレベル値 (db) が表示される 20