/// <summary> /// Constructor. /// </summary> public GXBandDescriptor() { WorkingDayIntervals = new GXDLMSInterval[5]; SaturdayIntervals = new GXDLMSInterval[5]; HolidayIntervals = new GXDLMSInterval[5]; for (int pos = 0; pos != 5; ++pos) { WorkingDayIntervals[pos] = new GXDLMSInterval(); SaturdayIntervals[pos] = new GXDLMSInterval(); HolidayIntervals[pos] = new GXDLMSInterval(); } }
private static void UpdateIntervals(GXDLMSInterval[] intervals, List <object> value) { int pos = 0; foreach (byte it in value) { GXDLMSInterval interval = intervals[pos]; ++pos; interval.StartHour = (byte)(it >> 3); interval.IntervalTariff = (DefaultTariffBand)((it >> 1) & 0x3); interval.UseInterval = (it & 1) != 0; } }
private static void UpdateInterval(GXDLMSInterval interval, byte[] value) { GXByteBuffer bb = new GXByteBuffer(value); byte b = bb.GetUInt8(); interval.StartHour = (byte)(b & 0x1F); interval.IntervalTariff = (DefaultTariffBand)((b >> 5) & 0x3); interval.UseInterval = (b >> 7) != 0; interval.WeeklyActivation = (WeeklyActivation)bb.GetUInt16(); UInt16 v = bb.GetUInt16(); interval.SpecialDayMonth = (byte)(v & 0xF); interval.SpecialDay = (byte)((v >> 8) & 0xF); interval.SpecialDayEnabled = (v >> 15) != 0; }
private static void GetInterval(GXDLMSInterval interval, GXByteBuffer data) { data.SetUInt8((byte)DataType.Array); data.SetUInt8(5); byte b = interval.StartHour; b |= (byte)((byte)interval.IntervalTariff << 5); b |= (byte)((interval.UseInterval ? 1 : 0) << 7); data.SetUInt8(b); data.SetUInt16((UInt16)interval.WeeklyActivation); UInt16 v = interval.SpecialDayMonth; v |= (UInt16)(interval.SpecialDay << 8); v |= (UInt16)((interval.SpecialDayEnabled ? 1 : 0) << 15); data.SetUInt16(v); }
/// <summary> /// Constructor. /// </summary> public GXBandDescriptor() { WorkingDayIntervals = new GXDLMSInterval(); SaturdayIntervals = new GXDLMSInterval(); HolidayIntervals = new GXDLMSInterval(); }