void IGXDLMSBase.Load(GXXmlReader reader)
        {
            CurrentAverageValue = reader.ReadElementContentAsObject("CurrentAverageValue", null);
            LastAverageValue    = reader.ReadElementContentAsObject("LastAverageValue", null);
            Scaler = reader.ReadElementContentAsDouble("Scaler", 1);
            Unit   = (Unit)reader.ReadElementContentAsInt("Unit");
            Status = reader.ReadElementContentAsObject("Status", null);
            string str = reader.ReadElementContentAsString("CaptureTime");

            if (str == null)
            {
                CaptureTime = null;
            }
            else
            {
                CaptureTime = new GXDateTime(str);
            }
            str = reader.ReadElementContentAsString("StartTimeCurrent");
            if (str == null)
            {
                StartTimeCurrent = null;
            }
            else
            {
                StartTimeCurrent = new GXDateTime(str);
            }
            Period          = (UInt32)reader.ReadElementContentAsInt("Period");
            NumberOfPeriods = (UInt16)reader.ReadElementContentAsInt("NumberOfPeriods");
        }
 void IGXDLMSBase.Load(GXXmlReader reader)
 {
     Unit        = (Unit)reader.ReadElementContentAsInt("Unit", 0);
     Scaler      = reader.ReadElementContentAsDouble("Scaler", 1);
     Value       = reader.ReadElementContentAsObject("Value", null);
     Status      = reader.ReadElementContentAsObject("Status", null);
     CaptureTime = (GXDateTime)reader.ReadElementContentAsObject("CaptureTime", null);
 }
        void IGXDLMSBase.Load(GXXmlReader reader)
        {
            if (reader.IsStartElement("MonitoredValue", true))
            {
                ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("ObjectType");
                string     ln = reader.ReadElementContentAsString("LN");
                if (ot != ObjectType.None && ln != null)
                {
                    MonitoredValue = reader.Objects.FindByLN(ot, ln);
                    //If item is not serialized yet.
                    if (MonitoredValue == null)
                    {
                        MonitoredValue             = GXDLMSClient.CreateObject(ot);
                        MonitoredValue.LogicalName = ln;
                    }
                }
                reader.ReadEndElement("MonitoredValue");
            }
            ThresholdActive           = reader.ReadElementContentAsObject("ThresholdActive", null);
            ThresholdNormal           = reader.ReadElementContentAsObject("ThresholdNormal", null);
            ThresholdEmergency        = reader.ReadElementContentAsObject("ThresholdEmergency", null);
            MinOverThresholdDuration  = (UInt16)reader.ReadElementContentAsInt("MinOverThresholdDuration");
            MinUnderThresholdDuration = (UInt16)reader.ReadElementContentAsInt("MinUnderThresholdDuration");
            if (reader.IsStartElement("EmergencyProfile", true))
            {
                EmergencyProfile.ID             = (UInt16)reader.ReadElementContentAsInt("ID");
                EmergencyProfile.ActivationTime = (GXDateTime)reader.ReadElementContentAsObject("Time", new GXDateTime());
                EmergencyProfile.Duration       = (UInt16)reader.ReadElementContentAsInt("Duration");
                reader.ReadEndElement("EmergencyProfile");
            }
            List <UInt16> list = new List <ushort>();

            if (reader.IsStartElement("EmergencyProfileGroupIDs", true))
            {
                while (reader.IsStartElement("Value", false))
                {
                    list.Add((UInt16)reader.ReadElementContentAsInt("Value"));
                }
                reader.ReadEndElement("EmergencyProfileGroupIDs");
            }
            EmergencyProfileGroupIDs = list.ToArray();
            EmergencyProfileActive   = reader.ReadElementContentAsInt("Active") != 0;

            if (reader.IsStartElement("ActionOverThreshold", true))
            {
                ActionOverThreshold.LogicalName    = reader.ReadElementContentAsString("LN");
                ActionOverThreshold.ScriptSelector = (UInt16)reader.ReadElementContentAsInt("ScriptSelector");
                reader.ReadEndElement("ActionOverThreshold");
            }
            if (reader.IsStartElement("ActionUnderThreshold", true))
            {
                ActionUnderThreshold.LogicalName    = reader.ReadElementContentAsString("LN");
                ActionUnderThreshold.ScriptSelector = (UInt16)reader.ReadElementContentAsInt("ScriptSelector");
                reader.ReadEndElement("ActionUnderThreshold");
            }
        }
 void IGXDLMSBase.Load(GXXmlReader reader)
 {
     Scripts.Clear();
     if (reader.IsStartElement("Scripts", true))
     {
         while (reader.IsStartElement("Script", true))
         {
             GXDLMSScript it = new GXDLMSScript();
             Scripts.Add(it);
             it.Id = reader.ReadElementContentAsInt("ID");
             if (reader.IsStartElement("Actions", true))
             {
                 while (reader.IsStartElement("Action", true))
                 {
                     GXDLMSScriptAction a = new Objects.GXDLMSScriptAction();
                     a.Type = (ScriptActionType)reader.ReadElementContentAsInt("Type");
                     ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("ObjectType");
                     string     ln = reader.ReadElementContentAsString("LN");
                     a.Index  = reader.ReadElementContentAsInt("Index");
                     a.Target = reader.Objects.FindByLN(ot, ln);
                     if (a.Target == null)
                     {
                         a.Target             = GXDLMSClient.CreateObject(ot);
                         a.Target.LogicalName = ln;
                     }
                     a.ParameterDataType = (DataType)reader.ReadElementContentAsInt("ParameterDataType");
                     a.Parameter         = reader.ReadElementContentAsObject("Parameter", null);
                 }
                 reader.ReadEndElement("Actions");
             }
         }
         reader.ReadEndElement("Scripts");
     }
 }
        void IGXDLMSBase.Load(GXXmlReader reader)
        {
            Unit   = (Unit)reader.ReadElementContentAsInt("Unit", 0);
            Scaler = reader.ReadElementContentAsDouble("Scaler", 1);
            Value  = reader.ReadElementContentAsObject("Value", null, this, 2);
            Status = reader.ReadElementContentAsObject("Status", null, this, 4);
            GXDateTime dt = reader.ReadElementContentAsDateTime("CaptureTime");

            if (dt == null)
            {
                CaptureTime = DateTime.MinValue;
            }
            else
            {
                CaptureTime = dt.Value.ToLocalTime().LocalDateTime;
            }
        }
        void IGXDLMSBase.Load(GXXmlReader reader)
        {
            List <object> thresholds = new List <object>();

            if (reader.IsStartElement("Thresholds", true))
            {
                while (reader.IsStartElement("Value", false))
                {
                    object it = reader.ReadElementContentAsObject("Value", null);
                    thresholds.Add(it);
                }
                reader.ReadEndElement("Thresholds");
            }
            Thresholds = thresholds.ToArray();
            if (reader.IsStartElement("MonitoredValue", true))
            {
                MonitoredValue.ObjectType     = (ObjectType)reader.ReadElementContentAsInt("ObjectType");
                MonitoredValue.LogicalName    = reader.ReadElementContentAsString("LN");
                MonitoredValue.AttributeIndex = reader.ReadElementContentAsInt("Index");
                reader.ReadEndElement("MonitoredValue");
            }

            List <GXDLMSActionSet> list = new List <GXDLMSActionSet>();

            if (reader.IsStartElement("Actions", true))
            {
                while (reader.IsStartElement("Item", true))
                {
                    GXDLMSActionSet it = new GXDLMSActionSet();
                    list.Add(it);
                    if (reader.IsStartElement("Up", true))
                    {
                        it.ActionUp.LogicalName = reader.ReadElementContentAsString("LN", null);
                        if (it.ActionUp.LogicalName == "")
                        {
                            it.ActionUp.LogicalName = "0.0.0.0.0.0";
                        }
                        it.ActionUp.ScriptSelector = (UInt16)reader.ReadElementContentAsInt("Selector");
                        reader.ReadEndElement("Up");
                    }
                    if (reader.IsStartElement("Down", true))
                    {
                        it.ActionDown.LogicalName = reader.ReadElementContentAsString("LN", null);
                        if (it.ActionDown.LogicalName == "")
                        {
                            it.ActionDown.LogicalName = "0.0.0.0.0.0";
                        }
                        it.ActionDown.ScriptSelector = (UInt16)reader.ReadElementContentAsInt("Selector");
                        reader.ReadEndElement("Down");
                    }
                }
                reader.ReadEndElement("Actions");
            }
            Actions = list.ToArray();
        }
        private void LoadPrefixTable(GXXmlReader reader)
        {
            List <object> list = new List <object>();

            if (reader.IsStartElement("PrefixTable", true))
            {
                while (reader.IsStartElement("Value", false))
                {
                    list.Add(reader.ReadElementContentAsObject("Value", null));
                }
                reader.ReadEndElement("PrefixTable");
            }
            PrefixTable = list.ToArray();
        }
