コード例 #1
0
        /// <summary>
        /// 继电器设备状态写入下位机事件处理函数 - 发生错误则弹出对话框
        /// </summary>
        /// <param name="err"></param>
        void RyDev_StatusUpdateEvent(Device.RelayProtocol.Err_r err)
        {
            // 继电器状态设置完成,刷新界面
            // 不论是否发生错误,RelayDevice.ryStatus[] 中始终存放继电器的正确状态,故全部更新
            this.BeginInvoke(new EventHandler(delegate
            {
#if false
                for (int i = 0; i < this.checkBox_ryDevices.Length; i++)
                {
                    this.checkBox_ryDevices[i].Checked = this.deviceAll.ryDevice.ryStatus[i];
                }
#endif
                // 从下位机更新继电器状态
                foreach (Device.RelayProtocol.Cmd_r cmd in Enum.GetValues(typeof(Device.RelayProtocol.Cmd_r)))
                {
                    this.checkBox_ryDevice[cmd].Checked = this.deviceAll.ryDevice.ryStatus[(int)cmd];
                }
            }));

            // 继电器状态设置成功
            if (err == Device.RelayProtocol.Err_r.NoError)
            {
                Debug.WriteLine("继电器状态写入成功!");

                //Utils.Logger.Sys("成功向下位机写入了继电器状态!");
            }
            // 继电器状态设置失败
            else
            {
                Debug.WriteLine("继电器状态写入失败! " + err.ToString());

                Utils.Logger.Sys("向下位机写入了继电器状态失败!  ErrorCode: " + err.ToString());

                this.BeginInvoke(new EventHandler(delegate
                {
                    MessageBox.Show("继电器状态写入失败!\rerr:  " + err.ToString());
                }));
            }
        }
