using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DBFactory; using System.Net.Sockets; using System.Threading; using ICommLayer; using CommLayerFactory; using Microsoft.VisualBasic; using System.IO.Ports; using System.Resources; using System.Drawing.Drawing2D; namespace ControlSystem { /// /// Creator:Richard.liu /// 调度程序主窗口 /// public partial class FrmControlMonitor : WeifenLuo.WinFormsUI.Docking.DockContent { FrmDeviceStatus _deviceStatus = new FrmDeviceStatus(); FrmWorkstationStatus _worstation = new FrmWorkstationStatus(); #region 方法 public void FlashPanit(string obj, bool visible) { this.Controls[obj].Visible = visible; } public void FlashPanit(string obj, Image backgroundImage) { this.Controls[obj].BackgroundImage = backgroundImage; } public void FlashPanit(string obj, ImageLayout backgroundImageLayout) { this.Controls[obj].BackgroundImageLayout = backgroundImageLayout; } public void FlashPanit(string obj, int top, int left) { this.Controls[obj].Top = top; this.Controls[obj].Left = left; } public void FlashPanit(string obj, string text, bool append) { if (append == true) { this.Controls[obj].Text += text; } else { this.Controls[obj].Text = text; } } public string GetObjectText(string obj) { return this.Controls[obj].Text; } public void MonitorRefresh(object dataSource) { #region Added by DingXiaoxu for Dock TaskList on 20101219 FrmTaskList.FormInstance.MonitorRefresh(dataSource); #endregion //this.dgvMonitor.DataSource = dataSource; ////20100108 //dataSource = null; } public void ManagerRefresh(object dataSource) { #region Added by DingXiaoxu for Dock TaskList on 20101219 FrmTaskList.FormInstance.ManagerRefresh(dataSource); #endregion //this.dgvManager.DataSource = dataSource; ////20100108 //dataSource = null; } #endregion private static FrmControlMonitor _formInstance; public static FrmControlMonitor FormInstance { get { if (_formInstance == null) { _formInstance = new FrmControlMonitor(); } return _formInstance; } set { _formInstance = value; } } //IGetDeviceState gds; CGetState gs = new CGetState(); CControl cc = new CControl(); CListenPLCAsk cplc = new CListenPLCAsk(); CCommonFunction ccf = new CCommonFunction(); DBOperator dbo = CStaticClass.dbo; DBOperator dbo1 = CStaticClass.dbo1; DBOperator dboM =CStaticClass.dboM; // static ICommLayer.ISendDeviceOrder sdo; string[] wv = new string[1] { "2" }; string[] witemnames = new string[1]; //20110108 初始化刷新 Panel pp; Button stack1, stack2, stack3 ,stack4, stack5;//堆垛机 TextBox twj1, twj2, twj3, twj4, twj5;//光电开关 //TextBox twy1, twy2, twy3, twy4, twy5, twy6;//远叉光电开关 public FrmControlMonitor() { InitializeComponent(); _formInstance = this; } protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000;//WS_CLIPCHILDREN 两个窗体叠加时,重叠部分不重绘 return cp; } } private void FrmControlMonitor_Load(object sender, EventArgs e) { // CStaticClass.GetBackStackStatus(); foreach (Control ctrl in this.plAccessorial1.Controls) { } #region 添加输送机、穿梭车和堆垛机的单击事件 foreach (Control ctrl in this.panel4.Controls) { if (ctrl.GetType().ToString() == "System.Windows.Forms.Button" || ctrl.GetType().ToString() == "CommonClassLib.tButton") { ctrl.Click += new EventHandler(ctrl_Click); ctrl.MouseEnter += new EventHandler(Btn_MouseEnter); } if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null)) { ctrl.Click += new EventHandler(ctrl_ClickLabel); ctrl.MouseEnter += new EventHandler(Btn_MouseEnter); } } foreach (Control ctrl in this.panel3.Controls) { if (ctrl.GetType().ToString() == "System.Windows.Forms.Button") { ctrl.Click += new EventHandler(ctrl_Click); ctrl.MouseEnter += new EventHandler(Btn_MouseEnter); } if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null)) { ctrl.Click += new EventHandler(ctrl_ClickLabel); ctrl.MouseEnter += new EventHandler(Btn_MouseEnter); } } #endregion } private void ctrl_Click(object sender, EventArgs e) { Button btn = (Button)sender; _deviceStatus.DeviceIndex = Convert.ToInt32(btn.Tag); _deviceStatus.ShowDialog(); } private void ctrl_ClickTxt(object sender, EventArgs e) { TextBox txt = (TextBox)sender; _worstation.DeviceIndex = Convert.ToInt32(txt.Tag); _worstation.ShowDialog(); } private void ctrl_ClickLabel(object sender, EventArgs e) { Label label = (Label)sender; _deviceStatus.DeviceIndex = Convert.ToInt32(label.Tag); _deviceStatus.ShowDialog(); } private void ctrl_ClickPic(object sender, EventArgs e) { PictureBox btn = (PictureBox)sender; _deviceStatus.DeviceIndex = Convert.ToInt32(btn.Tag ); _deviceStatus.ShowDialog(); } private void timer1_Tick(object sender, EventArgs e) { if (CStaticClass.Order == true ) { // string ss = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString(); //20090920 // CStaticClass.GetAllReturns(); DateTime dt1 = DateTime.Now; gs.GetDeviceState(); DateTime dt2 = DateTime.Now; // CommonClassLib.CCarryConvert.WriteDarkCasket("GetDeviceState间隔", dt1.ToString("u"), dt2.ToString("u"), (dt2 - dt1).ToString()); // System.Diagnostics.Trace.WriteLine("GetDeviceState" + Convert.ToString(dt2 - dt1)); if (tsStatus.Text.Length > 300) tsStatus.Text = ""; } } private void TSMrefresh_Click(object sender, EventArgs e) { //CStaticClass.RealRefresh = true; //this.dgvManager.DataSource = dbo.ExceSQL("select * from V_Manage_Task where " + CStaticClass.Manstatus).Tables[0].DefaultView; } private void TSMMonitorRefresh_Click(object sender, EventArgs e) { //CStaticClass.RealRefresh = true; //this.dgvMonitor.DataSource = dbo.ExceSQL("select * from V_Monitor_Task where " + CStaticClass.Monstatus + " order by 设备指令索引 asc ").Tables[0].DefaultView; } private void rbmanAll_CheckedChanged(object sender, EventArgs e) { RadioButton rb = (RadioButton)sender; if (rb.Checked == true) { CStaticClass.Manstatus = " F_Status<>-1 "; } TSMrefresh_Click(sender, e); } private void rbmanRun_CheckedChanged(object sender, EventArgs e) { RadioButton rb = (RadioButton)sender; if (rb.Checked == true) { CStaticClass.Manstatus = " F_Status=1 "; } TSMrefresh_Click(sender, e); } private void rbmanWait_CheckedChanged(object sender, EventArgs e) { RadioButton rb = (RadioButton)sender; if (rb.Checked == true) { CStaticClass.Manstatus = " F_Status=0 "; } TSMrefresh_Click(sender, e); } private void rbmonAll_CheckedChanged(object sender, EventArgs e) { RadioButton rb = (RadioButton)sender; if (rb.Checked == true) { CStaticClass.Monstatus = " F_Status<>-1 "; } TSMMonitorRefresh_Click(sender, e); } private void rbmonRun_CheckedChanged(object sender, EventArgs e) { RadioButton rb = (RadioButton)sender; if (rb.Checked == true) { CStaticClass.Monstatus = " (F_Status>=1) "; } TSMMonitorRefresh_Click(sender, e); } private void rbmonWait_CheckedChanged(object sender, EventArgs e) { RadioButton rb = (RadioButton)sender; if (rb.Checked == true) { CStaticClass.Monstatus = " F_Status=0 "; } TSMMonitorRefresh_Click(sender, e); } private void button2_Click(object sender, EventArgs e) { CStaticClass.Monstatus = " F_Status<>-1 "; TSMMonitorRefresh_Click(sender, e); } private void timer2_Tick(object sender, EventArgs e) { //DataTable dt; string ss1; //string ss12; string ss13; string ss14; try { //ss12 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString(); if ((CStaticClass.RealRefresh == true) && (CStaticClass.Order == true)) { //if ((CStaticClass.gcCount % 10) == 0) //{ // #region 故障信息显示 // ss1 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString(); // string sql = "SELECT 调度任务索引,设备索引, 设备名称, 故障名称, 发生时间 FROM V_Device_Error_log where 发生时间 like '" + DateTime.Today.ToString("yyyy-MM-dd") + "%' order by 发生时间 asc"; // //20091128 // dt = dbo1.ExceSQL(sql).Tables[0]; // if (dt.Rows.Count > 0) // { // this.listView1.Items.Clear(); // for (int i = 0; i < dt.Rows.Count; i++) // { // ListViewItem lvi = new ListViewItem(); // lvi.Text = dt.Rows[i]["调度任务索引"].ToString(); // lvi.SubItems.Add(dt.Rows[i]["设备索引"].ToString()); // lvi.SubItems.Add(dt.Rows[i]["设备名称"].ToString()); // lvi.SubItems.Add(dt.Rows[i]["故障名称"].ToString()); // lvi.SubItems.Add(dt.Rows[i]["发生时间"].ToString()); // listView1.Items.Add(lvi); // //20091128 // lvi = null; // } // } // #endregion //} bool ifflash = false; if (FrmMain.FormInstance.dockPanel1.ActiveAutoHideContent != null) { if (FrmMain.FormInstance.dockPanel1.ActiveAutoHideContent.ToString().IndexOf("FrmTaskList") < 0) { ifflash = false; } else { ifflash = true; } //System.Diagnostics.Trace.WriteLine("1.ActiveAutoHideContent:" + FrmMain.FormInstance.dockPanel1.ActiveAutoHideContent.ToString()); } else { if (FrmTaskList.FormInstance.DockState == WeifenLuo.WinFormsUI.Docking.DockState.DockBottom) { ifflash = true; } else { ifflash = false; } } //显示设备指令 //20100108 if(ifflash==true) { FrmControlMonitor.FormInstance.MonitorRefresh(dbo1.ExceSQL("select * from V_Monitor_Task where " + CStaticClass.Monstatus + " order by 设备指令索引 asc ").Tables[0].DefaultView); //显示调度任务 FrmControlMonitor.FormInstance.ManagerRefresh( dbo1.ExceSQL("select * from V_Manage_Task where " + CStaticClass.Manstatus).Tables[0].DefaultView); // System.Diagnostics.Trace.WriteLine("刷新"); } } //获取调度任务 if (CStaticClass.ObtainManageTask == true) { DateTime dt1 = DateTime.Now; if (CObtainTask.GetManagerTask() == 0) { this.tsStatus.ForeColor = Color.Red; if (this.tsStatus.Text.IndexOf(CObtainTask.CObtainTaskError) < 0) { this.tsStatus.Text += CObtainTask.CObtainTaskError; } } if (CObtainTask.CObtainTaskError.Length > 0) { if (this.tsStatus.Text.IndexOf(CObtainTask.CObtainTaskError) < 0) { this.tsStatus.ForeColor = Color.Red; this.tsStatus.Text += CObtainTask.CObtainTaskError; } } DateTime dt2 = DateTime.Now; // CommonClassLib.CCarryConvert.WriteDarkCasket("ObtainTask间隔", dt1.ToString("u"), dt2.ToString("u"), (dt2 - dt1).ToString()); CObtainTask.CObtainTaskError = ""; } //ss13 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString(); } catch (Exception ex) { if (tsStatus.Text.IndexOf("获取调度任务获取调度任务时:" + ex.Message) < 0) { tsStatus.Text += "获取调度任务时:" + ex.Message; } } finally { //dt = null; } } private void timer3_Tick(object sender, EventArgs e) { if (CStaticClass.Order == true || CStaticClass.isDisassembleTask) { string ss1 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString(); DateTime dt1 = DateTime.Now; //启动拆分进程MyTaskIntoSteps(); CDisassembleTask.MyTaskIntoSteps(); DateTime dt2 = DateTime.Now; System.Diagnostics.Trace.WriteLine("MyTaskIntoSteps" + Convert.ToString(dt2 - dt1)); // CommonClassLib.CCarryConvert.WriteDarkCasket("MyTaskIntoSteps间隔", dt1.ToString("u"), dt2.ToString("u"), (dt2 - dt1).ToString()); if (CDisassembleTask .DisassembleTaskError!= "") { if (tsStatus.Text.IndexOf(CDisassembleTask.DisassembleTaskError) < 0) { tsStatus.ForeColor = Color.Red; tsStatus.Text += CDisassembleTask.DisassembleTaskError; } CDisassembleTask.DisassembleTaskError = ""; } if (CStaticClass.ObtainManageTask) { DateTime dt3 = DateTime.Now; cplc.DealwithPLCAsk(); DateTime dt4 = DateTime.Now; // CommonClassLib.CCarryConvert.WriteDarkCasket("DealwithPLCAsk间隔", dt1.ToString("u"), dt2.ToString("u"), (dt4 - dt3).ToString()); if (cplc.ListenPLCAskError != "") { if (tsStatus.Text.IndexOf(cplc.ListenPLCAskError) < 0) { tsStatus.ForeColor = Color.Red; tsStatus.Text += cplc.ListenPLCAskError; } } cplc.ListenPLCAskError = ""; } } } private void timer4_Tick(object sender, EventArgs e) { if (CStaticClass.Order == true) { #region 读取所有PLC数据 DateTime dt1 = DateTime.Now; //System.Diagnostics.Trace.WriteLine("------------------------------------------" + Convert.ToString(dt1.ToLongTimeString)); //string ss1 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString(); //System.Diagnostics.Trace.WriteLine(ss1); CStaticClass.GetAllReturns();//20100610 //string ss11 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString(); DateTime dt2 = DateTime.Now; CommonClassLib.CCarryConvert.WriteDarkCasket("GetAllReturns间隔", dt1.ToString("u"), dt2.ToString("u"), (dt2 - dt1).ToString()); //System.Diagnostics.Trace.WriteLine("GetAllReturns"+Convert.ToString(dt2 - dt1)); #endregion } } private void timer5_Tick(object sender, EventArgs e) { if (CStaticClass.Order == true ) // 自动监听plc { string ss1 = DateTime.Now.Second.ToString() + "-" + DateTime.Now.Millisecond.ToString(); DateTime dt1 = DateTime.Now; cc.StartOrder(); //未连PLC不发送命令 DateTime dt2 = DateTime.Now; // CommonClassLib.CCarryConvert.WriteDarkCasket("StartOrder间隔", dt1.ToString("u"), dt2.ToString("u"), (dt2 - dt1).ToString()); System.Diagnostics.Trace.WriteLine("StartOrder" + Convert.ToString(dt2 - dt1)); if (cc.CControlError != "") { if (tsStatus.Text.IndexOf(cc.CControlError) < 0) { tsStatus.ForeColor = Color.Red; tsStatus.Text += cc.CControlError; } } cc.CControlError = ""; // DateTime dt3 = DateTime.Now; // cplc.DealwithPLCAsk(); // DateTime dt4 = DateTime.Now; //System.Diagnostics.Trace.WriteLine("DealwithPLCAsk" + Convert.ToString(dt4 - dt3)); // if (cc.CControlError != "") // if (cplc.ListenPLCAskError != "") // { // if (tsStatus.Text.IndexOf(cplc.ListenPLCAskError) < 0) // { // tsStatus.ForeColor = Color.Red; // tsStatus.Text += cplc.ListenPLCAskError; // } // } // cplc.ListenPLCAskError = ""; // if (ccf.DisassembleTaskError!= "") // { // if (tsStatus.Text.IndexOf(ccf.DisassembleTaskError) < 0) // { // tsStatus.ForeColor = Color.Red; // tsStatus.Text += ccf.DisassembleTaskError; // } // } // ccf.DisassembleTaskError = ""; //if (CListenAGVState.TcpServerError != "") //{ // if (tsStatus.Text.IndexOf(CListenAGVState.TcpServerError) < 0) // { // tsStatus.ForeColor = Color.Red; // tsStatus.Text += CListenAGVState.TcpServerError; // } //} //CListenAGVState.TcpServerError = ""; } } private void timerFlash_Tick(object sender, EventArgs e) { //return; //20100108 DateTime dt1 = DateTime.Now; DataView dvh; Model.MDevice device = null; try { if (CStaticClass.Order == true) { if (!CStaticClass.LIKUSTATUS) { this.label40.Text = "自动校表线回库口设置为不允许回库"; this.label40.ForeColor = Color.Red; } else { this.label40.Text = string.Empty; } pp = panel4; stack1 = bt1_11001; stack2 = bt1_11002; stack3 = bt1_11003; stack4 = bt1_11004; stack5 = bt1_11005; twj1 = t1_110010; twj2 = t1_110020; twj3 = t1_110030; twj4 = t1_110040; twj5 = t1_110050; switch (tabControl1.SelectedIndex) { case 0: #region 一层设备 pp = panel4; stack1 = bt1_11001; stack2 = bt1_11002; stack3 = bt1_11003; stack4 = bt1_11004; stack5 = bt1_11005; twj1 = t1_110010; twj2 = t1_110020; twj3 = t1_110030; twj4 = t1_110040; twj5 = t1_110050; break; #endregion case 1: #region 二层设备 pp = panel3; break; #endregion //case 2: // #region 三层设备 // pp = plAccessorial3; // #endregion } #region 每层楼监视画面 foreach (Control ctrl in pp.Controls) { if (((ctrl.GetType().ToString() == "System.Windows.Forms.Button") || (ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox")) && (ctrl.Enabled == true)) { if (ctrl.Tag == null) { continue; } device = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(ctrl.Tag)); if (device == null) {//20100108 if (tsStatus.Text.IndexOf("设备索引:" + ctrl.Tag + "在数据库没有记录!") < 0) { tsStatus.ForeColor = Color.Red; this.tsStatus.Text += "设备索引:" + ctrl.Tag + "在数据库没有记录!"; } continue; } #region 设置设备状态 switch (device.RunState) { //空闲 case 0: if (device.DeviceKind == 1 || device.DeviceKind == 3 || device.DeviceKind == 4) { ctrl.BackColor = Color.DarkOrange; } else if (device.DeviceKind != 18) { ctrl.BackColor = SystemColors.InactiveCaptionText; } if (device.DeviceIndex == 12026 || device.DeviceIndex == 12207 || device.DeviceIndex == 12116) { ctrl.BackColor = Color.DarkOrange; } break; //运行 case 1: ctrl.BackColor = Color.Lime; break; //故障 case 2: ctrl.BackColor = Color.Red; break; //离线 case 3: ctrl.BackColor = Color.LightYellow; break; //停用 case 4: ctrl.BackColor = Color.Maroon; break; //20090920动作完成 case 5: if (device.DeviceKind == 1 || device.DeviceKind == 4) { ctrl.BackColor = Color.MediumSlateBlue;//MediumOrchid; } else if (device.DeviceKind != 18) { ctrl.BackColor = Color.Gray; } break; } #endregion #region 移动设备坐标更新 //堆垛机 if (device.DeviceKind == 1)// && device.XCoor != 0) { //841.719528208 //0.033930776 //859.4549381 //0.03479335 double startadd = 225; double k = 0.0225349; double p = 0.022533; if (device.XCoor < 1800) { //startadd = 841.719528208; //k = 0.033530776; } int locationX = (int)(startadd + (k) * (device.XCoor - 635)); if (device.DeviceIndex == 11005) { locationX = (int)(startadd + (p) * (62370 - device.XCoor)); } switch (device.DeviceIndex) { case 11001: if (stack1.Location.X != locationX) { stack1.Location = new Point(locationX, stack1.Location.Y); twj1.Location = new Point(locationX + 15, twj1.Location.Y); } break; case 11002: locationX = (int)(startadd + (k) * (device.XCoor - 6305)); if (stack2.Location.X != locationX) { stack2.Location = new Point(locationX, stack2.Location.Y); twj2.Location = new Point(locationX + 15, twj2.Location.Y); } break; case 11003: if (stack3.Location.X != locationX) { stack3.Location = new Point(locationX, stack3.Location.Y); twj3.Location = new Point(locationX + 15, twj3.Location.Y); } break; case 11004: if (stack4.Location.X != locationX) { stack4.Location = new Point(locationX, stack4.Location.Y); twj4.Location = new Point(locationX + 15, twj4.Location.Y); } break; case 11005: { stack5.Location = new Point(locationX, stack5.Location.Y); twj5.Location = new Point(locationX + 15, twj5.Location.Y); } break; } } #endregion } else if ((ctrl.GetType().ToString() == "System.Windows.Forms.TextBox") || ((ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox") && (ctrl.Name.Substring(0, 1) == "t"))) { #region 货物探测20101118 if ( ctrl.Tag ==null || ctrl.Tag.ToString() == string.Empty) { ctrl.Visible = true; } else { if (ctrl.Tag.ToString() == "124111.1") { //ctrl.Visible = true; } ctrl.Visible = CStaticClass.GetDevicePhotoelectric(ctrl.Tag.ToString()) == 1 ? true : false; if (CStaticClass.GetDevicePhotoelectric(ctrl.Tag.ToString()) == -2) { string str = ctrl.Name; } } #endregion } #region 逻辑有物显示 else if (ctrl.GetType().ToString() == "System.Windows.Forms.RadioButton") { //20100108DataView dvh; dvh = dbo.ExceSQL("SELECT F_DeviceIndex FROM T_Base_Device WHERE (F_DeviceIndex = " + ctrl.Tag + ") AND (F_HaveGoods = 1)").Tables[0].DefaultView; if (dvh.Count > 0) { ctrl.Visible = true; // ctrl.BackColor = Color.Blue; } else { ctrl.Visible = false; } } #endregion } DateTime dt2 = DateTime.Now; System.Diagnostics.Trace.WriteLine("REFLASH" + (dt2 - dt1).ToString()); #endregion } } catch (Exception ex) {//20100108 if (tsStatus.Text.IndexOf("刷新界面动画时:" + ex.Message) < 0) { tsStatus.ForeColor = Color.Red; this.tsStatus.Text += "刷新界面动画时:" + ex.Message; } } finally {//20100108 dvh = null; device = null; } } private void tabPage1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.TranslateTransform(this.tabPage1.AutoScrollPosition.X, this.tabPage1.AutoScrollPosition.Y); //20100108 g.Dispose(); } private void dgvMonitor_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) { //foreach (DataGridViewRow DGVRow in this.dgvMonitor.Rows) //{ // if (DGVRow != null) // { // if (Convert.ToInt32(DGVRow.Cells["f_status"].Value) >= 30) // { // DGVRow.DefaultCellStyle.BackColor = Color.Red; // } // } //} } private void timerCamera_Tick(object sender, EventArgs e) { return; //20100108控制摄像头解除当前区域报警 //摄像头设备类型29;每个设备的F_LocalPort代表摄像头设备索引;F_RemotePort代表摄像头划分的区域值(1--12) //检查F_LocalPort代表摄像头设备索引的区域F_RemotePort内的所有设备都没有报警就置F_LockedState=0 if (CStaticClass.Order == false) return; DataView dv; DataView dv1; DataView dvs; try { dv = dbo.ExceSQL("select F_DeviceIndex,F_LockedState from T_Base_Device where F_DeviceKindIndex=29 and F_LockedState>0").Tables[0].DefaultView; for (int i = 0; i < dv.Count; i++) { if (dv[i]["F_LockedState"] != DBNull.Value) {//有设备索引锁住摄像头 dv1 = dbo.ExceSQL("SELECT F_RemotePort FROM T_Base_Device WHERE F_DeviceIndex=" + dv[i]["F_LockedState"] + "").Tables[0].DefaultView; if (dv1.Count > 0) { //检查F_LocalPort摄像头设备索引的F_RemotePort区域内的所有设备都没有报警就置F_LockedState=0 dvs = dbo.ExceSQL("SELECT SUM(F_ErrorCode) AS errs FROM T_Base_Device WHERE (F_LocalPort = " + dv[i]["F_DeviceIndex"] + " and F_RemotePort=" + dv1[0]["F_RemotePort"] + ") ").Tables[0].DefaultView; if (dvs[0]["errs"] != DBNull.Value) { if (Convert.ToInt32(dvs[0]["errs"]) <= 0) { #region 控制摄像头解除当前区域报警 dbo.ExceSQL("update T_Base_Device set F_LockedState=0 where F_DeviceIndex=" + dv[i]["F_DeviceIndex"] + " and F_LockedState>0"); #endregion } } } } } } catch (Exception ex) { if (tsStatus.Text.IndexOf(ex.Message) < 0) { tsStatus.Text += ex.Message; } } finally { dv = null; dvs = null; dv1 = null; } } //private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) //{ // try // { // string df = ""; // switch (this.comboBox1.Text) // { // case "托盘条码": // df = "托盘条码"; // break; // case "调度任务索引": // df = "调度任务索引"; // break; // case "设备指令索引": // df = "设备指令索引"; // break; // default: // return; // } // //20100208 // string sql = "select distinct " + df + " from V_Monitor_Task "; // DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView; // if (dv.Count > 0) // { // this.textBox1.DataSource = null; // this.textBox1.DisplayMember = df; // this.textBox1.ValueMember = df; // this.textBox1.DataSource = dv; // } // } // catch (Exception ex) // { // throw ex; // } //} private void button5_Click(object sender, EventArgs e) { FrmLaneTest.FormInstance.ShowDialog(); } //private void button6_Click(object sender, EventArgs e) //{ // ResourceManager resource = new ResourceManager("ControlSystem.Properties.Resources",this.GetType().Assembly); // pBAAB.Image = (System.Drawing.Image)resource.GetObject("ABB_FREE"); //} //private void button16_Click(object sender, EventArgs e) //{ // ResourceManager resource = new ResourceManager("ControlSystem.Properties.Resources", this.GetType().Assembly); // pBAAB.Image = (System.Drawing.Image)resource.GetObject("ABB_ACTION"); //} //private void button17_Click(object sender, EventArgs e) //{ // ResourceManager resource = new ResourceManager("ControlSystem.Properties.Resources", this.GetType().Assembly); // pBAAB.Image = (System.Drawing.Image)resource.GetObject("ABB_ERROR"); //} //private void button18_Click(object sender, EventArgs e) //{ // ResourceManager resource = new ResourceManager("ControlSystem.Properties.Resources", this.GetType().Assembly); // pBAAB.Image = (System.Drawing.Image)resource.GetObject("ABB_FORBID"); //} private void FrmControlMonitor_Resize(object sender, EventArgs e) { //if (this.WindowState == FormWindowState.Maximized)//20100610zl //{ // this.FormBorderStyle = FormBorderStyle.None; //} //else //{ // this.FormBorderStyle = FormBorderStyle.Sizable; //} } private void button6_Click_2(object sender, EventArgs e) { dboM = CStaticClass.dboM; dboM.GetManageTableIndex("IO_CONTROL_APPLY"); } private void panel2_Paint(object sender, PaintEventArgs e) { } private void plAccessorial1_Paint(object sender, PaintEventArgs e) { } #region Added by DingXiaoxu for tooltip on 20101219 private void Btn_MouseEnter(object sender, EventArgs e) { toolTip_DeviceIndex.SetToolTip(sender as Control, Convert.ToString((sender as Control).Tag)); } #endregion private void button3_Click(object sender, EventArgs e) { } public void tsStatus_TextChanged(object sender, System.EventArgs e) { //throw new System.Exception("The method or operation is not implemented."); FrmErrorMessage.FormInstance.NewMessage((sender as TextBox).Text); } public void tsStatus_ForeColorChanged(object sender, System.EventArgs e) { FrmErrorMessage.FormInstance.NewForeColor((sender as TextBox).ForeColor); } private void timerTransDeviceStatus_Tick(object sender, EventArgs e) { if (CStaticClass.Order == true)//命令开关打开 { ccf.ReportDeviceState(); } } private void button56_Click(object sender, EventArgs e) { FrmSystemInit.FormInstance.ShowDialog(); } private void toolTip_DeviceIndex_Popup(object sender, PopupEventArgs e) { } private void tabPage2_Click(object sender, EventArgs e) { } private void button136_Click(object sender, EventArgs e) { } private void plAccessorial1_Paint_1(object sender, PaintEventArgs e) { } private void label16_Click(object sender, EventArgs e) { } } }