Example #1
0
        private void GetSysexMessage(SysexCommand command, byte[] sndMessage)
        {
            ClearSysemMessage();

            //返信専用コマンドは受信待ちせずに終了する。
            switch (command)
            {
            case SysexCommand.I2C_REPLY:
            case SysexCommand.PIN_STATE_RESPONSE:
            case SysexCommand.CAPABILITY_RESPONSE:
            case SysexCommand.ANALOG_MAPPING_RESPONSE:
                return;

            default:
                break;
            }

            firmata.sendSysex(command, sndMessage.AsBuffer());

            Task.Delay(100);

            //タイムアウトを監視しながら受信をまつ
            DateTime startTime = DateTime.Now;

            while (rcvCmd == -1)
            {
                if ((DateTime.Now - startTime).Milliseconds > 100)
                {
                    GetSysexMessage(command, sndMessage);
                }
            }
        }
Example #2
0
 private void NeoPixelRegister(byte pin, byte count)
 {
     byte[] message = new byte[2];
     message[0] = (byte)(pin);
     message[1] = (byte)(count);
     firmata.sendSysex(NEOPIXEL_REGISTER, message.AsBuffer());
 }