/// <summary> /// カメラ初期化 /// </summary> /// <param name="eventHandler">取り込み完了時に呼び出すハンドラ</param> /// <returns></returns> public int InitCamera(GrabEventHandler eventHandler) { int ret; _grabEventHandler = eventHandler; // カメラモジュールからの取り込み完了通知用コールバック生成 if (_grab_proc == null) { _grab_proc = new grab_callback(grab_callback_func); } if ((ret = init_camera(_grab_proc)) < 0) { return(ret); } _initialized = true; return(0); }
/// <summary> /// コンストラクタ /// </summary> public ViewModel() { _data = 0; Trace.CreateLog("ROWTHON", 50000, 0); Trace.TraceFormat("Init Rowthon ViewModel"); //設定ファイルの読み込み if (ReadSettings() < 0) { //設定ファイルが無かったので、デフォルト値でファイルを書き出す WriteSettings(); MessageBox.Show("デフォルト設定で設定ファイル(Rowthon.ini)を生成しました", "確認", MessageBoxButton.OK, MessageBoxImage.Information); } //ソケット用のIPアドレスを設定する // ※LANポートが二個以上ある場合など、IPを指定する必要がある // LAN1:172.170.100.110 // LAN2:192.168.100.120 // などの場合、LAN2 でソケットを受け付けようとした場合、localhost とするとLAN1が使用される(?) // LANポートがひとつしかないような場合は localhost で良い if (Setting.IPAddress == "localhost") { _serverIP = Dns.GetHostEntry("localhost").AddressList[1]; } else { _serverIP = IPAddress.Parse(Setting.IPAddress); } //I/Oの初期化 _ioCtrl = new IoModel(); //サーボの初期化 _svCtrl = new ServoModel(); //visionモデルの初期化 _visionCtrl = new VisionModel(); //イベントリストを生成 _eventCtrl.CreateEventList(255); //I/Oイベントの設定 for (int bit = 0; bit < 32; bit++) { //OFF イベント IoControl.SetIoEvent(_eventCtrl.GetEvent(), 0, bit, 0); //ONイベント IoControl.SetIoEvent(_eventCtrl.GetEvent(), 0, bit, 1); } //取り込み完了イベントハンドラ _GrabEvent += new GrabEventHandler(grab_event_func); //OpenCVで使用するテンプレート名を登録する // ※VisionModel でのデータ登録も同じ手法(ファイル一覧)を使用しているので注意 _cv_tplList = Directory.GetFiles(System.Environment.CurrentDirectory + "\\Cv_template", "*.png"); ConnectionMsg = "未接続"; // Add1Command = CreateCommand(AddData, canExe); CmdServoReset = CreateCommand(SvReset, canSvReset); CmdServoPower = CreateCommand(SvPower, canSvPow); CmdServoErrClr = CreateCommand(SvErrorClear, canSvErrorClear); CmdServoErrInfo = CreateCommand(SvErrorInfo, canSvErrorInfo); CmdInitCamera = CreateCommand(CameraInit, canCameraInit); CmdGrabCamera = CreateCommand(GrabCamera, canGrabCamera); // CmdVisionProc = CreateCommand(VisionProc, canVisionProc); CmdDrawCenter = CreateCommand(DrawCenter, canDrawCenter); }