You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

191 lines
6.3 KiB
C#

using HighWayIot.Log4net;
using HighWayIot.Plc;
using HighWayIot.Plc.PlcHelper;
using HighWayIot.Rfid;
using HighWayIot.TouchSocket;
using HighWayIot.Winform.Business;
using HighWayIot.Winform.Properties;
using HslCommunication;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
namespace HighWayIot.Winform.UserControlPages
{
public partial class TestPage : UserControl
{
private static LogHelper logger = LogHelper.Instance;
/// <summary>
/// TCP客户端
/// </summary>
private TouchSocketTcpClient _touchSocketTcpClient = TouchSocketTcpClient.Instance;
/// <summary>
/// RFID数据分析
/// </summary>
private RfidDataAnalyse _RfidDataAnalyse = new RfidDataAnalyse();
XmlUtil xmlUtil = new XmlUtil();
public TestPage()
{
InitializeComponent();
Init();
}
private void Init()
{
ArrayList list = new ArrayList();
foreach (var kv in GeneralUtils.GetEnumKeyValuePairs<DataTypeEnum>().ToDictionary(i => i.Key, i => i.Value))
{
list.Add(kv);
}
PlcType.DataSource = list;
PlcType.DisplayMember = "Key";
PlcType.ValueMember = "Value";
//PlcType.DataSource =
//PlcType.DataSource = ;
}
/// <summary>
/// 测试按钮1
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
OperateResult<byte[]> PlcResult = PlcConnect.MelsecInstance2.Read("B230", 2);
if (PlcResult.IsSuccess)
{
byte[] bytes = PlcResult.Content;
Console.WriteLine("长度" + bytes.Length.ToString());
}
else
{
Console.WriteLine("读取失败");
}
WorkStationHelper helper = new WorkStationHelper();
bool[] res = helper.ReadStationSingal();
foreach(var r in res)
{
Console.WriteLine(r.ToString());
}
//var list = xmlUtil.ConfigReader();
//foreach (var item in list)
//{
// Console.WriteLine(item.RoleIndex + item.PageName);
//}
}
/// <summary>
/// RFID测试
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void button2_Click(object sender, EventArgs e)
{
var a = await _touchSocketTcpClient.Send($"10.20.48.{RFIDtext.Text}", _RfidDataAnalyse.Send02H(1000));
LogHelper.Instance.Info($"10.20.48.{RFIDtext.Text} 发送" + (a ? "成功" : "失败"));
}
/// <summary>
/// 测试按钮3
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private async void button3_Click(object sender, EventArgs e)
{
}
/// <summary>
/// PLC读取按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ReadButton_Click(object sender, EventArgs e)
{
DataTypeEnum en = (DataTypeEnum)Convert.ToInt32(PlcType.SelectedValue);
string res = string.Empty;
switch (en)
{
case DataTypeEnum.Bool:
res = PlcConnect.ReadBool1(PlcAddress.Text).ToString();
break;
case DataTypeEnum.Int16:
res = PlcConnect.ReadInt161(PlcAddress.Text).ToString();
break;
case DataTypeEnum.UInt16:
res = PlcConnect.ReadUInt161(PlcAddress.Text).ToString();
break;
case DataTypeEnum.Int32:
res = PlcConnect.ReadInt321(PlcAddress.Text).ToString();
break;
case DataTypeEnum.UInt32:
res = PlcConnect.ReadUInt321(PlcAddress.Text).ToString();
break;
case DataTypeEnum.Int64:
res = PlcConnect.ReadInt641(PlcAddress.Text).ToString();
break;
case DataTypeEnum.UInt64:
res = PlcConnect.ReadUInt641(PlcAddress.Text).ToString();
break;
case DataTypeEnum.Float:
res = PlcConnect.ReadFloat1(PlcAddress.Text).ToString();
break;
case DataTypeEnum.Double:
res = PlcConnect.ReadDouble1(PlcAddress.Text).ToString();
break;
case DataTypeEnum.String:
res = PlcConnect.ReadString1(PlcAddress.Text, (ushort)(GeneralUtils.StringNullOrToInt(LengthTextBox.Text) ?? 0)).ToString();
break;
default:
res = "不对劲儿奥";
break;
}
PlcShowValue.Text = res;
}
/// <summary>
/// PLC写入按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void WriteButton_Click(object sender, EventArgs e)
{
if ((DataTypeEnum)Convert.ToInt32(PlcType.SelectedValue) != DataTypeEnum.String)
{
if (!decimal.TryParse(PlcValue.Text, out decimal value))
{
MessageBox.Show("类型转换错误!");
}
var result = PlcConnect.PlcWrite1(PlcAddress.Text, value, (DataTypeEnum)Convert.ToInt32(PlcType.SelectedValue));
bool r = result.IsSuccess;
PlcShowValue.Text = r.ToString();
}
else
{
string value = PlcValue.Text;
var result = PlcConnect.PlcWrite1(PlcAddress.Text, value, (DataTypeEnum)Convert.ToInt32(PlcType.SelectedValue));
bool r = result.IsSuccess;
PlcShowValue.Text = r.ToString();
}
}
}
}