Example #8
0
 void IGXDLMSBase.Load(GXXmlReader reader)
 {
     Entries.Clear();
     if (reader.IsStartElement("Entries", true))
     {
         while (reader.IsStartElement("Item", true))
         {
             GXScheduleEntry it = new GXScheduleEntry();
             it.Index          = (byte)reader.ReadElementContentAsInt("Index");
             it.Enable         = reader.ReadElementContentAsInt("Enable") != 0;
             it.LogicalName    = reader.ReadElementContentAsString("LogicalName");
             it.ScriptSelector = (byte)reader.ReadElementContentAsInt("ScriptSelector");
             it.SwitchTime     = (GXDateTime)reader.ReadElementContentAsObject("SwitchTime", new GXDateTime());
             it.ValidityWindow = (byte)reader.ReadElementContentAsInt("ValidityWindow");
             it.ExecWeekdays   = reader.ReadElementContentAsString("ExecWeekdays");
             it.ExecSpecDays   = reader.ReadElementContentAsString("ExecSpecDays");
             it.BeginDate      = (GXDateTime)reader.ReadElementContentAsObject("BeginDate", new GXDateTime());
             it.EndDate        = (GXDateTime)reader.ReadElementContentAsObject("EndDate", new GXDateTime());
             Entries.Add(it);
         }
         reader.ReadEndElement("Entries");
     }
 }
 void IGXDLMSBase.Load(GXXmlReader reader)
 {
     Buffer.Clear();
     if (reader.IsStartElement("Buffer", true))
     {
         while (reader.IsStartElement("Row", true))
         {
             List <object> row = new List <object>();
             while (reader.IsStartElement("Cell", false))
             {
                 row.Add(reader.ReadElementContentAsObject("Cell", null));
             }
             Buffer.Add(row.ToArray());
         }
         reader.ReadEndElement("Buffer");
     }
     CaptureObjects.Clear();
     if (reader.IsStartElement("CaptureObjects", true))
     {
         while (reader.IsStartElement("Item", true))
         {
             ObjectType          ot  = (ObjectType)reader.ReadElementContentAsInt("ObjectType");
             string              ln  = reader.ReadElementContentAsString("LN");
             int                 ai  = reader.ReadElementContentAsInt("Attribute");
             int                 di  = reader.ReadElementContentAsInt("Data");
             GXDLMSCaptureObject co  = new GXDLMSCaptureObject(ai, di);
             GXDLMSObject        obj = reader.Objects.FindByLN(ot, ln);
             if (obj == null)
             {
                 obj             = GXDLMSClient.CreateObject(ot);
                 obj.LogicalName = ln;
             }
             CaptureObjects.Add(new GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject>(obj, co));
         }
         reader.ReadEndElement("CaptureObjects");
     }
     CapturePeriod = reader.ReadElementContentAsInt("CapturePeriod");
     SortMethod    = (SortMethod)reader.ReadElementContentAsInt("SortMethod");
     if (reader.IsStartElement("SortObject", true))
     {
         CapturePeriod = reader.ReadElementContentAsInt("CapturePeriod");
         ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("ObjectType");
         string     ln = reader.ReadElementContentAsString("LN");
         SortObject = reader.Objects.FindByLN(ot, ln);
         reader.ReadEndElement("SortObject");
     }
     EntriesInUse   = reader.ReadElementContentAsInt("EntriesInUse");
     ProfileEntries = reader.ReadElementContentAsInt("ProfileEntries");
 }
