예제 #1
0
 public void DeserializeElements(string settingsFileName)
 {
     Debug.WriteLine($"Deserializing LocalDevices from {settingsFileName}");
     Logger.Debug($"Deserializing LocalDevices from {settingsFileName}");
     try
     {
         if (!string.IsNullOrEmpty(settingsFileName) && File.Exists(settingsFileName))
         {
             XmlDocument settings = new XmlDocument();
             settings.Load(settingsFileName);
             var           devicesXml       = settings.DocumentElement.SelectSingleNode("Devices");
             XmlSerializer deviceSerializer = new XmlSerializer(typeof(AdvantechDevice));
             foreach (XmlNode deviceXml in devicesXml.SelectNodes("AdvantechDevice"))
             {
                 Devices.Add((AdvantechDevice)deviceSerializer.Deserialize(new StringReader(deviceXml.OuterXml)));
             }
             var           engineBindingsXml = settings.DocumentElement.SelectSingleNode("EngineBindings");
             XmlSerializer bindingSerializer = new XmlSerializer(typeof(LocalGpiDeviceBinding), new XmlRootAttribute("EngineBinding"));
             foreach (XmlNode bindingXml in engineBindingsXml.SelectNodes("EngineBinding"))
             {
                 EngineBindings.Add((LocalGpiDeviceBinding)bindingSerializer.Deserialize(new StringReader(bindingXml.OuterXml)));
             }
         }
     }
     catch (Exception e) {
         Debug.WriteLine(e);
         Logger.Error(e, $"Exception while DeserializeElements:\n {e}");
     }
 }
예제 #2
0
 public object CreateEnginePlugin(IEngine engine, Type type)
 {
     if (type.IsAssignableFrom(typeof(LocalGpiDeviceBinding)))
     {
         return(EngineBindings.FirstOrDefault(b => b.IdEngine == (engine as IPersistent).Id));
     }
     return(null);
 }
예제 #3
0
        public object CreateEnginePlugin(IEngine engine)
        {
            var plugin = EngineBindings.FirstOrDefault(b => b.EngineName == engine.EngineName);

            if (plugin != null)
            {
                plugin.Engine = engine;
            }
            return(plugin);
        }
예제 #4
0
 public object CreateEnginePlugin(IEngine engine)
 {
     return(EngineBindings.FirstOrDefault(b => b.IdEngine == (engine as IPersistent)?.Id));
 }