コード例 #2
0
        private void BackgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            // 0 - 首先打开总电源
            Device.RelayProtocol.Err_r err0 = deviceAll.ryDevice.SelfCheckOneByOne(Device.RelayProtocol.Cmd_r.Elect, true);
            if (err0 == Device.RelayProtocol.Err_r.NoError)
            {
                // 自检成功
                this.BeginInvoke(new EventHandler(delegate
                {
                    Graphics mGhp = Graphics.FromImage(mBmpGreen);
                    mGhp.Clear(Color.Green);
                    this.picBox[(int)Device.RelayProtocol.Cmd_r.Elect].Image = mBmpGreen;
                }));
            }
            else
            {
                // 继电器设备自检失败
                MessageBox.Show("继电器设备自检失败!");
                goto ExitErr;
            }
            //Thread.Sleep(1500);


            // 1 - 主槽控温自检
            this.BeginInvoke(new EventHandler(delegate
            {
                label2.Text = "控温设备自检中...";
            }));
            if (deviceAll.tpDeviceM.SelfCheck() != Device.TempProtocol.Err_t.NoError)
            {
                // 主槽控温设备自检失败
                MessageBox.Show("主槽控温设备自检失败!");
                goto ExitErr;
            }

            if (deviceAll.tpDeviceS.SelfCheck() != Device.TempProtocol.Err_t.NoError)
            {
                // 辅槽控温设备自检失败
                MessageBox.Show("辅槽控温设备自检失败!");
                goto ExitErr;
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                label2.Text = "温控设备自检成功!";
            }));
            Thread.Sleep(2000);


            // 3 - 继电器自检
            this.BeginInvoke(new EventHandler(delegate
            {
                label2.Text = "继电器设备自检中...";
            }));

            for (int cmd = 1; cmd < 9; cmd++)
            {
                Device.RelayProtocol.Err_r err = deviceAll.ryDevice.SelfCheckOneByOne((Device.RelayProtocol.Cmd_r)cmd, true);
                if (err == Device.RelayProtocol.Err_r.NoError)
                {
                    // 自检成功
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        Graphics mGhp = Graphics.FromImage(mBmpGreen);
                        mGhp.Clear(Color.Green);
                        this.picBox[(int)cmd].Image = mBmpGreen;
                    }));
                }
                else
                {
                    // 继电器设备自检失败
                    MessageBox.Show("继电器设备自检失败!");
                    goto ExitErr;
                }
                Thread.Sleep(1500);
            }

            for (int cmd = 8; cmd > 0; cmd--)
            {
                Device.RelayProtocol.Err_r err = deviceAll.ryDevice.SelfCheckOneByOne((Device.RelayProtocol.Cmd_r)cmd, false);
                if (err == Device.RelayProtocol.Err_r.NoError)
                {
                    // 自检成功
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        Graphics mGhp = Graphics.FromImage(mBmpRed);
                        mGhp.Clear(Color.Red);
                        this.picBox[(int)cmd].Image = mBmpRed;
                    }));
                }
                else
                {
                    // 继电器设备自检失败
                    MessageBox.Show("继电器设备自检失败!");
                    goto ExitErr;
                }
                Thread.Sleep(1500);
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                label2.Text = "继电器设备自检成功!";
            }));
            Thread.Sleep(1500);



            // 4 - 传感器设备自检
            this.BeginInvoke(new EventHandler(delegate
            {
                label2.Text = "传感器设备自检中...";
            }));
            if (deviceAll.srDevice.SelfCheck() != true)
            {
                // 传感器设备自检失败
                MessageBox.Show("传感器设备自检失败!");
                goto ExitErr;
            }
            Thread.Sleep(1500);
            this.BeginInvoke(new EventHandler(delegate
            {
                label2.Text = "传感器设备自检成功!";
            }));
            Thread.Sleep(1500);


            // 5 - 关闭总电源
            err0 = deviceAll.ryDevice.SelfCheckOneByOne(Device.RelayProtocol.Cmd_r.Elect, false);
            if (err0 == Device.RelayProtocol.Err_r.NoError)
            {
                // 自检成功
                this.BeginInvoke(new EventHandler(delegate
                {
                    Graphics mGhp = Graphics.FromImage(mBmpRed);
                    mGhp.Clear(Color.Red);
                    this.picBox[(int)Device.RelayProtocol.Cmd_r.Elect].Image = mBmpRed;
                }));
            }
            else
            {
                // 继电器设备自检失败
                MessageBox.Show("继电器设备自检失败!");
                goto ExitErr;
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                label2.Text = "设备自检成功!";
            }));
            Thread.Sleep(3500);


            // 6 - 自检成功,返回
            this.BeginInvoke(new EventHandler(delegate
            {
                this.DialogResult = DialogResult.OK;
            }));
            return;


            // 7 - 自检失败,返回
ExitErr:
            this.BeginInvoke(new EventHandler(delegate
            {
                this.Close();
            }));
            return;
        }
