Exemplo n.º 1
0
        /// <summary>
        /// 조작반 UDP 데이터 수신 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void recvUdpKey_ReceivedData(object sender, NCasUdpRecvEventArgs e)
        {
            byte[] tmpBuff = new byte[e.Len];
            System.Buffer.BlockCopy(e.Buff, 0, tmpBuff, 0, e.Len);
            NCasPlcProtocolBase protoBase = NCasPlcProtocolFactory.ParseFrame(tmpBuff);

            if (protoBase.Command == NCasDefinePlcCommand.ReqStatusResponse)
            {
                NCasPlcProtocolReqStatusResponse protoStsResp = protoBase as NCasPlcProtocolReqStatusResponse;
                OrderView19201080 orderView = (OrderView19201080)this.dicViews[ViewKind.OrderView19201080];

                MethodInvoker invoker = delegate()
                {
                    orderView.SetKeyPlc(protoStsResp);
                };

                if (this.InvokeRequired)
                {
                    this.Invoke(invoker);
                }
                else
                {
                    invoker();
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 중앙, 2중앙 발령 승계를 위한 데이터 수신
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void recvCenterAlarm_ReceivedData(object sender, NCasUdpRecvEventArgs e)
        {
            try
            {
                NCasProtocolBase protoBase = NCasProtocolFactory.ParseFrame(e.Buff);

                if (protoBase.TcCode == NCasDefineTcCode.TcAlarmOrder)
                {
                    NCasProtocolTc1 protoTc1 = protoBase as NCasProtocolTc1;

                    if (protoTc1.Source == NCasDefineOrderSource.CentCtrlRoom ||
                        protoTc1.Source == NCasDefineOrderSource.CentCtrlRoom2 ||
                        protoTc1.Source == NCasDefineOrderSource.CentCtrlRoom3)
                    {
                        if (protoTc1.AlarmKind == NCasDefineOrderKind.AlarmStandby)
                        {
                            OrderView19201080 orderView = (OrderView19201080)this.dicViews[ViewKind.OrderView19201080];

                            MethodInvoker invoker = delegate()
                            {
                                orderView.SetCenterAlarmOrder(true);
                            };

                            if (this.InvokeRequired)
                            {
                                this.Invoke(invoker);
                            }
                            else
                            {
                                invoker();
                            }
                        }
                        else if (protoTc1.AlarmKind == NCasDefineOrderKind.AlarmCancel)
                        {
                            OrderView19201080 orderView = (OrderView19201080)this.dicViews[ViewKind.OrderView19201080];

                            MethodInvoker invoker = delegate()
                            {
                                orderView.SetCenterAlarmOrder(false);
                            };

                            if (this.InvokeRequired)
                            {
                                this.Invoke(invoker);
                            }
                            else
                            {
                                invoker();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                NCasLoggingMng.ILogging.WriteLog("MainForm", "중앙, 2중앙 발령 승계를 위한 데이터 수신 Method Exception - " + ex.Message);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 각 ViewKind와 툴바를 매핑하는 작업
        /// </summary>
        private void InitView()
        {
            //메인 화면
            ViewBase coverViewBase = CoverView.CreateView(ViewKind.None, this);

            coverViewBase.ViewKind = ViewKind.None;
            coverViewBase.Dock     = System.Windows.Forms.DockStyle.Fill;
            coverViewBase.Location = new System.Drawing.Point(0, 0);
            coverViewBase.Name     = "coverView";
            coverViewBase.Size     = new System.Drawing.Size(1904, 937);
            this.middlePanel.Controls.Add(coverViewBase);
            this.dicViews.Add(ViewKind.None, coverViewBase);

            //경보발령 화면
            ViewBase orderViewBase = OrderView19201080.CreateView(ViewKind.OrderView19201080, this);

            orderViewBase.Interval = 1000;
            orderViewBase.ViewKind = ViewKind.OrderView19201080;
            orderViewBase.Dock     = System.Windows.Forms.DockStyle.Fill;
            orderViewBase.Location = new System.Drawing.Point(0, 0);
            orderViewBase.Name     = "orderView";
            orderViewBase.Size     = new System.Drawing.Size(1904, 937);
            this.middlePanel.Controls.Add(orderViewBase);
            this.dicViews.Add(ViewKind.OrderView19201080, orderViewBase);

            //경보결과 화면
            ViewBase resultViewBase = ResultView.CreateView(ViewKind.ResultView, this);

            resultViewBase.Interval = 1000;
            resultViewBase.ViewKind = ViewKind.ResultView;
            resultViewBase.Dock     = System.Windows.Forms.DockStyle.Fill;
            resultViewBase.Location = new System.Drawing.Point(0, 0);
            resultViewBase.Name     = "resultView";
            resultViewBase.Size     = new System.Drawing.Size(1904, 937);
            this.middlePanel.Controls.Add(resultViewBase);
            this.dicViews.Add(ViewKind.ResultView, resultViewBase);

            //장비감시 화면
            ViewBase deviceMonViewBase = DeviceMonitorView.CreateView(ViewKind.DevMonView, this);

            deviceMonViewBase.Interval = 1000;
            deviceMonViewBase.ViewKind = ViewKind.DevMonView;
            deviceMonViewBase.Dock     = System.Windows.Forms.DockStyle.Fill;
            deviceMonViewBase.Location = new System.Drawing.Point(0, 0);
            deviceMonViewBase.Name     = "deviceMonitorView";
            deviceMonViewBase.Size     = new System.Drawing.Size(1904, 937);
            this.middlePanel.Controls.Add(deviceMonViewBase);
            this.dicViews.Add(ViewKind.DevMonView, deviceMonViewBase);

            this.btnOrderMenu.Tag       = MainForm.ViewKind.OrderView19201080;
            this.btnOrderResultMenu.Tag = ViewKind.ResultView;
            this.btnDevMonMenu.Tag      = ViewKind.DevMonView;
        }
Exemplo n.º 4
0
        /// <summary>
        /// 듀얼시스템으로부터 수신받은 키 데이터를 화면에 반영한다.
        /// </summary>
        /// <param name="keyData"></param>
        public void SetKeyDataFromDual(NCasKeyData keyData)
        {
            MethodInvoker invoker = delegate()
            {
                OrderView19201080 orderView = (OrderView19201080)this.dicViews[ViewKind.OrderView19201080];
                orderView.SetKeyDataFromDual(keyData);
            };

            if (this.InvokeRequired)
            {
                this.Invoke(invoker);
            }
            else
            {
                invoker();
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// View를 생성하는 Factory method
        /// </summary>
        /// <param name="viewKind">ViewKind 종류</param>
        /// <param name="main">MainForm</param>
        /// <returns></returns>
        public static ViewBase CreateView(MainForm.ViewKind viewKind, MainForm main)
        {
            switch (viewKind)
            {
            case MainForm.ViewKind.None:
                CoverView cover = new CoverView(main);
                return(cover);

            case MainForm.ViewKind.OrderView19201080:
                OrderView19201080 order = new OrderView19201080(main);
                return(order);

            case MainForm.ViewKind.ResultView:
                ResultView result = new ResultView(main);
                return(result);

            case MainForm.ViewKind.DevMonView:
                DeviceMonitorView deviceMonitor = new DeviceMonitorView(main);
                return(deviceMonitor);

            default:
                return(new ViewBase(main));
            }
        }