public static void Reset() { //start with some valid defaults logger = new ConsoleLogger(); //communicator = new DummyQueueCommunicator(); communicator = new SerialCommunicator(); controlLinker = new ControlLinker(); controlColorer = new ControlColorer(); connectorRegistry = new ConnectorRegistry(); }
public void Connect() { Console.WriteLine($"connecting({operationalMode})"); if (operationalMode == default(string) || !ConnectorRegistry.ContainsKey(operationalMode)) { Console.WriteLine($"request to open in undefined operational mode '{operationalMode}' ignored"); return; } try { exceptionMessage = default(string); delegateConnector = ConnectorRegistry[operationalMode].Invoke(); delegateConnector.Connect(); } catch (Exception e) { exceptionMessage = $"connection error: {e.Message}"; CloseConnection(); } }
private void BackupThread() { try { Context.Communicator.AddListener(this); /*ListConnector inputConnector = Context.ConnectorRegistry.ConnectorForCommand(DuoCommands.InputSelectCommand) as ListConnector; * ListConnector cmsProfileConnector = Context.ConnectorRegistry.ConnectorForCommand(DuoCommands.DayNightCommand) as ListConnector; * * IList<IConnector> leftOverConnectors = new List<IConnector>(Context.ConnectorRegistry.AllConnectors()); * IList<IConnector> inputDependants = inputConnector.DependantConnectors(); * IList<IConnector> cmsDependants = cmsProfileConnector.DependantConnectors(); * * leftOverConnectors.Remove(inputConnector); * leftOverConnectors.Remove(cmsProfileConnector); * foreach (IConnector connector in inputDependants) * { * leftOverConnectors.Remove(connector); * } * foreach (IConnector connector in cmsDependants) * { * leftOverConnectors.Remove(connector); * }*/ ListConnector cmsProfileConnector = Context.ConnectorRegistry.ConnectorForCommand(DuoCommands.DayNightCommand) as ListConnector; IList <IConnector> cmsDependants = new List <IConnector>(Context.ConnectorRegistry.ConnectorsInCategory(CommandCategory.CMS)); cmsDependants.Remove(cmsProfileConnector); //refresh all commands /*Context.ConnectorRegistry.QueryAllCommands(); * communicationComplete.WaitOne(); * if (cancelled) * return;*/ IList <ConnectorRegistry.SerializableCommand> commands = new List <ConnectorRegistry.SerializableCommand>(); /*foreach (ListValue inputValue in DuoListValues.InputSelectValues) * { * //don't backup settings for input 'Auto': * if (inputValue.Value == 0) * continue; * * inputConnector.SetControlValue(inputValue); * * //wait for set and all queries to complete * communicationComplete.WaitOne(); * if (cancelled) * return; * * commands.Add(ConnectorRegistry.SerializableCommandForConnector(inputConnector)); * foreach (IConnector connector in inputDependants) * { * if (connector.ICommand.IsSavable) * { * commands.Add(ConnectorRegistry.SerializableCommandForConnector(connector)); * } * } * } * * * foreach (IConnector connector in leftOverConnectors) * { * if (connector.ICommand.IsSavable) * { * commands.Add(ConnectorRegistry.SerializableCommandForConnector(connector)); * } * }*/ foreach (ListValue profileValue in DuoListValues.DayNightProfileValues) { cmsProfileConnector.SetControlValue(profileValue); communicationComplete.WaitOne(); if (cancelled) { return; } commands.Add(ConnectorRegistry.SerializableCommandForConnector(cmsProfileConnector)); foreach (IConnector connector in cmsDependants) { if (connector.ICommand.IsSavable) { commands.Add(ConnectorRegistry.SerializableCommandForConnector(connector)); } } } ConnectorRegistry.SaveToFile(commands, filename); CloseDialog(); } finally { Context.Communicator.RemoveListener(this); } }