コード例 #3
0
ファイル: FormMain.cs プロジェクト: fengxing1121/WenKong
        private void BackgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            // 0 - 禁用控件
            // 禁用一些控件
            SelfChkDisableControl(false);


            // 1 - 打开总电源
            Device.RelayProtocol.Err_r err1 = deviceAll.ryDevice.SelfCheckOneByOne(Device.RelayProtocol.Cmd_r.Elect, true);
            if (err1 == Device.RelayProtocol.Err_r.NoError)
            {
                // 自检成功
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.checkBox_ryDevice[Device.RelayProtocol.Cmd_r.Elect].Checked = true;
                }));
            }
            else
            {
                Utils.Logger.Sys("继电器设备自检失败 - 总电源打开失败");
                MessageBox.Show("总电源开关打开失败!");
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.Close();
                }));
                return;
            }


            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_controlState.Text = "设备自检中...";
                this.label_fluc.Text         = "主槽温控设备自检中...";
            }));
            System.Threading.Thread.Sleep(1500);



            // 2 - 主槽控温设备自检
            if (this.deviceAll.tpDeviceM.SelfCheck() != Device.TempProtocol.Err_t.NoError)
            {
                // 主槽控温设备自检失败
                Utils.Logger.Sys("主槽控温设备自检失败");
                MessageBox.Show("主槽温控设备自检失败!");
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.Close();
                }));
                return;
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "主槽温控设备自检成功!";
            }));
            Debug.WriteLine("tpDeviceM.SelfCheck OK");
            System.Threading.Thread.Sleep(2000);


            // 3 - 辅槽控温设备自检
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "辅槽温控设备自检中...";
            }));
            if (this.deviceAll.tpDeviceS.SelfCheck() != Device.TempProtocol.Err_t.NoError)
            {
                Utils.Logger.Sys("辅槽温控设备自检失败");
                MessageBox.Show("辅槽温控设备自检失败!");
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.Close();
                }));
                return;
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "辅槽温控设备自检成功!";
            }));
            Debug.WriteLine("tpDeviceS.SelfCheck OK");
            System.Threading.Thread.Sleep(2000);


            // 4.1 - 继电器设备自检 - 打开继电器
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "继电器设备自检中...";
            }));
            for (int cmd = 1; cmd < 9; cmd++)
            {
                Device.RelayProtocol.Err_r err = deviceAll.ryDevice.SelfCheckOneByOne((Device.RelayProtocol.Cmd_r)cmd, true);
                if (err == Device.RelayProtocol.Err_r.NoError)
                {
                    // 自检成功
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        this.checkBox_ryDevice[(Device.RelayProtocol.Cmd_r)cmd].Checked = true;
                    }));
                }
                else
                {
                    // 继电器设备自检失败
                    Utils.Logger.Sys("继电器设备自检失败 - 打开失败");
                    MessageBox.Show("继电器设备自检失败 - 打开失败!");
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        this.Close();
                    }));
                    return;
                }
                System.Threading.Thread.Sleep(1500);
            }
            Debug.WriteLine("ryDevice.SelfCheckOneByOne true OK");


            // 4.2 - 继电器设备自检 - 关闭继电器
            for (int cmd = 8; cmd >= 1; cmd--)
            {
                Device.RelayProtocol.Err_r err = deviceAll.ryDevice.SelfCheckOneByOne((Device.RelayProtocol.Cmd_r)cmd, false);
                if (err == Device.RelayProtocol.Err_r.NoError)
                {
                    // 自检成功
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        this.checkBox_ryDevice[(Device.RelayProtocol.Cmd_r)cmd].Checked = false;
                    }));
                }
                else
                {
                    // 继电器设备自检失败
                    Utils.Logger.Sys("继电器设备自检失败! - 关闭失败");
                    MessageBox.Show("继电器设备自检失败! - 关闭失败");
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        this.Close();
                    }));
                    return;
                }
                System.Threading.Thread.Sleep(1500);
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "继电器设备自检成功!";
            }));
            Debug.WriteLine("ryDevice.SelfCheckOneByOne false OK");
            System.Threading.Thread.Sleep(1000);


#if true
            // 5 - 测温电桥自检
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "测温电桥自检中...";
            }));
            if (deviceAll.tpBridge.SelfCheck() != true)
            {
                // 传感器设备自检失败
                Utils.Logger.Sys("测温电桥自检失败");
                DialogResult dt = MessageBox.Show("测温电桥自检失败!是否跳过该错误,点击 ‘是’ 跳过该错误,点击 ‘否’ 关闭程序", "错误提示对话框", MessageBoxButtons.YesNo);
                if (dt == DialogResult.No)
                {
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        // 关闭继电器
                        foreach (var cmd in Enum.GetValues(typeof(Device.RelayProtocol.Cmd_r)))
                        {
                            this.deviceAll.ryDevice.ryStatusToSet[(int)cmd] = false;
                        }
                        Utils.Logger.Sys("关闭所有继电器!");
                        try
                        {
                            deviceAll.ryDevice.StatusUpdateToDeviceEvent -= RyDev_StatusUpdateEvent;
                            this.deviceAll.ryDevice.UpdateStatusToDevice();
                        }
                        catch (Exception ex) {}
                        // 关闭系统
                        Utils.Logger.Sys("测温电桥自检错误,关闭系统软件!");

                        this.Close();
                    }));
                    return;
                }
                else
                {
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        this.label_fluc.Text = "测温电桥自检失败,跳过该错误!";
                    }));
                }
            }
            else
            {
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.label_fluc.Text = "测温电桥自检成功!";
                }));
            }
            Debug.WriteLine("tpBridge.SelfCheck ok");
            System.Threading.Thread.Sleep(2000);
