/// <summary> /// Handles clicks to reset button /// </summary> /// <param name="sender">Reset button</param> /// <param name="e">Parameter</param> private void buttonReset_Click(object sender, RoutedEventArgs e) { if (ConnectedMultimeter != null) { ConnectedMultimeter.Reset(); PopulateSettings(); } }
// </CONSTRUCTORS> // <METHODS> /// <summary> /// Perfoms measurement based on selection from comboboxes in listview /// Writes new measurement to log file, if the file exists /// </summary> private void Measure() { // measure Measurement m = new Measurement(); string value; DateTime now = DateTime.Now; // time stamp for (int i = 0; i < Global.Columns; i++) // perform measurement for all columns { value = string.Empty; if (modeCombos[i].SelectedIndex > 0) { if (modeCombos[i].SelectedIndex == 1) // timestamp { value = now.ToString(); } else { ConnectedMultimeter.SetMode(ConnectedMultimeter.GetModes[modeCombos[i].SelectedIndex - 2]); // first two modes are not performed by multimeter value = ConnectedMultimeter.Measure().ToString(); } } m.Values.Add(value); } measurements.Add(m); // add the new measurement to the list of measurements // log file if (logFile != null) { if (headerChanged) // write new header if it has been changed since last write { StringBuilder sb = new StringBuilder(); foreach (ComboBox cb in modeCombos) // header from combo box items { if (cb.SelectedItem is string) { sb.Append(cb.SelectedItem); } else if (cb.SelectedItem is ComboBoxItem) { sb.Append(((ComboBoxItem)cb.SelectedItem).Content.ToString()); } sb.Append(Global.Delimiter); } logFile.WriteLine(sb.ToString()); headerChanged = false; } logFile.WriteLine(m); // write new measurement - writeline accepts any object (all objects implement ToString() method), measurement overrides ToString() and creates a single delimited line from all the values } }
/// <summary> /// Handles the deallocation of resources when window is about to close /// Close file /// Disconnect multimeter /// </summary> /// <param name="sender">Main window</param> /// <param name="e">Parameter</param> private void Window_Closing(object sender, CancelEventArgs e) { logFile?.Close(); ConnectedMultimeter?.Disconnect(); }