Ejemplo n.º 1
0
        public void setLED(string position, int state)
        {
            int which;

            switch (position.ToLower())
            {
            case "left":
                which = 0;
                break;

            case "center":
                which = 1;
                break;

            case "right":
                which = 2;
                break;

            default:
                throw new IndexOutOfRangeException();
            }

            ledarray.SetSingleRequest request = new ledarray.SetSingleRequest(which, state != 0);
            ledarray.SetSingle        msg     = new ledarray.SetSingle(request);
            ledPort.Post(msg);
        }
Ejemplo n.º 2
0
        public virtual IEnumerator <ITask> AlternateSetSingleHandler(led.SetSingle request)
        {
            //error check
            if (request.Body.Which >= _alternatestate.LEDs[0].LEDVec.Count || request.Body.Which < 0)
            {
                LogError("Improper LED Identifier");
                request.ResponsePort.Post(new Fault());
                yield break;
            }

            //update our state
            _alternatestate.LEDs[0].LEDVec[request.Body.Which].State     = request.Body.State;
            _alternatestate.LEDs[0].LEDVec[request.Body.Which].TimeStamp = DateTime.Now;

            //send message to brick service
            brick.SetLedBody setSingle = new brick.SetLedBody();
            setSingle.LED   = request.Body.Which;
            setSingle.State = request.Body.State;
            _scribblerPort.SetLED(setSingle);

            request.ResponsePort.Post(DefaultUpdateResponseType.Instance);
            yield break;
        }