/// <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);
            }
        }
예제 #2
0
        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;
            }
        }