Skip to content

Commit

Permalink
More Tests
Browse files Browse the repository at this point in the history
  • Loading branch information
patrick-dmxc committed Feb 27, 2024
1 parent 6888712 commit ac1b4b4
Show file tree
Hide file tree
Showing 12 changed files with 295 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ protected override RefreshRate getResponseParameterDataToValue(byte[] parameterD

protected override byte[] getResponseValueToParameterData(RefreshRate refreshRate)
{
return Tools.ValueToData(refreshRate);
return [refreshRate.RawValue];
}

protected override RefreshRate setRequestParameterDataToValue(byte[] parameterData)
Expand All @@ -29,7 +29,7 @@ protected override RefreshRate setRequestParameterDataToValue(byte[] parameterDa

protected override byte[] setRequestValueToParameterData(RefreshRate refreshRate)
{
return Tools.ValueToData(refreshRate);
return [refreshRate.RawValue];
}
}
}
2 changes: 1 addition & 1 deletion RDMSharp/RDM/Enum/ERDM_ProductDetail.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public enum ERDM_ProductDetail : ushort
FOGGER_GLYCOL = 0x0300,
FOGGER_MINERALOIL = 0x0301,
FOGGER_WATER = 0x0302,
C02 = 0x0303,
CO2 = 0x0303,
LN2 = 0x0304,
BUBBLE = 0x0305,
FLAME_PROPANE = 0x0306,
Expand Down
4 changes: 3 additions & 1 deletion RDMSharp/RDM/IPv4Address.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@ public static implicit operator IPAddress(IPv4Address address)
}
public static implicit operator IPv4Address(IPAddress ip)
{
return new IPv4Address(ip.GetAddressBytes());
if (ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
return new IPv4Address(ip.GetAddressBytes());
throw new ArgumentException($"{ip} is not a Valid IPv4 and cant be converted");
}
public static implicit operator byte[](IPv4Address address)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class GetIPv4CurrentAddressResponse : AbstractRDMPayloadObject
{
public GetIPv4CurrentAddressResponse(
uint interfaceId = 0,
IPAddress ipAddress = default,
IPv4Address ipAddress = default,
byte netmask = 24,
ERDM_DHCPStatusMode dhcpStatus = ERDM_DHCPStatusMode.UNKNOWN)
{
Expand Down
4 changes: 2 additions & 2 deletions RDMSharp/RDM/PayloadObject/GetSetComponentScope.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ private static ERDM_StaticConfig getStaticConfig(IPAddress ipaddress)
public ushort ScopeSlot { get; private set; }
public string ScopeString { get; private set; }
public ERDM_StaticConfig StaticConfigType { get; private set; }
public IPAddress StaticBrokerIPv4 { get; private set; }
public IPv4Address StaticBrokerIPv4 { get; private set; }
public IPAddress StaticBrokerIPv6 { get; private set; }
public ushort StaticBrokerPort { get; private set; }

Expand Down Expand Up @@ -110,7 +110,7 @@ public static GetSetComponentScope FromPayloadData(byte[] data)
var scopeSlot = Tools.DataToUShort(ref data);
var scopeString = Tools.DataToString(ref data, 63).Replace("\u0000", "");
var staticConfigType = Tools.DataToEnum<ERDM_StaticConfig>(ref data);
IPAddress staticBrokerIPv4 = null;
IPv4Address? staticBrokerIPv4 = null;
IPAddress staticBrokerIPv6 = null;
ushort staticBrokerPort = 0;
switch (staticConfigType)
Expand Down
4 changes: 2 additions & 2 deletions RDMSharp/RDM/PayloadObject/GetSetIPv4DefaultRoute.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ public class GetSetIPv4DefaultRoute : AbstractRDMPayloadObject
{
public GetSetIPv4DefaultRoute(
uint interfaceId = 0,
IPAddress ipAddress = default)
IPv4Address ipAddress = default)
{
this.InterfaceId = interfaceId;
this.IPAddress = ipAddress;
}

public uint InterfaceId { get; private set; }
public IPAddress IPAddress { get; private set; }
public IPv4Address IPAddress { get; private set; }
public const int PDL = 0x08;

public override string ToString()
Expand Down
4 changes: 2 additions & 2 deletions RDMSharp/RDM/PayloadObject/GetSetIPv4NameServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ public class GetSetIPv4NameServer : AbstractRDMPayloadObject
{
public GetSetIPv4NameServer(
byte nameServerIndex = 0,
IPAddress ipAddress = default)
IPv4Address ipAddress = default)
{
this.NameServerIndex = nameServerIndex;
this.IPAddress = ipAddress;
}

public byte NameServerIndex { get; private set; }
public IPAddress IPAddress { get; private set; }
public IPv4Address IPAddress { get; private set; }
public const int PDL = 0x05;

public override string ToString()
Expand Down
4 changes: 2 additions & 2 deletions RDMSharp/RDM/PayloadObject/GetSetIPv4StaticAddress.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class GetSetIPv4StaticAddress : AbstractRDMPayloadObject
{
public GetSetIPv4StaticAddress(
uint interfaceId = 0,
IPAddress ipAddress = default,
IPv4Address ipAddress = default,
byte netmask = 24)
{
this.InterfaceId = interfaceId;
Expand All @@ -20,7 +20,7 @@ public GetSetIPv4StaticAddress(
}

public uint InterfaceId { get; private set; }
public IPAddress IPAddress { get; private set; }
public IPv4Address IPAddress { get; private set; }
public byte Netmask { get; private set; }
public const int PDL = 0x09;

Expand Down
4 changes: 2 additions & 2 deletions RDMSharp/RDM/PayloadObject/TCPCommsEntry.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ public override byte[] ToPayloadData()
scopeStringBytes.AddRange(Tools.ValueToData(this.ScopeString, 62));
while (scopeStringBytes.Count < 63)
scopeStringBytes.Add(0);
var ipv4Bytes = this.BrokerAdress.AddressFamily == AddressFamily.InterNetwork ? Tools.ValueToData(this.BrokerAdress) : new byte[4];
var ipv6Bytes = this.BrokerAdress.AddressFamily == AddressFamily.InterNetworkV6 ? Tools.ValueToData(this.BrokerAdress) : new byte[16];
var ipv4Bytes = this.BrokerAdress?.AddressFamily == AddressFamily.InterNetwork ? Tools.ValueToData(this.BrokerAdress) : new byte[4];
var ipv6Bytes = this.BrokerAdress?.AddressFamily == AddressFamily.InterNetworkV6 ? Tools.ValueToData(this.BrokerAdress) : new byte[16];

var brokerPortBytes = Tools.ValueToData(this.BrokerPort);
var unhealthyTCPEventsBytes = Tools.ValueToData(this.UnhealthyTCPEvents);
Expand Down
12 changes: 7 additions & 5 deletions RDMSharp/RDM/Tools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -236,8 +236,10 @@ public static byte[] ValueToData(object value, int trim = 32)
lBytes.AddRange(uid.ToBytes());
return lBytes.ToArray();
case RDMUID @uid:
return @uid.ToBytes().ToArray();

return @uid.ToBytes().ToArray();

case IPv4Address @ipv4Address:
return (byte[])@ipv4Address;
case IPAddress @ipAddress:
if (@ipAddress.AddressFamily == AddressFamily.InterNetwork)
{
Expand Down Expand Up @@ -287,7 +289,7 @@ public static byte[] ValueToData(object value, int trim = 32)
return new byte[] { 0 };

default:
throw new NotSupportedException();
throw new NotSupportedException(value.GetType().Name);
}

//Local Functions
Expand Down Expand Up @@ -465,13 +467,13 @@ public static T DataToEnum<T>(ref byte[] data) where T : Enum
throw new NotSupportedException();
}
}
public static IPAddress DataToIPAddressIPv4(ref byte[] @data)
public static IPv4Address DataToIPAddressIPv4(ref byte[] @data)
{
byte[] bytes = new byte[4];
for (int i = 0; i < bytes.Length; i++)
bytes[i] = Tools.DataToByte(ref data);

return new IPAddress(bytes);
return new IPv4Address(bytes);
}
public static IPAddress DataToIPAddressIPv6(ref byte[] @data)
{
Expand Down
Loading

0 comments on commit ac1b4b4

Please sign in to comment.