Skip to content

Commit

Permalink
First implementation of Sensors
Browse files Browse the repository at this point in the history
  • Loading branch information
patrick-dmxc committed Mar 25, 2024
1 parent 146d737 commit 2bd7a73
Show file tree
Hide file tree
Showing 50 changed files with 351 additions and 90 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,16 @@ public RDMMessage BuildGetResponseMessage(GetResponse getResponseValue)
return this.buildGetResponseMessage(getResponseValue);
}

public abstract RequestRange<GetRequest> GetRequestRange(object value);
public abstract IRequestRange GetRequestRange(object value);
IRequestRange IRDMGetParameterWrapperRequest.GetRequestRange(object value)
{
return this.GetRequestRange(value);
}

IRequestRange<GetRequest> IRDMGetParameterWrapperRequest<GetRequest>.GetRequestRange(object value)
{
return (IRequestRange<GetRequest>)this.GetRequestRange(value);
}
#endregion
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,15 @@ public RDMMessage BuildSetResponseMessage(SetResponse setResponseValue)
return this.buildSetResponseMessage(setResponseValue);
}
#endregion
public abstract IRequestRange GetRequestRange(object value);
IRequestRange IRDMGetParameterWrapperRequest.GetRequestRange(object value)
{
return this.GetRequestRange(value);
}

public abstract RequestRange<GetRequest> GetRequestRange(object value);
IRequestRange<GetRequest> IRDMGetParameterWrapperRequest<GetRequest>.GetRequestRange(object value)
{
return (IRequestRange<GetRequest>)this.GetRequestRange(value);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,16 @@ public RDMMessage BuildGetResponseMessage(GetResponse getResponseValue)
return this.buildGetResponseMessage(getResponseValue);
}

public abstract RequestRange<GetRequest> GetRequestRange(object value);
public abstract IRequestRange GetRequestRange(object value);
IRequestRange IRDMGetParameterWrapperRequest.GetRequestRange(object value)
{
return this.GetRequestRange(value);
}

IRequestRange<GetRequest> IRDMGetParameterWrapperRequest<GetRequest>.GetRequestRange(object value)
{
return (IRequestRange<GetRequest>)this.GetRequestRange(value);
}
#endregion
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ protected override byte[] getResponseValueToParameterData(RDMDMXPersonalityDescr
return personalityDescription.ToPayloadData();
}

public override RequestRange<byte> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is RDMDMXPersonality perso)
return new RequestRange<byte>((byte)perso.MinIndex, (byte)perso.Count);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ protected override byte[] getResponseValueToParameterData(RDMParameterDescriptio
return parameterDescription.ToPayloadData();
}

public override RequestRange<ERDM_Parameter> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
throw new NotSupportedException($"There is no support for the Type: {value.GetType().ToString()}");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ protected override byte[] getResponseValueToParameterData(RDMSelfTestDescription
return value.ToPayloadData();
}

public override RequestRange<byte> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return new RequestRange<byte>(0, byte.MaxValue);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ protected override byte[] getResponseValueToParameterData(RDMSensorDefinition se
return sensorDefinition.ToPayloadData();
}

public override RequestRange<byte> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is RDMDeviceInfo deviceInfo)
return new RequestRange<byte>(0, (byte)(deviceInfo.SensorCount - 1));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public SensorValueParameterWrapper() : base(ERDM_Parameter.SENSOR_VALUE)
public override string Name => "Sensor Value";
public override string Description => "This parameter shall be used to retrieve or reset sensor data.";

private static readonly ERDM_Parameter[] descriptiveParameters = new ERDM_Parameter[] { ERDM_Parameter.DEVICE_INFO };
private static readonly ERDM_Parameter[] descriptiveParameters = new ERDM_Parameter[] { ERDM_Parameter.SENSOR_DEFINITION };
public override ERDM_Parameter[] DescriptiveParameters => descriptiveParameters;