#endif


            // 6 - 传感器设备自检
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "传感器设备自检中...";
            }));
            if (deviceAll.srDevice.SelfCheck() != true)
            {
                // 传感器设备自检失败
                Utils.Logger.Sys("传感器设备自检失败");
                MessageBox.Show("传感器设备自检失败!");
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.Close();
                }));
                return;
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_controlState.Text = "设备自检成功!";
                this.label_fluc.Text         = "传感器设备自检成功!";
            }));
            Debug.WriteLine("srDevice.SelfCheck ok");
            System.Threading.Thread.Sleep(2000);



            // 自检成功
            Utils.Logger.Sys("设备自检成功,系统开始运行...");
            Utils.Logger.Op("设备自检成功,系统开始运行...");
            //Utils.Logger.TempData("系统开始运行...");
            System.Threading.Thread.Sleep(2000);


            // 初始化主界面中的显示相
            InitMainFormShow();
            Debug.WriteLine("InitMainFormShow() ok");

            // 注册事件处理函数
            RegisterEventHandler();
            Debug.WriteLine("RegisterEventHandler() ok");

            // 主槽控温表 / 辅槽控温表 开始读取参数
            // wghou 20180105
            // 暂时先不开始读取温度,等待自检
            deviceAll.tpTemperatureUpdateTimer.Start();
            Debug.WriteLine("deviceAll.tpTemperatureUpdateTimer.Start() ok");

            // 启用主界面所有按键
            SelfChkDisableControl(true);

            this.BeginInvoke(new EventHandler(delegate
            {
                foreach (Device.RelayProtocol.Cmd_r cmd in Enum.GetValues(typeof(Device.RelayProtocol.Cmd_r)))
                {
                    checkBox_ryDevice[cmd].Enabled = false;
                }

                // 设置主电源的禁用状态
                this.checkBox_elect.Enabled = this.deviceAll.ryElecEnable;
            }));

            return;
        }
