using Lego.Ev3.Core; using Lego.Ev3.Desktop; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApp2 { class Program { static int kubicaCounter = 0; public static void Main(string[] args) { MainAsync().GetAwaiter().GetResult(); } static async Task MainAsync() { Brick brick = new Brick(new BluetoothCommunication("COM8")); await brick.ConnectAsync(); while (true) { var value = brick.Ports[InputPort.Three].RawValue; Console.WriteLine(value); if ( value < 10) { Console.WriteLine("Black"); kubicaCounter++; if (kubicaCounter >6) { kubicaCounter = 0; await KubicaMode(brick); Console.WriteLine("eeeeeeee"); } } else if (value > 75 && value < 101) { Console.WriteLine("Red"); await TurnRight(brick); if (value > 95) await TurnRightStronger(brick); kubicaCounter = 0; } else if (value > 10 && value <= 15) { Console.WriteLine("Blue"); await TurnLeft(brick); kubicaCounter = 0; } else if (value > 30 && value < 80) { Console.WriteLine("Else"); await MoveSlower(brick); kubicaCounter = 0; } Thread.Sleep(15); } } async static Task KubicaMode(Brick brick) { await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C, 50); await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 50); } async static Task MoveSlower(Brick brick) { await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C, 20); await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 20); return; } async static Task TurnRight(Brick brick) { await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 10); await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C, 35); } async static Task TurnRightStronger(Brick brick) { await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 10); await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C, 35); } async static Task TurnLeft (Brick brick) { await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, 35); await brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.C,10); } } }