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); }
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; }