public static DateTime CalculatePlugwiseDate(PlugwiseHistoryMessage Hmsg, PlugwiseDeviceInfo devInfo) { try { DateTime today = System.DateTime.Now; DateTime CurrentDate = MessageHelper.CalculateDate(devInfo.InternalYear, devInfo.InternalMonth, devInfo.InternalMinutes); byte logYear = ConversionClass.HexToByte(Hmsg.RawHourvalue.Substring(0, 2)); byte logMonth = ConversionClass.HexToByte(Hmsg.RawHourvalue.Substring(2, 2)); int logMinutes = ConversionClass.HexStringToUInt16(Hmsg.RawHourvalue.Substring(4, 4)); DateTime logDate = MessageHelper.CalculateDate(logYear, logMonth, logMinutes); TimeSpan logDatediff = CurrentDate.Subtract(logDate); logDate = today.Subtract(logDatediff); return logDate; } catch (ArgumentOutOfRangeException ex) { throw new Exception("Error on calculate Date"); } }
public PlugwiseHistoryPowerMessage(PlugwiseMessage msg) { List<PlugwiseMessage> output = new List<PlugwiseMessage>(); prevHour = nullDate; Messages = new List<PlugwiseHistoryMessage>(); this.Mac = msg.Owner; string[] values = Regex.Split(msg.Message, "\\|"); for (int i = 0; i < 9; i=i+2) { // PlugwiseHistoryPowerMessage PlugwiseHistoryMessage Messag = new PlugwiseHistoryMessage(); Messag.MeasurementValue = int.Parse(values[i + 1]); Messag.RawHourvalue = values[i]; this.Messages.Add(Messag); } this.LogAddress = Convert.ToInt32(values[8]); this.Type = PlugwiseActions.history; this.nb_Sequence = Convert.ToInt32(values[9]); }