forked from zietzm/Helmholtz_Test_Bench
Moved CSV save function.
This commit is contained in:
@@ -13,7 +13,7 @@ import src.csv_logging as log
|
||||
from src.magnetometer import MagnetometerProxy
|
||||
from src.user_interface import HelmholtzGUI
|
||||
from src.socket_control import SocketInterfaceThread
|
||||
from src.utility import ui_print
|
||||
from src.utility import ui_print, save_dict_list_to_csv
|
||||
|
||||
|
||||
def program_start():
|
||||
|
||||
+4
-13
@@ -27,7 +27,7 @@ import src.config_handling as config
|
||||
import src.csv_logging as log
|
||||
from src.calibration import AmbientFieldCalibration, CoilConstantCalibration, MagnetometerCalibration
|
||||
from src.exceptions import DeviceAccessError
|
||||
from src.utility import ui_print
|
||||
from src.utility import ui_print, save_dict_list_to_csv
|
||||
import src.helmholtz_cage_device as helmholtz_cage_device
|
||||
|
||||
# define font styles:
|
||||
@@ -845,7 +845,7 @@ class CalibrateAmbientField(Frame):
|
||||
ui_print("Error: Failed to export non-existent calibration data.")
|
||||
return
|
||||
|
||||
self.save_to_csv('coil_constant_calibration.csv', self.coil_constant_raw_data)
|
||||
save_dict_list_to_csv('coil_constant_calibration.csv', self.coil_constant_raw_data, query_path=True)
|
||||
ui_print("Saved calibration results to coil_constant_calibration.csv.")
|
||||
|
||||
def save_to_csv_ambient_field(self):
|
||||
@@ -853,19 +853,9 @@ class CalibrateAmbientField(Frame):
|
||||
ui_print("Error: Failed to export non-existent calibration data.")
|
||||
return
|
||||
|
||||
self.save_to_csv('ambient_field_calibration.csv', self.ambient_field_raw_data)
|
||||
save_dict_list_to_csv('ambient_field_calibration.csv', self.ambient_field_raw_data, query_path=True)
|
||||
ui_print("Saved calibration results to ambient_field_calibration.csv.")
|
||||
|
||||
def save_to_csv(self, filename, data):
|
||||
with open(filename, mode='w', newline='') as csv_file:
|
||||
fieldnames = data[0].keys()
|
||||
csv_writer = csv.DictWriter(csv_file, fieldnames=fieldnames, delimiter=',', quotechar='"',
|
||||
quoting=csv.QUOTE_NONNUMERIC)
|
||||
|
||||
csv_writer.writeheader()
|
||||
for row in data:
|
||||
csv_writer.writerow(row)
|
||||
|
||||
def save_and_apply_ambient_calibration(self):
|
||||
if self.ambient_field_result is not None:
|
||||
ui_print("Saving ambient field calibration data")
|
||||
@@ -886,6 +876,7 @@ class CalibrateAmbientField(Frame):
|
||||
ui_print("Reinitializing devices...")
|
||||
g.CAGE_DEVICE.reconnect_hardware_async() # setup everything with the defaults
|
||||
|
||||
|
||||
class CalibrateMagnetometer(Frame):
|
||||
def __init__(self, parent, controller):
|
||||
Frame.__init__(self, parent)
|
||||
|
||||
+20
-1
@@ -1,4 +1,5 @@
|
||||
from tkinter import END
|
||||
import csv
|
||||
from tkinter import filedialog
|
||||
|
||||
import src.globals as g
|
||||
|
||||
@@ -13,3 +14,21 @@ def ui_print(*content):
|
||||
else:
|
||||
# if window is not open, do normal print
|
||||
print(output)
|
||||
|
||||
|
||||
def save_dict_list_to_csv(filename, data, query_path=False):
|
||||
"""Creates a csv file under the specified path containing one row for each dict in the list 'data'.
|
||||
The file receives a header containing the keys of the first dict entry.
|
||||
Each dict should use the same keys."""
|
||||
if query_path:
|
||||
filename = filedialog.asksaveasfilename(initialfile=filename, title="Select csv save location...",
|
||||
filetypes=(("CSV", "*.csv"),))
|
||||
|
||||
with open(filename, mode='w', newline='') as csv_file:
|
||||
fieldnames = data[0].keys()
|
||||
csv_writer = csv.DictWriter(csv_file, fieldnames=fieldnames, delimiter=',', quotechar='"',
|
||||
quoting=csv.QUOTE_NONNUMERIC)
|
||||
|
||||
csv_writer.writeheader()
|
||||
for row in data:
|
||||
csv_writer.writerow(row)
|
||||
Reference in New Issue
Block a user