50 lines
1.5 KiB
C#
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;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|