/// <summary> /// Mit dieser Methode wird die XML Konfigurationsdatei eingelesen und als Objekt ausgegeben. /// </summary> /// <param name="Pfad">Enthält den Ablageort der Konfigurations-Datei</param> private XmlUarcConfig XmlConfigFileRead(string Pfad) { XmlUarcConfig opcXmlConfig = null; // Einlesen der XML-Datei. opcXmlConfig = OpcUaXmlConfigIO.OpcUaXmlConfigFileRead(Pfad); // Überprüfen der Daten. OpcUaXmlConfigChecker.FormatAndValidate(opcXmlConfig); return(opcXmlConfig); }
public IActionResult Check(string path) { XmlConfigViewModel configModel = new XmlConfigViewModel(); XmlUarcConfig config = OpcUaXmlConfigIO.OpcUaXmlConfigFileRead(path); try { OpcUaXmlConfigChecker.FormatAndValidate(config); } catch { throw new Exception("Konfigurationsdatei ist nicht korrekt"); } OpcUaXmlConfigIO.OpcUaXmlConfigFileWrite(path, config);; configModel.Path = path; return(View(configModel)); }
/// <summary> /// Mit dieser Methode wird die Konfiguration wieder aus dem Dictionary exportiert /// </summary> /// <returns>XmlUarcConfig</returns> public async Task <XmlUarcConfig> ExportXmlConfigAsync() { // XmlUarcConfig Objekt wird erzeugt. XmlUarcConfig opcXmlConfig = new XmlUarcConfig(); // XmlUarcConfig Objekt wird mit den Daten aus dem Dicitionary befüllt. foreach (UarcOpcUaClient client in m_OpcUaVerbindungen.Values) { // Das Server Abbild wird erstellt. XmlOpcUaServer xmlOpcUaServer = new XmlOpcUaServer { XmlUser = client.Username, XmlPassword = client.Password, XmlServerlabel = client.ServerLabel, XmlOpcUrl = client.EndpointUrl }; // Alle Subscriptions werden aus der Session gelesen und im Client Obj gesichert. await client.SaveAllSubscriptionsAsync(); // Für alle Subscription wird ein Abbild erstellt. foreach (Subscription sub in client.Subscriptions) { XmlOpcUaSubscription xmlOpcUaSubscription = new XmlOpcUaSubscription { XmlPublishingInterval = Convert.ToString(sub.PublishingInterval) }; foreach (MonitoredItem item in sub.MonitoredItems) { XmlOpcUaVariable xmlOpcUaVariable = new XmlOpcUaVariable { XmlVarLabel = item.DisplayName, XmlNodeId = Convert.ToString(item.ResolvedNodeId), XmlSamplingInterval = Convert.ToString(item.SamplingInterval) }; xmlOpcUaSubscription.XmlOpcUaVariablen.Add(xmlOpcUaVariable); } xmlOpcUaServer.XmlOpcUaSubscriptions.Add(xmlOpcUaSubscription); } // Alle gesicherten Subscriptions werden entfernt. client.Subscriptions.ToList().Clear(); // Jede Client Konfiguration wird dem KonfigurationsObjekt hinzugefügt opcXmlConfig.XmlOpcUaServers.Add(xmlOpcUaServer); } XmlSql SqlConfig = new XmlSql { XmlSqlConnectionString = m_SqlConnectionString, }; // Der Connectionstring wird ermittelt. opcXmlConfig.XmlSQLConfig = SqlConfig; // Das XmlUarcConfig Objekt wird überprüft. OpcUaXmlConfigChecker.FormatAndValidate(opcXmlConfig); // XmlUarcConfig Objekt wird zurückgegeben. return(opcXmlConfig); }