private void startServerButton_Click(object sender, RoutedEventArgs e) { if (server != null) { if (server.isRunning) { uptimeUpdateTimer.Stop(); server.stopServer(); startServerButton.Content = "Start"; ServerStatusItem.Content = "Server Stopped"; ServerStatusTextBlock.Text = "Stopped"; RunTimeTextBlock.Text = "0"; } else { //The server doesn't actually start until the callback from the voice core startServerButton.IsEnabled = false; startServerButton.Content = "...Starting"; //For some screwy reason, it reverses where the periods are on the button, which is why they are first here ServerStatusItem.Content = "Server Starting..."; ServerStatusTextBlock.Text = "Starting..."; server.launchServer(); serverStartTime = DateTime.Now; uptimeUpdateTimer.Start(); } } }
internal static void RunServerInConsole(bool isVerbose, bool autoStart, string startupFile) { Console.Clear(); Console.WriteLine("Welcome to the Kinect With VR (KiwiVR) Server!"); Console.WriteLine("Press the \"E\" key at any time to exit."); MasterSettings settings = new MasterSettings(); try { settings = HelperMethods.LoadSettings(startupFile); } catch { HelperMethods.WriteToLog("Cannot open settings file!"); } ServerCore server = new ServerCore(isVerbose, settings); for (int i = 0; i < server.serverMasterOptions.kinectOptions.Count; i++) //Launch the Kinects { server.kinects.Add(new KinectCore(server, null, server.serverMasterOptions.kinectOptions[i].kinectID)); } server.launchServer(); //This will still try to launch with default settings even if the settings load fails bool running = true; while (running) { Thread.Sleep(100); if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(false); if (key.Key == ConsoleKey.E || (key.Key == ConsoleKey.C && key.Modifiers == ConsoleModifiers.Control)) { running = false; } } } Console.WriteLine("Shutting down the server. Please wait..."); server.stopServer(); NativeInterop.FreeConsole(); }
internal static void RunServerInConsole(bool isVerbose, bool autoStart, string startupFile, AvaliableDLLs dlls) { Console.Clear(); Console.WriteLine("Welcome to the Kinect With VR (KVR) Server!"); Console.WriteLine("Press the \"E\" key at any time to exit."); //Notify the user if DLLs are missing if (!dlls.HasKinectV1) { Console.WriteLine("Warning: Kinect v1 support is unavaliable due to missing DLLs"); } if (!dlls.HasKinectV2) { Console.WriteLine("Warning: Kinect v2 support is unavaliable due to missing DLLs"); } if (!dlls.HasNetworkedKinect) { Console.WriteLine("Warning: Networked Kinect support is unavaliable due to missing DLLs"); } KinectBase.MasterSettings settings = new KinectBase.MasterSettings(); try { settings = HelperMethods.LoadSettings(startupFile); } catch { HelperMethods.WriteToLog("Cannot open settings file!"); } ServerCore server = new ServerCore(isVerbose, settings); for (int i = 0; i < server.serverMasterOptions.kinectOptionsList.Count; i++) //Launch the Kinects { if (server.serverMasterOptions.kinectOptionsList[i].version == KinectBase.KinectVersion.KinectV1) { if (dlls.HasKinectV1) { //server.kinects.Add(new KinectV1Core.KinectCoreV1(ref server.serverMasterOptions, false, server.serverMasterOptions.kinectOptionsList[i].kinectID)); server.kinects.Add(new KinectV1Wrapper.Core(ref server.serverMasterOptions, false, server.serverMasterOptions.kinectOptionsList[i].kinectID)); } else { Console.WriteLine("Cannot load Kinect v1 with ID: {0} due to missing DLLs.", server.serverMasterOptions.kinectOptionsList[i].kinectID); } } else if (server.serverMasterOptions.kinectOptionsList[i].version == KinectBase.KinectVersion.KinectV2) { if (dlls.HasKinectV2) { server.kinects.Add(new KinectV2Wrapper.Core(ref server.serverMasterOptions, false, server.serverMasterOptions.kinectOptionsList[i].kinectID)); } else { Console.WriteLine("Cannot load Kinect v2 with ID: {0} due to missing DLLs.", server.serverMasterOptions.kinectOptionsList[i].kinectID); } } else if (server.serverMasterOptions.kinectOptionsList[i].version == KinectBase.KinectVersion.NetworkKinect) { if (dlls.HasNetworkedKinect) { server.kinects.Add(new NetworkKinectWrapper.Core(ref server.serverMasterOptions, false, server.serverMasterOptions.kinectOptionsList[i].kinectID, server.serverMasterOptions.kinectOptionsList[i].uniqueKinectID)); } else { Console.WriteLine("Cannot load network Kinect with ID: {0} due to missing DLLs.", server.serverMasterOptions.kinectOptionsList[i].kinectID); } } else { Console.WriteLine("Kinect number {0} was of an unknown version and could not be opened.", i); } } server.launchServer(); //This will still try to launch with default settings even if the settings load fails bool running = true; while (running) { Thread.Sleep(100); if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(false); if (key.Key == ConsoleKey.E || (key.Key == ConsoleKey.C && key.Modifiers == ConsoleModifiers.Control)) { running = false; } } } Console.WriteLine(); //Write a blank so the next statement has its own line Console.WriteLine("Shutting down the server. Please wait..."); server.stopServer(); NativeInterop.FreeConsole(); }