Files
FASS/2.0.0/src/backend/FASS.Extend.Light/Command.cs
T
2026-07-14 21:33:39 +08:00

47 lines
1.4 KiB
C#

using Common.Device.Clients.Modbus;
using System.IO.Ports;
namespace FASS.Extend.Light
{
public class Command
{
public ModbusRtuClient Client { get; private set; }
public byte StationNumber { get; private set; }
public Command(string portName, string baudRate, string stationNumber)
{
Client = new ModbusRtuClient(portName, int.Parse(baudRate), 8, StopBits.One, Parity.None, 500);
StationNumber = byte.Parse(stationNumber);
}
public bool Switch(string close, string open)
{
var result = false;
try
{
Client.Open();
Client.Write(close, false, StationNumber);
Client.Write(open, true, StationNumber);
var closeResult = Client.ReadCoil(close, StationNumber);
var openResult = Client.ReadCoil(open, StationNumber);
if (closeResult.IsSucceed && openResult.IsSucceed)
{
if (closeResult.Value == false && openResult.Value == true)
{
result = true;
}
}
}
catch
{
result = false;
}
finally
{
Client.Close();
}
return result;
}
}
}