protected override byte[] getRequestValueToParameterData(byte sensorId)
Expand Down Expand Up @@ -51,7 +51,7 @@ protected override byte[] setResponseValueToParameterData(RDMSensorValue value)
return value.ToPayloadData();
}

public override RequestRange<byte> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is RDMDeviceInfo deviceInfo)
return new RequestRange<byte>(0, (byte)(deviceInfo.SensorCount - 1));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ protected override byte[] getResponseValueToParameterData(RDMSlotDescription val
{
return value.ToPayloadData();
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is RDMDeviceInfo deviceInfo)
return new RequestRange<ushort>(0, (ushort)(deviceInfo.Dmx512Footprint));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ protected override byte[] getResponseValueToParameterData(string value)
{
return Tools.ValueToData(value);
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return new RequestRange<ushort>(0, ushort.MaxValue);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ protected override byte[] getResponseValueToParameterData(RDMStatusMessage[] val

return bytes.ToArray();
}
public override RequestRange<ERDM_Status> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return new RequestRange<ERDM_Status>(0, (ERDM_Status)0x04);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ protected override byte[] setRequestValueToParameterData(GetSetComponentScope co
{
return componentScope.ToPayloadData();
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return EndpointListParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ protected override byte[] getResponseValueToParameterData(RDMCurveDescription va
return value.ToPayloadData();
}

public override RequestRange<byte> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is RDMCurve curve)
return new RequestRange<byte>(1, (byte)(curve.Count));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ protected override byte[] getResponseValueToParameterData(RDMLockStateDescriptio
return value.ToPayloadData();
}

public override RequestRange<byte> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is GetLockStateResponse lockState)
return new RequestRange<byte>(1, (byte)(lockState.Count));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ protected override byte[] getResponseValueToParameterData(RDMModulationFrequency
return value.ToPayloadData();
}

public override RequestRange<byte> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is RDMModulationFrequency modulationFrequency)
return new RequestRange<byte>(1, (byte)(modulationFrequency.Count));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ protected override byte[] getResponseValueToParameterData(RDMOutputResponseTimeD
return value.ToPayloadData();
}

public override RequestRange<byte> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is RDMOutputResponseTime outputResponseTime)
return new RequestRange<byte>(1, (byte)(outputResponseTime.Count));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ protected override byte[] setRequestValueToParameterData(RDMPresetStatus presetS
return presetStatus.ToPayloadData();
}

