Implemented Device Identification (0x2B / 43) for TCP

This commit is contained in:
2024-03-09 21:31:33 +01:00
parent 7a3c7625a7
commit 24f7cc74a7
9 changed files with 596 additions and 37 deletions

View File

@@ -0,0 +1,95 @@
using System.Collections.Generic;
namespace AMWD.Protocols.Modbus.Common
{
/// <summary>
/// Represents the device identification.
/// </summary>
public class DeviceIdentification
{
/// <summary>
/// Gets or sets the vendor name.
/// </summary>
/// <remarks>
/// Category: Basic
/// <br/>
/// Kind: Mandatory
/// </remarks>
public string VendorName { get; set; }
/// <summary>
/// Gets or sets the product code.
/// </summary>
/// <remarks>
/// Category: Basic
/// <br/>
/// Kind: Mandatory
/// </remarks>
public string ProductCode { get; set; }
/// <summary>
/// Gets or sets the version in major, minor and revision.
/// </summary>
/// <remarks>
/// Category: Basic
/// <br/>
/// Kind: Mandatory
/// </remarks>
public string MajorMinorRevision { get; set; }
/// <summary>
/// Gets or sets the vendor URL.
/// </summary>
/// <remarks>
/// Category: Regular
/// <br/>
/// Kind: Optional
/// </remarks>
public string VendorUrl { get; set; }
/// <summary>
/// Gets or sets the product name.
/// </summary>
/// <remarks>
/// Category: Regular
/// <br/>
/// Kind: Optional
/// </remarks>
public string ProductName { get; set; }
/// <summary>
/// Gets or sets the model name.
/// </summary>
/// <remarks>
/// Category: Regular
/// <br/>
/// Kind: Optional
/// </remarks>
public string ModelName { get; set; }
/// <summary>
/// Gets or sets the user application name.
/// </summary>
/// <remarks>
/// Category: Regular
/// <br/>
/// Kind: Optional
/// </remarks>
public string UserApplicationName { get; set; }
/// <summary>
/// Gets or sets the extended objects.
/// </summary>
/// <remarks>
/// Category: Extended
/// <br/>
/// Kind: Optional
/// </remarks>
public Dictionary<byte, byte[]> ExtendedObjects { get; set; } = [];
/// <summary>
/// Gets or sets a value indicating whether individual access (<see cref="ModbusDeviceIdentificationCategory.Individual"/>) is allowed.
/// </summary>
public bool IsIndividualAccessAllowed { get; set; }
}
}