mirror of
https://github.com/zhaopeiym/IoTClient
synced 2025-10-19 22:14:31 +08:00
add Modbus Connected
This commit is contained in:
parent
51e746fd87
commit
792be4e182
|
|
@ -14,6 +14,11 @@ namespace IoTClient.Clients.Modbus
|
|||
protected EndianFormat format;
|
||||
private bool plcAddresses;
|
||||
|
||||
/// <summary>
|
||||
/// 是否是连接的
|
||||
/// </summary>
|
||||
public bool Connected => serialPort?.IsOpen ?? false;
|
||||
|
||||
/// <summary>
|
||||
/// 警告日志委托
|
||||
/// </summary>
|
||||
|
|
@ -946,7 +951,7 @@ namespace IoTClient.Clients.Modbus
|
|||
public byte[] GetReadCommand(string address, byte stationNumber, byte functionCode, ushort length)
|
||||
{
|
||||
var readAddress = ushort.Parse(address?.Trim());
|
||||
if (plcAddresses) readAddress = Convert.ToUInt16(readAddress % 10000 - 1);
|
||||
if (plcAddresses) readAddress = (ushort)(Convert.ToUInt16(address?.Trim().Substring(1)) - 1);
|
||||
|
||||
byte[] buffer = new byte[6];
|
||||
buffer[0] = stationNumber; //站号
|
||||
|
|
@ -969,7 +974,7 @@ namespace IoTClient.Clients.Modbus
|
|||
public byte[] GetWriteCommand(string address, byte[] values, byte stationNumber, byte functionCode)
|
||||
{
|
||||
var writeAddress = ushort.Parse(address?.Trim());
|
||||
if (plcAddresses) writeAddress = Convert.ToUInt16(writeAddress % 10000 - 1);
|
||||
if (plcAddresses) writeAddress = (ushort)(Convert.ToUInt16(address?.Trim().Substring(1)) - 1);
|
||||
|
||||
byte[] buffer = new byte[7 + values.Length];
|
||||
buffer[0] = stationNumber; //站号
|
||||
|
|
@ -994,7 +999,7 @@ namespace IoTClient.Clients.Modbus
|
|||
public byte[] GetWriteCoilCommand(string address, bool value, byte stationNumber, byte functionCode)
|
||||
{
|
||||
var writeAddress = ushort.Parse(address?.Trim());
|
||||
if (plcAddresses) writeAddress = Convert.ToUInt16(writeAddress % 10000 - 1);
|
||||
if (plcAddresses) writeAddress = (ushort)(Convert.ToUInt16(address?.Trim().Substring(1)) - 1);
|
||||
|
||||
byte[] buffer = new byte[6];
|
||||
buffer[0] = stationNumber;//站号
|
||||
|
|
|
|||
|
|
@ -14,6 +14,11 @@ namespace IoTClient.Clients.Modbus
|
|||
/// </summary>
|
||||
LoggerDelegate WarningLog { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否是连接的
|
||||
/// </summary>
|
||||
bool Connected { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 打开连接
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -20,6 +20,11 @@ namespace IoTClient.Clients.Modbus
|
|||
private EndianFormat format;
|
||||
private bool plcAddresses;
|
||||
|
||||
/// <summary>
|
||||
/// 是否是连接的
|
||||
/// </summary>
|
||||
public bool Connected => socket?.Connected ?? false;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
|
@ -1359,7 +1364,7 @@ namespace IoTClient.Clients.Modbus
|
|||
public byte[] GetReadCommand(string address, byte stationNumber, byte functionCode, ushort length, byte[] check = null)
|
||||
{
|
||||
var readAddress = ushort.Parse(address?.Trim());
|
||||
if (plcAddresses) readAddress = Convert.ToUInt16(readAddress % 10000 - 1);
|
||||
if (plcAddresses) readAddress = (ushort)(Convert.ToUInt16(address?.Trim().Substring(1)) - 1);
|
||||
|
||||
byte[] buffer = new byte[12];
|
||||
buffer[0] = check?[0] ?? 0x19;
|
||||
|
|
@ -1389,7 +1394,7 @@ namespace IoTClient.Clients.Modbus
|
|||
public byte[] GetWriteCommand(string address, byte[] values, byte stationNumber, byte functionCode, byte[] check = null)
|
||||
{
|
||||
var writeAddress = ushort.Parse(address?.Trim());
|
||||
if (plcAddresses) writeAddress = Convert.ToUInt16(writeAddress % 10000 - 1);
|
||||
if (plcAddresses) writeAddress = (ushort)(Convert.ToUInt16(address?.Trim().Substring(1)) - 1);
|
||||
|
||||
byte[] buffer = new byte[13 + values.Length];
|
||||
buffer[0] = check?[0] ?? 0x19;
|
||||
|
|
@ -1419,7 +1424,7 @@ namespace IoTClient.Clients.Modbus
|
|||
public byte[] GetWriteCoilCommand(string address, bool value, byte stationNumber, byte functionCode, byte[] check = null)
|
||||
{
|
||||
var writeAddress = ushort.Parse(address?.Trim());
|
||||
if (plcAddresses) writeAddress = Convert.ToUInt16(writeAddress % 10000 - 1);
|
||||
if (plcAddresses) writeAddress = (ushort)(Convert.ToUInt16(address?.Trim().Substring(1)) - 1);
|
||||
|
||||
byte[] buffer = new byte[12];
|
||||
buffer[0] = check?[0] ?? 0x19;
|
||||
|
|
@ -19,6 +19,11 @@ namespace IoTClient.Clients.Modbus
|
|||
private EndianFormat format;
|
||||
private bool plcAddresses;
|
||||
|
||||
/// <summary>
|
||||
/// 是否是连接的
|
||||
/// </summary>
|
||||
public bool Connected => socket?.Connected ?? false;
|
||||
|
||||
/// <summary>
|
||||
/// 构造函数
|
||||
/// </summary>
|
||||
|
|
@ -1126,7 +1131,7 @@ namespace IoTClient.Clients.Modbus
|
|||
public byte[] GetReadCommand(string address, byte stationNumber, byte functionCode, ushort length)
|
||||
{
|
||||
var readAddress = ushort.Parse(address?.Trim());
|
||||
if (plcAddresses) readAddress = Convert.ToUInt16(readAddress % 10000 - 1);
|
||||
if (plcAddresses) readAddress = (ushort)(Convert.ToUInt16(address?.Trim().Substring(1)) - 1);
|
||||
|
||||
byte[] buffer = new byte[6];
|
||||
buffer[0] = stationNumber; //站号
|
||||
|
|
@ -1149,7 +1154,7 @@ namespace IoTClient.Clients.Modbus
|
|||
public byte[] GetWriteCommand(string address, byte[] values, byte stationNumber, byte functionCode)
|
||||
{
|
||||
var writeAddress = ushort.Parse(address?.Trim());
|
||||
if (plcAddresses) writeAddress = Convert.ToUInt16(writeAddress % 10000 - 1);
|
||||
if (plcAddresses) writeAddress = (ushort)(Convert.ToUInt16(address?.Trim().Substring(1)) - 1);
|
||||
|
||||
byte[] buffer = new byte[7 + values.Length];
|
||||
buffer[0] = stationNumber; //站号
|
||||
|
|
@ -1174,7 +1179,7 @@ namespace IoTClient.Clients.Modbus
|
|||
public byte[] GetWriteCoilCommand(string address, bool value, byte stationNumber, byte functionCode)
|
||||
{
|
||||
var writeAddress = ushort.Parse(address?.Trim());
|
||||
if (plcAddresses) writeAddress = Convert.ToUInt16(writeAddress % 10000 - 1);
|
||||
if (plcAddresses) writeAddress = (ushort)(Convert.ToUInt16(address?.Trim().Substring(1)) - 1);
|
||||
|
||||
byte[] buffer = new byte[6];
|
||||
buffer[0] = stationNumber;//站号
|
||||
|
|
|
|||
|
|
@ -4,6 +4,11 @@
|
|||
<name>IoTClient</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="P:IoTClient.Clients.Modbus.ModbusSerialBase.Connected">
|
||||
<summary>
|
||||
是否是连接的
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IoTClient.Clients.Modbus.ModbusSerialBase.WarningLog">
|
||||
<summary>
|
||||
警告日志委托
|
||||
|
|
@ -366,6 +371,11 @@
|
|||
为了可用性,会对异常网络进行重试。此类日志通过委托接口给出去。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IoTClient.Clients.Modbus.IModbusClient.Connected">
|
||||
<summary>
|
||||
是否是连接的
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IoTClient.Clients.Modbus.IModbusClient.Open">
|
||||
<summary>
|
||||
打开连接
|
||||
|
|
@ -775,6 +785,11 @@
|
|||
Tcp的方式发送ModbusRtu协议报文 - 客户端
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IoTClient.Clients.Modbus.ModbusRtuOverTcpClient.Connected">
|
||||
<summary>
|
||||
是否是连接的
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IoTClient.Clients.Modbus.ModbusRtuOverTcpClient.#ctor(System.String,System.Int32,System.Int32,IoTClient.Enums.EndianFormat,System.Boolean)">
|
||||
<summary>
|
||||
构造函数
|
||||
|
|
@ -1133,6 +1148,11 @@
|
|||
ModbusTcp协议客户端
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:IoTClient.Clients.Modbus.ModbusTcpClient.Connected">
|
||||
<summary>
|
||||
是否是连接的
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:IoTClient.Clients.Modbus.ModbusTcpClient.#ctor(System.Net.IPEndPoint,System.Int32,IoTClient.Enums.EndianFormat,System.Boolean)">
|
||||
<summary>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user