You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
666 lines
26 KiB
666 lines
26 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.ServiceModel;
|
|
using System.Net;
|
|
using CommonLib;
|
|
using System.Diagnostics;
|
|
|
|
namespace wcfControlMonitorClient
|
|
{
|
|
/// <summary>
|
|
/// Creator:Richard.liu and Jack.Ma
|
|
/// 设备实时状态显示
|
|
/// </summary>
|
|
public partial class FrmDeviceStatus : Form
|
|
{
|
|
#region 变量定义
|
|
Model.MDevice _device = null;
|
|
int _deviceIndex;
|
|
|
|
DBFactory.DBOperator dbo = CStaticClass.dbo;
|
|
/// <summary>
|
|
/// 设置要显示的设备索引
|
|
/// </summary>
|
|
public int DeviceIndex
|
|
{
|
|
set { _deviceIndex = value;}
|
|
}
|
|
private static FrmDeviceStatus _formInstance;
|
|
|
|
public static FrmDeviceStatus FormInstance
|
|
{
|
|
get
|
|
{
|
|
if (_formInstance == null)
|
|
{
|
|
_formInstance = new FrmDeviceStatus();
|
|
}
|
|
return _formInstance;
|
|
}
|
|
set { _formInstance = value; }
|
|
}
|
|
#endregion
|
|
|
|
#region 构造函数/初始化
|
|
public FrmDeviceStatus()
|
|
{
|
|
InitializeComponent();
|
|
|
|
_formInstance = this;
|
|
}
|
|
|
|
private void FrmDeviceStatus_Load(object sender, EventArgs e)
|
|
{
|
|
StringBuilder sql=new StringBuilder();
|
|
sql.Append("SELECT F_LaneGateDeviceIndex from T_Base_Lane_Gate where F_LaneGateDeviceIndex=").Append(_deviceIndex);
|
|
DataView dvlane = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
if (dvlane.Count > 0)
|
|
{
|
|
sql = new StringBuilder();
|
|
sql.Append("SELECT F_DeviceIndex from T_Base_PLC_Ask where F_DeviceIndex=").Append(_deviceIndex);
|
|
dvlane = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;
|
|
if (dvlane.Count > 0)
|
|
{
|
|
this.btCancelDoubleFork.Visible = true;
|
|
}
|
|
else
|
|
{
|
|
this.btCancelDoubleFork.Visible = false;
|
|
}
|
|
this.btLogicHaveGoods.Visible = true;
|
|
this.btLogicNoneGoods.Visible = true;
|
|
textBox1.Visible = true;
|
|
}
|
|
else if ("37001,37002,37003".Contains(_deviceIndex.ToString()))
|
|
{
|
|
//add for qdty 机器手拆垛位置
|
|
this.btCancelDoubleFork.Visible = true;
|
|
this.btLogicHaveGoods.Visible = false;
|
|
this.btLogicNoneGoods.Visible = false;
|
|
textBox1.Visible = false;
|
|
}
|
|
else
|
|
{
|
|
this.btCancelDoubleFork.Visible = false;
|
|
this.btLogicHaveGoods.Visible = false;
|
|
this.btLogicNoneGoods.Visible = false;
|
|
textBox1.Visible = false;
|
|
}
|
|
btnRefresh_Click(null, EventArgs.Empty);
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 更新设备状态
|
|
private void btnRefresh_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
_device = Model.CGetInfo.GetDeviceInfo(_deviceIndex);
|
|
//20100108
|
|
if (_device == null)
|
|
{
|
|
MessageBox.Show("您选择的设备在数据库没有记录!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
return;
|
|
|
|
}
|
|
//if (_deviceIndex == 12002)
|
|
if (false)
|
|
{
|
|
gb12002.Visible = true;
|
|
tbBarcode.Focus();
|
|
}
|
|
else
|
|
{
|
|
gb12002.Visible = false;
|
|
}
|
|
//设备索引
|
|
this.lblDeviceIndex.Value = _device.DeviceIndex;
|
|
//设备名称
|
|
this.lblDeviceName.Text = _device.DeviceName;
|
|
//设备指令索引
|
|
this.lblTaskIndex.Text = _device.TaskNo.ToString();
|
|
DataView dv = dbo.ExceSQL(string.Format("SELECT F_TxtParam, F_NumParam1, F_NumParam2, F_NumParam3, F_NumParam4,F_NumParam5, F_NumParam6 FROM T_Monitor_Task WHERE (F_MonitorIndex = {0})", _device.TaskNo)).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
//条码号
|
|
this.lblBarcode.Text = dv[0]["F_TxtParam"].ToString();
|
|
//目标位置
|
|
|
|
this.lblArrowLocation.Text = _device.ArrowLocation;
|
|
|
|
if (_device.DeviceKind == 1)
|
|
{
|
|
this.lblArrowLocation.Text = string.Format("{0}排{1}列{2}层", dv[0]["F_NumParam4"].ToString(), dv[0]["F_NumParam5"].ToString(), dv[0]["F_NumParam6"].ToString());
|
|
}
|
|
if (_device.DeviceKind == 4)
|
|
{
|
|
this.lblArrowLocation.Text = dv[0]["F_NumParam1"].ToString();
|
|
}
|
|
if ((_device.DeviceKind == 2) || (_device.DeviceKind == 31))
|
|
{
|
|
this.lblArrowLocation.Text = dv[0]["F_NumParam4"].ToString();
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
//20140109
|
|
if (_device.DeviceKind == 2)
|
|
{
|
|
if (_device.RunState == 5 && _device.SplitByte_0 == 1)
|
|
{
|
|
//条码号
|
|
object bcode = dbo.GetSingle(string.Format("SELECT F_PALLETBARCODE FROM T_Base_Device WHERE (F_DeviceIndex = {0})", _device.DeviceIndex));
|
|
if (bcode != null)
|
|
{
|
|
this.lblBarcode.Text = bcode.ToString();
|
|
}
|
|
else
|
|
{
|
|
this.lblBarcode.Text = "";
|
|
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
//条码号
|
|
this.lblBarcode.Text = "";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
//条码号
|
|
this.lblBarcode.Text = "";
|
|
}
|
|
//目标位置
|
|
|
|
this.lblArrowLocation.Text = "";
|
|
}
|
|
if (_device.DeviceKind == 31)
|
|
{
|
|
|
|
this.lblTaskIndex.Text = GetMonitorTaskIndexFromBarCode(new StringBuilder(_device.Barcode)).ToString();
|
|
this.lblBarcode.Text = _device.Barcode;
|
|
this.lblBarcode.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
this.lblBarcode.Enabled = true;
|
|
}
|
|
|
|
//设备状态
|
|
switch (_device.RunState)
|
|
{
|
|
case 0:
|
|
lblDeviceStatus.Text = "空闲";
|
|
break;
|
|
case 1:
|
|
lblDeviceStatus.Text = "运行";
|
|
break;
|
|
case 2:
|
|
lblDeviceStatus.Text = "故障";
|
|
break;
|
|
case 3:
|
|
lblDeviceStatus.Text = "离线";
|
|
break;
|
|
case 4:
|
|
lblDeviceStatus.Text = "停用";
|
|
break;
|
|
case 5://20090920
|
|
lblDeviceStatus.Text = "动作完成";
|
|
break;
|
|
}
|
|
|
|
|
|
if (_device.ErrorCode >= 30)
|
|
{
|
|
Model.MError err = Model.CGetInfo.GetErrorInfo(Convert.ToInt32(_device.DeviceKind.ToString() + _device.ErrorCode.ToString()));
|
|
if (err != null)
|
|
{
|
|
this.lblErrorName.Text = err.ErrorName + ",代码:" + _device.ErrorCode.ToString();
|
|
}
|
|
else
|
|
{
|
|
this.lblErrorName.Text = _device.ErrorCode.ToString();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.lblErrorName.Text = "";
|
|
}
|
|
if (_device.DeviceKind == 7)
|
|
{
|
|
dv = dbo.ExceSQL(string.Format("SELECT F_BarCode,F_ERRORLOG FROM T_Base_PLC_Ask WHERE (F_DeviceIndex = {0})", _device.DeviceIndex)).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
this.lblBarcode.Text = dv[0][0].ToString();
|
|
lblErrorName.Text = dv[0][1].ToString();
|
|
}
|
|
//lblErrorName.Text = "";
|
|
//lblDeviceStatus.Text = "";
|
|
}
|
|
if ((_device.DeviceKind == 1) || (_device.DeviceKind == 4) || (_device.DeviceKind == 14))
|
|
{
|
|
this.lblNowX.Text = _device.XCoor.ToString();
|
|
this.lblNowY.Text = _device.YCoor.ToString();
|
|
}
|
|
else
|
|
{
|
|
this.lblNowX.Text = "";
|
|
this.lblNowY.Text = "";
|
|
}
|
|
//是否逻辑有物
|
|
dv = dbo.ExceSQL("select F_DeviceIndex from T_Base_Device where F_HaveGoods >0 and F_DeviceIndex =" + this._deviceIndex).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
lblGoods.Text = "逻辑有物";
|
|
}
|
|
else
|
|
{
|
|
lblGoods.Text = "逻辑无物";
|
|
}
|
|
//20120417被预约的调度任务
|
|
dv = dbo.ExceSQL(string.Format("SELECT F_MonitorIndex FROM T_Monitor_Task WHERE (F_ManageTaskKindIndex = 4 and F_MonitorIndex={0})", Convert.ToInt32(this.lblTaskIndex.Text))).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
lblManTask.Text = "手工任务";
|
|
}
|
|
else
|
|
{
|
|
dv = dbo.ExceSQL(string.Format("select F_ManTaskReserve from T_Base_Device where F_ManTaskReserve>0 and F_DeviceIndex ={0}", this._deviceIndex)).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
int mankind = Convert.ToInt32(dv[0][0].ToString().Substring(0, 1));
|
|
int fid = Convert.ToInt32(dv[0][0].ToString().Substring(1));
|
|
lblManTask.Text = fid.ToString();
|
|
dv = dbo.ExceSQL(string.Format("SELECT F_TxtParam FROM T_Monitor_Task WHERE (F_ManageTaskKindIndex = {0} and F_ManageTaskIndex={1})", mankind, fid)).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
lblBarcode.Text = dv[0][0].ToString(); ;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
lblManTask.Text = "";
|
|
}
|
|
}
|
|
dv = dbo.ExceSQL(string.Format("SELECT F_DeviceIndex,F_PalletBarcodeLength,F_BarCode FROM T_Base_PLC_Ask WHERE (F_Askkind = 4 OR F_Askkind = 14) AND (F_BindingDevice = {0})", this._deviceIndex)).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
|
|
gbBarcode.Visible = true;
|
|
CStaticClass.WcfControl.BeginGetReadedAndReportedBarcode(this._deviceIndex, new AsyncCallback(CallbackGetReadedAndReportedBarcode), null);
|
|
}
|
|
else
|
|
{
|
|
gbBarcode.Visible = false;
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
}
|
|
}
|
|
void CallbackGetReadedAndReportedBarcode(IAsyncResult ar)
|
|
{
|
|
string errortext,ReadedBarcode, ReportedBarcode;
|
|
try
|
|
{
|
|
bool rt=CStaticClass.WcfControl.EndGetReadedAndReportedBarcode(out ReadedBarcode, out ReportedBarcode, out errortext, ar);
|
|
if (rt ==true)
|
|
{
|
|
this.BeginInvoke(new MethodInvoker(delegate()
|
|
{
|
|
lblReadedBarcode.Text = ReadedBarcode;
|
|
lblReportedBarcode.Text = ReportedBarcode;
|
|
}));
|
|
}
|
|
else
|
|
{
|
|
this.BeginInvoke(new MethodInvoker(delegate()
|
|
{
|
|
lblReadedBarcode.Text ="";
|
|
lblReportedBarcode.Text = "";
|
|
}));
|
|
if (errortext != "")
|
|
{
|
|
MessageBox.Show(errortext, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 关闭窗体
|
|
private void btnClose_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
private void button2_Click(object sender, EventArgs e)
|
|
{
|
|
if (MessageBox.Show("您确认要把设备:" + this._deviceIndex + "设成逻辑无物吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
|
|
CStaticClass.WcfControl.BeginSetLogicHaveGoods(false, this._deviceIndex, new AsyncCallback(SetLogicHaveGoodsCallBack), null);
|
|
btnRefresh_Click(sender, e);
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
if (MessageBox.Show("您确认要把设备:" + this._deviceIndex + "设成逻辑有物吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
CStaticClass.WcfControl.BeginSetLogicHaveGoods(true, this._deviceIndex, new AsyncCallback(SetLogicHaveGoodsCallBack), null);
|
|
btnRefresh_Click(sender, e);
|
|
}
|
|
|
|
private void button3_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (CStaticClass.WcfControl.State == CommunicationState.Faulted)
|
|
{
|
|
ReConnectAndRegisterClient();//20160115添加断线重连功能
|
|
}
|
|
if (MessageBox.Show("您确认要向设备:" + this._deviceIndex + "发送【完成应答】吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
string errtext = string.Empty;
|
|
|
|
CStaticClass.WcfControl.BeginSendDeviceReset(this._deviceIndex, 2, new AsyncCallback(SendDeviceResetCallBack), 2);
|
|
}
|
|
catch(Exception ex) { throw ex; }
|
|
}
|
|
|
|
void SetLogicHaveGoodsCallBack(IAsyncResult ar)
|
|
{
|
|
string errtext = string.Empty;
|
|
|
|
if (CStaticClass.WcfControl.EndSetLogicHaveGoods(out errtext, ar) == false)
|
|
{
|
|
MessageBox.Show(errtext, "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
void SendDeviceResetCallBack(IAsyncResult ar)
|
|
{
|
|
string errtext = string.Empty;
|
|
try
|
|
{
|
|
if (CStaticClass.WcfControl.EndSendDeviceReset(out errtext, ar) == false)
|
|
{
|
|
MessageBox.Show(errtext, "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
else
|
|
{
|
|
if (ar.AsyncState != null)
|
|
{
|
|
//if ((((int)ar.AsyncState) == 4)&&(_device.DeviceKind==4))
|
|
//{
|
|
// CStaticClass.WcfControl.BeginSendDeviceReset(_deviceIndex, 2, new AsyncCallback(SendDeviceResetCallBack), null);
|
|
//}
|
|
if (((int)ar.AsyncState) == 2 || ((int)ar.AsyncState) == 4)
|
|
{
|
|
//CStaticClass.WcfControl.BeginSendDeviceReset(_deviceIndex, 0, new AsyncCallback(SendDeviceResetCallBack), null);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch(Exception ex) { throw ex; }
|
|
}
|
|
private void lblDeviceIndex_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
_deviceIndex =int.Parse( lblDeviceIndex.Value.ToString());
|
|
}
|
|
|
|
private void FrmDeviceStatus_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
_formInstance = null;
|
|
}
|
|
void ReConnectAndRegisterClientCallBack(IAsyncResult ar)
|
|
{
|
|
try
|
|
{
|
|
|
|
string ErrText = string.Empty;
|
|
if (false == CStaticClass.WcfControl.EndRegisterClient(out ErrText, ar))
|
|
{
|
|
//MessageBox.Show(ErrText, "登陆错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
|
|
CStaticClass.WCFOK = false;
|
|
|
|
return;
|
|
}
|
|
|
|
CommonClassLib.CCarryConvert.WriteDarkCasket("Login", "UserID:" + CStaticClass.UserID + "的操作日志", "重连**成功登录系统", "", "");
|
|
//tsStatus.Text = "";
|
|
|
|
|
|
//CStaticClass.WcfControl.BeginSendAllDeviceStates(CStaticClass.client.devlist[0].DeviceIndex, new AsyncCallback(CStaticClass.client.SendAllDeviceStatesCallback), null);
|
|
CStaticClass.WCFOK = true;
|
|
//OPCClient.CCommonOPCClient.kkk();
|
|
//OPCClient.CCommonOPCClient.CreateSubscriptionGroup();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//MessageBox.Show(ex.Message, "登陆错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
CStaticClass.WCFOK = false;
|
|
|
|
return;
|
|
}
|
|
//try
|
|
//{
|
|
|
|
// string ErrText = string.Empty;
|
|
// if (false == CStaticClass.WcfControl.EndRegisterClient(out ErrText, ar))
|
|
// {
|
|
// return;
|
|
// }
|
|
// OPCClient.CCommonOPCClient.DisConnectOPCServer();
|
|
|
|
// OPCClient.CCommonOPCClient.CreateSubscriptionGroup();
|
|
|
|
// CommonClassLib.CCarryConvert.WriteDarkCasket("Login", "UserID:" + CStaticClass.UserID + "的操作日志", "重连**成功登录系统", "", "");
|
|
|
|
|
|
|
|
// //CStaticClass.WcfControl.BeginSendAllDeviceStates(CStaticClass.client.devlist[0].DeviceIndex, new AsyncCallback(CStaticClass.client.SendAllDeviceStatesCallback), null);
|
|
// CStaticClass.WCFOK = true;
|
|
|
|
//}
|
|
//catch (Exception ex)
|
|
//{
|
|
// //MessageBox.Show(ex.Message, "登陆错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
// CStaticClass.WCFOK = false;
|
|
|
|
// return;
|
|
//}
|
|
}
|
|
void ReConnectAndRegisterClient()
|
|
{
|
|
|
|
try
|
|
{
|
|
CStaticClass.ClientID = Dns.GetHostName();
|
|
|
|
var ctx = new InstanceContext(CStaticClass.client);
|
|
CStaticClass.WcfControl = new WcfControlMonitor.ControlMonitorClient(ctx);
|
|
|
|
string errtext = string.Empty;
|
|
CommonClassLib.CCarryConvert.WriteDarkCasket("Login", "UserID:" + CStaticClass.UserID + "的操作日志", "尝试重新连接", "", "");
|
|
CStaticClass.WcfControl.BeginRegisterClient(CStaticClass.UserID, "客户端:" + CStaticClass.ClientID + ",用户名:" + CStaticClass.UserID, new AsyncCallback(ReConnectAndRegisterClientCallBack), null);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw ex;
|
|
}
|
|
|
|
|
|
}
|
|
private void button4_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (CStaticClass.WcfControl.State == CommunicationState.Faulted)
|
|
{
|
|
ReConnectAndRegisterClient();//20160115添加断线重连功能
|
|
}
|
|
if (MessageBox.Show("您确认要向设备:" + this._deviceIndex + "发送【设备复位】吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
string errtext = string.Empty;
|
|
|
|
CStaticClass.WcfControl.BeginSendDeviceReset(this._deviceIndex, 4, new AsyncCallback(SendDeviceResetCallBack), 4);
|
|
}
|
|
catch (Exception ex) { throw ex; }
|
|
}
|
|
int GetMonitorTaskIndexFromBarCode(StringBuilder BarCode)
|
|
{//20110216
|
|
string bc = BarCode.ToString();
|
|
|
|
DataView dv = dbo.ExceSQL(string.Format("SELECT T_Monitor_Task.F_MonitorIndex FROM T_Base_Device,T_Monitor_Task WHERE T_Base_Device.F_DeviceIndex = T_Monitor_Task.F_DeviceIndex and ((T_Base_Device.F_DeviceKindIndex = 13) OR (T_Base_Device.F_DeviceKindIndex = 31)) and (F_TxtParam = '{0}') and F_Status>0 order by F_MonitorIndex asc", bc)).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
return Convert.ToInt32(dv[0]["F_MonitorIndex"]);
|
|
}
|
|
else
|
|
{
|
|
return -1;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
void WriteDBDataCallback(IAsyncResult ar)
|
|
{
|
|
string errtext;
|
|
|
|
if (CStaticClass.WcfControl.EndWriteDBData(out errtext, ar) == false)
|
|
{
|
|
MessageBox.Show("操作提示", errtext, MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
|
|
}
|
|
|
|
private void lblBarcode_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
if (e.KeyChar == '\r')
|
|
{
|
|
if (MessageBox.Show("您确认要修改设备【" + this._deviceIndex + "】记录的【条码】吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
CStaticClass.WcfControl.BeginWriteDBData(_deviceIndex, "DB2", lblBarcode.Text, new AsyncCallback(WriteDBDataCallback), null);
|
|
}
|
|
}
|
|
|
|
private void btCancelDoubleFork_Click(object sender, EventArgs e)
|
|
{
|
|
//if (MessageBox.Show("您确认要取消【" + this._deviceIndex + "】的双叉关联吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
//{
|
|
// return;
|
|
//}
|
|
//StringBuilder sql = new StringBuilder() ;
|
|
//sql.Append("update T_Base_PLC_Ask set F_TaskIndex=0,F_Remark='' where F_DeviceIndex=").Append(_deviceIndex);
|
|
//dbo.ExecuteSql(sql.ToString());
|
|
if (MessageBox.Show("您确认要向设备:" + this._deviceIndex + "发送【残盘应答】吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
string errtext = string.Empty;
|
|
|
|
CStaticClass.WcfControl.BeginSendDeviceReset(this._deviceIndex, 3, new AsyncCallback(SendDeviceResetCallBack), 3);
|
|
}
|
|
|
|
private void btnSolutions_Click(object sender, EventArgs e)
|
|
{//20151120
|
|
if (_device != null)
|
|
{
|
|
if (_device.ErrorCode >= 30)
|
|
{
|
|
FrmDeviceErrorSolutions.FormInstance.Show();//20160501
|
|
FrmDeviceErrorSolutions.FormInstance.comboBox1.SelectedValue = _device.DeviceKind;
|
|
FrmDeviceErrorSolutions.FormInstance.textBox1.Text = _device.ErrorCode.ToString();
|
|
FrmDeviceErrorSolutions.FormInstance.button1_Click(sender, e);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private void btLayer2_Click(object sender, EventArgs e)
|
|
{
|
|
if (tbBarcode.Text.Trim().Length < 6)
|
|
{
|
|
MessageBox.Show("条码不够6位字符!", "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
|
|
return;
|
|
}
|
|
object ob= dbo.GetSingle(string.Format("SELECT FPALLETBARCODE FROM T_Manage_Task where FPALLETBARCODE='{0}'", tbBarcode.Text));
|
|
if (ob != null)
|
|
{
|
|
MessageBox.Show("任务的条码已经在队列中存在!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
return;
|
|
}
|
|
Button bt = (Button)sender;
|
|
string endposition = string.Empty;
|
|
if (bt.Name == "btLayer2")
|
|
{
|
|
endposition = "22011";
|
|
}
|
|
else
|
|
{
|
|
endposition = "32011";
|
|
}
|
|
Model.AutoTask at = new Model.AutoTask(3, tbBarcode.Text,"12002", "-", endposition, "-",false , false,1,0,0);
|
|
CStaticClass.WcfControl.BeginBuildAutoTask(at, new AsyncCallback(BuildAutoTaskCallBack), at);
|
|
MessageBox.Show("任务下达成功!", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
this.tbBarcode.Text = "";
|
|
this.tbBarcode.Focus();
|
|
|
|
}
|
|
void BuildAutoTaskCallBack(IAsyncResult ar)
|
|
{
|
|
string errtext = string.Empty;
|
|
if (CStaticClass.WcfControl.EndBuildAutoTask(out errtext, ar) == false)
|
|
{
|
|
MessageBox.Show(errtext, "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
|
|
}
|
|
|
|
private void buttonClear_Click(object sender, EventArgs e)
|
|
{
|
|
if (MessageBox.Show("您确认要向设备:" + this._deviceIndex + "发送【清除条码】吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
StringBuilder sql = new StringBuilder();
|
|
sql.Append("update T_Base_PLC_Ask set F_BARCODE='' where F_DeviceIndex=").Append(this._deviceIndex);
|
|
dbo.ExecuteSql(sql.ToString());
|
|
}
|
|
}
|
|
}
|