示例#1
0
        /// <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);
        }
示例#2
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);
        }