public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is RDMPresetInfo presetInfo)
return new RequestRange<ushort>(0x0001, presetInfo.MaximumSceneNumber);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ protected override byte[] setRequestValueToParameterData(GetSetIPV4_xxx_Mode dhc
{
return dhcpMode.ToPayloadData();
}
public override RequestRange<uint> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return ListInterfacesParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ protected override byte[] getResponseValueToParameterData(GetHardwareAddressResp
{
return value.ToPayloadData();
}
public override RequestRange<uint> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return ListInterfacesParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ protected override byte[] getResponseValueToParameterData(GetIPv4CurrentAddressR
{
return value.ToPayloadData();
}
public override RequestRange<uint> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return ListInterfacesParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ protected override byte[] setRequestValueToParameterData(GetSetIPv4DefaultRoute
{
return defaultRoute.ToPayloadData();
}
public override RequestRange<uint> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return ListInterfacesParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ protected override byte[] setRequestValueToParameterData(GetSetIPv4NameServer na
{
return nameServer.ToPayloadData();
}
public override RequestRange<uint> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return ListInterfacesParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ protected override byte[] setRequestValueToParameterData(GetSetIPv4StaticAddress
{
return staticAddress.ToPayloadData();
}
public override RequestRange<uint> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return ListInterfacesParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ protected override byte[] getResponseValueToParameterData(GetInterfaceNameRespon
{
return value.ToPayloadData();
}
public override RequestRange<uint> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return ListInterfacesParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ protected override byte[] setRequestValueToParameterData(GetSetIPV4_xxx_Mode dhc
{
return dhcpMode.ToPayloadData();
}
public override RequestRange<uint> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return ListInterfacesParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ protected override byte[] getResponseValueToParameterData(GetBackgroundQueuedSta
{
return value.ToPayloadData();
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return EndpointListParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ protected override byte[] getResponseValueToParameterData(GetBindingAndControlFi
{
return response.ToPayloadData();
}
public override RequestRange<GetBindingAndControlFieldsRequest> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
throw new System.NotSupportedException();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ protected override byte[] setResponseValueToParameterData(ushort value)
{
return Tools.ValueToData(value);
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return EndpointListParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ protected override byte[] setResponseValueToParameterData(ushort endpointId)
{
return Tools.ValueToData(endpointId);
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return EndpointListParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ protected override byte[] setResponseValueToParameterData(ushort endpointId)
{
return Tools.ValueToData(endpointId);
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return EndpointListParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ protected override byte[] setResponseValueToParameterData(ushort endpointId)
{
return Tools.ValueToData(endpointId);
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return EndpointListParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ protected override byte[] setResponseValueToParameterData(ushort endpointId)
{
return Tools.ValueToData(endpointId);
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return EndpointListParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ protected override byte[] getResponseValueToParameterData(GetEndpointTimingDescr
return value.ToPayloadData();
}

public override RequestRange<byte> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value is GetEndpointTimingResponse getEndpointTiming)
return new RequestRange<byte>(1, (byte)(getEndpointTiming.Count));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ protected override byte[] setResponseValueToParameterData(ushort endpointId)
{
return Tools.ValueToData(endpointId);
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
if (value == null)
return new RequestRange<ushort>(0x0001, 0xF9FF);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ protected override byte[] setResponseValueToParameterData(ushort endpointId)
{
return Tools.ValueToData(endpointId);
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return EndpointListParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ protected override byte[] setResponseValueToParameterData(ushort endpointId)
{
return Tools.ValueToData(endpointId);
}
public override RequestRange<ushort> GetRequestRange(object value)
public override IRequestRange GetRequestRange(object value)
{
return EndpointListParameterWrapper.GetRequestRange(value);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
{
public interface IRDMBlueprintDescriptionListParameterWrapper : IRDMBlueprintParameterWrapper, IRDMDescriptionParameterWrapper
{
ERDM_Parameter[] DescriptiveParameters { get; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
namespace RDMSharp.ParameterWrapper
{
public interface IRDMGetParameterWrapperGetResponseContravariance<in TResponse> : IRDMGetParameterWrapperResponse
{
RDMMessage BuildGetResponseMessage(TResponse value);
byte[] GetResponseValueToParameterData(TResponse value);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ public interface IRDMGetParameterWrapperRequest : IRDMParameterWrapper
RDMMessage BuildGetRequestMessage(object value);
byte[] GetRequestObjectToParameterData(object value);
object GetRequestParameterDataToObject(byte[] parameterData);
IRequestRange GetRequestRange(object value);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
namespace RDMSharp.ParameterWrapper
{
public interface IRDMGetParameterWrapperRequest<TRequest> : IRDMGetParameterWrapperRequest
public interface IRDMGetParameterWrapperRequest<TRequest> : IRDMGetParameterWrapperRequest, IRDMGetParameterWrapperRequestContravariance<TRequest>
{
ERDM_Parameter[] DescriptiveParameters { get; }
RequestRange<TRequest> GetRequestRange(object value);
RDMMessage BuildGetRequestMessage(TRequest value);
byte[] GetRequestValueToParameterData(TRequest value);
TRequest GetRequestParameterDataToValue(byte[] parameterData);
new IRequestRange<TRequest> GetRequestRange(object value);
}
}
Loading

0 comments on commit 2bd7a73

Please sign in to comment.