济宁李尔调度
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.

745 lines
28 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;
namespace wcfControlMonitorClient
{
/// <summary>
/// Creator:Richard.liu and Jack.Ma
/// �豸ʵʱ״̬��ʾ
/// </summary>
public partial class FrmDeviceStatus : Form
{
#region ��������
Model.MDevice _device = null;
int _deviceIndex;
DataView dv;
string sqlstr = string.Empty;
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
//{
// 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);
if (_deviceIndex.ToString().Substring(1, 1) == "9")
{
_device.RunState = 0;
}
//20100108
if (_device == null)
{
MessageBox.Show("��ѡ�����豸�����ݿ�û�м�¼��", "������ʾ��", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
#region ��ʾ�߼����ް�ť
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
{
this.btCancelDoubleFork.Visible = false;
this.btLogicHaveGoods.Visible = false;
this.btLogicNoneGoods.Visible = false;
textBox1.Visible = false;
}
#endregion
//�豸����
this.lblDeviceIndex.Value = _device.DeviceIndex;
//�豸����
this.lblDeviceName.Text = _device.DeviceName;
//�豸ָ������
this.lblTaskIndex.Text = _device.TaskNo.ToString();
#region ��ʾĿ��λ�ú���������
sqlstr = string.Format("SELECT F_MonitorIndex,F_DeviceCommandIndex,F_NumParam1,F_NumParam2,F_NumParam3,F_NumParam4,F_NumParam5,F_NumParam6, F_TxtParam FROM T_Monitor_Task WHERE (F_MonitorIndex ={0})", _device.TaskNo);
dv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
if (dv.Count > 0)
{
int order = Convert.ToInt32(dv[0]["F_DeviceCommandIndex"]);
string info = string.Empty;
int Z = Convert.ToInt32(dv[0]["F_NumParam1"]);
int X = Convert.ToInt32(dv[0]["F_NumParam2"]);
int Y = Convert.ToInt32(dv[0]["F_NumParam3"]);
int Z1 = Convert.ToInt32(dv[0]["F_NumParam4"]);
int X1 = Convert.ToInt32(dv[0]["F_NumParam5"]);
int Y1 = Convert.ToInt32(dv[0]["F_NumParam6"]);
if (_device.DeviceKind == 1)
{
switch (order)
{
case 1://��ԭ��
info = string.Format("��ԭ��:01��01��");
break;
case 2://��ȡ
info = string.Format("��ȡ:{0:D2}��-{1:D2}��-{2:D2}��", Z, X, Y);
break;
case 3://����
info = string.Format("����:{0:D2}��-{1:D2}��-{2:D2}��", Z1, X1, Y1);
break;
case 4://ȡ
info = string.Format("ȡ��:{0:D2}��-{1:D2}��-{2:D2}��", Z, X, Y);
break;
case 5://��
info = string.Format("�ͻ�:{0:D2}��-{1:D2}��-{2:D2}��", Z1, X1, Y1);
break;
case 6:
info = string.Format("ȡ�ͻ�:{0:D2}��-{1:D2}��-{2:D2}�� �� {3:D2}��-{4:D2}��-{5:D2}��", Z, X, Y, Z1, X1, Y1);
break;
}
}
else
if (_device.DeviceKind == 2)
{
switch (order)
{
case 1://��ת
info = string.Format("��ת");
break;
case 2://��ת
info = string.Format("��ת");
break;
case 6://�ͳ�
info = string.Format("{0}�ͳ���{1}", Z, Z1);
break;
case 8://����
info = string.Format("����");
break;
case 9://�½�
info = string.Format("�½�");
break;
}
}
else
if (_device.DeviceKind == 4)
{
switch (order)
{
case 7://�˶�
info = string.Format("�˶�:{0}", Z);
break;
case 8://ȡ
info = string.Format("ȡ��:{0}", Z);
break;
case 9://��
info = string.Format("�ͻ�:{0}", Z);
break;
}
}
this.lblArrowLocation.Text = info;
this.lblBarcode.Text = dv[0]["F_TxtParam"].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 = "";
}
#endregion
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 = false;
}
if ((_device.DeviceKind == 1))
{
//this.lblTaskIndex.Text = GetMonitorTaskIndexFromBarCode(new StringBuilder(_device.Barcode)).ToString();
//this.lblBarcode.Text = _device.Barcode;
//this.lblBarcode.Enabled = true;
this.gb03.Visible = true;
this.textBox2.Text = _device.Battery_Status.ToString();
}
else
{
this.gb03.Visible = false;
}
//�豸״̬
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 == 1)
{
this.lblNowX.Text = string.Format("{0:D2}��", _device.XCoor);
this.lblNowY.Text = string.Format("{0:D2}��", _device.YCoor);
//this.lblNowY.Text = _device.YCoor.ToString();
}
else if (_device.DeviceKind == 4)
{
this.lblNowX.Text = string.Format("{0:D2}��", 1);
this.lblNowY.Text = string.Format("{0:D2}��", _device.XCoor);
//this.lblNowY.Text = _device.YCoor.ToString();
}
else
{
this.lblNowX.Text = "";
this.lblNowY.Text = "";
}
cB_Empty.Enabled = false;
label_X.Text = "��ǰX���꣺";
if (_device.DeviceKind == 7)
{
dv = dbo.ExceSQL(string.Format("SELECT F_BarCode ,F_Time,F_TempFirstProject,F_FirstProject FROM T_Base_PLC_Ask WHERE (F_DeviceIndex = {0})", _device.DeviceIndex)).Tables[0].DefaultView;
if (dv.Count > 0)
{
this.lblBarcode.Text = dv[0]["F_BarCode"].ToString();
lblDeviceStatus.Text = dv[0]["F_Time"].ToString();
label_X.Text = "��������";
lblNowX.Text = dv[0]["F_FirstProject"].ToString();
cB_Empty.Checked = (dv[0]["F_TempFirstProject"].ToString() == "0" ? false : true);//20170215
if (_device.DeviceIndex.ToString().Length <= 5)
{
this.lblBarcode.Enabled = true;
cB_Empty.Enabled = true;
}
}
lblErrorName.Text = "";
//lblDeviceStatus.Text = "";
}
//�Ƿ��߼�����
if (_device.DeviceKind == 2)
{
dv = dbo.ExceSQL("select F_DeviceIndex from T_Base_Device where F_HaveGoods >0 and F_DeviceIndex =" + this._deviceIndex).Tables[0].DefaultView;
if (this._deviceIndex.ToString().Substring(1, 1) == "9")
{
if (dv.Count > 0)
{
lblGoods.Text = "�߼�����";
}
else
{
lblGoods.Text = "�߼�����";
}
}
else
{
if (_device.SplitByte_0 == 1)
{
lblGoods.Text = "��������";
}
else
{
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 = 13 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;
}
if (_device.Dbw1Address != -1)
{
btnReset.Visible = true;
btnAnswer.Visible = true;
}
else
{
btnReset.Visible = false;
btnAnswer.Visible = false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
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 (Exception ex)//20170115
{
throw ex;
}
}
#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;
}
try
{
CStaticClass.WcfControl.BeginSetLogicHaveGoods(false, this._deviceIndex, new AsyncCallback(SetLogicHaveGoodsCallBack), null);
btnRefresh_Click(sender, e);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void button1_Click(object sender, EventArgs e)
{
if (MessageBox.Show("��ȷ��Ҫ���豸��" + this._deviceIndex + "�����߼���������", "������ʾ��", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
try
{
CStaticClass.WcfControl.BeginSetLogicHaveGoods(true, this._deviceIndex, new AsyncCallback(SetLogicHaveGoodsCallBack), null);
btnRefresh_Click(sender, e);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void button3_Click(object sender, EventArgs e)
{
if (MessageBox.Show("��ȷ��Ҫ���豸��" + this._deviceIndex + "���͡�����Ӧ��������", "������ʾ��", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
string errtext = string.Empty;
try
{
CStaticClass.WcfControl.BeginSendDeviceReset(this._deviceIndex, 2, new AsyncCallback(SendDeviceResetCallBack), 2);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
void SetLogicHaveGoodsCallBack(IAsyncResult ar)
{
string errtext = string.Empty;
try
{
if (CStaticClass.WcfControl.EndSetLogicHaveGoods(out errtext, ar) == false)
{
MessageBox.Show(errtext, "������ʾ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
throw ex;
}
}
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;
}
private void button4_Click(object sender, EventArgs e)
{
if (MessageBox.Show("��ȷ��Ҫ���豸��" + this._deviceIndex + "���͡��豸��λ������", "������ʾ��", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
string errtext = string.Empty;
try
{
CStaticClass.WcfControl.BeginSendDeviceReset(this._deviceIndex, 4, new AsyncCallback(SendDeviceResetCallBack), 4);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
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;
try
{
if (CStaticClass.WcfControl.EndWriteDBData(out errtext, ar) == false)
{
MessageBox.Show("������ʾ", errtext, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
throw ex;
}
}
private void lblBarcode_KeyPress(object sender, KeyPressEventArgs e)
{
try
{
if (e.KeyChar == '\r')
{
if (MessageBox.Show("��ȷ��Ҫ�޸��豸��" + this._deviceIndex + "����¼�ġ����롿����", "������ʾ��", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
int type = 1;//1��asc��Ĭ��Ϊʵ�����̣��л�
if (cB_Empty.Checked == false)//������
{
type = 0;//0��asc��
}
//string barcode = string.Format("{0}{1}", type, lblBarcode.Text);
string barcode = string.Format(lblBarcode.Text);
CStaticClass.WcfControl.BeginWriteDBData(_deviceIndex, "DB2", barcode, new AsyncCallback(WriteDBDataCallback), null);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "��ʾ", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
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());
}
private void btnSolutions_Click(object sender, EventArgs e)
{//20151120
try
{
if (_device != null)
{
if (_device.ErrorCode >= 30)
{
FrmDeviceErrorSolutions.FormInstance.Show();
FrmDeviceErrorSolutions.FormInstance.comboBox1.SelectedValue = _device.DeviceKind;
FrmDeviceErrorSolutions.FormInstance.textBox1.Text = _device.ErrorCode.ToString();
FrmDeviceErrorSolutions.FormInstance.button1_Click(sender, e);
}
}
}
catch (Exception ex)
{
throw ex;
}
}
private void deviceclear_Click(object sender, EventArgs e)
{
if (MessageBox.Show("��ȷ��Ҫ���豸��" + this._deviceIndex + "������������ԤԼ������һ������", "������ʾ��", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
{
return;
}
string sql = "update T_Base_Device set F_LockedState='0' , F_ManTaskReserve='0' where F_DeviceIndex=" + this._deviceIndex;
int tempk = dbo.ExecuteSql(sql);
CommonClassLib.CCarryConvert.WriteDarkCasket("�����߼�ԤԼ�������䣺" + sql.ToString(), "Ӱ��������������" + tempk.ToString(), "�豸������" + this._deviceIndex.ToString(), "");
}
}
}