コード例 #4
0
        private void BackgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            Debug.WriteLine("BackgroundWorker1_DoWork is running...");
            // 禁用一些控件
            SelfChkDisableControl(false);

            Device.RelayProtocol.Err_r err1 = deviceAll.ryDevice.SelfCheckOneByOne(Device.RelayProtocol.Cmd_r.Elect, true);
            if (err1 == Device.RelayProtocol.Err_r.NoError)
            {
                // 自检成功
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.checkBox_ryDevice[Device.RelayProtocol.Cmd_r.Elect].Checked = true;
                }));
            }
            else
            {
                MessageBox.Show("总电源开关打开失败!");
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.Close();
                }));
                return;
            }



            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_controlState.Text = "设备自检中...";
                this.label_fluc.Text         = "主槽温控设备自检中...";
            }));


            // 开始自检
            Debug.WriteLine("Start self check.");


            // 主槽控温设备自检
            if (this.deviceAll.tpDeviceM.SelfCheck() != Device.TempProtocol.Err_t.NoError)
            {
                MessageBox.Show("主槽温控设备自检失败!");
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.Close();
                }));
                return;
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "主槽温控设备自检成功!";
            }));
            Debug.WriteLine("tpDeviceM.SelfCheck OK");
            System.Threading.Thread.Sleep(2000);


            // 辅槽控温设备自检
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "辅槽温控设备自检中...";
            }));
            if (this.deviceAll.tpDeviceS.SelfCheck() != Device.TempProtocol.Err_t.NoError)
            {
                MessageBox.Show("辅槽温控设备自检失败!");
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.Close();
                }));
                return;
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "辅槽温控设备自检成功!";
            }));
            Debug.WriteLine("tpDeviceS.SelfCheck OK");
            System.Threading.Thread.Sleep(2000);


            // 继电器设备自检 - 打开继电器
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "继电器设备自检中...";
            }));
            for (int cmd = 1; cmd < 9; cmd++)
            {
                Device.RelayProtocol.Err_r err = deviceAll.ryDevice.SelfCheckOneByOne((Device.RelayProtocol.Cmd_r)cmd, true);
                if (err == Device.RelayProtocol.Err_r.NoError)
                {
                    // 自检成功
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        this.checkBox_ryDevice[(Device.RelayProtocol.Cmd_r)cmd].Checked = true;
                    }));
                }
                else
                {
                    // 继电器设备自检失败
                    MessageBox.Show("继电器设备自检失败!");
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        this.Close();
                    }));
                    return;
                }
                System.Threading.Thread.Sleep(1000);
            }
            Debug.WriteLine("ryDevice.SelfCheckOneByOne true OK");

            // 继电器设备自检 - 关闭继电器
            for (int cmd = 8; cmd >= 1; cmd--)
            {
                Device.RelayProtocol.Err_r err = deviceAll.ryDevice.SelfCheckOneByOne((Device.RelayProtocol.Cmd_r)cmd, false);
                if (err == Device.RelayProtocol.Err_r.NoError)
                {
                    // 自检成功
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        this.checkBox_ryDevice[(Device.RelayProtocol.Cmd_r)cmd].Checked = false;
                    }));
                }
                else
                {
                    // 继电器设备自检失败
                    MessageBox.Show("继电器设备自检失败!");
                    this.BeginInvoke(new EventHandler(delegate
                    {
                        this.Close();
                    }));
                    return;
                }
                System.Threading.Thread.Sleep(1000);
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "继电器设备自检成功!";
            }));
            Debug.WriteLine("ryDevice.SelfCheckOneByOne false OK");
            System.Threading.Thread.Sleep(2000);


            // 传感器设备自检
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_fluc.Text = "传感器设备自检中...";
            }));
            if (deviceAll.srDevice.SelfCheck() != true)
            {
                // 传感器设备自检失败
                MessageBox.Show("传感器设备自检失败!");
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.Close();
                }));
                return;
            }
            this.BeginInvoke(new EventHandler(delegate
            {
                this.label_controlState.Text = "设备自检成功!";
                this.label_fluc.Text         = "传感器设备自检成功!";
            }));
            Debug.WriteLine("srDevice.SelfCheck ok");
            System.Threading.Thread.Sleep(2000);

            err1 = deviceAll.ryDevice.SelfCheckOneByOne(Device.RelayProtocol.Cmd_r.Elect, false);
            if (err1 == Device.RelayProtocol.Err_r.NoError)
            {
                // 自检成功
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.checkBox_ryDevice[Device.RelayProtocol.Cmd_r.Elect].Checked = false;
                }));
            }
            else
            {
                MessageBox.Show("总电源开关关闭失败!");
                this.BeginInvoke(new EventHandler(delegate
                {
                    this.Close();
                }));
                return;
            }


            // 自检成功
            Utils.Logger.Sys("设备自检成功,系统开始运行...");
            Utils.Logger.Op("设备自检成功,系统开始运行...");
            //Utils.Logger.TempData("系统开始运行...");
            System.Threading.Thread.Sleep(2000);


            // 初始化主界面中的显示相
            InitMainFormShow();
            Debug.WriteLine("InitMainFormShow() ok");

            // 注册事件处理函数
            RegisterEventHandler();
            Debug.WriteLine("RegisterEventHandler() ok");

            // 主槽控温表 / 辅槽控温表 开始读取参数
            // wghou 20180105
            // 暂时先不开始读取温度,等待自检
            deviceAll.tpTemperatureUpdateTimer.Start();
            Debug.WriteLine("deviceAll.tpTemperatureUpdateTimer.Start() ok");

            // 启用主界面所有按键
            SelfChkDisableControl(true);

            this.BeginInvoke(new EventHandler(delegate
            {
                foreach (Device.RelayProtocol.Cmd_r cmd in Enum.GetValues(typeof(Device.RelayProtocol.Cmd_r)))
                {
                    checkBox_ryDevice[cmd].Enabled = false;
                }

                // 设置主电源的禁用状态
                this.checkBox_elect.Enabled = this.deviceAll.ryElecEnable;
            }));

            return;
        }