Example #1
0
        /// <summary>
        /// Disables the interface.
        /// </summary>
        /// <returns>The interface.</returns>
        /// <param name="domain">Domain.</param>
        public MigInterface DisableInterface(string domain)
        {
            MigInterface migInterface = GetInterface(domain);

            if (migInterface != null)
            {
                Log.Debug("Disabling Interface {0}", domain);
                configuration.GetInterface(domain).IsEnabled = false;
                migInterface.IsEnabled = false;
                migInterface.Disconnect();
            }
            else
            {
                Log.Debug("Interface not found {0}", domain);
            }
            return(migInterface);
        }
Example #2
0
 private void modules_RefreshInterface(MigInterface iface)
 {
     if (migService.Configuration.GetInterface(iface.GetDomain()).IsEnabled)
     {
         var interfaceModules = iface.GetModules();
         if (interfaceModules.Count > 0)
         {
             // delete removed modules
             var deleted = systemModules.FindAll(m => m.Domain == iface.GetDomain() && (interfaceModules.Find(m1 => m1.Address == m.Address && m1.Domain == m.Domain) == null));
             foreach (var mod in deleted)
             {
                 // only "real" modules defined by mig interfaces are considered
                 var virtualParam = Utility.ModuleParameterGet(mod, Properties.VirtualModuleParentId);
                 if (virtualParam == null || virtualParam.DecimalValue == 0)
                 {
                     Module garbaged = modulesGarbage.Find(m => m.Domain == mod.Domain && m.Address == mod.Address);
                     if (garbaged != null) modulesGarbage.Remove(garbaged);
                     modulesGarbage.Add(mod);
                     systemModules.Remove(mod);
                 }
             }
             //
             foreach (var migModule in interfaceModules)
             {
                 Module module = systemModules.Find(o => o.Domain == migModule.Domain && o.Address == migModule.Address);
                 if (module == null)
                 {
                     // try restoring from garbage
                     module = modulesGarbage.Find(o => o.Domain == migModule.Domain && o.Address == migModule.Address);
                     if (module != null)
                     {
                         systemModules.Add(module);
                     }
                     else
                     {
                         module = new Module();
                         module.Domain = migModule.Domain;
                         module.Address = migModule.Address;
                         systemModules.Add(module);
                     }
                 }
                 if (String.IsNullOrEmpty(module.Description))
                 {
                     module.Description = migModule.Description;
                 }
                 if (module.DeviceType == ModuleTypes.Generic)
                 {
                     module.DeviceType = migModule.ModuleType;
                 }
             }
         }
     }
     else
     {
         var deleted = systemModules.FindAll(m => m.Domain == iface.GetDomain());
         foreach (var mod in deleted)
         {
             var virtualParam = Utility.ModuleParameterGet(mod, Properties.VirtualModuleParentId);
             if (virtualParam == null || virtualParam.DecimalValue == 0)
             {
                 Module garbaged = modulesGarbage.Find(m => m.Domain == mod.Domain && m.Address == mod.Address);
                 if (garbaged != null) modulesGarbage.Remove(garbaged);
                 modulesGarbage.Add(mod);
                 systemModules.Remove(mod);
             }
         }
     }
 }