コード例 #1
0
        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);
        }
コード例 #2
0
 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);
     }
 }