public override bool CustomActivate() { /* * Communication.Connect(); * CommunicationMonitor.StatusChange += (o, a) => { Debug.Console(2, this, "Communication monitor state: {0}", CommunicationMonitor.Status); }; * CommunicationMonitor.Start(); */ OnlineFeedback = new BoolFeedback(() => { return(OnlineStatus); }); CircuitStatus = new Dictionary <uint, DigitalLoggerCircuit>(); CircuitNameFeedbacks = new Dictionary <uint, StringFeedback>(); CircuitIsCritical = new Dictionary <uint, BoolFeedback>(); CircuitState = new Dictionary <uint, BoolFeedback>(); for (uint i = 0; i < CircuitCount; i++) { uint circuit = i; CircuitStatus[circuit] = new DigitalLoggerCircuit(); CircuitNameFeedbacks[circuit] = new StringFeedback(() => { if (CircuitStatus[circuit].name != null) { return(CircuitStatus[circuit].name); } else { return(""); } }); CircuitIsCritical[circuit] = new BoolFeedback(() => { if (CircuitStatus.ContainsKey(circuit)) { return(CircuitStatus[circuit].critical); } else { return(false); } }); CircuitState[circuit] = new BoolFeedback(() => { if (CircuitStatus.ContainsKey(circuit)) { return(CircuitStatus[circuit].state); } else { return(false); } }); PollCircuit(circuit); } CrestronConsole.AddNewConsoleCommand(SendLine, "send" + Key, "", ConsoleAccessLevelEnum.AccessOperator); CrestronConsole.AddNewConsoleCommand(s => Communication.Connect(), "con" + Key, "", ConsoleAccessLevelEnum.AccessOperator); return(true); }
public void PollCircuit(uint circuit) { try { string PollCircuitResponse = SendRequest(String.Format("/restapi/relay/outlets/{0}/", circuit)); CircuitStatus[circuit] = JsonConvert.DeserializeObject <DigitalLoggerCircuit>(PollCircuitResponse); DigitalLoggerCircuit temp = CircuitStatus[circuit]; Debug.Console(2, this, "DigitalLogger Circuit {0} Name: {1} State:{2}'", circuit, CircuitStatus[circuit].name, CircuitStatus[circuit].state); CircuitNameFeedbacks[circuit].FireUpdate(); CircuitState[circuit].FireUpdate(); CircuitIsCritical[circuit].FireUpdate(); } catch (Exception e) { Debug.Console(0, this, "PollCircuit {0}", e); } }