Пример #1
0
        public MainForm() : base("CDI检测机系统", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString())
        {
            InitializeComponent();
            //Version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            ClassCommonSetting.ProgramLog(LogFile.Level.Info, "Main", "Run version: " + Version);
            //初始化硬件
            SplashProcessInfo = "初始化硬件...";
            HardwarePool.SystemHardware.instance.Init();
            HardwarePool.SystemHardware.instance.Open();
            SerialProtocalCollection.instance.ConnectProtocol();
            SplashProcessInfo = "加载参数,打开CDIVision...";
            ClassCommonSetting.CommonInit();
            this.LogOutTime = GetLogOutTime(ClassCommonSetting.SysParam.LogOutTime);

            //初始化工作区域
            SplashProcessInfo = "初始化工作区域...";
            zones             = ClassWorkZones.Instance;
            zones.AllZoneInit();
            SplashProcessInfo = "初始化工作流程...";
            workflow          = ClassWorkFlow.Instance;
            workflow.WorkFlowInit();
            //初始化主界面
            SplashProcessInfo = "初始化界面...";
            auto        = AutoPanel.Instance;
            setting     = new ConfigurationPanel();
            manual      = new ManualOperationPanel();
            product     = new ProductPanel();
            calibration = new CalibrationPanel();
            monitor     = new MonitorPanel();
            AddInterface(PanelType.AutoFace, auto);
            AddInterface(PanelType.SettingFace, setting);
            AddInterface(PanelType.ManualFace, manual);
            AddInterface(PanelType.ProductFace, product);
            AddInterface(PanelType.DebugFace, calibration);
            AddInterface(PanelType.MonitorFace, monitor);
            ClassCommonSetting.SysParam.AddParaInterface(product);
            ClassCommonSetting.SysParam.CurrentProductParam.SetDataToInterface(product);
            ClassCommonSetting.SysParam.CurrentProductParam.AddParaInterface(calibration);

            zones.SPC.AddGUI(auto);
            zones.SPC.AddGUI(monitor);

            //事件挂钩
            CommonFunction.SysPublisher.subscribeMeToSystemEvents(zones);
            CommonFunction.SysPublisher.subscribeMeToSystemEvents(workflow);
            zones.WorkZone外框架.HookErrorEvent();
            auto.HookErrorEvent();
            workflow.TimeUsage.AddTimeUsageGUI(auto);
            zones.AddTimeUsage(auto);
            ClassCommonSetting.SocketToAOI.subscribeMeToResponseEvents(zones.WorkZone尺寸测量);
            HookErrorEvent();
            CommonFunction.SysPublisher.subscribeMeToSystemEvents(this);
            this.UserLoggedIn     += MainForm_UserLoggedIn1;
            this.UserLoggedOut    += MainForm_UserLoggedOut1;
            product.SaveParaEvent += Product_SaveParaEvent;
            //发送事件
            CommonFunction.SysPublisher.notifyProductChangeEventSubscribers(null, new StateEventArgs(ClassCommonSetting.SysParam.CurrentProduct, ""));
        }
Пример #2
0
 private void OnUpdateFlagAndString(uint flag, StringBuilder str)
 {
     if ((flag == UpdateAnimClear || flag == UpdateAnimAdd))
     {
         //AnimListBox.BeginInvoke(new PFN_UpdateFlagAndString(UpdateAnimList), flag, str);
     }
     else if (flag == UpdateMonitorTargetName)
     {
         MonitorPanel.BeginInvoke(new PFN_UpdateFlagAndString(UpdateMonitorTarget), flag, str);
     }
     else
     {
         throw new NotImplementedException();
     }
 }
Пример #3
0
 private void OnUpdatePosAndRot(float x, float y, float z, float pitch, float yaw, float roll)
 {
     MonitorPanel.BeginInvoke(new PFN_UpdatePosAndRot(InvokeUpdatePosAndRot), x, y, z, pitch, yaw, roll);
 }
        private void BindMonitors(MonitorPanel[] panels)
        {
            MonitorItems = panels;

            if (panels.Length > 0)
            {
                Monitor = panels[0];
            }
            else
            {
                Monitor = null;
            }
        }