Files
PTL/1.0.0/src/FASS.Extend.Master/LightControlMessage.cs
T
2026-07-14 21:29:27 +08:00

50 lines
1.5 KiB
C#

namespace FASS.Extend.Master
{
public class LightControlMessage
{
public byte StartLightNo { get; set; }
public byte EndLightNo { get; set; }
public byte State { get; set; } = 0;
public uint Led { get; set; }
public byte Reserve { get; set; }
public LightControlMessage SetMessage(
byte startLightNo,
byte endLightNo,
byte state,
uint led)
{
StartLightNo = startLightNo;
EndLightNo = endLightNo;
State = state;
Led = led;
return this;
}
public LightControlMessage GetMessage(byte[] byteArray)
{
if (byteArray == null || byteArray.Length != 8) throw new Exception($"数据长度错误:{Utility.ByteArrayToHexString(byteArray)}");
StartLightNo = byteArray[0];
EndLightNo = byteArray[1];
State = byteArray[2];
Led = BitConverter.ToUInt32(byteArray[3..7]);
return this;
}
public byte[] GetByteArray()
{
var byteArray = new byte[8];
byteArray[0] = StartLightNo;
byteArray[1] = EndLightNo;
byteArray[2] = State;
var ledArr = BitConverter.GetBytes(Led);
byteArray[3] = ledArr[0];
byteArray[4] = ledArr[1];
byteArray[5] = ledArr[2];
byteArray[6] = ledArr[3];
return byteArray;
}
}
}