267 lines
9.4 KiB
C#
267 lines
9.4 KiB
C#
using System;
|
|
using System.Windows.Forms;
|
|
//using BasicData;
|
|
using System.Text.RegularExpressions;
|
|
//using SystemFramework;
|
|
using System.Threading;
|
|
using DoWhatPlc;
|
|
|
|
namespace MisDataSaveDate
|
|
{
|
|
public partial class WriteQualityValueForm : Form
|
|
{
|
|
QualityDataType SelectListData;
|
|
Form MainForm;
|
|
public WriteQualityValueForm(QualityDataType SelectData,Form Mainform)
|
|
{
|
|
try
|
|
{
|
|
InitializeComponent();
|
|
SelectListData = new QualityDataType();
|
|
SelectListData = SelectData;
|
|
SetForm(SelectData.tagTypeID, SelectData.tagValue);
|
|
MainForm = Mainform;
|
|
|
|
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
//ApplicationLog.WriteLog(err, err.Message);
|
|
}
|
|
}
|
|
|
|
private void button_OK_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (!TagTypeID_Confirm(SelectListData.tagTypeID)) return;
|
|
|
|
this.Hide () ;
|
|
|
|
QualityDataQueryStruct QualityStruct = new QualityDataQueryStruct(SelectListData.tagID , SelectListData.tagTypeID , comboBox_InputValue.SelectedIndex.ToString(), textBox_InputValue.Text,this);
|
|
Thread t = new Thread(new ParameterizedThreadStart(WriteQualityDataByTagID_Thread));
|
|
t.Start(QualityStruct);
|
|
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
//ApplicationLog.WriteLog(err, err.Message);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
void WriteQualityDataByTagID_Thread(object obj)
|
|
{
|
|
try
|
|
{
|
|
QualityDataQueryStruct QualityStruct = (QualityDataQueryStruct)obj;
|
|
Form ThisForm = (Form)QualityStruct.tempForm;
|
|
|
|
|
|
if (QualityStruct.tagTypeID == 11)
|
|
{
|
|
DtWebApi.ReadWritePLC.WritePLC(QualityStruct.tagID, QualityStruct.tagValue.ToString());
|
|
}
|
|
else
|
|
{
|
|
DtWebApi.ReadWritePLC.WritePLC(SelectListData.tagID, QualityStruct.tagValue2.ToString());
|
|
}
|
|
MainForm.BeginInvoke (MisData.MainFormRefresh, null, null);
|
|
Action ActionDelete = () => { this.Close();this.Dispose(); };
|
|
if(this.InvokeRequired )
|
|
{
|
|
ThisForm.BeginInvoke(ActionDelete);
|
|
}
|
|
else
|
|
{
|
|
ActionDelete();
|
|
}
|
|
|
|
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
//ApplicationLog.WriteLog(err, err.Message);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void button_Cancle_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
this.Dispose();
|
|
}
|
|
|
|
|
|
|
|
void SetForm( int TagTypeID,object TagValue)
|
|
{
|
|
try
|
|
{
|
|
switch (TagTypeID)
|
|
{
|
|
case 11://BOOL
|
|
comboBox_InputValue.Enabled = true;
|
|
comboBox_InputValue.Visible = true;
|
|
textBox_InputValue.Enabled = false;
|
|
textBox_InputValue.Visible = false;
|
|
label_Message.Text = "Data type: Boolean";
|
|
if (Convert.ToBoolean(TagValue))
|
|
{
|
|
comboBox_InputValue.SelectedIndex = 1;
|
|
}
|
|
else
|
|
{
|
|
comboBox_InputValue.SelectedIndex = 0;
|
|
}
|
|
|
|
break;
|
|
|
|
case 2://INT.
|
|
label_Message.Text = "Data type: Int16 Range from -32768 to 32767";
|
|
comboBox_InputValue.Enabled = false;
|
|
comboBox_InputValue.Visible = false;
|
|
textBox_InputValue.Enabled = true;
|
|
textBox_InputValue.Visible = true;
|
|
textBox_InputValue.Text = TagValue.ToString();
|
|
|
|
break;
|
|
case 17://BYTE
|
|
label_Message.Text = "Data type: Byte Range from 0 to 255";
|
|
comboBox_InputValue.Enabled = false;
|
|
comboBox_InputValue.Visible = false;
|
|
textBox_InputValue.Enabled = true;
|
|
textBox_InputValue.Visible = true;
|
|
textBox_InputValue.Text = TagValue.ToString();
|
|
|
|
break;
|
|
case 8://STRING
|
|
label_Message.Text = "Data type: String";
|
|
comboBox_InputValue.Enabled = false;
|
|
comboBox_InputValue.Visible = false;
|
|
textBox_InputValue.Enabled = true;
|
|
textBox_InputValue.Visible = true;
|
|
textBox_InputValue.Text = TagValue.ToString();
|
|
|
|
break;
|
|
case 18://Word
|
|
label_Message.Text = "Data type: UInt16 Range from 0 to 65535";
|
|
comboBox_InputValue.Enabled = false;
|
|
comboBox_InputValue.Visible = false;
|
|
textBox_InputValue.Enabled = true;
|
|
textBox_InputValue.Visible = true;
|
|
textBox_InputValue.Text = TagValue.ToString();
|
|
|
|
break;
|
|
case 4://real
|
|
label_Message.Text = "Data type: Single Range from -3.402823E+38 to 3.402823E+38";
|
|
comboBox_InputValue.Enabled = false;
|
|
comboBox_InputValue.Visible = false;
|
|
textBox_InputValue.Enabled = true;
|
|
textBox_InputValue.Visible = true;
|
|
textBox_InputValue.Text = TagValue.ToString();
|
|
|
|
break;
|
|
default://Unknow
|
|
label_Message.Text = "Data type: Unknow";
|
|
comboBox_InputValue.Enabled = false;
|
|
comboBox_InputValue.Visible = false;
|
|
textBox_InputValue.Enabled = true;
|
|
textBox_InputValue.Visible = true;
|
|
textBox_InputValue.Text = TagValue.ToString();
|
|
|
|
break;
|
|
|
|
}
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
//ApplicationLog.WriteLog(err, err.Message);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
bool TagTypeID_Confirm( int TagTypeID)
|
|
{
|
|
try
|
|
{
|
|
switch (TagTypeID)
|
|
{
|
|
|
|
|
|
case 2://INT
|
|
//TextBox存在非数字字符 报错
|
|
if (!Regex.IsMatch(textBox_InputValue.Text, @"^[-]?\d*$"))
|
|
{
|
|
MessageBox.Show("输入不是整数!");
|
|
return false;
|
|
}
|
|
if (textBox_InputValue.Text.Length > 9)
|
|
{
|
|
MessageBox.Show("输入数据不在范围内");
|
|
return false;
|
|
}
|
|
break;
|
|
case 17://BYTE
|
|
//TextBox存在非数字字符 报错
|
|
if (!Regex.IsMatch(textBox_InputValue.Text, @"^[-]?\d*$"))
|
|
{
|
|
MessageBox.Show("输入不是整数!");
|
|
return false;
|
|
}
|
|
if (Convert.ToInt32(textBox_InputValue.Text.Trim()) > 255)
|
|
{
|
|
MessageBox.Show("输入数据不在范围内");
|
|
return false;
|
|
}
|
|
break;
|
|
case 8://STRING
|
|
|
|
break;
|
|
case 18://Word
|
|
//TextBox存在非数字字符 报错
|
|
if (!Regex.IsMatch(textBox_InputValue.Text, @"^[-]?\d*$"))
|
|
{
|
|
MessageBox.Show("输入不是整数!");
|
|
return false;
|
|
}
|
|
if (textBox_InputValue.Text.Trim().Length > 4)
|
|
{
|
|
MessageBox.Show("输入数据不在范围内");
|
|
return false;
|
|
}
|
|
break;
|
|
case 4://real
|
|
//TextBox存在非数字字符 报错
|
|
//TextBox存在非数字字符 报错
|
|
if (!Regex.IsMatch(textBox_InputValue.Text, @"^-?\d+\.?\d*$"))
|
|
{
|
|
MessageBox.Show("输入不是实数!");
|
|
return false;
|
|
}
|
|
|
|
break;
|
|
default:
|
|
break;
|
|
|
|
}
|
|
|
|
return true;
|
|
}
|
|
catch (Exception err)
|
|
{
|
|
//ApplicationLog.WriteLog(err, err.Message);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|