Files
hoodFieldOfView/头罩视野slove/头罩视野/Services/Function.cs

224 lines
7.8 KiB
C#
Raw Normal View History

2026-04-18 18:14:12 +08:00

using Sunny.UI;
using System;
using System.Threading;
using System.Windows;
using System.Windows.Controls;
using Modbus.Device;
namespace .Services
{
public class Function
{
2026-04-20 14:03:01 +08:00
ModbusMaster modbusMaster;
IModbusMaster modbusmodbusMaster;
2026-04-18 18:14:12 +08:00
DataChange dc = new DataChange();
public enum ButtonType
{
,
,
,
}
public enum DataType
{
,
}
2026-04-20 14:03:01 +08:00
public Function(ModbusMaster modbusMaster_in)
2026-04-18 18:14:12 +08:00
{
2026-04-20 14:03:01 +08:00
this.modbusMaster = modbusMaster_in;
2026-04-18 18:14:12 +08:00
}
2026-04-20 14:03:01 +08:00
public Function(IModbusMaster modbusmodbusMaster)
2026-04-18 18:14:12 +08:00
{
2026-04-20 14:03:01 +08:00
this.modbusmodbusMaster = modbusmodbusMaster;
2026-04-18 18:14:12 +08:00
}
public void BtnClickFunction(ButtonType buttonType, ushort address)
{
try
{
switch (buttonType)
{
case ButtonType.:
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, true);
2026-04-18 18:14:12 +08:00
Thread.Sleep(100);
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, false);
2026-04-18 18:14:12 +08:00
Thread.Sleep(100);
break;
case ButtonType.:
2026-04-20 14:03:01 +08:00
if (modbusmodbusMaster.ReadCoils(1, address, 1)[0])
2026-04-18 18:14:12 +08:00
{
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, false); Thread.Sleep(100);
2026-04-18 18:14:12 +08:00
}
else
2026-04-20 14:03:01 +08:00
{ modbusmodbusMaster.WriteSingleCoil(1, address, true); Thread.Sleep(100); }
2026-04-18 18:14:12 +08:00
break;
case ButtonType.:
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, true);
2026-04-18 18:14:12 +08:00
Thread.Sleep(100);
break;
case ButtonType.:
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, false);
2026-04-18 18:14:12 +08:00
Thread.Sleep(100);
break;
default:
break;
}
}
catch (Exception ex)
{
}
}
public void BtnClickFunctionForNew(ButtonType buttonType, ushort address)
{
try
{
switch (buttonType)
{
case ButtonType.:
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, true);
2026-04-18 18:14:12 +08:00
Thread.Sleep(100);
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, false);
2026-04-18 18:14:12 +08:00
Thread.Sleep(100);
break;
case ButtonType.:
2026-04-20 14:03:01 +08:00
if (modbusmodbusMaster.ReadCoils(1, address, 1)[0])
2026-04-18 18:14:12 +08:00
{
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, false); Thread.Sleep(100);
2026-04-18 18:14:12 +08:00
}
else
2026-04-20 14:03:01 +08:00
{ modbusmodbusMaster.WriteSingleCoil(1, address, true); Thread.Sleep(100); }
2026-04-18 18:14:12 +08:00
break;
case ButtonType.:
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, true);
2026-04-18 18:14:12 +08:00
Thread.Sleep(100);
break;
case ButtonType.:
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteSingleCoil(1, address, false);
2026-04-18 18:14:12 +08:00
Thread.Sleep(100);
break;
default:
break;
}
}
catch (Exception ex)
{
}
}
public void WriteToPLC(string inPutValue, ushort address, DataType dataType)
{
try
{
switch (dataType)
{
case DataType.:
double value = inPutValue.ToDouble();
if (UIInputDialog.ShowInputDoubleDialog(ref value, UIStyle.Inherited, desc: "请输入值", showMask: false))
{
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteMultipleRegisters(1, address, dc.SplitFloatToUShortArray((float)value));
2026-04-18 18:14:12 +08:00
}
break;
case DataType.:
int value_int = inPutValue.ToInt();
if (UIInputDialog.ShowInputIntegerDialog(ref value_int, UIStyle.Inherited, desc: "请输入数据:"))
{
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteMultipleRegisters(1, address, dc.intToushorts(value_int));
2026-04-18 18:14:12 +08:00
}
break;
default:
break;
}
}
catch (Exception ex)
{
MessageBox.Show("操作失败!" + "\n" + "\n" + ex.Message, "错误");
}
}
public void WriteToPLCForNew(string inPutValue, ushort address, DataType dataType)
{
try
{
//KeyboardHelper.ShowSoftKeyboard();
switch (dataType)
{
case DataType.:
double value = inPutValue.ToDouble();
if (UIInputDialog.ShowInputDoubleDialog(ref value, UIStyle.Inherited,3, desc: "请输入值", showMask: false))
{
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteMultipleRegisters(1, address, dc.SplitFloatToUShortArray((float)value));
2026-04-18 18:14:12 +08:00
}
break;
case DataType.:
int value_int = inPutValue.ToInt();
if (UIInputDialog.ShowInputIntegerDialog(ref value_int, UIStyle.Inherited, desc: "请输入数据:"))
{
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteMultipleRegisters(1, address, dc.intToushorts(value_int));
2026-04-18 18:14:12 +08:00
}
break;
default:
break;
}
//KeyboardHelper.HideSoftKeyboard();
}
catch (Exception ex)
{
MessageBox.Show("操作失败!" + "\n" + "\n" + ex.Message, "错误");
}
}
public void WriteToPLCForNewForThree(string inPutValue, ushort address, DataType dataType)
{
try
{
//KeyboardHelper.ShowSoftKeyboard();
switch (dataType)
{
case DataType.:
double value = inPutValue.ToDouble();
if (UIInputDialog.ShowInputDoubleDialog(ref value, UIStyle.Inherited, 3, desc: "请输入值", showMask: false))
{
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteMultipleRegisters(1, address, dc.SplitFloatToUShortArray((float)value));
2026-04-18 18:14:12 +08:00
}
break;
case DataType.:
int value_int = inPutValue.ToInt();
if (UIInputDialog.ShowInputIntegerDialog(ref value_int, UIStyle.Inherited, desc: "请输入数据:"))
{
2026-04-20 14:03:01 +08:00
modbusmodbusMaster.WriteMultipleRegisters(1, address, dc.intToushorts(value_int));
2026-04-18 18:14:12 +08:00
}
break;
default:
break;
}
//KeyboardHelper.HideSoftKeyboard();
}
catch (Exception ex)
{
MessageBox.Show("操作失败!" + "\n" + "\n" + ex.Message, "错误");
}
}
}
}