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;
using RFIDReaderJilin.Common;
using System.Linq;
using System.Net.NetworkInformation;
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();
#region 添加输送机、穿梭车和堆垛机的单击事件
foreach (Control ctrl in this.panel1.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.panel2.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
//初始化射频
//CRfidHelper.OpenReader();
}
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))
{
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);
}
}
//获取调度任务
if (CStaticClass.ObtainManageTask == true)
{
//CObtainTask.GetWebManageTask();
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 = "";
}
}
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 = this.panel1 ;
stack1 = bt1_11001;
stack2 = bt1_11002;
twj1 = t1_110010;
twj2 = t1_110020;
#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
{
ctrl.BackColor = Color.Silver;
}
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
{
ctrl.BackColor = Color.Silver;
}
//if (device.DeviceKind != 18)
//{
// ctrl.BackColor = Color.Gray;
//}
break;
}
#endregion
#region 移动设备坐标更新
//堆垛机
if (device.DeviceKind == 1)// && device.XCoor != 0)
{
//堆垛机
if (device.DeviceKind == 1)
{
double TempX = device.XCoor;
double TempY = device.YCoor;
switch (device.DeviceIndex)
{
case 11001:
stack1.Location = new Point(pictureBox1.Location.X + (int)((TempX - 1) * pictureBox1.Size.Width / 20 - bt1_11001.Width), 263);
twj1.Location = new Point(stack1.Location.X + 38, stack1.Location.Y + 10);
textBox23.Location = new Point(stack1.Location.X + 11, stack1.Location.Y + 31);
textBox22.Location = new Point(stack1.Location.X + 11, stack1.Location.Y - 10);
//label83.Location = new Point(stack1.Location.X + stack1.Width + 5, stack1.Location.Y + 2);
//label83.Text = "列:" + TempX;
//label84.Location = new Point(stack1.Location.X + stack1.Width + 5, stack1.Location.Y + 2 + stack1.Height / 2);
//label84.Text = "层:" + Convert.ToInt32(TempY);
break;
case 11002:
stack2.Location = new Point(pictureBox1.Location.X + (int)((TempX - 1) * pictureBox1.Size.Width / 20 - bt1_11001.Width), 433);
twj2.Location = new Point(stack2.Location.X + 38, stack2.Location.Y + 10);
textBox20.Location = new Point(stack2.Location.X + 11, stack2.Location.Y + 31);
textBox21.Location = new Point(stack2.Location.X + 11, stack2.Location.Y - 10);
//label86.Location = new Point(stack2.Location.X + stack2.Width + 5, stack2.Location.Y + 2);
//label86.Text = "列:" + TempX;
//label85.Location = new Point(stack2.Location.X + stack2.Width + 5, stack2.Location.Y + 2 + stack2.Height / 2);
//label85.Text = "层:" + Convert.ToInt32(TempY);
break;
}
}
//double startadd = 436;
//double k = 0.019062;
//double p = 0.0192387;
//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 货物探测
if (ctrl.Tag ==null || ctrl.Tag.ToString() == string.Empty)
{
ctrl.Visible = true;
}
else
{
ctrl.Visible = CStaticClass.GetDevicePhotoelectric(ctrl.Tag.ToString()) == 1 ? true : false;
}
if (ctrl.Visible == true)
{
}
#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 button35_Click(object sender, EventArgs e)
{
//if (CRfidHelper.rdr !=null)
//{
// CRfidHelper.tags.Clear();
// CRfidHelper.rdr.StartReading();
//}
//else
//{
//}
CreateMonitor.WcsToManageTaskOver(2088);
//string dtime = DateTime.Now.ToString("u");
//dtime = dtime.Substring(0, dtime.Length - 1);
//int ControlID = 0;
//int CONTROL_APPLY_TYPE = 1;
//string dcode = "12002";
//string barcode = "1111122222";
//string sql = "INSERT INTO IO_CONTROL_APPLY(CONTROL_ID ,CONTROL_APPLY_TYPE,WAREHOUSE_CODE, DEVICE_CODE, STOCK_BARCODE, APPLY_TASK_STATUS, CREATE_TIME,CONTROL_APPLY_REMARK)VALUES " +
//"(" + ControlID + "," + CONTROL_APPLY_TYPE + ",'1'," + dcode + ",'" + barcode + "',0,'" + dtime + "','')";
//dboM.ExceSQL(sql);
//CreateMonitor.CreateMove(12002,12001,6);
}
public Dictionary keyValuePairs = new Dictionary();
public int taskIndex = 0;
private void timerCamera_Tick(object sender, EventArgs e)
{
try
{
DataView dv = dbo.ExceSQL("select * from T_Manage_Task ").Tables[0].DefaultView;
keyValuePairs.Clear();
for (int i = 0; i < dv.Count; i++)
{
if (dv[i]["FSTATUS"].ToString() == "1")
{
string type = dv[i]["FCONTROLTASKTYPE"].ToString();
if (type == "1")//入库
{
string code = dv[i]["FENDCELL"].ToString();
keyValuePairs[code] = "入库";
}
if (type == "2")//出库
{
string code = dv[i]["FSTARTCELL"].ToString();
keyValuePairs[code] = "出库";
}
if (type == "0")//出库
{
string code = "无储位号";
keyValuePairs[code] = "无任务";
}
}
}
// 轮询显示 keyValuePairs 的数据
if (keyValuePairs.Count > 0)
{
var keys = keyValuePairs.Keys.ToList();
string key = keys[taskIndex];
string value = keyValuePairs[key];
// 调用 LED 显示方法
LEDHelper.RefreshCount("192.168.0.7", value, key);
// 更新 taskIndex,确保循环遍历
taskIndex = (taskIndex + 1) % keyValuePairs.Count;
}
else
{
//// 调用 LED 显示方法
LEDHelper.RefreshCount("192.168.0.7", "无任务", "无储位号");
//taskIndex = 0;
}
}
catch (Exception ex)
{
}
}
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");
}
#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
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 timerLight_Tick(object sender, EventArgs e)
{
if (CStaticClass.Order == true) // 自动监听plc
{
//在无出库任务执行时,入库口空闲无货时 灯亮
CStaticClass.SetInLightOnOff();
}
}
}
}