void IGXDLMSBase.Save(GXXmlWriter writer)
        {
            writer.WriteElementObject("Operator", Operator);
            writer.WriteElementString("Status", (int)Status);
            writer.WriteElementString("CircuitSwitchStatus", (int)CircuitSwitchStatus);
            writer.WriteElementString("PacketSwitchStatus", (int)PacketSwitchStatus);
            if (CellInfo != null)
            {
                writer.WriteStartElement("CellInfo");
                writer.WriteElementString("CellId", CellInfo.CellId);
                writer.WriteElementString("LocationId", CellInfo.LocationId);
                writer.WriteElementString("SignalQuality", CellInfo.SignalQuality);
                writer.WriteElementString("Ber", CellInfo.Ber);
                writer.WriteEndElement();
            }

            if (AdjacentCells != null)
            {
                writer.WriteStartElement("AdjacentCells");
                foreach (AdjacentCell it in AdjacentCells)
                {
                    writer.WriteStartElement("Item");
                    writer.WriteElementString("CellId", it.CellId);
                    writer.WriteElementString("SignalQuality", it.SignalQuality);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
            writer.WriteElementObject("CaptureTime", CaptureTime);
        }
Пример #2
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("PHYReference", PHYReference);
     if (LCPOptions != null)
     {
         writer.WriteStartElement("LCPOptions");
         foreach (GXDLMSPppSetupLcpOption it in LCPOptions)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Type", (int)it.Type);
             writer.WriteElementString("Length", it.Length);
             writer.WriteElementObject("Data", it.Data);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     if (IPCPOptions != null)
     {
         writer.WriteStartElement("IPCPOptions");
         foreach (GXDLMSPppSetupIPCPOption it in IPCPOptions)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Type", ((int)it.Type));
             writer.WriteElementString("Length", it.Length);
             writer.WriteElementObject("Data", it.Data);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     writer.WriteElementString("UserName", GXDLMSTranslator.ToHex(UserName));
     writer.WriteElementString("Password", GXDLMSTranslator.ToHex(Password));
 }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("Unit", (int)Unit, 2);
     writer.WriteElementString("Scaler", Scaler, 1, 2);
     writer.WriteElementObject("Value", Value, GetDataType(2), GetUIDataType(2), 3);
     writer.WriteElementObject("Status", Status, 4);
     writer.WriteElementString("CaptureTime", CaptureTime, 5);
 }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("Unit", (int)Unit);
     writer.WriteElementString("Scaler", Scaler, 1);
     writer.WriteElementObject("Value", Value);
     writer.WriteElementObject("Status", Status);
     writer.WriteElementObject("CaptureTime", CaptureTime);
 }
Пример #5
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (Value is string)
     {
         writer.WriteElementObject("Value", Value, GetDataType(2), GetUIDataType(2));
     }
     else
     {
         writer.WriteElementObject("Value", Value);
     }
 }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementObject("CurrentAverageValue", CurrentAverageValue);
     writer.WriteElementObject("LastAverageValue", LastAverageValue);
     writer.WriteElementString("Scaler", Scaler, 1);
     writer.WriteElementString("Unit", (int)Unit);
     writer.WriteElementObject("Status", Status);
     writer.WriteElementString("CaptureTime", CaptureTime);
     writer.WriteElementString("StartTimeCurrent", StartTimeCurrent);
     writer.WriteElementString("Period", Period);
     writer.WriteElementString("NumberOfPeriods", NumberOfPeriods);
 }
Пример #7
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementObject("CurrentAverageValue", CurrentAverageValue, GetDataType(2), GetUIDataType(2), 2);
     writer.WriteElementObject("LastAverageValue", LastAverageValue, 3);
     writer.WriteElementString("Scaler", Scaler, 1, 4);
     writer.WriteElementString("Unit", (int)Unit, 5);
     writer.WriteElementObject("Status", Status, 6);
     writer.WriteElementString("CaptureTime", CaptureTime, 7);
     writer.WriteElementString("StartTimeCurrent", StartTimeCurrent, 8);
     writer.WriteElementString("Period", Period, 9);
     writer.WriteElementString("NumberOfPeriods", NumberOfPeriods, 10);
 }
