public void ShutdownRobotConnection() { if (m_robot != null) { if (SpheroConnected) { try { if (!AccelerometerFiltered.close()) { SpheroName = "ERROR: Consult debug."; Debug.WriteLine("Unable to close stream,/n" + "please close application and manually delete file://" + AccelerometerFiltered.filePath); } if (!GyrometerFiltered.close()) { SpheroName = "ERROR: Consult debug."; Debug.WriteLine("Unable to close stream,/n" + "please close application and manually delete file://" + GyrometerFiltered.filePath); } m_robot.SensorControl.StopAll(); m_robot.SensorControl.AccelerometerUpdatedEvent -= OnAccelerometerUpdated; m_robot.SensorControl.GyrometerUpdatedEvent -= OnGyrometerUpdated; m_robot.Sleep(); m_robot.Disconnect(); Debug.WriteLine("Sphero Disconnected"); } catch (Exception) { throw; } } m_robot = null; } SpheroConnected = false; InitializeSensorReading.IsEnabled = false; SpheroName = kNoSpheroConnected; RobotProvider provider = RobotProvider.GetSharedProvider(); provider.DiscoveredRobotEvent -= OnRobotDiscovered; provider.NoRobotsEvent -= OnNoRobotsEvent; provider.ConnectedRobotEvent -= OnRobotConnected; }
private void button_Click(object sender, RoutedEventArgs e) { if (!isOn) { isOn = true; string file = "CSVData"; filter = new FilteredSensor(FILTER_COUNTS, file); // // Create an inferred delegate that invokes methods for the timer. AutoResetEvent autoEvent = new AutoResetEvent(false); TimerCallback tcb = getFilter; aTimer = new Timer(tcb, autoEvent, 1000, 250); button.Content = "Click to Stop"; //if (EnsureUnsnapped()) //{ // FileSavePicker savePicker = new FileSavePicker(); // savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary; // // Dropdown of file types the user can save the file as // savePicker.FileTypeChoices.Add("Comma-Separated-Values", new List<string>() { ".csv" }); // // Default file name if the user does not type one in or select a file to replace // savePicker.SuggestedFileName = "CSVData"; // StorageFile file = await savePicker.PickSaveFileAsync(); // if (file != null) // { // // Prevent updates to the remote version of the file until we finish making changes and call CompleteUpdatesAsync. // CachedFileManager.DeferUpdates(file); // // write to file // // Application now has read/write access to all contents in the picked folder (including other sub-folder contents) // StorageApplicationPermissions.FutureAccessList.AddOrReplace("PickedFileToken", file); // Debug.WriteLine("file: " + file.Name); // // Let Windows know that we're finished changing the file so the other app can update the remote version of the file. // // Completing updates may require Windows to ask for user input. // FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file); // if (status == FileUpdateStatus.Complete) // { // Debug.WriteLine("File " + file.Name + " was saved."); // filter = new FilteredSensor(FILTER_COUNTS, file); // // Create an inferred delegate that invokes methods for the timer. // AutoResetEvent autoEvent = new AutoResetEvent(false); // TimerCallback tcb = getFilter; // aTimer = new Timer(tcb, autoEvent, 1000, 250); // button.Content = "Click to Stop"; // } // else // { // Debug.WriteLine("File " + file.Name + " couldn't be saved."); // } // } // else // { // Debug.WriteLine("Operation cancelled."); // } //} } else { try { aTimer.Dispose(); } catch (Exception) { throw; } if (filter.close()) { Debug.WriteLine("Stream successfully closed."); button.Content = "Click to Start"; isOn = false; } else { Debug.WriteLine("Unable to close stream,/n" + "please close application and manually delete file://" + filter.filePath); } } }