コード例 #1
0
ファイル: Parser.cs プロジェクト: vnbaaij/MeterMonitor
        private static void SetPowerFailureEventValue(ref PowerFailureEvent powerFailureEvent, string name, string value)
        {
            PropertyInfo propertyInfo;

            propertyInfo = GetPowerFailureEventProperty(name);

            var convertedValue = GetConvertedPropertyValue(propertyInfo, value);

            propertyInfo.SetValue(powerFailureEvent, convertedValue);
        }
コード例 #2
0
ファイル: Parser.cs プロジェクト: vnbaaij/MeterMonitor
        private static void SetPowerFailureEvents(ref Telegram telegram, IEnumerable <string> values)
        {
            List <PowerFailureEvent> powerFailureEvents = new List <PowerFailureEvent>();

            for (int i = 2; i <= (values.Count() - 2); i += 2)
            {
                PowerFailureEvent powerFailureEvent = new PowerFailureEvent();

                SetPowerFailureEventValue(ref powerFailureEvent, "Timestamp", values.ElementAtOrDefault(i));
                SetPowerFailureEventValue(ref powerFailureEvent, "Duration", values.ElementAtOrDefault(i + 1));

                powerFailureEvents.Add(powerFailureEvent);
            }

            var          propName     = GetPropertiesWithKey(obisErrorLog).ElementAtOrDefault(0);
            PropertyInfo propertyInfo = GetTelegramProperty(propName);

            propertyInfo.SetValue(telegram, powerFailureEvents);
        }