예제 #1
0
    public Main() {
      // Addin
      Core.Addins.AddinStore.Discover();
      Core.Addins.AddinStore.Discover(Environment.CurrentDirectory);
      //Core.Addins.AddinStore.Discover(Path.Combine(Environment.CurrentDirectory, "plugins"));

      InitializeComponent();

      log4net.Appender.IAppender app =
        LogManager.GetRepository().GetAppenders().FirstOrDefault(x => x is Logging.StatusStripAppender);
      if (app != null)
      {
          Logging.StatusStripAppender ssa = app as Logging.StatusStripAppender;
          ssa.StatusStrip = _status_strip;
          ssa.ToolStripStatusLabel = _status_label;
      }


      Core.BuildingBlocks.Setup setup = null;
      try  //check konfigurasi parsley, jika tidak ada gunakan konfigurasi default
      {
        if (File.Exists(@"CurrentParsley.cfg")) 
        {
          setup = Core.BuildingBlocks.Setup.LoadBinary(@"CurrentParsley.cfg");
          //_logger.Info("Last Parsley configuration successfully loaded.");
          _logger.Info("Last Parsley configuration successfully loaded.");
          _logger.Debug("Last Parsley configuration successfully loaded.");
        } 
        else 
        {
          setup = new Parsley.Core.BuildingBlocks.Setup();
        }
      } 
      catch (System.Exception)
      {
        setup = new Parsley.Core.BuildingBlocks.Setup();
        _logger.Info("Last Parsley configuration failed to load properly. Using default one.");
      }

    //setting streaming camera
      Core.BuildingBlocks.FrameGrabber fg = new Parsley.Core.BuildingBlocks.FrameGrabber(setup.Camera);

      _live_feed = new Parsley.UI.Concrete.StreamViewer();
      _live_feed.Interpolation = Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR;
      _live_feed.FunctionalMode = Emgu.CV.UI.ImageBox.FunctionalModeOption.RightClickMenu;
      _live_feed.FrameGrabber = fg;
      _live_feed.FrameGrabber.FPS = 30;
      _live_feed.FormClosing += new FormClosingEventHandler(_live_feed_FormClosing);
      this.AddOwnedForm(_live_feed);
      _live_feed.Show();
      fg.Start();

    //setting rendering 3d
      _3d_viewer = new Parsley.UI.Concrete.Draw3DViewer();
      _3d_viewer.FormClosing += new FormClosingEventHandler(_3d_viewer_FormClosing);
      _3d_viewer.RenderLoop.FPS = 30;
      _3d_viewer.AspectRatio = setup.Camera.FrameAspectRatio;
      _3d_viewer.IsMaintainingAspectRatio = true;
      _3d_viewer.RenderLoop.Start();
      this.AddOwnedForm(_3d_viewer);
      _3d_viewer.Show();

      _context = new Context(setup, fg, _3d_viewer.RenderLoop, _live_feed.EmbeddableStream);

      _settings = new Settings(_context);
      _settings.FormClosing += new FormClosingEventHandler(_settings_FormClosing);
      _settings.PropertyGrid.PropertyValueChanged += new PropertyValueChangedEventHandler(PropertyGrid_PropertyValueChanged);
      this.AddOwnedForm(_settings);



      _slide_welcome = new WelcomeSlide();
      _slide_intrinsic_calib = new IntrinsicCalibrationSlide(_context);
      _slide_extrinsic_calib = new ExtrinsicCalibrationSlide(_context);
      _slide_laser_setup = new LaserSetupSlide(_context);
      _slide_scanning = new ScanningSlide(_context);
      _slide_image_algorithm_test = new ImageAlgorithmTestSlide(_context);
      _slide_pattern_designer = new PatternDesignerSlide(_context);

      
      _slide_control.AddSlide(_slide_welcome);
      _slide_control.AddSlide(_slide_scanning);
      _slide_control.AddSlide(_slide_intrinsic_calib);
      _slide_control.AddSlide(_slide_extrinsic_calib);
      _slide_control.AddSlide(_slide_laser_setup);
      _slide_control.AddSlide(_slide_image_algorithm_test);
      _slide_control.AddSlide(_slide_pattern_designer);

      _slide_control.SlideChanged += new EventHandler<SlickInterface.SlideChangedArgs>(_slide_control_SlideChanged);
      _slide_control.Selected = _slide_welcome;
    }
