예제 #1
0
        private void MonitorActive()
        {
            try
            {
                if (this.InvokeRequired)
                {
                    MonitorActiveDelegate monitorActiveDelegate = MonitorActive;
                    this.Invoke(monitorActiveDelegate);
                }
                else
                {
                    #region 旋转电机状态
                    powerState_spin    = formMain.bpq.read_coil(powerAddress_spin, 5);
                    forwardState_spin  = formMain.bpq.read_coil(forwardReadAddress_spin, 5);
                    noForwadState_spin = formMain.bpq.read_coil(noForwardReadAddress_spin, 5);
                    orignState_spin    = formMain.bpq.read_coil(orignReadAddress_spin, 5);

                    powerBtn_spin.BackColor     = powerState_spin ? Color.Green : DefaultBackColor;
                    powerBtn_spin.Text          = powerState_spin ? "伺服开" : "伺服关";
                    forwardBtn_spin.BackColor   = forwardState_spin ? Color.Green : DefaultBackColor;
                    noForwardBtn_spin.BackColor = noForwadState_spin ? Color.Green : DefaultBackColor;
                    orignBtn_spin.BackColor     = orignState_spin ? Color.Green : DefaultBackColor;
                    #endregion

                    #region 升降电机状态
                    powerState_upDown    = formMain.bpq.read_coil(powerAddress_upDown, 5);
                    forwardState_upDown  = formMain.bpq.read_coil(forwardReadAddress_upDown, 5);
                    noForwadState_upDown = formMain.bpq.read_coil(noForwardReadAddress_upDown, 5);
                    orignState_upDown    = formMain.bpq.read_coil(orignReadAddress_upDown, 5);

                    powerBtn_upDown.BackColor     = powerState_upDown ? Color.Green : DefaultBackColor;
                    powerBtn_upDown.Text          = powerState_upDown ? "伺服开" : "伺服关";
                    forwardBtn_upDown.BackColor   = forwardState_upDown ? Color.Green : DefaultBackColor;
                    noForwardBtn_upDown.BackColor = noForwadState_upDown ? Color.Green : DefaultBackColor;
                    orignBtn_upDown.BackColor     = orignState_upDown ? Color.Green : DefaultBackColor;
                    #endregion
                }
            }
            catch (Exception ex)
            {
                Log.Error("读取电机状态异常:" + ex.ToString());
                return;
            }
        }
        private delegate void MonitorActiveDelegate();//doData的状态监控

        private void MonitorActive()
        {
            if (this.InvokeRequired)
            {
                MonitorActiveDelegate monitorActiveDelegate = MonitorActive;
                this.Invoke(monitorActiveDelegate);
            }
            else
            {
                foreach (Control c in this.Controls)
                {
                    Button btn = c as Button;
                    if (btn != null)
                    {
                        var val = formMain.doData[GetFirstIndex(btn.Text)].get_bit(GetSecondIndex(btn.Text));
                        if (val == 1)
                        {
                            btn.BackColor = Color.Green;
                        }
                    }
                }
            }
        }