/// <summary> /// CLR-pattern for firing the event notification /// </summary> /// <param name="message"></param> protected virtual void OnInfraredMessageDecoded(object message) { var handler = this.InfraredMessageDecoded; if (handler != null) { var args = new InfraredMessageDecodedEventArgs(); args.Message = message; handler( this, args); } }
static void irrx_InfraredMessageDecoded( object sender, InfraredMessageDecodedEventArgs e) { var message = (LegoMessage)e.Message; //Debug.Print(message.Mode + " " + message.Func); switch (message.Func & 0x03) { case 0: _wheelLeft.SetDutyCycle(0); _red.Write(false); break; case 1: _wheelLeft.SetDutyCycle(100); break; case 2: _red.Write(true); break; } switch (message.Func & 0x0C) { case 0: _wheelRight.SetDutyCycle(0); _green.Write(false); break; case 4: _wheelRight.SetDutyCycle(100); break; case 8: _green.Write(true); break; } }