You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.4 KiB
59 lines
1.4 KiB
|
4 weeks ago
|
using System.Numerics;
|
||
|
|
using EGFramework;
|
||
|
|
|
||
|
|
|
||
|
|
public class RequestColorStartScan : ModbusRTU_WriteSingleHoldingRegister
|
||
|
|
{
|
||
|
|
public RequestColorStartScan()
|
||
|
|
{
|
||
|
|
this.DeviceAddress = 0x01;
|
||
|
|
this.RegisterAddress = 0x3007;
|
||
|
|
this.Value = 0x02;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
public class RequestColorStopScan : ModbusRTU_WriteSingleHoldingRegister
|
||
|
|
{
|
||
|
|
public RequestColorStopScan()
|
||
|
|
{
|
||
|
|
this.DeviceAddress = 0x01;
|
||
|
|
this.RegisterAddress = 0x3007;
|
||
|
|
this.Value = 0x01;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public class RequestColorSingleRead : ModbusRTU_ReadHoldingRegisters
|
||
|
|
{
|
||
|
|
public RequestColorSingleRead()
|
||
|
|
{
|
||
|
|
this.DeviceAddress = 0x01;
|
||
|
|
this.RegisterAddress = 0x00;
|
||
|
|
this.ReadCount = 3;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
public class ResponseColorSensor : ModbusRTU_Response
|
||
|
|
{
|
||
|
|
public Vector3 ColorRGB { set; get; }
|
||
|
|
|
||
|
|
public Vector3 ColorHSV { set; get; }
|
||
|
|
|
||
|
|
public override bool TrySetData(string protocolData, byte[] protocolBytes)
|
||
|
|
{
|
||
|
|
bool result = base.TrySetData(protocolData, protocolBytes);
|
||
|
|
if (!result)
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
if (this.HoldingRegister != null && this.HoldingRegister.Length >= 3)
|
||
|
|
{
|
||
|
|
ColorRGB = new Vector3(HoldingRegister[0] / 1000f, HoldingRegister[1] / 1000f, HoldingRegister[2] / 1000f);
|
||
|
|
ColorHSV = ColorRGB.RGBToHSV();
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
return result;
|
||
|
|
}
|
||
|
|
}
|