/// <summary> /// 全年调光计划设置(0x09) 组包 /// </summary> public static byte[] GetBytes_Cmd09(SingleLightDimmingScheme SingleLightDimmingScheme) { var byteList = new List <byte>(); var bytePD = new List <byte>(); var bytesDateTime = GetBytes_DateTime(DateTime.Now); //Head byteList.Add(IotToDevice_HeadByte); //FrameType byteList.Add(GetByte_DefaultCommandFrameType()); //Time byteList.AddRange(bytesDateTime); //UUID byteList.AddRange(GetBytes_NewUUID()); //Cmd byteList.Add(0x03); //MessageID byteList.AddRange(GetBytes_RandMessageID()); //Ack byteList.Add(0x00); //PD //经度、纬度 bytePD.AddRange(DataHelper.UIntToByte4((int)(SingleLightDimmingScheme.Lon * 100 * 10000))); bytePD.AddRange(DataHelper.UIntToByte4((int)(SingleLightDimmingScheme.Lat * 100 * 10000))); //网关时区,例如 +-8 bytePD.Add((byte)SingleLightDimmingScheme.BaseUtcOffset); foreach (var m in SingleLightDimmingScheme.SchemeItems) { // 夏令时 if (m.Item_Mode == 7) { //模式 //bytePD.Add((byte)m.Item_Mode); //周掩码 //bytePD.Add((byte)m.Item_Week); //夏令时 //if (SingleLightDimmingScheme.RuleForDayLight.IsFixedDateRule) //{ // var hstr = $"{SingleLightDimmingScheme.RuleForDayLight.StartMonth.ToString("X")}" // + $"{ SingleLightDimmingScheme.RuleForDayLight.StartDay.ToString("X2") }" // + $"{SingleLightDimmingScheme.RuleForDayLight.EndMonth.ToString("X")}" // + $"{ SingleLightDimmingScheme.RuleForDayLight.EndDay.ToString("X2") }"; // bytePD.AddRange(DataHelper.HexStringToByte(hstr)); // bytePD.Add((byte)SingleLightDimmingScheme.RuleForDayLight.DaylightDelta); //} //else //{ // var hstr = $"{SingleLightDimmingScheme.RuleForDayLight.StartMonth.ToString("X")}{SingleLightDimmingScheme.RuleForDayLight.StartWeekofMonth.ToString("X")}" // + $"{SingleLightDimmingScheme.RuleForDayLight.StartDayOfWeek.ToString("X")}{SingleLightDimmingScheme.RuleForDayLight.EndMonth.ToString("X")}" // + $"{SingleLightDimmingScheme.RuleForDayLight.EndWeekofMonth.ToString("X")}{SingleLightDimmingScheme.RuleForDayLight.EndDayOfWeek.ToString("X")}"; // bytePD.AddRange(DataHelper.HexStringToByte(hstr)); // bytePD.Add((byte)SingleLightDimmingScheme.RuleForDayLight.DaylightDelta); //} } else { bytePD.Add((byte)m.Item_Mode); bytePD.Add((byte)m.Item_Week); bytePD.AddRange(DataHelper.UInt16ToByte2(m.Item_Time)); bytePD.Add((byte)m.Item_Channel); bytePD.Add((byte)m.Item_DimmingValue); } } //Length byteList.AddRange(DataHelper.UInt16ToByte2(bytePD.Count)); //PD byteList.AddRange(bytePD); //CRC byteList.AddRange(DataHelper.GetCRC16_2Bytes(byteList.ToArray())); //结束标志 byteList.Add(IotToDevice_TailByte); bytePD = null; return(byteList.ToArray()); }
public static byte[] GetBytes_SingleLightTimePlan(SingleLightDimmingScheme SingleLightDimmingScheme) { return(GetBytes_Cmd09(SingleLightDimmingScheme)); }