Example #10
0
        void IGXDLMSBase.Load(GXXmlReader reader)
        {
            PHYReference = reader.ReadElementContentAsString("PHYReference");
            List <GXDLMSPppSetupLcpOption> options = new List <GXDLMSPppSetupLcpOption>();

            if (reader.IsStartElement("LCPOptions", true))
            {
                while (reader.IsStartElement("Item", true))
                {
                    GXDLMSPppSetupLcpOption it = new GXDLMSPppSetupLcpOption();
                    it.Type   = (PppSetupLcpOptionType)reader.ReadElementContentAsInt("Type");
                    it.Length = (byte)reader.ReadElementContentAsInt("Length");
                    it.Data   = reader.ReadElementContentAsObject("Data", null);
                }
                reader.ReadEndElement("LCPOptions");
            }
            LCPOptions = options.ToArray();

            List <GXDLMSPppSetupIPCPOption> list = new List <GXDLMSPppSetupIPCPOption>();

            if (reader.IsStartElement("IPCPOptions", true))
            {
                while (reader.IsStartElement("Item", true))
                {
                    GXDLMSPppSetupIPCPOption it = new GXDLMSPppSetupIPCPOption();
                    it.Type   = (PppSetupIPCPOptionType)reader.ReadElementContentAsInt("Type");
                    it.Length = (byte)reader.ReadElementContentAsInt("Length");
                    it.Data   = reader.ReadElementContentAsObject("Data", null);
                }
                reader.ReadEndElement("IPCPOptions");
            }
            IPCPOptions = list.ToArray();

            UserName = GXDLMSTranslator.HexToBytes(reader.ReadElementContentAsString("UserName"));
            Password = GXDLMSTranslator.HexToBytes(reader.ReadElementContentAsString("Password"));
        }
 void IGXDLMSBase.Load(GXXmlReader reader)
 {
     ChangedParameter = new GXDLMSTarget();
     if (reader.IsStartElement("ChangedParameter", true))
     {
         ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("Type");
         string     ln = reader.ReadElementContentAsString("LN");
         ChangedParameter.Target = reader.Objects.FindByLN(ot, ln);
         if (ChangedParameter.Target == null)
         {
             ChangedParameter.Target             = GXDLMSClient.CreateObject(ot);
             ChangedParameter.Target.LogicalName = ln;
         }
         ChangedParameter.AttributeIndex = (byte)reader.ReadElementContentAsInt("Index");
         ChangedParameter.Value          = reader.ReadElementContentAsObject("Value", null);
         reader.ReadEndElement("ChangedParameter");
     }
     if (string.Compare("Time", reader.Name, true) == 0)
     {
         CaptureTime = new GXDateTime(reader.ReadElementContentAsString("Time"), CultureInfo.InvariantCulture);
     }
     else
     {
         CaptureTime = DateTime.MinValue;
     }
     Parameters.Clear();
     if (reader.IsStartElement("Parameters", true))
     {
         while (reader.IsStartElement("Item", true))
         {
             GXDLMSTarget obj = new GXDLMSTarget();
             ObjectType   ot  = (ObjectType)reader.ReadElementContentAsInt("Type");
             string       ln  = reader.ReadElementContentAsString("LN");
             obj.Target = reader.Objects.FindByLN(ot, ln);
             if (obj.Target == null)
             {
                 obj.Target             = GXDLMSClient.CreateObject(ot);
                 obj.Target.LogicalName = ln;
             }
             obj.AttributeIndex = (byte)reader.ReadElementContentAsInt("Index");
             Parameters.Add(obj);
         }
         reader.ReadEndElement("Parameters");
     }
 }
Example #12
0
 void IGXDLMSBase.Load(GXXmlReader reader)
 {
     Unit   = (Unit)reader.ReadElementContentAsInt("Unit", 0);
     Scaler = reader.ReadElementContentAsDouble("Scaler", 1);
     Value  = reader.ReadElementContentAsObject("Value", null);
 }
Example #13
0
 void IGXDLMSBase.Load(GXXmlReader reader)
 {
     Value = reader.ReadElementContentAsObject("Value", null, this, 2);
 }