static async Task <bool> TestGyro() { Console.Clear(); ConsoleOutput.Logo(); Console.WriteLine("Press ESC to stop"); int outputStart = Console.CursorTop + 1; do { var result = await SendCommand(":XL1#,#"); while (!Console.KeyAvailable) { Console.CursorTop = outputStart; Console.CursorLeft = 0; Console.WriteLine("********* GYRO TEST **************"); ConsoleOutput.ClearRestOfScreen(); Console.CursorTop = outputStart; await SendCommand(":XLGC#,#"); await Task.Delay(250); } } while (Console.ReadKey(true).Key != ConsoleKey.Escape); await SendCommand(":XL0#,#"); _commHandler.Disconnect(); _commHandler = null; await Task.Delay(250); return(true); }
static async Task Settings() { while (true) { int userChoice; do { Console.Clear(); ConsoleOutput.Logo(); Console.ForegroundColor = ConsoleOutput.menuColor; Console.WriteLine("---------------------------\r"); Console.WriteLine(" OAT Communication Test\r"); Console.WriteLine(" Settings\r"); Console.WriteLine("---------------------------\r"); Console.WriteLine("Choose one of the following options:\r"); Console.WriteLine("[ 1 ] Device Port ({0})", _comPort); Console.WriteLine("[ 2 ] Baud Rate ({0})", _baudRate); Console.WriteLine("[ 3 ] Read Timeout ({0})", _readTimeout); Console.WriteLine("[ 4 ] Write Timeout ({0})", _writeTimeout); Console.WriteLine("[ 0 ] Return\n"); Console.ResetColor(); } while (!int.TryParse(Console.ReadLine(), out userChoice) || userChoice < 0 || userChoice > 4); switch (userChoice) { case 1: await Connect(); break; case 2: Console.WriteLine("Set BaudRate({0}):", _baudRate); int newVal = Convert.ToInt32(Console.ReadLine()); _baudRate = newVal; break; case 3: Console.WriteLine("Set Read Timeout({0}ms):", _readTimeout); newVal = Convert.ToInt32(Console.ReadLine()); _readTimeout = newVal; break; case 4: Console.WriteLine("Set Write Timeout({0}ms):", _writeTimeout); newVal = Convert.ToInt32(Console.ReadLine()); _writeTimeout = newVal; break; case 0: return; default: Console.WriteLine("Try again!!"); break; } } }
static async Task <bool> TestGPS() { Console.Clear(); ConsoleOutput.Logo(); Console.WriteLine("********* GPS TEST ***************\r"); Console.WriteLine("* Battery may need to be charged *\r"); Console.WriteLine("* first time GPS is used ~30min *\r"); Console.WriteLine("* 0 = No satelites found *\r"); Console.WriteLine("* 1 = Satelites found *\r"); Console.WriteLine("**********************************\r"); Console.WriteLine("Press ESC to stop"); int outputStart = Console.CursorTop + 1; do { while (!Console.KeyAvailable) { Console.CursorTop = outputStart; Console.CursorLeft = 0; ConsoleOutput.ClearRestOfScreen(); var result = await SendCommand(":gT100#,n"); if (result.Data == "1") { result = await SendCommand(":Gt#,#"); var latitudeArray = result.Data.Split('*'); float latitude = float.Parse(latitudeArray[0], _oatCulture) + (float.Parse(latitudeArray[1], _oatCulture) / 60.0f); await Task.Delay(250); result = await SendCommand(":Gg#,#"); var longitudeArray = result.Data.Split('*'); float longitude = float.Parse(longitudeArray[0], _oatCulture) + (float.Parse(longitudeArray[1], _oatCulture) / 60.0f); if (longitude > 180) { longitude -= 360; } await Task.Delay(250); ConsoleOutput.Error(string.Format("Lat: {0}", latitude)); ConsoleOutput.Error(string.Format("Lon: {0}", longitude)); } //Console.WriteLine("ESC - Exit\n"); await Task.Delay(1000); } } while (Console.ReadKey(true).Key != ConsoleKey.Escape); _commHandler.Disconnect(); _commHandler = null; Console.ReadKey(); return(true); }
static async Task MainAsync() { while (true) { int userChoice; do { Console.Clear(); ConsoleOutput.Logo(); Console.ForegroundColor = ConsoleOutput.menuColor; Console.WriteLine("---------------------------\r"); Console.WriteLine(" OAT Communication Test\r"); Console.WriteLine(" Main Menu\r"); Console.WriteLine("---------------------------\r"); Console.WriteLine("Choose one of the following options:\r"); Console.WriteLine("[ 1 ] COM Settings"); Console.WriteLine("[ 2 ] Manual Command Test"); Console.WriteLine("[ 3 ] Test Gyro"); Console.WriteLine("[ 4 ] Test GPS"); Console.WriteLine("[ 5 ] Run Test/Compile Info"); Console.WriteLine("[ 0 ] Quit application\n"); Console.ResetColor(); } while (!int.TryParse(Console.ReadLine(), out userChoice) || userChoice < 0 || userChoice > 5); switch (userChoice) { case 1: await Settings(); break; case 2: var result = await Connect(); if (result) { await CustomCommand(); } break; case 3: result = await Connect(); if (result) { await TestGyro(); } break; case 4: result = await Connect(); if (result) { await TestGPS(); } break; case 5: result = await Connect(); if (result) { await StartTest(); } break; case 0: Environment.Exit(0); break; default: Console.WriteLine("Try again!!"); break; } } }
static async Task <bool> Connect() { while (true) { // List available COM devices var devices = DiscoverDevices(); if (!devices.Contains(_comPort)) { int userChoice; do { Console.Clear(); ConsoleOutput.Logo(); // ListComDetails(); ConsoleOutput.PreTestInfo(); Console.ForegroundColor = ConsoleOutput.menuColor; Console.WriteLine("---------------------------\r"); Console.WriteLine(" OAT Communication Test\r"); Console.WriteLine(" Connect\r"); Console.WriteLine("---------------------------\r"); Console.WriteLine("Select Serial Port:\r"); int cnt = 1; foreach (var dev in devices) { Console.Write("[ {0} ] {1}\n", cnt, dev); cnt++; } Console.WriteLine("[ 0 ] Return\n"); Console.ResetColor(); } while (!int.TryParse(Console.ReadLine(), out userChoice) || userChoice < 0 || userChoice > devices.Count); if (userChoice == 0) { return(false); } else if (userChoice >= 0 && userChoice <= devices.Count) { _comPort = devices[userChoice - 1]; } else { Console.WriteLine("Try again!!"); } } if (!string.IsNullOrEmpty(_comPort)) { var connectResult = await CreateCommHandler(_comPort); if (connectResult) { return(true); } else { return(false); } } } }