public async Task CloseGate(uint Offset, CancellationToken token)
        {
            // Navigate through dialog with Dodo to close the gate, then inject empty dodo bytes
            await Task.Delay(0_500, token).ConfigureAwait(false);

            var Hold = SwitchCommand.Hold(SwitchButton.L);
            await Connection.SendAsync(Hold, token).ConfigureAwait(false);

            await Task.Delay(0_700, token).ConfigureAwait(false);

            await BotRunner.Click(SwitchButton.A, 3_000, token).ConfigureAwait(false);

            await BotRunner.Click(SwitchButton.A, 1_000, token).ConfigureAwait(false);

            await BotRunner.Click(SwitchButton.A, 2_000, token).ConfigureAwait(false);

            await BotRunner.Click(SwitchButton.A, 3_000, token).ConfigureAwait(false);

            for (int i = 0; i < 5; ++i)
            {
                await BotRunner.Click(SwitchButton.B, 1_000, token).ConfigureAwait(false);
            }

            await Task.Delay(0_500, token).ConfigureAwait(false);

            var Release = SwitchCommand.Release(SwitchButton.L);
            await Connection.SendAsync(Release, token).ConfigureAwait(false);

            await Connection.WriteBytesAsync(new byte[5], Offset, token).ConfigureAwait(false);

            DodoCode = string.Empty;
        }
Exemplo n.º 2
0
        public static async Task WriteBytesLargeAsync(this SwitchConnectionAsync connection, byte[] data, uint offset, int chunkSize, CancellationToken token)
        {
            int byteCount = data.Length;

            for (int i = 0; i < byteCount; i += chunkSize)
            {
                await connection.WriteBytesAsync(SubArray(data, i, chunkSize), offset + (uint)i, token).ConfigureAwait(false);
            }
        }