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; } } } } }