예제 #2
0
        public Main()
        {
            // Addin
            Core.Addins.AddinStore.Discover();
            Core.Addins.AddinStore.Discover(Environment.CurrentDirectory);
            //Core.Addins.AddinStore.Discover(Path.Combine(Environment.CurrentDirectory, "plugins"));

            InitializeComponent();

            log4net.Appender.IAppender app =
                LogManager.GetRepository().GetAppenders().FirstOrDefault(x => x is Logging.StatusStripAppender);
            if (app != null)
            {
                Logging.StatusStripAppender ssa = app as Logging.StatusStripAppender;
                ssa.StatusStrip          = _status_strip;
                ssa.ToolStripStatusLabel = _status_label;
            }


            Core.BuildingBlocks.Setup setup = null;
            try //check konfigurasi parsley, jika tidak ada gunakan konfigurasi default
            {
                if (File.Exists(@"CurrentParsley.cfg"))
                {
                    setup = Core.BuildingBlocks.Setup.LoadBinary(@"CurrentParsley.cfg");
                    //_logger.Info("Last Parsley configuration successfully loaded.");
                    _logger.Info("Last Parsley configuration successfully loaded.");
                    _logger.Debug("Last Parsley configuration successfully loaded.");
                }
                else
                {
                    setup = new Parsley.Core.BuildingBlocks.Setup();
                }
            }
            catch (System.Exception)
            {
                setup = new Parsley.Core.BuildingBlocks.Setup();
                _logger.Info("Last Parsley configuration failed to load properly. Using default one.");
            }

            //setting streaming camera
            Core.BuildingBlocks.FrameGrabber fg = new Parsley.Core.BuildingBlocks.FrameGrabber(setup.Camera);

            _live_feed = new Parsley.UI.Concrete.StreamViewer();
            _live_feed.Interpolation    = Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR;
            _live_feed.FunctionalMode   = Emgu.CV.UI.ImageBox.FunctionalModeOption.RightClickMenu;
            _live_feed.FrameGrabber     = fg;
            _live_feed.FrameGrabber.FPS = 30;
            _live_feed.FormClosing     += new FormClosingEventHandler(_live_feed_FormClosing);
            this.AddOwnedForm(_live_feed);
            _live_feed.Show();
            fg.Start();

            //setting rendering 3d
            _3d_viewer                          = new Parsley.UI.Concrete.Draw3DViewer();
            _3d_viewer.FormClosing             += new FormClosingEventHandler(_3d_viewer_FormClosing);
            _3d_viewer.RenderLoop.FPS           = 30;
            _3d_viewer.AspectRatio              = setup.Camera.FrameAspectRatio;
            _3d_viewer.IsMaintainingAspectRatio = true;
            _3d_viewer.RenderLoop.Start();
            this.AddOwnedForm(_3d_viewer);
            _3d_viewer.Show();

            _context = new Context(setup, fg, _3d_viewer.RenderLoop, _live_feed.EmbeddableStream);

            _settings              = new Settings(_context);
            _settings.FormClosing += new FormClosingEventHandler(_settings_FormClosing);
            _settings.PropertyGrid.PropertyValueChanged += new PropertyValueChangedEventHandler(PropertyGrid_PropertyValueChanged);
            this.AddOwnedForm(_settings);



            _slide_welcome              = new WelcomeSlide();
            _slide_intrinsic_calib      = new IntrinsicCalibrationSlide(_context);
            _slide_extrinsic_calib      = new ExtrinsicCalibrationSlide(_context);
            _slide_laser_setup          = new LaserSetupSlide(_context);
            _slide_scanning             = new ScanningSlide(_context);
            _slide_image_algorithm_test = new ImageAlgorithmTestSlide(_context);
            _slide_pattern_designer     = new PatternDesignerSlide(_context);


            _slide_control.AddSlide(_slide_welcome);
            _slide_control.AddSlide(_slide_scanning);
            _slide_control.AddSlide(_slide_intrinsic_calib);
            _slide_control.AddSlide(_slide_extrinsic_calib);
            _slide_control.AddSlide(_slide_laser_setup);
            _slide_control.AddSlide(_slide_image_algorithm_test);
            _slide_control.AddSlide(_slide_pattern_designer);

            _slide_control.SlideChanged += new EventHandler <SlickInterface.SlideChangedArgs>(_slide_control_SlideChanged);
            _slide_control.Selected      = _slide_welcome;
        }