Пример #8
0
        void IGXDLMSBase.Save(GXXmlWriter writer)
        {
            if (MonitoredValue != null)
            {
                writer.WriteStartElement("MonitoredValue");
                writer.WriteElementString("ObjectType", (int)MonitoredValue.ObjectType);
                writer.WriteElementString("LN", MonitoredValue.LogicalName);
                writer.WriteEndElement();
            }
            writer.WriteElementObject("ThresholdActive", ThresholdActive);
            writer.WriteElementObject("ThresholdNormal", ThresholdNormal);
            writer.WriteElementObject("ThresholdEmergency", ThresholdEmergency);
            writer.WriteElementString("MinOverThresholdDuration", MinOverThresholdDuration);
            writer.WriteElementString("MinUnderThresholdDuration", MinUnderThresholdDuration);
            if (EmergencyProfile != null)
            {
                writer.WriteStartElement("EmergencyProfile");
                writer.WriteElementString("ID", EmergencyProfile.ID);
                writer.WriteElementObject("Time", EmergencyProfile.ActivationTime);
                writer.WriteElementString("Duration", EmergencyProfile.Duration);
                writer.WriteEndElement();
            }
            if (EmergencyProfileGroupIDs != null)
            {
                writer.WriteStartElement("EmergencyProfileGroupIDs");
                foreach (UInt16 it in EmergencyProfileGroupIDs)
                {
                    writer.WriteElementString("Value", it);
                }
                writer.WriteEndElement();
            }
            writer.WriteElementString("Active", EmergencyProfileActive);

            if (ActionOverThreshold != null)
            {
                writer.WriteStartElement("ActionOverThreshold");
                writer.WriteElementString("LN", ActionOverThreshold.LogicalName);
                writer.WriteElementString("ScriptSelector", ActionOverThreshold.ScriptSelector);
                writer.WriteEndElement();
            }

            if (ActionUnderThreshold != null)
            {
                writer.WriteStartElement("ActionUnderThreshold");
                writer.WriteElementString("LN", ActionUnderThreshold.LogicalName);
                writer.WriteElementString("ScriptSelector", ActionUnderThreshold.ScriptSelector);
                writer.WriteEndElement();
            }
        }
 private void SaveBlacklistTable(GXXmlWriter writer)
 {
     if (BlacklistTable != null)
     {
         writer.WriteStartElement("BlacklistTable");
         foreach (GXKeyValuePair <UInt16, UInt16> it in BlacklistTable)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementObject("Key", it.Key);
             writer.WriteElementObject("Value", it.Value);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
Пример #10
0
        void IGXDLMSBase.Save(GXXmlWriter writer)
        {
            writer.WriteStartElement("MonitoredValue", 2);
            if (MonitoredValue != null)
            {
                writer.WriteElementString("ObjectType", (int)MonitoredValue.ObjectType, 0);
                writer.WriteElementString("LN", MonitoredValue.LogicalName, 0);
            }
            writer.WriteEndElement();
            writer.WriteElementObject("ThresholdActive", ThresholdActive, 3);
            writer.WriteElementObject("ThresholdNormal", ThresholdNormal, 4);
            writer.WriteElementObject("ThresholdEmergency", ThresholdEmergency, 5);
            writer.WriteElementString("MinOverThresholdDuration", MinOverThresholdDuration, 6);
            writer.WriteElementString("MinUnderThresholdDuration", MinUnderThresholdDuration, 7);
            writer.WriteStartElement("EmergencyProfile", 8);
            if (EmergencyProfile != null)
            {
                writer.WriteElementString("ID", EmergencyProfile.ID, 0);
                writer.WriteElementString("Time", EmergencyProfile.ActivationTime, 0);
                writer.WriteElementString("Duration", EmergencyProfile.Duration, 0);
            }
            writer.WriteEndElement();
            writer.WriteStartElement("EmergencyProfileGroupIDs", 9);
            if (EmergencyProfileGroupIDs != null)
            {
                foreach (UInt16 it in EmergencyProfileGroupIDs)
                {
                    writer.WriteElementString("Value", it, 0);
                }
            }
            writer.WriteEndElement();
            writer.WriteElementString("Active", EmergencyProfileActive, 10);
            writer.WriteStartElement("ActionOverThreshold", 11);
            if (ActionOverThreshold != null)
            {
                writer.WriteElementString("LN", ActionOverThreshold.LogicalName, 0);
                writer.WriteElementString("ScriptSelector", ActionOverThreshold.ScriptSelector, 0);
            }
            writer.WriteEndElement();

            writer.WriteStartElement("ActionUnderThreshold", 12);
            if (ActionUnderThreshold != null)
            {
                writer.WriteElementString("LN", ActionUnderThreshold.LogicalName, 0);
                writer.WriteElementString("ScriptSelector", ActionUnderThreshold.ScriptSelector, 0);
            }
            writer.WriteEndElement();
        }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (ChangedParameter != null && ChangedParameter.Target != null)
     {
         writer.WriteStartElement("ChangedParameter");
         writer.WriteElementString("Type", (int)ChangedParameter.Target.ObjectType);
         writer.WriteElementString("LN", ChangedParameter.Target.LogicalName);
         writer.WriteElementString("Index", ChangedParameter.AttributeIndex);
         writer.WriteElementObject("Value", ChangedParameter.Value);
         writer.WriteEndElement();
     }
     if (CaptureTime != null && CaptureTime != DateTime.MinValue)
     {
         writer.WriteElementString("Time", CaptureTime.ToString(CultureInfo.InvariantCulture));
     }
     if (Parameters != null && Parameters.Count != 0)
     {
         writer.WriteStartElement("Parameters");
         foreach (GXDLMSTarget it in Parameters)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Type", (int)it.Target.ObjectType);
             writer.WriteElementString("LN", it.Target.LogicalName);
             writer.WriteElementString("Index", it.AttributeIndex);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
 private void SaveBroadcastLogTable(GXXmlWriter writer)
 {
     if (BroadcastLogTable != null)
     {
         writer.WriteStartElement("BroadcastLogTable");
         foreach (GXDLMSBroadcastLogTable it in BroadcastLogTable)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementObject("SourceAddress", it.SourceAddress);
             writer.WriteElementObject("SequenceNumber", it.SequenceNumber);
             writer.WriteElementObject("ValidTime", it.ValidTime);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteStartElement("ChangedParameter", 2);
     if (ChangedParameter != null && ChangedParameter.Target != null)
     {
         writer.WriteElementString("Type", (int)ChangedParameter.Target.ObjectType, 2);
         writer.WriteElementString("LN", ChangedParameter.Target.LogicalName, 2);
         writer.WriteElementString("Index", ChangedParameter.AttributeIndex, 2);
         writer.WriteElementObject("Value", ChangedParameter.Value, 2);
     }
     writer.WriteEndElement();
     writer.WriteElementString("Time", CaptureTime, 3);
     writer.WriteStartElement("Parameters", 4);
     if (Parameters != null && Parameters.Count != 0)
     {
         foreach (GXDLMSTarget it in Parameters)
         {
             writer.WriteStartElement("Item", 4);
             writer.WriteElementString("Type", (int)it.Target.ObjectType, 4);
             writer.WriteElementString("LN", it.Target.LogicalName, 4);
             writer.WriteElementString("Index", it.AttributeIndex, 4);
             writer.WriteEndElement();
         }
     }
     writer.WriteEndElement();
 }
 private void SaveGroupTable(GXXmlWriter writer)
 {
     if (GroupTable != null)
     {
         writer.WriteStartElement("GroupTable");
         foreach (UInt16 it in GroupTable)
         {
             writer.WriteElementObject("Value", it);
         }
         writer.WriteEndElement();
     }
 }
 private void SavePrefixTable(GXXmlWriter writer)
 {
     if (PrefixTable != null)
     {
         writer.WriteStartElement("PrefixTable");
         foreach (object it in PrefixTable)
         {
             writer.WriteElementObject("Value", it);
         }
         writer.WriteEndElement();
     }
 }
Пример #16
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (Entries != null)
     {
         writer.WriteStartElement("Entries");
         foreach (GXScheduleEntry it in Entries)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Index", it.Index);
             writer.WriteElementString("Enable", it.Enable);
             writer.WriteElementString("LogicalName", it.LogicalName);
             writer.WriteElementString("ScriptSelector", it.ScriptSelector);
             writer.WriteElementObject("SwitchTime", it.SwitchTime);
             writer.WriteElementString("ValidityWindow", it.ValidityWindow);
             writer.WriteElementString("ExecWeekdays", it.ExecWeekdays);
             writer.WriteElementString("ExecSpecDays", it.ExecSpecDays);
             writer.WriteElementObject("BeginDate", it.BeginDate);
             writer.WriteElementObject("EndDate", it.EndDate);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();//Entries
     }
 }
Пример #17
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (Scripts != null)
     {
         writer.WriteStartElement("Scripts");
         foreach (GXDLMSScript it in Scripts)
         {
             writer.WriteStartElement("Script");
             writer.WriteElementString("ID", it.Id.ToString());
             writer.WriteStartElement("Actions");
             foreach (GXDLMSScriptAction a in it.Actions)
             {
                 writer.WriteStartElement("Action");
                 writer.WriteElementString("Type", ((int)a.Type).ToString());
                 if (a.Target == null)
                 {
                     writer.WriteElementString("ObjectType", (int)ObjectType.None);
                     writer.WriteElementString("LN", "0.0.0.0.0.0");
                     writer.WriteElementString("Index", "0");
                     writer.WriteElementString("ParameterDataType", (int)DataType.None);
                     writer.WriteElementObject("Parameter", "");
                 }
                 else
                 {
                     writer.WriteElementString("ObjectType", (int)a.Target.ObjectType);
                     writer.WriteElementString("LN", a.Target.LogicalName);
                     writer.WriteElementString("Index", a.Index);
                     writer.WriteElementObject("Parameter", a.Parameter);
                 }
                 writer.WriteEndElement();
             }
             writer.WriteEndElement(); //Actions
             writer.WriteEndElement(); //Script
         }
         writer.WriteEndElement();     //Scripts
     }
 }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (Buffer != null)
     {
         writer.WriteStartElement("Buffer");
         foreach (object[] row in Buffer)
         {
             writer.WriteStartElement("Row");
             foreach (object it in row)
             {
                 writer.WriteElementObject("Cell", it);
             }
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     if (CaptureObjects != null)
     {
         writer.WriteStartElement("CaptureObjects");
         foreach (GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject> it in CaptureObjects)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("ObjectType", (int)it.Key.ObjectType);
             writer.WriteElementString("LN", it.Key.LogicalName);
             writer.WriteElementString("Attribute", it.Value.AttributeIndex);
             writer.WriteElementString("Data", it.Value.DataIndex);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     writer.WriteElementString("CapturePeriod", CapturePeriod);
     writer.WriteElementString("SortMethod", (int)SortMethod);
     if (SortObject != null)
     {
         writer.WriteStartElement("SortObject");
         writer.WriteElementString("ObjectType", (int)SortObject.ObjectType);
         writer.WriteElementString("LN", SortObject.LogicalName);
         writer.WriteEndElement();//SortObject
     }
     writer.WriteElementString("EntriesInUse", EntriesInUse);
     writer.WriteElementString("ProfileEntries", ProfileEntries);
 }
        void IGXDLMSBase.Save(GXXmlWriter writer)
        {
            if (Thresholds != null)
            {
                writer.WriteStartElement("Thresholds");
                foreach (Object it in Thresholds)
                {
                    writer.WriteElementObject("Value", it);
                }
                writer.WriteEndElement();
            }
            if (MonitoredValue != null)
            {
                writer.WriteStartElement("MonitoredValue");
                writer.WriteElementString("ObjectType", (int)MonitoredValue.ObjectType);
                writer.WriteElementString("LN", MonitoredValue.LogicalName);
                writer.WriteElementString("Index", MonitoredValue.AttributeIndex);
                writer.WriteEndElement();
            }

            if (Actions != null)
            {
                writer.WriteStartElement("Actions");
                foreach (GXDLMSActionSet it in Actions)
                {
                    writer.WriteStartElement("Item");
                    writer.WriteStartElement("Up");
                    writer.WriteElementString("LN", it.ActionUp.LogicalName);
                    writer.WriteElementString("Selector", it.ActionUp.ScriptSelector);
                    writer.WriteEndElement();
                    writer.WriteStartElement("Down");
                    writer.WriteElementString("LN", it.ActionDown.LogicalName);
                    writer.WriteElementString("Selector", it.ActionDown.ScriptSelector);
                    writer.WriteEndElement();
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
        }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (Buffer != null)
     {
         writer.WriteStartElement("Buffer");
         GXDateTime lastdt = null;
         int        add    = CapturePeriod;
         //Some meters are returning 0 if capture period is one hour.
         if (add == 0)
         {
             add = 60;
         }
         foreach (object[] row in Buffer)
         {
             writer.WriteStartElement("Row");
             int pos = 0;
             foreach (object it in row)
             {
                 GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject> c = CaptureObjects[pos];
                 ++pos;
                 if (CaptureObjects != null && c.Key is GXDLMSClock && c.Value.AttributeIndex == 2)
                 {
                     if (it != null)
                     {
                         lastdt = (c.Key as GXDLMSClock).Time;
                     }
                     else if (lastdt != null)
                     {
                         lastdt = new GXDateTime(lastdt.Value.AddMinutes(add));
                         writer.WriteElementObject("Cell", lastdt, false);
                         continue;
                     }
                     else
                     {
                         writer.WriteElementObject("Cell", DateTime.MinValue, false);
                     }
                 }
                 writer.WriteElementObject("Cell", it, false);
             }
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     if (CaptureObjects != null)
     {
         writer.WriteStartElement("CaptureObjects");
         foreach (GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject> it in CaptureObjects)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("ObjectType", (int)it.Key.ObjectType);
             writer.WriteElementString("LN", it.Key.LogicalName);
             writer.WriteElementString("Attribute", it.Value.AttributeIndex);
             writer.WriteElementString("Data", it.Value.DataIndex);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     writer.WriteElementString("CapturePeriod", CapturePeriod);
     writer.WriteElementString("SortMethod", (int)SortMethod);
     if (SortObject != null)
     {
         writer.WriteStartElement("SortObject");
         writer.WriteElementString("ObjectType", (int)SortObject.ObjectType);
         writer.WriteElementString("LN", SortObject.LogicalName);
         writer.WriteEndElement();//SortObject
     }
     writer.WriteElementString("EntriesInUse", EntriesInUse);
     writer.WriteElementString("ProfileEntries", ProfileEntries);
 }
Пример #21
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("Unit", (int)Unit);
     writer.WriteElementString("Scaler", Scaler, 1);
     writer.WriteElementObject("Value", Value, GetDataType(2), GetUIDataType(2));
 }
Пример #22
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementObject("Value", Value, GetDataType(2), GetUIDataType(2), 2);
 }