From dde571220602374e4798caa1ada181646d1e6c8e Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Tue, 27 Jun 2017 13:03:48 +0530 Subject: [PATCH 01/40] Create .gitignore Ignore .pyc files --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pyc From 5a69097a5c85982291ff4d6a9c81b72888ca7613 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Tue, 27 Jun 2017 13:09:31 +0530 Subject: [PATCH 02/40] New Option added in XSMU Menu - A I-V Time Resolved run option has been added - The files have been changed accordingly - The functions, methods, variables for IV mode has been copied and replaced with IV Time Resolved mode --- modules/xsmu/XSMU_Constants.py | 2 + modules/xsmu/XSMU_Method.py | 42 +++ modules/xsmu/app_xsmu.py | 525 ++++++++++++++++++++++++++++++++- modules/xsmu/xsmu.py | 473 ++++++++++++++++++++++++++++- 4 files changed, 1030 insertions(+), 12 deletions(-) diff --git a/modules/xsmu/XSMU_Constants.py b/modules/xsmu/XSMU_Constants.py index 6caf3cf..82faab8 100644 --- a/modules/xsmu/XSMU_Constants.py +++ b/modules/xsmu/XSMU_Constants.py @@ -17,6 +17,7 @@ RUN_MODE_VTime = C = C + 1 RUN_MODE_IV = C = C + 1 RUN_MODE_RTime = C = C + 1 +RUN_MODE_IV_TIME_RESOLVED = C = C + 1 START_RUN = C = C + 1 FINISH_RUN = C = C + 1 @@ -31,6 +32,7 @@ METER_SETTINGS_DIALOG = C = C + 1 ACQUISITION_SETTINGS_DIALOG = C = C + 1 IV_RAMP_SETTINGS_DIALOG = C = C + 1 +IV_TIME_RESOLVED_RAMP_SETTINGS_DIALOG = C = C + 1 OHMMETER_SETTINGS_DIALOG = C = C + 1 APPLY = C = C + 1 diff --git a/modules/xsmu/XSMU_Method.py b/modules/xsmu/XSMU_Method.py index 7c63b05..a10d7e8 100644 --- a/modules/xsmu/XSMU_Method.py +++ b/modules/xsmu/XSMU_Method.py @@ -71,6 +71,21 @@ def set_IV_RampSettings (self, finalCurrent, finalVoltage, maxPower, } # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + def set_IV_TimeResolvedRampSettings (self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self['IV_RampSettings'] = { + 'finalCurrent' : finalCurrent, + 'finalVoltage' : finalVoltage, + 'maxPower' : maxPower, + 'currentStep' : currentStep, + 'voltageStep' : voltageStep, + 'bipolar' : bipolar, + 'resTrackMode' : resTrackMode + } + + # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ def setOhmmeterSettings (self, maxCurrent, maxVoltage, maxPower, bipolar, resTrackMode): @@ -172,6 +187,33 @@ def get_IV_RampSettings (self, currentStep, voltageStep, bipolar, resTrackMode) # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + def get_IV_TimeResolvedRampSettings (self, + finalCurrent = None, + finalVoltage = None, + maxPower = None, + currentStep = None, + voltageStep = None, + bipolar = None, + resTrackMode = None): + + try: + settings = self['IV_RampSettings'] + finalCurrent = settings.get ('finalCurrent' , finalCurrent) + finalVoltage = settings.get ('finalVoltage' , finalVoltage) + maxPower = settings.get ('maxPower' , maxPower ) + currentStep = settings.get ('currentStep' , currentStep ) + voltageStep = settings.get ('voltageStep' , voltageStep ) + bipolar = settings.get ('bipolar' , bipolar ) + resTrackMode = settings.get ('resTrackMode' , resTrackMode) + + except KeyError : pass + + return ( + finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode) + + # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ def getOhmmeterSettings (self, maxCurrent = None, diff --git a/modules/xsmu/app_xsmu.py b/modules/xsmu/app_xsmu.py index bd49f1c..71fc75a 100644 --- a/modules/xsmu/app_xsmu.py +++ b/modules/xsmu/app_xsmu.py @@ -15,10 +15,11 @@ class GUI: run_modes = { - RUN_MODE_ITime : 'I-Time', - RUN_MODE_VTime : 'V-Time', - RUN_MODE_IV : 'I-V', - RUN_MODE_RTime : 'R-Time' + RUN_MODE_ITime : 'I-Time', + RUN_MODE_VTime : 'V-Time', + RUN_MODE_IV : 'I-V', + RUN_MODE_IV_TIME_RESOLVED : 'I-V Time Resolved', + RUN_MODE_RTime : 'R-Time' } methodFileTypes = [ @@ -111,6 +112,10 @@ def populateMenu (self, master): self.utilmenu.add_command ( label = 'I-V measurement settings', command = self.wIVRampSettingsCB) + + self.utilmenu.add_command ( + label = 'I-V Time Resolved measurement settings', + command = self.wIVTimeResolvedRampSettingsCB) self.utilmenu.add_command ( label = 'Resistance measurement settings', @@ -170,6 +175,9 @@ def populateDisplayPanel (self, master): self.wIVRampSettings = \ GUI_IVRampSettingsDisplay (master = Frame (master)) + + self.wIVTimeResolvedRampSettings = \ + GUI_IVTimeResolvedRampSettingsDisplay (master = Frame (master)) self.grid_OhmmeterSettings = (row, col) @@ -412,6 +420,9 @@ def getRunMode (self): def wIVRampSettingsCB (self, *args): self.do_callback (OPEN_DIALOG, IV_RAMP_SETTINGS_DIALOG) + + def wIVTimeResolvedRampSettingsCB (self, *args): + self.do_callback (OPEN_DIALOG, IV_TIME_RESOLVED_RAMP_SETTINGS_DIALOG) def wOhmmeterSettingsCB (self, *args): self.do_callback (OPEN_DIALOG, OHMMETER_SETTINGS_DIALOG) @@ -533,15 +544,18 @@ def setRunMode (self, run_mode): self.run_mode.set (self.run_modes.get (run_mode)) - for w in (self.wIVRampSettings, self.wOhmmeterSettings): + for w in (self.wIVRampSettings, self.wIVTimeResolvedRampSettings, self.wOhmmeterSettings): w.master.grid_forget() options = { - RUN_MODE_IV : ( + RUN_MODE_IV : ( + self.grid_IVRampSettings, self.wIVRampSettings), + + RUN_MODE_IV_TIME_RESOLVED : ( self.grid_IVRampSettings, self.wIVRampSettings), - RUN_MODE_RTime : ( + RUN_MODE_RTime : ( self.grid_OhmmeterSettings, self.wOhmmeterSettings) } @@ -745,6 +759,14 @@ def setIVRampSettings ( self.wIVRampSettings.set ( finalCurrent, finalVoltage, maxPower, currentStep, voltageStep, bipolar, resTrackMode) + + def setIVTimeResolvedRampSettings ( + self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.wIVTimeResolvedRampSettings.set ( + finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode) def setOhmmeterSettings ( self, maxCurrent, maxVoltage, @@ -2030,6 +2052,495 @@ def blank_parameters (self): # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +class GUI_IVTimeResolvedRampSettings: + + bipolarMenuItems = { + True : 'Yes', + False : 'No' + } + + resTrackMenuItems = { + R_TRACK_V_I : u'V/I', + R_TRACK_dV_dI : u'ΔV/ΔI' + } + + def __init__ ( + self, master, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.master = master + self.master.title ('I-V Time Resolved ramp settings') + self.createWidgets (master) + self.set (finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode) + + def callback (self, cb): + self._callback = cb + + def do_callback (self, context, *args): + if hasattr (self, '_callback'): + self._callback (context, *args) + + def createWidgets (self, master): + + self.mainmenu = Menu (self.master) + self.mainmenu.config (borderwidth = 1) + self.master.config (menu = self.mainmenu) + + self.filemenu = Menu (self.mainmenu) + self.filemenu.config (tearoff = 0) + self.mainmenu.add_cascade ( + label = 'File', menu = self.filemenu, underline = 0) + + self.filemenu.add_command (label = 'Done', command = self.wApplyCB) + self.filemenu.add_command (label = 'Cancel', command = self.wCancelCB) + + # +++++++++++++++++++++++++++++++ + + master.grid_columnconfigure (0, weight = 1) + + # +++++++++++++++++++++++++++++++ + + row = 0; col = 0 + w = LabelFrame (master, text = 'Limits') + w.grid (row = row, column = col, + sticky = NSEW, padx = 5, pady = 5) + + self.populateLimits (w) + + # +++++++++++++++++++++++++++++++ + + row += 1 + w = LabelFrame (master, text = 'Step size') + w.grid (row = row, column = col, + sticky = NSEW, padx = 5, pady = 5) + + self.populateStepSize (w) + + # +++++++++++++++++++++++++++++++ + + row += 1 + w = LabelFrame (master, text = 'Options') + w.grid (row = row, column = col, + sticky = NSEW, padx = 5, pady = 5) + + self.populateOptions (w) + + # +++++++++++++++++++++++++++++++ + + def populateLimits (self, master): + master.grid_columnconfigure (0, weight = 1) + master.grid_columnconfigure (1, weight = 1) + + col_widths = [20, 10] + + # +++++++++++++++++++++++++++++++ + + row = 0; col = 0 + w = Label (master, text = 'Current (μA)', + width = col_widths[col], anchor = W) + + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wFinalCurrent = \ + XFloatEntry (master, width = col_widths[col]) + + w.enable_color (False) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + row += 1; col = 0 + w = Label (master, text = 'Voltage (mV)', + width = col_widths[col], anchor = W) + + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wFinalVoltage = \ + XFloatEntry (master, width = col_widths[col]) + + w.enable_color (False) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + row += 1; col = 0 + w = Label (master, text = 'Power (mW)', + width = col_widths[col], anchor = W) + + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wMaxPower = \ + XFloatEntry (master, width = col_widths[col]) + + w.enable_color (False) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + row += 1; col = 0 + w = Label (master, text = 'Whichever happens first', + width = col_widths[col], anchor = E) + + w.grid (row = row, column = col, columnspan = 2, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + def populateStepSize (self, master): + master.grid_columnconfigure (0, weight = 1) + master.grid_columnconfigure (1, weight = 1) + + col_widths = [20, 10] + + # +++++++++++++++++++++++++++++++ + + row = 0; col = 0 + w = Label (master, text = 'Current (μA)', + width = col_widths[col], anchor = W) + + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wCurrentStep = \ + XFloatEntry (master, width = col_widths[col]) + + w.enable_color (False) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + row += 1; col = 0 + w = Label (master, text = 'Voltage (mV)', + width = col_widths[col], anchor = W) + + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wVoltageStep = \ + XFloatEntry (master, width = col_widths[col]) + + w.enable_color (False) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + def populateOptions (self, master): + master.grid_columnconfigure (0, weight = 1, minsize = 20) + master.grid_columnconfigure (1, weight = 1, minsize = 10) + + # +++++++++++++++++++++++++++++++ + + row = 0; col = 0 + w = Label (master, text = 'Bipolar', anchor = W) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + var = self.bipolar = StringVar() + options = self.bipolarMenuItems.values() + w = self.wBipolarOptions = OptionMenu (master, var, *options) + w.config (anchor = W) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + #row += 1; col = 0 + w = Label (master, text = 'Tracking mode', anchor = W) + #w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + #col += 1 + options = self.resTrackMenuItems.values() + var = self.resTrackMode = StringVar() + w = self.wResTrackOptions = OptionMenu (master, var, *options) + w.config (anchor = W) + #w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + def wApplyCB (self): + + bipolarModes = {v : k for (k, v) in self.bipolarMenuItems.items()} + resTrackModes = {v : k for (k, v) in self.resTrackMenuItems.items()} + + self.do_callback (APPLY, + uA_to_A * self.wFinalCurrent.get(), + mV_to_V * self.wFinalVoltage.get(), + mW_to_W * self.wMaxPower.get(), + uA_to_A * self.wCurrentStep.get(), + mV_to_V * self.wVoltageStep.get(), + bipolarModes.get (self.bipolar.get()), + resTrackModes.get (self.resTrackMode.get())) + + def wCancelCB (self): + self.do_callback (CANCEL) + + # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + def set (self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.wFinalCurrent.set (A_to_uA * finalCurrent) + self.wFinalVoltage.set (V_to_mV * finalVoltage) + self.wMaxPower.set (W_to_mW * maxPower) + self.wCurrentStep.set (A_to_uA * currentStep) + self.wVoltageStep.set (V_to_mV * voltageStep) + self.bipolar.set (self.bipolarMenuItems.get (bipolar)) + self.resTrackMode.set (self.resTrackMenuItems.get (resTrackMode)) + + # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +class GUI_IVTimeResolvedRampSettingsDisplay: + + bipolarMenuItems = { + True : 'Yes', + False : 'No' + } + + resTrackMenuItems = { + R_TRACK_V_I : u'V/I', + R_TRACK_dV_dI : u'ΔV/ΔI' + } + + instances = [] + + def __init__ (self, master): + self.master = master + self.createWidgets (master) + self.synchronize() + + def close (self): + self.instances.remove (self) + + def createWidgets (self, master): + + master.grid_columnconfigure (0, weight = 1) + + # +++++++++++++++++++++++++++++++ + + row = 0; col = 0 + w = LabelFrame (master, text = 'Limits') + w.grid (row = row, column = col, + sticky = NSEW, padx = 5, pady = 5) + + self.populateLimits (w) + + # +++++++++++++++++++++++++++++++ + + row += 1 + w = LabelFrame (master, text = 'Step size') + w.grid (row = row, column = col, + sticky = NSEW, padx = 5, pady = 5) + + self.populateStepSize (w) + + # +++++++++++++++++++++++++++++++ + + row += 1 + w = LabelFrame (master, text = 'Options') + w.grid (row = row, column = col, + sticky = NSEW, padx = 5, pady = 5) + + self.populateOptions (w) + + # +++++++++++++++++++++++++++++++ + + def populateLimits (self, master): + master.grid_columnconfigure (0, weight = 1, minsize = 20) + master.grid_columnconfigure (1, weight = 1, minsize = 10) + + # +++++++++++++++++++++++++++++++ + + row = 0; col = 0 + w = Label (master, text = 'Current (μA)', anchor = W) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wFinalCurrent = Label (master, anchor = E) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + row += 1; col = 0 + w = Label (master, text = 'Voltage (mV)', anchor = W) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wFinalVoltage = Label (master, anchor = E) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + row += 1; col = 0 + w = Label (master, text = 'Power (mW)', anchor = W) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wMaxPower = Label (master, anchor = E) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + row += 1; col = 0 + w = Label (master, text = 'Whichever happens first', anchor = E) + w.grid (row = row, column = col, columnspan = 2, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + def populateStepSize (self, master): + master.grid_columnconfigure (0, weight = 1) + master.grid_columnconfigure (1, weight = 1) + + col_widths = [20, 10] + + # +++++++++++++++++++++++++++++++ + + row = 0; col = 0 + w = Label (master, text = 'Current (μA)', anchor = W) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wCurrentStep = Label (master, anchor = E) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + row += 1; col = 0 + w = Label (master, text = 'Voltage (mV)', anchor = W) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wVoltageStep = Label (master, anchor = E) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + def populateOptions (self, master): + + master.grid_columnconfigure (0, weight = 1, minsize = 200) + master.grid_columnconfigure (1, weight = 1, minsize = 100) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + row = 0; col = 0 + w = Label (master, text = 'Bipolar', anchor = W) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + col += 1 + w = self.wBipolar = Label (master, anchor = E) + w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + # row += 1; col = 0 + w = Label (master, text = 'R track mode', anchor = W) + # w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + + # col += 1 + w = self.wResTrackMode = Label (master, anchor = E) + # w.grid (row = row, column = col, sticky = NSEW) + + # +++++++++++++++++++++++++++++++ + # +++++++++++++++++++++++++++++++ + + def synchronize (self): + + if len (self.instances) == 0: + self._blank_parameters() + + else: + first = self.instances[0] + self.wFinalCurrent ['text'] = first.wFinalCurrent ['text'] + self.wFinalVoltage ['text'] = first.wFinalVoltage ['text'] + self.wMaxPower ['text'] = first.wMaxPower ['text'] + self.wCurrentStep ['text'] = first.wCurrentStep ['text'] + self.wVoltageStep ['text'] = first.wVoltageStep ['text'] + self.wBipolar ['text'] = first.wBipolar ['text'] + self.wResTrackMode ['text'] = first.wResTrackMode ['text'] + + self.instances.append (self) + + # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + def _set (self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.wFinalCurrent ['text'] = str (A_to_uA * finalCurrent) + self.wFinalVoltage ['text'] = str (V_to_mV * finalVoltage) + self.wMaxPower ['text'] = str (W_to_mW * maxPower) + self.wCurrentStep ['text'] = str (A_to_uA * currentStep) + self.wVoltageStep ['text'] = str (V_to_mV * voltageStep) + self.wBipolar ['text'] = self.bipolarMenuItems.get (bipolar) + self.wResTrackMode ['text'] = self.resTrackMenuItems.get (resTrackMode) + + def set (self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + for instance in self.instances: + instance._set (finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode) + + # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + def _blank_parameters (self): + self.wFinalCurrent ['text'] = '...' + self.wFinalVoltage ['text'] = '...' + self.wMaxPower ['text'] = '...' + self.wCurrentStep ['text'] = '...' + self.wVoltageStep ['text'] = '...' + self.wBipolar ['text'] = '...' + self.wResTrackMode ['text'] = '...' + + def blank_parameters (self): + for instance in self.instances: + instance._blank_parameters() + +# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + class GUI_OhmmeterSettings: bipolarMenuItems = { diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index da94de6..5c5b237 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -6,6 +6,7 @@ from app_xsmu import GUI_MeterParameters from app_xsmu import GUI_AcquisitionSettings from app_xsmu import GUI_IVRampSettings +from app_xsmu import GUI_IVTimeResolvedRampSettings from app_xsmu import GUI_OhmmeterSettings from XSMU_DataType import DataPoint, DataSet @@ -678,6 +679,18 @@ def setIVRampSettings ( self.oXSMU.ivRampSettings.set ( finalCurrent, finalVoltage, maxPower, currentStep, voltageStep, bipolar, resTrackMode) + + def setIVTimeResolvedRampSettings ( + self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.oXSMU.oApp.setIVTimeResolvedRampSettings ( + finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode) + + self.oXSMU.ivTimeResolvedRampSettings.set ( + finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode) # +++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -1091,6 +1104,35 @@ def get (self): self.bipolar, self.resTrackMode) +class IVTimeResolvedRampSettings: + + def __init__ (self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.set (finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode) + + def set (self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.finalCurrent = finalCurrent + self.finalVoltage = finalVoltage + self.maxPower = maxPower + self.currentStep = currentStep + self.voltageStep = voltageStep + self.bipolar = bipolar + self.resTrackMode = resTrackMode + + def get (self): + return ( + self.finalCurrent, + self.finalVoltage, + self.maxPower, + self.currentStep, + self.voltageStep, + self.bipolar, + self.resTrackMode) + # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ class OhmmeterSettings: @@ -1159,6 +1201,15 @@ def __init__ (self, oApp, sample): voltageStep = 1.0, bipolar = True, resTrackMode = R_TRACK_dV_dI) + + self.ivTimeResolvedRampSettings = IVTimeResolvedRampSettings ( + finalCurrent = 10e-3, + finalVoltage = 10.0, + maxPower = 100e-3, + currentStep = 1e-3, + voltageStep = 1.0, + bipolar = True, + resTrackMode = R_TRACK_dV_dI) self.ohmmeterSettings = OhmmeterSettings ( maxCurrent = 10e-3, @@ -1203,6 +1254,16 @@ def __init__ (self, oApp, sample): self.ivRampSettings.voltageStep, self.ivRampSettings.bipolar, self.ivRampSettings.resTrackMode) + + oApplet.schedule_task ( + oApplet.setIVTimeResolvedRampSettings, + self.ivTimeResolvedRampSettings.finalCurrent, + self.ivTimeResolvedRampSettings.finalVoltage, + self.ivTimeResolvedRampSettings.maxPower, + self.ivTimeResolvedRampSettings.currentStep, + self.ivTimeResolvedRampSettings.voltageStep, + self.ivTimeResolvedRampSettings.bipolar, + self.ivTimeResolvedRampSettings.resTrackMode) oApplet.schedule_task ( oApplet.setOhmmeterSettings, @@ -1389,6 +1450,21 @@ def prepareModule (self, master, mode): self.ivRampSettings.voltageStep, self.ivRampSettings.bipolar, self.ivRampSettings.resTrackMode) + + elif mode == RUN_MODE_IV_TIME_RESOLVED: + module = _IVModule (master, self) + module.initAcquisitionSettings ( + self.acquisitionSettings.delay, + self.acquisitionSettings.filterLength) + + module.initIVTimeResolvedRampSettings ( + self.ivTimeResolvedRampSettings.finalCurrent, + self.ivTimeResolvedRampSettings.finalVoltage, + self.ivTimeResolvedRampSettings.maxPower, + self.ivTimeResolvedRampSettings.currentStep, + self.ivTimeResolvedRampSettings.voltageStep, + self.ivTimeResolvedRampSettings.bipolar, + self.ivTimeResolvedRampSettings.resTrackMode) elif mode == RUN_MODE_RTime: module = _RTimeModule (master, self) @@ -1440,6 +1516,9 @@ def prepareAcquisition (self, mode): elif mode == RUN_MODE_IV: thread = _IVAcquisitionThread (module) + + elif mode == RUN_MODE_IV_TIME_RESOLVED: + thread = _IVTimeResolvedAcquisitionThread (module) elif mode == RUN_MODE_RTime: thread = _RTimeAcquisitionThread (module) @@ -1485,6 +1564,9 @@ def openDialog (self, dialog): elif dialog == IV_RAMP_SETTINGS_DIALOG: self.openIVRampDialog() + + elif dialog == IV_TIME_RESOLVED_RAMP_SETTINGS_DIALOG: + self.openIVTimeResolvedRampDialog() elif dialog == OHMMETER_SETTINGS_DIALOG: self.openOhmmeterDialog() @@ -1651,6 +1733,28 @@ def openIVRampDialog (self): w.master.grab_set() w.master.wm_attributes("-topmost", 1) w.master.transient (parent) + + def openIVTimeResolvedRampDialog (self): + + w = self.dialog = GUI_IVTimeResolvedRampSettings ( + Toplevel (takefocus = True), + self.ivTimeResolvedRampSettings.finalCurrent, + self.ivTimeResolvedRampSettings.finalVoltage, + self.ivTimeResolvedRampSettings.maxPower, + self.ivTimeResolvedRampSettings.currentStep, + self.ivTimeResolvedRampSettings.voltageStep, + self.ivTimeResolvedRampSettings.bipolar, + self.ivTimeResolvedRampSettings.resTrackMode) + + w.callback (self.ivTimeResolvedRampDialogCB) + + # Makes it modal + parent = self.oApp.master.focus_displayof().winfo_toplevel() + parent.lift() + w.master.focus_set() + w.master.grab_set() + w.master.wm_attributes("-topmost", 1) + w.master.transient (parent) def ivRampDialogCB (self, context, *args): @@ -1672,6 +1776,27 @@ def ivRampDialogCB (self, context, *args): self.dialog = None else: raise ValueError (context) + + def ivTimeResolvedRampDialogCB (self, context, *args): + + oApplet = self.oApplet + oModule = self.oModule + + if context == APPLY: + + oApplet.schedule_task (oApplet.setIVTimeResolvedRampSettings, *args) + + if oModule and isinstance (oModule, _IVModule): + oModule.schedule_task (oModule.setIVTimeResolvedRampSettings, *args) + + self.dialog.master.destroy() + self.dialog = None + + elif context == CANCEL: + self.dialog.master.destroy() + self.dialog = None + + else: raise ValueError (context) # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -2058,11 +2183,12 @@ def measureR ( def getMethod (self): method = Method() - method.setSourceParameters (*self.sourceParameters.get()) - method.setMeterParameters (*self.meterParameters.get()) - method.setAcquisitionSettings (*self.acquisitionSettings.get()) - method.set_IV_RampSettings (*self.ivRampSettings.get()) - method.setOhmmeterSettings (*self.ohmmeterSettings.get()) + method.setSourceParameters (*self.sourceParameters.get()) + method.setMeterParameters (*self.meterParameters.get()) + method.setAcquisitionSettings (*self.acquisitionSettings.get()) + method.set_IV_RampSettings (*self.ivRampSettings.get()) + method.set_IV_TimeResolvedRampSettings (*self.ivTimeResolvedRampSettings.get()) + method.setOhmmeterSettings (*self.ohmmeterSettings.get()) return method def applyMethod (self, method): @@ -2118,6 +2244,16 @@ def applyMethod (self, method): oModule.setIVRampSettings, *settings) # ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + settings = method.get_IV_TimeResolvedRampSettings (*self.ivRampSettings.get()) + + oApplet.schedule_task (oApplet.setIVTimeResolvedRampSettings, *settings) + + if oModule and isinstance (oModule, _IVModule): + oModule.schedule_task ( + oModule.setIVTimeResolvedRampSettings, *settings) + + # ++++++++++++++++++++++++++++++++++++++++++++++++++++++ settings = method.getOhmmeterSettings (*self.ohmmeterSettings.get()) @@ -2704,6 +2840,7 @@ def excite_n_plot (self, bg_task = None, *bg_tasks): if not self.complete(): self.sleep (self.delay, self.do_tasks, bg_task, *bg_tasks) + datapoint = self.acquire (self.do_tasks, bg_task, *bg_tasks) self.update_log (datapoint) @@ -2923,6 +3060,332 @@ def thread (self): # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +class _IVTimeResolvedModule (_Module): + + def __init__ (self, master, oXSMU): + _Module.__init__ (self, master, oXSMU) + self.excitationVoltage = None + self.excitationCurrent = None + self.scan_mode = None + self.power_limited = False + self._complete = False + + def run_type (self): + return 'IV-Time-Resolved' + + def xlabel (self): + return 'Voltage (V)' + + def ylabel (self): + return 'Current (A)' + + def init (self): + _Module.init (self) + + oXSMU = self.oXSMU + oApplet = oXSMU.oApplet + oApplet.schedule_task (oApplet.setRunMode, RUN_MODE_IV_TIME_RESOLVED) + + self.excitationVoltage = None + self.excitationCurrent = None + self.scan_mode = None + self.power_limited = False + self._complete = False + + def initIVTimeResolvedRampSettings ( + self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.finalCurrent = finalCurrent + self.finalVoltage = finalVoltage + self.maxPower = maxPower + self.currentStep = currentStep + self.voltageStep = voltageStep + self.bipolar = bipolar + self.resTrackMode = resTrackMode + + def setIVTimeResolvedRampSettings ( + self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.initIVTimeResolvedRampSettings ( + finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode) + + text = 'IV Time Resolved settings updated' + oApplet = self.oXSMU.oApplet + oApplet.schedule_task (oApplet.set_status, text) + + def acquire (self, bg_task = None, *bg_tasks): + + oXSMU = self.oXSMU + t = systime() - self.t0 + self.do_tasks (bg_task, *bg_tasks) + + try: + oXSMU.acquire_lock() + (current, voltage, vsrc) = oXSMU.measureIVV2 (self.filterLength) + + finally: + oXSMU.release_lock() + + return DataPoint ( + time = t, + current = current, + voltage = voltage, + vsrc = vsrc) + + def breakPlot (self): + + oApplet = self.oXSMU.oApplet + + blank_datapoint = DataPoint ( + time = None, + current = None, + voltage = None, + vsrc = None) + + self.dataset.append (blank_datapoint) + + oApplet.schedule_task ( + oApplet.updatePlot, self, + blank_datapoint.voltage, blank_datapoint.current) + + return blank_datapoint + + def excite_n_plot (self, bg_task = None, *bg_tasks): + + oApplet = self.oXSMU.oApplet + self.do_tasks (bg_task, *bg_tasks) + + try: + + breakPlot = self.applyNextExcitation() + if breakPlot: self.breakPlot() + + if not self.complete(): + + self.sleep (self.delay, self.do_tasks, bg_task, *bg_tasks) + datapoint = self.acquire (self.do_tasks, bg_task, *bg_tasks) + + self.update_log (datapoint) + self.dataset.append (datapoint) + + oApplet.schedule_task ( + oApplet.updatePlot, self, + datapoint.voltage, datapoint.current) + + + else: + datapoint = None + + except (CommError, LinkError) as e: + oApplet.schedule_task (oApplet.set_status, str (e)) + raise + + except (IOError, OSError) as e: + text = e.strerror + ' on ' + e.filename + oApplet.schedule_task (oApplet.set_status, text) + raise + + return datapoint, breakPlot + + def applyNextExcitation (self): + + oXSMU = self.oXSMU + + ''' + Find excitation + ''' + + breakPlot = NO_BREAKPLOT + + if self.scan_mode == None: + self.scan_mode = SCAN_MODE_POSITIVE + + if self.scan_mode == SCAN_MODE_POSITIVE: + breakPlot = self.findNextPositiveExcitation (breakPlot) + + if self.scan_mode == SCAN_MODE_NEGATIVE: + breakPlot = self.findNextNegativeExcitation (breakPlot) + + if not self.complete(): + + try: + oXSMU.acquire_lock() + + current = ( + self.excitationCurrent if self.currentStep != 0.0 + else copysign (self.finalCurrent, self.excitationVoltage)) + + voltage = ( + self.excitationVoltage if self.voltageStep != 0.0 + else copysign (self.finalVoltage, self.excitationCurrent)) + + if current == 0.0 or voltage == 0.0: + oXSMU.output_off() + + else: + oXSMU.setExcitationLimits (current, voltage, self.maxPower) + + (src_mode, value, self.power_limited) = ( + oXSMU.doExcitationAutoTune ( + track_mode = self.resTrackMode)) + + finally: + oXSMU.release_lock() + + return breakPlot + + def findNextPositiveExcitation (self, breakPlot): + + oXSMU = self.oXSMU + + if (self.excitationCurrent == None + or self.excitationVoltage == None): + + self.excitationCurrent = 0.0 + self.excitationVoltage = 0.0 + self.power_limited = False + + elif (not self.power_limited + and abs (self.excitationCurrent) < self.finalCurrent + and abs (self.excitationVoltage) < self.finalVoltage): + + # Estimating next current + + if oXSMU.sourceParameters.mode == SOURCE_MODE_CS: + nextCurrent = ( + oXSMU.sourceParameters.value() + self.currentStep) + + else: + nextCurrent = ( + self.dataset[-1].current + self.currentStep) + + try: + self.excitationCurrent = self.currentStep * round ( + nextCurrent / self.currentStep) + + except ZeroDivisionError: + self.excitationCurrent = nextCurrent + + # Estimating next voltage + + if oXSMU.sourceParameters.mode == SOURCE_MODE_VS: + nextVoltage = ( + oXSMU.sourceParameters.value() + self.voltageStep) + + else: + nextVoltage = ( + self.dataset[-1].vsrc + self.voltageStep) + + try: + self.excitationVoltage = self.voltageStep * round ( + nextVoltage / self.voltageStep) + + except ZeroDivisionError: + self.excitationVoltage = nextVoltage + + else: + self.excitationCurrent = None + self.excitationVoltage = None + + if self.bipolar: + breakPlot = DO_BREAKPLOT + self.scan_mode = SCAN_MODE_NEGATIVE + + else: + self.scan_mode = None + self._complete = True + + return breakPlot + + def findNextNegativeExcitation (self, breakPlot): + + oXSMU = self.oXSMU + + if (self.excitationCurrent == None + or self.excitationVoltage == None): + + self.excitationCurrent = 0.0 + self.excitationVoltage = 0.0 + self.power_limited = False + + elif (not self.power_limited + and abs (self.excitationCurrent) < self.finalCurrent + and abs (self.excitationVoltage) < self.finalVoltage): + + # Estimating next current + + if oXSMU.sourceParameters.mode == SOURCE_MODE_CS: + nextCurrent = ( + oXSMU.sourceParameters.value() - self.currentStep) + + else: + nextCurrent = ( + self.dataset[-1].current - self.currentStep) + + try: + self.excitationCurrent = self.currentStep * round ( + nextCurrent / self.currentStep) + + except ZeroDivisionError: + self.excitationCurrent = nextCurrent + + # Estimating next voltage + + if oXSMU.sourceParameters.mode == SOURCE_MODE_VS: + nextVoltage = ( + oXSMU.sourceParameters.value() - self.voltageStep) + + else: + nextVoltage = ( + self.dataset[-1].vsrc - self.voltageStep) + + try: + self.excitationVoltage = self.voltageStep * round ( + nextVoltage / self.voltageStep) + + except ZeroDivisionError: + self.excitationVoltage = nextVoltage + + else: + self.scan_mode = None + self.excitationCurrent = None + self.excitationVoltage = None + self._complete = True + + return breakPlot + + def complete (self): + return True if self._complete else False + +# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +class _IVTimeResolvedAcquisitionThread (_AcquisitionThread): + + def __init__ (self, module): + _AcquisitionThread.__init__ (self, module) + + def thread (self): + + try: + self.module.init() + + while True: + self.do_tasks() + self.module.excite_n_plot (self.do_tasks) + if self.module.complete(): break + + except (CommError, LinkError) : pass + except (IOError, OSError) : pass + except XTerminate : pass + + self.module.atexit() + +# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + class _RTimeModule (_Module): def __init__ (self, master, oXSMU): From d37ce1c1b2500eb13e4acdaec145ba832ef59d7e Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Tue, 27 Jun 2017 13:47:30 +0530 Subject: [PATCH 03/40] Added applySameExcitation function to the IV Time Resolved mode, as we want mutiple measurements at the same excitation --- modules/xsmu/xsmu.py | 57 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index 5c5b237..0f6912e 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -3159,8 +3159,8 @@ def excite_n_plot (self, bg_task = None, *bg_tasks): self.do_tasks (bg_task, *bg_tasks) try: - - breakPlot = self.applyNextExcitation() + + breakPlot = self.applySameExcitation() if breakPlot: self.breakPlot() if not self.complete(): @@ -3190,6 +3190,57 @@ def excite_n_plot (self, bg_task = None, *bg_tasks): return datapoint, breakPlot + def applySameExcitation (self): + + oXSMU = self.oXSMU + + ''' + Find excitation + ''' + + breakPlot = NO_BREAKPLOT + + if self.scan_mode == None: + self.scan_mode = SCAN_MODE_POSITIVE + + if self.scan_mode == SCAN_MODE_POSITIVE: + breakPlot = self.keepSameExcitation (breakPlot) + + if self.scan_mode == SCAN_MODE_NEGATIVE: + breakPlot = self.keepSameExcitation (breakPlot) + + if not self.complete(): + + try: + oXSMU.acquire_lock() + + current = ( + self.excitationCurrent if self.currentStep != 0.0 + else copysign (self.finalCurrent, self.excitationVoltage)) + + voltage = ( + self.excitationVoltage if self.voltageStep != 0.0 + else copysign (self.finalVoltage, self.excitationCurrent)) + + if current == 0.0 or voltage == 0.0: + oXSMU.output_off() + + else: + oXSMU.setExcitationLimits (current, voltage, self.maxPower) + + (src_mode, value, self.power_limited) = ( + oXSMU.doExcitationAutoTune ( + track_mode = self.resTrackMode)) + + finally: + oXSMU.release_lock() + + return breakPlot + + def keepSameExcitation (self, breakPlot): + + return breakPlot + def applyNextExcitation (self): oXSMU = self.oXSMU @@ -3236,7 +3287,7 @@ def applyNextExcitation (self): oXSMU.release_lock() return breakPlot - + def findNextPositiveExcitation (self, breakPlot): oXSMU = self.oXSMU From 098a3136d114bdadf654ab457a19c3399fbea5ba Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Tue, 27 Jun 2017 15:01:18 +0530 Subject: [PATCH 04/40] Fixed indentation errors and put the IV Time resolved ramp functions in class _IVModule --- modules/xsmu/xsmu.py | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index 0f6912e..7a213d0 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -2790,6 +2790,30 @@ def setIVRampSettings ( oApplet = self.oXSMU.oApplet oApplet.schedule_task (oApplet.set_status, text) + def initIVTimeResolvedRampSettings ( + self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.finalCurrent = finalCurrent + self.finalVoltage = finalVoltage + self.maxPower = maxPower + self.currentStep = currentStep + self.voltageStep = voltageStep + self.bipolar = bipolar + self.resTrackMode = resTrackMode + + def setIVTimeResolvedRampSettings ( + self, finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode): + + self.initIVTimeResolvedRampSettings ( + finalCurrent, finalVoltage, maxPower, + currentStep, voltageStep, bipolar, resTrackMode) + + text = 'IV Time Resolved settings updated' + oApplet = self.oXSMU.oApplet + oApplet.schedule_task (oApplet.set_status, text) + def acquire (self, bg_task = None, *bg_tasks): oXSMU = self.oXSMU @@ -3190,9 +3214,9 @@ def excite_n_plot (self, bg_task = None, *bg_tasks): return datapoint, breakPlot - def applySameExcitation (self): + def applySameExcitation (self): - oXSMU = self.oXSMU + oXSMU = self.oXSMU ''' Find excitation @@ -3237,9 +3261,9 @@ def applySameExcitation (self): return breakPlot - def keepSameExcitation (self, breakPlot): + def keepSameExcitation (self, breakPlot): - return breakPlot + return breakPlot def applyNextExcitation (self): From c58920e6216d82bd2b3796dc755cfa1aee7a1a09 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Tue, 27 Jun 2017 15:12:16 +0530 Subject: [PATCH 05/40] Fixed an error : prepareModule function was calling IV even though run mode was set as IV Time Resolved --- modules/xsmu/xsmu.py | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index 7a213d0..3d1593e 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -1452,7 +1452,7 @@ def prepareModule (self, master, mode): self.ivRampSettings.resTrackMode) elif mode == RUN_MODE_IV_TIME_RESOLVED: - module = _IVModule (master, self) + module = _IVTimeResolvedModule (master, self) module.initAcquisitionSettings ( self.acquisitionSettings.delay, self.acquisitionSettings.filterLength) @@ -2790,30 +2790,6 @@ def setIVRampSettings ( oApplet = self.oXSMU.oApplet oApplet.schedule_task (oApplet.set_status, text) - def initIVTimeResolvedRampSettings ( - self, finalCurrent, finalVoltage, maxPower, - currentStep, voltageStep, bipolar, resTrackMode): - - self.finalCurrent = finalCurrent - self.finalVoltage = finalVoltage - self.maxPower = maxPower - self.currentStep = currentStep - self.voltageStep = voltageStep - self.bipolar = bipolar - self.resTrackMode = resTrackMode - - def setIVTimeResolvedRampSettings ( - self, finalCurrent, finalVoltage, maxPower, - currentStep, voltageStep, bipolar, resTrackMode): - - self.initIVTimeResolvedRampSettings ( - finalCurrent, finalVoltage, maxPower, - currentStep, voltageStep, bipolar, resTrackMode) - - text = 'IV Time Resolved settings updated' - oApplet = self.oXSMU.oApplet - oApplet.schedule_task (oApplet.set_status, text) - def acquire (self, bg_task = None, *bg_tasks): oXSMU = self.oXSMU From 6c1903ca455c4e165191831dfa20791774ac0d11 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Tue, 27 Jun 2017 16:13:54 +0530 Subject: [PATCH 06/40] Modified the keepSameExcitation function which previously didn't do anything and was hence returning a NoneType error. This error, due to this modification has been fixed. Also the finishRun function had a missing word in one of the arguments which was casing an error. This error has now been fixed. --- modules/xsmu/xsmu.py | 65 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 3 deletions(-) diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index 3d1593e..1fe77ad 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -1209,7 +1209,7 @@ def __init__ (self, oApp, sample): currentStep = 1e-3, voltageStep = 1.0, bipolar = True, - resTrackMode = R_TRACK_dV_dI) + resTrackMode = R_TRACK_V_I) self.ohmmeterSettings = OhmmeterSettings ( maxCurrent = 10e-3, @@ -1395,7 +1395,7 @@ def oAppCB (self, context, *args): else: raise ValueError (context) - # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + # ++++++++++++++++++++++++++++++++++++++++'NoneType+++++++++++++++++++ def startRun (self, mode): @@ -3239,7 +3239,66 @@ def applySameExcitation (self): def keepSameExcitation (self, breakPlot): - return breakPlot + oXSMU = self.oXSMU + + if (self.excitationCurrent == None + or self.excitationVoltage == None): + + self.excitationCurrent = 0.0 + self.excitationVoltage = 0.0 + self.power_limited = False + + elif (not self.power_limited + and abs (self.excitationCurrent) < self.finalCurrent + and abs (self.excitationVoltage) < self.finalVoltage): + + # Estimating next current + + if oXSMU.sourceParameters.mode == SOURCE_MODE_CS: + nextCurrent = ( + oXSMU.sourceParameters.value()) + + else: + nextCurrent = ( + self.dataset[-1].current) + + try: + self.excitationCurrent = self.currentStep * round ( + nextCurrent / self.currentStep) + + except ZeroDivisionError: + self.excitationCurrent = nextCurrent + + # Estimating next voltage + + if oXSMU.sourceParameters.mode == SOURCE_MODE_VS: + nextVoltage = ( + oXSMU.sourceParameters.value()) + + else: + nextVoltage = ( + self.dataset[-1].vsrc) + + try: + self.excitationVoltage = self.voltageStep * round ( + nextVoltage / self.voltageStep) + + except ZeroDivisionError: + self.excitationVoltage = nextVoltage + + else: + self.excitationCurrent = None + self.excitationVoltage = None + + if self.bipolar: + breakPlot = DO_BREAKPLOT + self.scan_mode = SCAN_MODE_NEGATIVE + + else: + self.scan_mode = None + self._complete = True + + return breakPlot def applyNextExcitation (self): From 09a4097a432f343b99bbd36df87bd0a844ad7b1a Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Wed, 28 Jun 2017 15:24:28 +0530 Subject: [PATCH 07/40] Created a script to take repeated current measurements for a single voltage source value - in order to check delays --- ppsel/curr/current_measurement.py | 45 +++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 ppsel/curr/current_measurement.py diff --git a/ppsel/curr/current_measurement.py b/ppsel/curr/current_measurement.py new file mode 100644 index 0000000..b60aec6 --- /dev/null +++ b/ppsel/curr/current_measurement.py @@ -0,0 +1,45 @@ +import sys, time + +sys.path.insert(0,"../../modules/xsmu") +sys.path.insert(0,"../../apps") +sys.path.insert(0,"../../apps/widgets") +sys.path.insert(0,"../../lib") + +import math +import xsmu +from XSMU_Constants import * + +# Set voltage source to some value +# Call function to measure current +# Loop over the measuring function +# Print out the current values + +def set_DC_voltage (xsmu_driver, value): + + mode = SOURCE_MODE_VS + autorange = AUTORANGE_ON + range = VS_RANGE_10V + + xsmu_driver.setSourceParameters (mode, autorange, range, values) + +def measure_current(): + + for index in range(100): + current = CM_getReading() + print ("The value of current is " + current + " and the time is " + time.strftime('%H:%M:%S') + '\n') + + +def main(): + + xsmu_driver = xsmu.Driver() + xsmu_devices = xsmu_driver.scan() + xsmu_driver.open(xsmu_devices[0]) + + DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V + + set_DC_voltage (xsmu_driver, DC_amplitude) + measure_current() + + xsmu_driver.close() + +main() From d43c7081c4f01a09aa0752b9143fc2c9b5903f58 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Wed, 28 Jun 2017 15:25:29 +0530 Subject: [PATCH 08/40] Added a print filterLength command to see how much it's averaging --- modules/xsmu/xsmu.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index 1fe77ad..251e4e2 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -24,6 +24,7 @@ from math import copysign, sqrt from XSMU_Constants import * +INDEX = 0 def Driver(): @@ -464,6 +465,7 @@ def CM_getReading (self, filterLength = 128): (current, timeout) = \ libxsmu.CM_getReading (self.deviceID, filterLength, timeout) + print filterLength self.check_timeout (timeout, 'Get ammeter reading') return current @@ -3190,7 +3192,7 @@ def excite_n_plot (self, bg_task = None, *bg_tasks): return datapoint, breakPlot - def applySameExcitation (self): + def applySameExcitation (self): oXSMU = self.oXSMU @@ -3237,7 +3239,7 @@ def applySameExcitation (self): return breakPlot - def keepSameExcitation (self, breakPlot): + def keepSameExcitation (self, breakPlot): oXSMU = self.oXSMU From 3ebd75f0da37e71404f99ab932f0f0d7adc78545 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Wed, 28 Jun 2017 15:52:04 +0530 Subject: [PATCH 09/40] Modified the filter length to 1, reset the source value to 0 after the measurement --- ppsel/curr/current_measurement.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ppsel/curr/current_measurement.py b/ppsel/curr/current_measurement.py index b60aec6..f78f6b2 100644 --- a/ppsel/curr/current_measurement.py +++ b/ppsel/curr/current_measurement.py @@ -20,13 +20,13 @@ def set_DC_voltage (xsmu_driver, value): autorange = AUTORANGE_ON range = VS_RANGE_10V - xsmu_driver.setSourceParameters (mode, autorange, range, values) + xsmu_driver.setSourceParameters (mode, autorange, range, value) -def measure_current(): +def measure_current(xsmu_driver): - for index in range(100): - current = CM_getReading() - print ("The value of current is " + current + " and the time is " + time.strftime('%H:%M:%S') + '\n') + for index in range(10): + current = xsmu_driver.CM_getReading(filterLength = 1) + print ("The value of current is " + str(current) + " and the time is " + str(time.strftime('%H:%M:%S')) + '\n') def main(): @@ -38,8 +38,11 @@ def main(): DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V set_DC_voltage (xsmu_driver, DC_amplitude) - measure_current() + measure_current(xsmu_driver) + raw_input ("Press enter after observing signals") + + set_DC_voltage (xsmu_driver, 0.0) xsmu_driver.close() main() From 958c4270aa0d44a742738b48abde15a948967e87 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Wed, 28 Jun 2017 18:53:32 +0530 Subject: [PATCH 10/40] Script to repeated measure current at a fixed voltage source value --- ppsel/curr/current_measurement.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ppsel/curr/current_measurement.py b/ppsel/curr/current_measurement.py index f78f6b2..b15cb13 100644 --- a/ppsel/curr/current_measurement.py +++ b/ppsel/curr/current_measurement.py @@ -7,6 +7,7 @@ import math import xsmu +import csv from XSMU_Constants import * # Set voltage source to some value @@ -24,10 +25,11 @@ def set_DC_voltage (xsmu_driver, value): def measure_current(xsmu_driver): - for index in range(10): + filename = open("histogram_data.txt", "w") + for index in range(10000): current = xsmu_driver.CM_getReading(filterLength = 1) - print ("The value of current is " + str(current) + " and the time is " + str(time.strftime('%H:%M:%S')) + '\n') - + filename.write(str(current) + "," + str(time.strftime('%H:%M:%S')) + "\n") + filename.close() def main(): From 945985f7d890c0375eeb97b5c14b4c2c132a0a3c Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Thu, 29 Jun 2017 11:38:07 +0530 Subject: [PATCH 11/40] _VS_setVoltage and _CS_setCurrent returns the actual voltage set, not the set point --- modules/xsmu/xsmu.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index 251e4e2..0b887cf 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -169,7 +169,7 @@ def _CS_setCurrent (self, value): self.check_timeout (timeout, 'Set current') self.cs_value = value - return value + return set_value def _VS_setVoltage (self, value): @@ -180,7 +180,7 @@ def _VS_setVoltage (self, value): self.check_timeout (timeout, 'Set voltage') self.vs_value = value - return value + return set_value def _CM_setRange (self, range): From 9448e019241b6a061c2a3873b8143fffb0ca93c0 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Thu, 29 Jun 2017 11:38:48 +0530 Subject: [PATCH 12/40] converted measure_current to measure_IV, commented out the algorithm for IV measurement --- ppsel/curr/current_measurement.py | 57 +++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 15 deletions(-) diff --git a/ppsel/curr/current_measurement.py b/ppsel/curr/current_measurement.py index b15cb13..b6e7bb1 100644 --- a/ppsel/curr/current_measurement.py +++ b/ppsel/curr/current_measurement.py @@ -10,37 +10,64 @@ import csv from XSMU_Constants import * -# Set voltage source to some value -# Call function to measure current -# Loop over the measuring function -# Print out the current values +# Set voltage source to 0 +# Call function to measure IV +# Print out the (voltage, current, time) values + +# Change voltage source to (value + step_size) + +# measure current, if (current_new - current_old) > current_step -> switch mode to current + # Set current source to (last measured current value + current_step) + # Call function to measure current + # Call function to measure voltage + # Loop over the measuring functions + # Print out the (voltage, current, time) values + +# measure current, if (current_new - current_old) < current_step -> keep the new voltage value + # Call function to measure current + # Call function to measure voltage + # Loop over the measuring functions + # Print out the (voltage, current, time) values + def set_DC_voltage (xsmu_driver, value): - mode = SOURCE_MODE_VS - autorange = AUTORANGE_ON - range = VS_RANGE_10V - - xsmu_driver.setSourceParameters (mode, autorange, range, value) + # mode = SOURCE_MODE_VS + # autorange = AUTORANGE_ON + # range = VS_RANGE_10V + # xsmu_driver.setSourceParameters (mode, autorange, range, value) + xsmu_driver._VS_setVoltage(value) + +def set_DC_current (xsmu_driver, value): -def measure_current(xsmu_driver): + # mode = SOURCE_MODE_CS + # autorange = AUTORANGE_ON + # range = VS_RANGE_10V + # xsmu_driver.setSourceParameters (mode, autorange, range, value) + + xsmu_driver._CS_setCurrent(value) + +def measure_IV (xsmu_driver, iteration): filename = open("histogram_data.txt", "w") - for index in range(10000): + for index in range(iteration): current = xsmu_driver.CM_getReading(filterLength = 1) - filename.write(str(current) + "," + str(time.strftime('%H:%M:%S')) + "\n") + voltage = xsmu_driver.VM_getReading(filterLength = 1) + filename.write(str(voltage) + "," + str(current) + "," + str(time.strftime('%H:%M:%S')) + "\n") filename.close() - + def main(): xsmu_driver = xsmu.Driver() xsmu_devices = xsmu_driver.scan() xsmu_driver.open(xsmu_devices[0]) - DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V + DC_Voltage_Amplitude = float(raw_input ("Enter DC Starting Voltage (V) : ")) # V + DC_Voltage_StepSize = float + iteration = int (raw_input ("Enter no of iterations : ")) # no of measurements set_DC_voltage (xsmu_driver, DC_amplitude) - measure_current(xsmu_driver) + measure_IV (xsmu_driver, iteration) raw_input ("Press enter after observing signals") From 1439f5d9bb6fbaabd77c82269f8d3b60076a42a1 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Thu, 29 Jun 2017 12:04:48 +0530 Subject: [PATCH 13/40] Made the code neater, and added a voltage ramp --- ppsel/curr/current_measurement.py | 99 +++++++++++++++++-------------- 1 file changed, 53 insertions(+), 46 deletions(-) diff --git a/ppsel/curr/current_measurement.py b/ppsel/curr/current_measurement.py index b6e7bb1..03fb9c4 100644 --- a/ppsel/curr/current_measurement.py +++ b/ppsel/curr/current_measurement.py @@ -1,3 +1,27 @@ +#------------------------------------------------------------------------------------------------ +# +# ALGORITHM FOR IV MEASUREMENTS +# +# Set voltage source to 0 +# Call function to measure IV +# Print out the (voltage, current, time) values +# Change voltage source to (value + step_size) +# +# measure current, if (current_new - current_old) > current_step -> switch mode to current +# Set current source to (last measured current value + current_step) +# Call function to measure current +# Call function to measure voltage +# Loop over the measuring functions +# Print out the (voltage, current, time) values +# +# measure current, if (current_new - current_old) < current_step -> keep the new voltage value +# Call function to measure current +# Call function to measure voltage +# Loop over the measuring functions +# Print out the (voltage, current, time) values +# +#------------------------------------------------------------------------------------------------- + import sys, time sys.path.insert(0,"../../modules/xsmu") @@ -5,73 +29,56 @@ sys.path.insert(0,"../../apps/widgets") sys.path.insert(0,"../../lib") -import math import xsmu import csv from XSMU_Constants import * -# Set voltage source to 0 -# Call function to measure IV -# Print out the (voltage, current, time) values - -# Change voltage source to (value + step_size) - -# measure current, if (current_new - current_old) > current_step -> switch mode to current - # Set current source to (last measured current value + current_step) - # Call function to measure current - # Call function to measure voltage - # Loop over the measuring functions - # Print out the (voltage, current, time) values - -# measure current, if (current_new - current_old) < current_step -> keep the new voltage value - # Call function to measure current - # Call function to measure voltage - # Loop over the measuring functions - # Print out the (voltage, current, time) values - - def set_DC_voltage (xsmu_driver, value): - # mode = SOURCE_MODE_VS - # autorange = AUTORANGE_ON - # range = VS_RANGE_10V - # xsmu_driver.setSourceParameters (mode, autorange, range, value) - xsmu_driver._VS_setVoltage(value) + # mode = SOURCE_MODE_VS + xsmu_driver._VS_setVoltage(value) # autorange = AUTORANGE_ON + # range = VS_RANGE_10V + # xsmu_driver.setSourceParameters (mode, autorange, range, value) def set_DC_current (xsmu_driver, value): - # mode = SOURCE_MODE_CS - # autorange = AUTORANGE_ON - # range = VS_RANGE_10V - # xsmu_driver.setSourceParameters (mode, autorange, range, value) - - xsmu_driver._CS_setCurrent(value) + # mode = SOURCE_MODE_CS + # autorange = AUTORANGE_ON + xsmu_driver._CS_setCurrent(value) # range = VS_RANGE_10V + # xsmu_driver.setSourceParameters (mode, autorange, range, value) + def measure_IV (xsmu_driver, iteration): filename = open("histogram_data.txt", "w") + for index in range(iteration): - current = xsmu_driver.CM_getReading(filterLength = 1) - voltage = xsmu_driver.VM_getReading(filterLength = 1) - filename.write(str(voltage) + "," + str(current) + "," + str(time.strftime('%H:%M:%S')) + "\n") - filename.close() + current = xsmu_driver.CM_getReading(filterLength = 1) + voltage = xsmu_driver.VM_getReading(filterLength = 1) + filename.write (str(voltage) + "," + str(current) + "," + str(time.strftime('%H:%M:%S')) + "\n") + + filename.write ('Next Source Value\n') + filename.close () def main(): - xsmu_driver = xsmu.Driver() - xsmu_devices = xsmu_driver.scan() - xsmu_driver.open(xsmu_devices[0]) + xsmu_driver = xsmu .Driver() + xsmu_devices = xsmu_driver.scan () + xsmu_driver.open (xsmu_devices[0]) - DC_Voltage_Amplitude = float(raw_input ("Enter DC Starting Voltage (V) : ")) # V - DC_Voltage_StepSize = float - iteration = int (raw_input ("Enter no of iterations : ")) # no of measurements + DC_Voltage_Amplitude = float(raw_input ("Enter DC Voltage Max (V) : ")) # V + DC_Voltage_StepSize = float(raw_input ("Enter DC Voltage Step Size (V) : ")) # Delta_V + iteration = int (raw_input ("Enter no of iterations : " )) # no of measurements + voltage = 0.0 - set_DC_voltage (xsmu_driver, DC_amplitude) - measure_IV (xsmu_driver, iteration) + while (voltage <= DC_Voltage_Amplitude): + set_DC_voltage (xsmu_driver, DC_amplitude) + measure_IV (xsmu_driver, iteration) + voltage = voltage + DC_Voltage_StepSize raw_input ("Press enter after observing signals") - set_DC_voltage (xsmu_driver, 0.0) - xsmu_driver.close() + set_DC_voltage (xsmu_driver, 0.0) + xsmu_driver.close () main() From 5f26e01c7bc6b2c451fad9e8b4e3eeaef639aaac Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Thu, 29 Jun 2017 13:05:37 +0530 Subject: [PATCH 14/40] Fixed some compilation errors, and a file writing problem where data was bring overwritten --- ppsel/curr/current_measurement.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ppsel/curr/current_measurement.py b/ppsel/curr/current_measurement.py index 03fb9c4..f56e4c3 100644 --- a/ppsel/curr/current_measurement.py +++ b/ppsel/curr/current_measurement.py @@ -33,6 +33,9 @@ import csv from XSMU_Constants import * +filename = open("histogram_data.txt", "w") +filename.close () + def set_DC_voltage (xsmu_driver, value): # mode = SOURCE_MODE_VS @@ -50,7 +53,7 @@ def set_DC_current (xsmu_driver, value): def measure_IV (xsmu_driver, iteration): - filename = open("histogram_data.txt", "w") + filename = open("histogram_data.txt", "a") for index in range(iteration): current = xsmu_driver.CM_getReading(filterLength = 1) @@ -72,7 +75,7 @@ def main(): voltage = 0.0 while (voltage <= DC_Voltage_Amplitude): - set_DC_voltage (xsmu_driver, DC_amplitude) + set_DC_voltage (xsmu_driver, voltage) measure_IV (xsmu_driver, iteration) voltage = voltage + DC_Voltage_StepSize From b6f4d4a1c0e15c1527b5a2dd5e1c9c09fa67a2d1 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Thu, 29 Jun 2017 13:52:23 +0530 Subject: [PATCH 15/40] Added intelligent switching between current and voltage source --- ppsel/curr/current_measurement.py | 61 +++++++++++++++++++++++++------ 1 file changed, 49 insertions(+), 12 deletions(-) diff --git a/ppsel/curr/current_measurement.py b/ppsel/curr/current_measurement.py index f56e4c3..5c55ea4 100644 --- a/ppsel/curr/current_measurement.py +++ b/ppsel/curr/current_measurement.py @@ -1,3 +1,4 @@ +#------------------------------------------------------------------------------------------------- #------------------------------------------------------------------------------------------------ # # ALGORITHM FOR IV MEASUREMENTS @@ -21,6 +22,7 @@ # Print out the (voltage, current, time) values # #------------------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------------------------- import sys, time @@ -51,17 +53,43 @@ def set_DC_current (xsmu_driver, value): # xsmu_driver.setSourceParameters (mode, autorange, range, value) -def measure_IV (xsmu_driver, iteration): +def measure_IV (xsmu_driver, iteration, mode): filename = open("histogram_data.txt", "a") for index in range(iteration): - current = xsmu_driver.CM_getReading(filterLength = 1) - voltage = xsmu_driver.VM_getReading(filterLength = 1) - filename.write (str(voltage) + "," + str(current) + "," + str(time.strftime('%H:%M:%S')) + "\n") - + current = xsmu_driver.CM_getReading (filterLength = 1) + voltage = xsmu_driver.VM_getReading (filterLength = 1) + filename.write (str(voltage) + "," + str(current) + "," + str(time.time()) + "," + mode + "\n") + filename.write ('Next Source Value\n') filename.close () + + +def setMode (xsmu_driver, mode, voltage, current, voltage_step_size, current_step_size): + + if (mode == "VOLTAGE"): + + set_DC_voltage (xsmu_driver, voltage + voltage_step_size) + current_new = xsmu_driver.CM_getReading (filterLength = 1) + + if (np.abs(current_new - current) > current_step_size): + set_DC_current (xsmu_driver, current + current_step_size) + return "CURRENT", (current + current_step_size) + else: + return "VOLTAGE", (voltage + voltage_step_size) + + else : + + set_DC_current (xsmu_driver, current + current_step_size) + voltage_new = xsmu_driver.VM_getReading (filterLength = 1) + + if (np.abs(voltage_new - voltage) > voltage_step_size): + set_DC_voltage (xsmu_driver, voltage + voltage_step_size) + return "VOLTAGE", (voltage + voltage_step_size) + else: + return "CURRENT", (current + current_step_size) + def main(): @@ -69,15 +97,24 @@ def main(): xsmu_devices = xsmu_driver.scan () xsmu_driver.open (xsmu_devices[0]) - DC_Voltage_Amplitude = float(raw_input ("Enter DC Voltage Max (V) : ")) # V - DC_Voltage_StepSize = float(raw_input ("Enter DC Voltage Step Size (V) : ")) # Delta_V - iteration = int (raw_input ("Enter no of iterations : " )) # no of measurements + DC_Voltage_Amplitude = float (raw_input ("Enter DC Voltage Max (V) : ")) # V + DC_Current_Amplitude = float (raw_input ("Enter DC Current Max (V) : ")) # I + DC_Voltage_StepSize = float (raw_input ("Enter DC Voltage Step Size (V) : ")) # Delta_V + DC_Current_StepSize = float (raw_input ("Enter DC Current Step Size (V) : ")) # Delta_V + iteration = int (raw_input ("Enter no of iterations : " )) # no of measurements voltage = 0.0 + current = 0.0 + mode = "VOLTAGE" + set_DC_voltage (xsmu_driver, voltage) - while (voltage <= DC_Voltage_Amplitude): - set_DC_voltage (xsmu_driver, voltage) - measure_IV (xsmu_driver, iteration) - voltage = voltage + DC_Voltage_StepSize + while ((voltage <= DC_Voltage_Amplitude) && (current <= DC_Current_Amplitude): + current, voltage = measure_IV (xsmu_driver, iteration, mode) + mode, value = setMode (xsmu_driver, voltage, current, DC_Voltage_StepSize, DC_Current_StepSize, mode) + if (mode == "VOLTAGE"): + voltage = value + else : + current = value + print mode raw_input ("Press enter after observing signals") From c6a3e6c9c2adac9df1c3ff0535f40afa65e561c7 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Thu, 29 Jun 2017 14:51:00 +0530 Subject: [PATCH 16/40] Fixed indentation errors --- ppsel/curr/current_measurement.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/ppsel/curr/current_measurement.py b/ppsel/curr/current_measurement.py index 5c55ea4..4b39879 100644 --- a/ppsel/curr/current_measurement.py +++ b/ppsel/curr/current_measurement.py @@ -33,6 +33,7 @@ import xsmu import csv +import numpy as np from XSMU_Constants import * filename = open("histogram_data.txt", "w") @@ -62,11 +63,14 @@ def measure_IV (xsmu_driver, iteration, mode): voltage = xsmu_driver.VM_getReading (filterLength = 1) filename.write (str(voltage) + "," + str(current) + "," + str(time.time()) + "," + mode + "\n") + filename.write ('Next Source Value\n') filename.close () + return current, voltage + -def setMode (xsmu_driver, mode, voltage, current, voltage_step_size, current_step_size): +def setMode (xsmu_driver, voltage, current, voltage_step_size, current_step_size, mode): if (mode == "VOLTAGE"): @@ -76,19 +80,18 @@ def setMode (xsmu_driver, mode, voltage, current, voltage_step_size, current_ste if (np.abs(current_new - current) > current_step_size): set_DC_current (xsmu_driver, current + current_step_size) return "CURRENT", (current + current_step_size) - else: - return "VOLTAGE", (voltage + voltage_step_size) + else: + return "VOLTAGE", (voltage + voltage_step_size) else : - - set_DC_current (xsmu_driver, current + current_step_size) - voltage_new = xsmu_driver.VM_getReading (filterLength = 1) + set_DC_current (xsmu_driver, current + current_step_size) + voltage_new = xsmu_driver.VM_getReading (filterLength = 1) - if (np.abs(voltage_new - voltage) > voltage_step_size): - set_DC_voltage (xsmu_driver, voltage + voltage_step_size) - return "VOLTAGE", (voltage + voltage_step_size) - else: - return "CURRENT", (current + current_step_size) + if (np.abs(voltage_new - voltage) > voltage_step_size): + set_DC_voltage (xsmu_driver, voltage + voltage_step_size) + return "VOLTAGE", (voltage + voltage_step_size) + else: + return "CURRENT", (current + current_step_size) def main(): @@ -107,7 +110,7 @@ def main(): mode = "VOLTAGE" set_DC_voltage (xsmu_driver, voltage) - while ((voltage <= DC_Voltage_Amplitude) && (current <= DC_Current_Amplitude): + while ((voltage <= DC_Voltage_Amplitude) and (current <= DC_Current_Amplitude)): current, voltage = measure_IV (xsmu_driver, iteration, mode) mode, value = setMode (xsmu_driver, voltage, current, DC_Voltage_StepSize, DC_Current_StepSize, mode) if (mode == "VOLTAGE"): From 1f706f5baf9d4921f213e043628cf97117b9cd60 Mon Sep 17 00:00:00 2001 From: gitansh95 Date: Thu, 29 Jun 2017 18:12:40 +0530 Subject: [PATCH 17/40] current measurement with Temperature control --- .../capacitance/current_measurement_w_tcon.py | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 ppsel/capacitance/current_measurement_w_tcon.py diff --git a/ppsel/capacitance/current_measurement_w_tcon.py b/ppsel/capacitance/current_measurement_w_tcon.py new file mode 100644 index 0000000..7f604cd --- /dev/null +++ b/ppsel/capacitance/current_measurement_w_tcon.py @@ -0,0 +1,81 @@ +import sys, time + +sys.path.insert(0,"../../modules/xsmu") +sys.path.insert(0,"../../modules/xtcon") +sys.path.insert(0,"../../apps") +sys.path.insert(0,"../../apps/widgets") +sys.path.insert(0,"../../lib") + +import math +import xsmu +import tcon +import numpy as np +from XSMU_Constants import * + +# Set voltage source to some value +# Call function to measure current +# Loop over the measuring function +# Print out the current values + +def set_DC_voltage (xsmu_driver, value): + + mode = SOURCE_MODE_VS + autorange = AUTORANGE_ON + range = VS_RANGE_10V + + xsmu_driver.setSourceParameters (mode, autorange, range, values) + +def measure_current(xsmu_driver): + + for index in range(100): + current = xsmu_driver.CM_getReading() + print ("The value of current is " + current + " and the time is " + time.strftime('%H:%M:%S') + '\n') + +def stabilize_temp (xtcon_driver, tolerance): + + sample_temperature = xtcon_driver.getSampleTemperature() + history = [] + + print ("Stabilizing .. \n") + + while True : + history.append(sample_temperature) + + if (len(history)<10): + continue + else : + fluctuation = max(history[-10:-1]) - min(history[-10:-1]) + + if (np.abs(fluctuation) < tolerance): + print ("Stable ..\n") + break + + + +def main(): + + xsmu_driver = xsmu.Driver() + xtcon_driver = tcon.Driver() + + xsmu_devices = xsmu_driver.scan() + xsmu_driver.open(xsmu_devices[0]) + + DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V + setpoint = float(raw_input ("Enter isothermal setpoint (K) :")) + + xtcon_driver.setIsothermalSetpoint (setpoint) + print ("Starting Isothermal Run.. \n") + xtcon_driver.startIsothermalControl() + + stabilize_temp (xtcon_driver, tolerance) + + print ("Setting DC Voltage.. \n") + set_DC_voltage (xsmu_driver, DC_amplitude) + measure_current() + + xtcon_driver.stopIsothermalControl() + set_DC_voltage (xsmu_driver, 0.0) + xlia_driver.close() + xsmu_driver.close() + +main() From d7a9a23a81f0b65bb88c3b6cb289464209ee9fb3 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Thu, 29 Jun 2017 18:49:28 +0530 Subject: [PATCH 18/40] noise data points for current, controlled temperature --- apps/AppGlobalSettings.pyc | Bin 10434 -> 0 bytes apps/Preferences.pyc | Bin 11570 -> 0 bytes apps/app_menubar.pyc | Bin 2086 -> 0 bytes apps/app_toolbar.pyc | Bin 2892 -> 0 bytes apps/menubar.pyc | Bin 11289 -> 0 bytes apps/toolbar.pyc | Bin 5278 -> 0 bytes apps/widgets/XWidget.pyc | Bin 13157 -> 0 bytes lib/Plot2D.pyc | Bin 12310 -> 0 bytes lib/XDict.pyc | Bin 7164 -> 0 bytes lib/XMethod.pyc | Bin 1075 -> 0 bytes lib/XThread.pyc | Bin 8060 -> 0 bytes lib/tkValidatingEntry.pyc | Bin 3331 -> 0 bytes modules/Cryostat/Cryostat.pyc | Bin 4490 -> 0 bytes modules/Cryostat/Cryostat_Constants.pyc | Bin 592 -> 0 bytes modules/Cryostat/Cryostat_Method.pyc | Bin 2252 -> 0 bytes modules/Cryostat/Cryostat_UI.pyc | Bin 6854 -> 0 bytes modules/app_modules.pyc | Bin 4081 -> 0 bytes modules/mgps/MGPS_Banner.pyc | Bin 9853 -> 0 bytes modules/mgps/MGPS_Constants.pyc | Bin 2304 -> 0 bytes modules/mgps/MGPS_DataType.pyc | Bin 2862 -> 0 bytes modules/mgps/MGPS_Method.pyc | Bin 3982 -> 0 bytes modules/mgps/app_mgps.pyc | Bin 53950 -> 0 bytes modules/mgps/mgps.pyc | Bin 70970 -> 0 bytes modules/modules.pyc | Bin 4138 -> 0 bytes modules/modules_constants.pyc | Bin 396 -> 0 bytes modules/xhires/XHIRES_Banner.pyc | Bin 13399 -> 0 bytes modules/xhires/XHIRES_Constants.pyc | Bin 2213 -> 0 bytes modules/xhires/XHIRES_DataType.pyc | Bin 2900 -> 0 bytes modules/xhires/XHIRES_Method.pyc | Bin 4732 -> 0 bytes modules/xhires/app_xhires.pyc | Bin 59611 -> 0 bytes modules/xhires/xhires.pyc | Bin 69372 -> 0 bytes modules/xlia/XLIA_Banner.pyc | Bin 11903 -> 0 bytes modules/xlia/XLIA_Constants.pyc | Bin 2493 -> 0 bytes modules/xlia/XLIA_DataType.pyc | Bin 3201 -> 0 bytes modules/xlia/XLIA_Method.pyc | Bin 4995 -> 0 bytes modules/xlia/app_xlia.pyc | Bin 64173 -> 0 bytes modules/xlia/xlia.pyc | Bin 54445 -> 0 bytes modules/xmc/XMC.pyc | Bin 45286 -> 0 bytes modules/xmc/XMC_Banner.pyc | Bin 19970 -> 0 bytes modules/xmc/XMC_Constants.pyc | Bin 1536 -> 0 bytes modules/xmc/XMC_DataType.pyc | Bin 2732 -> 0 bytes modules/xmc/appXMC.pyc | Bin 30676 -> 0 bytes modules/xsmu/XSMU_Banner.pyc | Bin 13261 -> 0 bytes modules/xsmu/XSMU_Constants.pyc | Bin 2900 -> 0 bytes modules/xsmu/XSMU_DataType.pyc | Bin 2920 -> 0 bytes modules/xsmu/XSMU_Method.pyc | Bin 5318 -> 0 bytes modules/xsmu/app_xsmu.pyc | Bin 71649 -> 0 bytes modules/xsmu/xsmu.pyc | Bin 82127 -> 0 bytes modules/xtcon/TCON_Banner.pyc | Bin 11819 -> 0 bytes modules/xtcon/TCON_Constants.pyc | Bin 2673 -> 0 bytes modules/xtcon/TCON_DataType.pyc | Bin 7374 -> 0 bytes modules/xtcon/TCON_Method.pyc | Bin 5429 -> 0 bytes modules/xtcon/app_tcon.pyc | Bin 58846 -> 0 bytes modules/xtcon/tcon.pyc | Bin 73522 -> 0 bytes ppsel/app_ppsel.pyc | Bin 2786 -> 0 bytes .../capacitance/current_measurement_w_tcon.py | 37 +++++++++++------- ppsel/hires/HIRES_Constants.pyc | Bin 1075 -> 0 bytes ppsel/hires/HIRES_DataType.pyc | Bin 3120 -> 0 bytes ppsel/hires/HIRES_Method.pyc | Bin 2626 -> 0 bytes ppsel/hires/app_hires.pyc | Bin 16084 -> 0 bytes ppsel/hires/hires.pyc | Bin 34101 -> 0 bytes ppsel/ppsel.pyc | Bin 4988 -> 0 bytes ppsel/ppsel_constants.pyc | Bin 315 -> 0 bytes ppsel/res/RES_Constants.pyc | Bin 1363 -> 0 bytes ppsel/res/RES_DataType.pyc | Bin 3162 -> 0 bytes ppsel/res/RES_Method.pyc | Bin 3711 -> 0 bytes ppsel/res/app_res.pyc | Bin 24079 -> 0 bytes ppsel/res/res.pyc | Bin 47367 -> 0 bytes ppsel/sus/SUS_Constants.pyc | Bin 1869 -> 0 bytes ppsel/sus/SUS_DataType.pyc | Bin 3491 -> 0 bytes ppsel/sus/SUS_Method.pyc | Bin 4427 -> 0 bytes ppsel/sus/app_sus.pyc | Bin 24807 -> 0 bytes ppsel/sus/sus.pyc | Bin 52701 -> 0 bytes utilities/analyzer/AppAnalyzer.pyc | Bin 13637 -> 0 bytes utilities/calib/app_calib_im.pyc | Bin 8692 -> 0 bytes utilities/calib/app_calib_is.pyc | Bin 8688 -> 0 bytes utilities/calib/app_calib_vm.pyc | Bin 8663 -> 0 bytes utilities/calib/app_calib_vs.pyc | Bin 8599 -> 0 bytes utilities/calib/calib_im.pyc | Bin 19641 -> 0 bytes utilities/calib/calib_is.pyc | Bin 19519 -> 0 bytes utilities/calib/calib_vm.pyc | Bin 20230 -> 0 bytes utilities/calib/calib_vs.pyc | Bin 19478 -> 0 bytes utilities/help/about.pyc | Bin 4109 -> 0 bytes utilities/help/app_kbsc.pyc | Bin 2344 -> 0 bytes utilities/help/kbsc.pyc | Bin 3566 -> 0 bytes utilities/settings/app_sample.pyc | Bin 4438 -> 0 bytes utilities/settings/app_settings.pyc | Bin 2044 -> 0 bytes utilities/settings/sample.pyc | Bin 6130 -> 0 bytes utilities/settings/sample_constants.pyc | Bin 274 -> 0 bytes utilities/settings/settings.pyc | Bin 5695 -> 0 bytes 90 files changed, 22 insertions(+), 15 deletions(-) delete mode 100644 apps/AppGlobalSettings.pyc delete mode 100644 apps/Preferences.pyc delete mode 100644 apps/app_menubar.pyc delete mode 100644 apps/app_toolbar.pyc delete mode 100644 apps/menubar.pyc delete mode 100644 apps/toolbar.pyc delete mode 100644 apps/widgets/XWidget.pyc delete mode 100644 lib/Plot2D.pyc delete mode 100644 lib/XDict.pyc delete mode 100644 lib/XMethod.pyc delete mode 100644 lib/XThread.pyc delete mode 100644 lib/tkValidatingEntry.pyc delete mode 100644 modules/Cryostat/Cryostat.pyc delete mode 100644 modules/Cryostat/Cryostat_Constants.pyc delete mode 100644 modules/Cryostat/Cryostat_Method.pyc delete mode 100644 modules/Cryostat/Cryostat_UI.pyc delete mode 100644 modules/app_modules.pyc delete mode 100644 modules/mgps/MGPS_Banner.pyc delete mode 100644 modules/mgps/MGPS_Constants.pyc delete mode 100644 modules/mgps/MGPS_DataType.pyc delete mode 100644 modules/mgps/MGPS_Method.pyc delete mode 100644 modules/mgps/app_mgps.pyc delete mode 100644 modules/mgps/mgps.pyc delete mode 100644 modules/modules.pyc delete mode 100644 modules/modules_constants.pyc delete mode 100644 modules/xhires/XHIRES_Banner.pyc delete mode 100644 modules/xhires/XHIRES_Constants.pyc delete mode 100644 modules/xhires/XHIRES_DataType.pyc delete mode 100644 modules/xhires/XHIRES_Method.pyc delete mode 100644 modules/xhires/app_xhires.pyc delete mode 100644 modules/xhires/xhires.pyc delete mode 100644 modules/xlia/XLIA_Banner.pyc delete mode 100644 modules/xlia/XLIA_Constants.pyc delete mode 100644 modules/xlia/XLIA_DataType.pyc delete mode 100644 modules/xlia/XLIA_Method.pyc delete mode 100644 modules/xlia/app_xlia.pyc delete mode 100644 modules/xlia/xlia.pyc delete mode 100644 modules/xmc/XMC.pyc delete mode 100644 modules/xmc/XMC_Banner.pyc delete mode 100644 modules/xmc/XMC_Constants.pyc delete mode 100644 modules/xmc/XMC_DataType.pyc delete mode 100644 modules/xmc/appXMC.pyc delete mode 100644 modules/xsmu/XSMU_Banner.pyc delete mode 100644 modules/xsmu/XSMU_Constants.pyc delete mode 100644 modules/xsmu/XSMU_DataType.pyc delete mode 100644 modules/xsmu/XSMU_Method.pyc delete mode 100644 modules/xsmu/app_xsmu.pyc delete mode 100644 modules/xsmu/xsmu.pyc delete mode 100644 modules/xtcon/TCON_Banner.pyc delete mode 100644 modules/xtcon/TCON_Constants.pyc delete mode 100644 modules/xtcon/TCON_DataType.pyc delete mode 100644 modules/xtcon/TCON_Method.pyc delete mode 100644 modules/xtcon/app_tcon.pyc delete mode 100644 modules/xtcon/tcon.pyc delete mode 100644 ppsel/app_ppsel.pyc delete mode 100644 ppsel/hires/HIRES_Constants.pyc delete mode 100644 ppsel/hires/HIRES_DataType.pyc delete mode 100644 ppsel/hires/HIRES_Method.pyc delete mode 100644 ppsel/hires/app_hires.pyc delete mode 100644 ppsel/hires/hires.pyc delete mode 100644 ppsel/ppsel.pyc delete mode 100644 ppsel/ppsel_constants.pyc delete mode 100644 ppsel/res/RES_Constants.pyc delete mode 100644 ppsel/res/RES_DataType.pyc delete mode 100644 ppsel/res/RES_Method.pyc delete mode 100644 ppsel/res/app_res.pyc delete mode 100644 ppsel/res/res.pyc delete mode 100644 ppsel/sus/SUS_Constants.pyc delete mode 100644 ppsel/sus/SUS_DataType.pyc delete mode 100644 ppsel/sus/SUS_Method.pyc delete mode 100644 ppsel/sus/app_sus.pyc delete mode 100644 ppsel/sus/sus.pyc delete mode 100644 utilities/analyzer/AppAnalyzer.pyc delete mode 100644 utilities/calib/app_calib_im.pyc delete mode 100644 utilities/calib/app_calib_is.pyc delete mode 100644 utilities/calib/app_calib_vm.pyc delete mode 100644 utilities/calib/app_calib_vs.pyc delete mode 100644 utilities/calib/calib_im.pyc delete mode 100644 utilities/calib/calib_is.pyc delete mode 100644 utilities/calib/calib_vm.pyc delete mode 100644 utilities/calib/calib_vs.pyc delete mode 100644 utilities/help/about.pyc delete mode 100644 utilities/help/app_kbsc.pyc delete mode 100644 utilities/help/kbsc.pyc delete mode 100644 utilities/settings/app_sample.pyc delete mode 100644 utilities/settings/app_settings.pyc delete mode 100644 utilities/settings/sample.pyc delete mode 100644 utilities/settings/sample_constants.pyc delete mode 100644 utilities/settings/settings.pyc diff --git a/apps/AppGlobalSettings.pyc b/apps/AppGlobalSettings.pyc deleted file mode 100644 index 5e69e429fd1fca4293f660605ced05cdddc21143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10434 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 diff --git a/apps/Preferences.pyc b/apps/Preferences.pyc deleted file mode 100644 index bcbe9e2ff64503c808bdc2f2d255890ecee36b9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11570 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 diff --git a/apps/app_toolbar.pyc b/apps/app_toolbar.pyc deleted file mode 100644 index 9015cf466dc2c3edd510fe2655b8f612df527aad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2892 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 diff --git a/lib/XMethod.pyc b/lib/XMethod.pyc deleted file mode 100644 index d5cc7ab459ee02b1e68620f4877b33b075675ad8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1075 zcmcIj$xg#C5FICNSp*0!9QcA!?G;Oul7jWXLHl+456z! zPZ(1YvGWM`dZT`BdObfI7I~q^8853W4pBhvh>;u?xslh__eXBHwJ9Hp@>aV0k-X>} zovK55R@$+v{OY>&{p(NM-e|AM%wEZwW&7??fg9v;VA86&)bIZeu);~z0IVX5)s3Jf zK#Y-4BSl3R76)u@iJd395%k3JLUCdhk#bVa-(aY1>T4nF$aBvedK_sHo6dfw;m{ zYKGl6j|p8NG;XpvfL1gUpCoARp+(xU>1}3$LVke*d)}A!YV1w;M8fq`*sQR5(p19* Q+pfN?9h_XCycjJTB>(^b diff --git a/lib/XThread.pyc b/lib/XThread.pyc deleted file mode 100644 index 47f84c3b5c08c4ec7ec2f6dcdab1237c38d7dfbd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8060 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 H%?tklP?`;8 diff --git a/lib/tkValidatingEntry.pyc b/lib/tkValidatingEntry.pyc deleted file mode 100644 index 27193e7b8980a4174a79d908551bbc35ba6d2286..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3331 zcmcgu+in|G6y0ZhcViL=7=kD%mx6`VSX?RuLRHl&AOuRoI0|hfG@95GcjEClnmJBt zkv^pl@WexZfnVT(@8Sbstvz-er%4}>94BY{T=txOTWgPV|J15~ZmvCQ%lMPS_g##1 z6QYBEBaz5f$C1Fuo{>&Yo{5}@Jlb)jlb68J-NNZ^PCCWOZs~M4FP*Zq8Wmg`{)cO0DE!$?1Z2t;<^fjaff2pw=}VFxzVt)0BMtwtWI z7DL($hAWOAFw);4a0J8qjvR{|BPL98a*`8stXm!~!-0rb5L;xVoR=u~OR`@UsGS&S zXX^?x#CcUtoNV_R-O7$n#2C9Uxuixnap1i|6PcqMnuH@L!L8tlJ@k{%-;IJ0YiTew zwgBND97H3XX?|=Od!84@q4hlbCKu;2=y`{JGz=_5-x$P!ed|J{DC~zewX93aCP@Fb zpV+rARGoNcnbkC~>WxkOc5ul9Z9j^3{dNyoL@fsKUf9*?_pzlF+KjjGe2**Y#P<->~#gfd)X;NY9aERZGuf-35}K0uze4URjdO$&-1V6clRl z7u3KVy__V!>Kp|x%&G#aKxJH^9x+zPFh;L7T*?LmaTRB*U>6l6ijYt;FK}58w?@Hj zJ&S`Q&9|1seVy9`V`td!kK8&{2^Fn?iaD0SR$HpVn4^K)E7^E9{wi`dA+(F#kL+!hOfgILO(SfF@Q@@PuEswBVg5gd-m zwyj0S6)j!>VkCcznFN4KH0PCGo;v!3k~qJQH&;%+bi4^6_lxRdK6?oe zQw$?(R_&Ax$|cQ$37mvvlan|9JLwpw&_o?)<_B!k3V##1i4jnZ*SJ_V{a z#BtlEp~ERC=14z<--j@#FJdt{Q^TlY6ww81q@YvAd#51Ge%RAhS`^AIG&FC>RQjClMa@&3l{%ZYdWV&b8at+V9w zXUVto0{NbwBj51_q$miZb4ClE=7J1Vo%`%T|XO9VVKfvtejMH+vH=#GJ`Mjxi z7uHfWH$$~WQ@(_34R+NtU?onc?#>;eAH&=o`b+{Bos2t{zc{vf=x{;e@;#z&6_;>! a`M}lrr|;NrvbX9T(jcWfRj0mMf9F5`a;EYC diff --git a/modules/Cryostat/Cryostat.pyc b/modules/Cryostat/Cryostat.pyc deleted file mode 100644 index 2bc4269f37f7e78603199c98d67f71c0cdb2e286..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4490 zcmc&&U2hvz5S`t%oot%W(DGF%2oMjZsIj25YNZM&sntfbPP%q!6A7)h_D!;hy=(1W zCq!yrX#WbokRJf&%&tF@^o0kElf9Yy;k|d}%$b=R@2{1mKeyJlyHb8U{QU_}ZqW4b z>quXuQ%X)DxzcxK;K`0BgNp1_#OZnRMr5Zdy^0Do=`Dz8ScJI(OfM(h6Ov-%R3ETUP@ zPSV^)R=sG|{O}I_#Sx)3+6@>trLNqr)tN)Q}5tV#A|Y4HQVIR(KhM*#|uKXfJA){)9oDDj3b z6Wt2Yh1^zOYsJ_`>I-P}h=q}8#LNuRBct}}n18a#gRtfV4BOZA|0fafv>Z(pH zlr-J}pBHol^j=f}r1n*~AVFJQy-O&^k3!nO03ZN*;21oRf>)9hGI0X6KuS&^ln^AI zyruZq_aUwa+nepqy-wKK-fD&qnyqHAv2N+vV_SswWN7SVjBK>p&EU++3mA`+9PB98 z(IvZ4zyBiY9xA+}IPAU%$loFsRUqZ2zgrBUGZ(rj(ZeuKVjG6v@CZC8Xyf?qs-t9~ zWoaC>>{k$IL5+iD;6psa3dTEzL&WN-IjNK?RJc21SI@-VG>Lal)V2HZu2ubmt6X{! z&HVgZO}?KV-@vXpc_+>?LdAKl>Gp5edPY|di>A5;WXb=k*?!zJw{eJ^YEm=Ri%3q; zd=H(8UI=$*&^xUWQWw$7ZI+%C(TI@E4XuDoyNf5MLyDuU=Ly+;fG2;523`o_Gdf>o zqD7>>0tK0A>pJJ^-0j&pPm*PUGZs1e4-HtSVm5=ZrKy7Ez4m4+JQW&(4>`+RQ_ju= zgWwA1=m@_?{gKhSqR5c6oZ1squ;zEGT!^y0e17Kq1V{K0PZ`daomH35`C$4f7L}p0 z@D>nV3mwMLv;I$OC<*Mle7CWa)S+Q;N(haCM>Na)ROU__JXXO7zwn_`nd4t6OLz-q z8MmnHOvIn68hnk}`Du9#yFKQ4CR&mu?C|e8XMmc-T9tw$yQoS>4j+5#lwhKN&qZP#rLBgPOZs>VOxpsP0_;4d=wly)I zooL?cGy}^B{nnXq>*@M0T3qcJtAwo66q;_7w)-YR4I5fB7@91yqs-`V9t}_+pBiRL z&rOo2S=fuac5a9&m1fQtqGF7OPk0)Z58`^>%H(I&o1`x~w!(cK0w8`ZQf6!|d>HSG zDhPR-m{rF8F>VZe0h2{QT{Y4L^sd5;e0^a?y$a|xYJN6hR0X2pK=(aBuc%xc-&w`a zB#cdb{uY){OAThY#8FlYs1eXPS0Hi%Oc`5)TB;!w5AJ=c5}caHG8%AxCK{YES#T3e z=4ULH=(wQuPfBwQ(Ju?V8tz0jr_L2+Eto_D6NZ|$!mzk%g<-(J7<|s=3pPx~0aHlf z8tN6_vr97vchF3=Q|Z6H_E7=G*_?^G=K70%)vx%Tzl65pU-4_L;y@&^5`27l4A;{H zcjUz8mUEL~TzHA&q+k4RprC`gzOsW?g@9Y?y-llJy%5b;dqwVUfz=NrY|g9O5^C8G Ms{SS4M>Svl2L#r?!vFvP diff --git a/modules/Cryostat/Cryostat_Constants.pyc b/modules/Cryostat/Cryostat_Constants.pyc deleted file mode 100644 index 16e9b86fe2e98503ddb400b71bd8a5cfa87b88a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmZWlT}#6-6ivISv*I57K=2pr#Re501QAOKt|)DnX0Y|86gRe_Yo)nU_U>Qt7y1Xh z%{E=ShI?|)xw$8|Y5W{o-=RHxA*;{C{Q*OMA&dxV#)QNM85?9|kh5lNR!r#)O>b&! zM`ODh+tXO9V#;q{(=DZ&B_(Ta$62K2sTY_d7>DyMyr?)rsvnXGw{K)Abd=5CHy)v82C0<-n zNGI#uzP2yvtQgJT#*(__qL7fnUy`^*jzSL7eqTTfFS=Wvy|12FR`Xd#+r(He%zptM CBY}qi diff --git a/modules/Cryostat/Cryostat_Method.pyc b/modules/Cryostat/Cryostat_Method.pyc deleted file mode 100644 index c0c52ba619ef863a0184b0d3cca4fd647a2b4df0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2252 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 Jb!1lC`498F$3Xx9 diff --git a/modules/mgps/MGPS_DataType.pyc b/modules/mgps/MGPS_DataType.pyc deleted file mode 100644 index 56cd27ba9730c5790ad502a864d6ecc9f63b1962..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2862 zcmc&$QE%He5I#wc6T8cnwH<~PSTSHP!hlBDh88HW70qlf$dEW0?QX4yfzT}0RU*l* zNvF-=Jhgvizi>aGz3*hj1~v@XLlQ|m9Vv?Zj`tmp!QY$BzmB$_4QX)&{C>>Ewpk?n zc$5+4L<5gJ)P2f)>L&pu88 zo3e(cuUvy=J9hEWI4#@-lr?Vsfs6f|g%JciJ1|tp-qwgGR=p6YM_l9@;ztypON)#B zp2gh5e-L)D3Xo~AQf%6s2LJVm8%f4lv4l#i2HW^9y? zCN?_QJ?d$!cK>W*wkKz9gU8o8EmEg7=C^2|+Fh@~cQ>qYWznaIbECC`N3|{o)mmZk z6;S%`WNc(TMWt!I`rg6o7vyR4X!Mg)=$m`t81OkQ6UrfeVzyIr_F zsDsz&yuP6JU;~7Mi-s5(<$`CMTp5*=5{g#5K_|hMFg9zP&`DvLmrHi(s|62z%*6sO zdH)Z+f@#+Q+aWB5nTe;jS*ftYgsMn{<0FUbF+U!{`%Sr9RSrO3F~Nc0@nm9(B$P%t zLG~ZGW`h0a3SIIMPyQ*F%B+7Slq)S0n^x^{h`Y=b*XJ6Ez4T9W=f6z2#UEEq;E+4< zc}K+6Ptwg?L6x!0OW0C_h ztw)@BoXNHRf~%`mz&voZCy$$pkVDkH+@fFkOSL!vCW}+1$Stn6cltZMPG7eU_jP~opd*>j zfkdlc4t93Co&H`+|G3xLZ%bly;L>WJ))S>V-M%Eue|-GqaKFE^+ffKIi4|TQ$-A=g zO3RS5F*XE#&+;|kbjjd ztWEF8X9w5O}zyJUM diff --git a/modules/mgps/MGPS_Method.pyc b/modules/mgps/MGPS_Method.pyc deleted file mode 100644 index 726e7035b2f0ce7708e179b38ee60906c0f9bc3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3982 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 Re{Dbh@4~Tj)x@f^{~yxau|5C* diff --git a/modules/mgps/mgps.pyc b/modules/mgps/mgps.pyc deleted file mode 100644 index 6bed3d75f95dadfe102e4946adb3a15a63bb372a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70970 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 diff --git a/modules/xhires/XHIRES_Banner.pyc b/modules/xhires/XHIRES_Banner.pyc deleted file mode 100644 index 04c87b2bbb6fa7a5b5612ae4a23d6bc29f076899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13399 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 Ic>nc(00f-@9smFU diff --git a/modules/xhires/XHIRES_Constants.pyc b/modules/xhires/XHIRES_Constants.pyc deleted file mode 100644 index 28ead71d66dce7cd7b9b4c3516627642b09e99e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2213 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 HoLl$@#m?jU diff --git a/modules/xhires/app_xhires.pyc b/modules/xhires/app_xhires.pyc deleted file mode 100644 index a4c1b883846eb340fa8f14fc703067636ed44fb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59611 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 diff --git a/modules/xhires/xhires.pyc b/modules/xhires/xhires.pyc deleted file mode 100644 index 5bcf7885b1e87f6440d7839369a89a3f10057134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69372 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 bZzuYD(}w?dL;r>cHe9yh>l-$0c*p+_K5Wr| diff --git a/modules/xlia/XLIA_Banner.pyc b/modules/xlia/XLIA_Banner.pyc deleted file mode 100644 index 0ce34801fc18ac4872cb5ea2161de61afed7c081..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11903 zcmYLvX|C(MvfcL*AP59x9v2YawIs{73?xBF^?l#|31nHKdfAd~HA8v--ykxsOdve> zCdfXZH;=YtQe;)FRjc?P|M!0({@wX|TKx5YfBpsk{vWt41pavb^;d>J|K%_LZ~x)X zwg2_6fBi*xR4>~?Uw?tl0=qf^-mH|yMapj08Xwl`KU&(Te%NYF(W*__X*=rFooY3{ z>;Kt`LHE%>=*=`}emCm-GHT5<8T>kFJN44}^=Qrw zuMvnp^Duu#>;7pgVI1aW1>t52>23zaVYY}ekB+v42{**p!NORz>=j#BMjsTNtK-l>{$NK|aeqqGsw zG>C|OOSSry>vUJ@iBW6zsx=y~H<@fSFWqb|w$*CB(`K>TzH+a!0_{{?7V!oge;he(3ARh}Zd+Z;Mgx z%cD7#d7zeCNq--2`eW=2@p&-k&wOP+x90k}eJ{TUdHI_B?fbaiR#U%!Ii6e>oBWyn z=~pD+#|3aJ9&j}ie&bqUU1o9Re$r+>RAMU*Wh;K#QQWkRJM?2Y>ANKu`%^LZk6=+x z!#d2fv)=>zcp46Ep1kAZxb!pd=uhQQmJ(1_>*M=Ef_jbt^$B9?K1b9&NoeaA)7F?U z_j5{r+MK@MGR78i=J|UvpHsm;j}rf_I@?0YewB(Plj{5xnlt&Ri8HBmtnKt{84N7h z_SbJRUhHGIl;`pCtzMV!ZMu-{`$CTM)t;AYbvm7Pg%m?;&ti$f8;hPyPvtyR2tTA< zz$+IBL>)LBFuDI9?0$uoVYCfcqR-xvHrv;hTC}a_eh&fCBfQ z_DF;}9wB_w?@v6(1|Ffn{d@UKO*}yOWoBzQatjYo;QsS_E^ItN_&pmRbpVcm@Bf}> z8o!al>V(qm>|!fI1I;;EaKChvj<<}l+b_#EF$Te!&&!rQ7(ow$mA?vYK7YsHEt!F# zGu}OXByudzW5?WxPd{eTC{?t?cpvgyt*T|*ea0hA*X|pON|r14t(=k4@c`8I{{1C0 zxI(K#@rdkR_itO473DFpX@P2l8h+a>%42v@&!=fJ z!?11Y=l+v*-MSgsjb)~ly)<>v215C^ZO7FOS!G`$0f({cV$Qmjw(kp%S0?rP=ksVg z+Kcxn4wsOAU9zkY`l9RTp3%!Z4P^N;Ub61>9*2N=eCuzX7iN|b;RXAnKaOM4d_5VP z`S5-o=Pd^>z*Xy;u<9@G*QO)(Y zUX93~-|yt=$FD1n8fpHz&gAu>ysz)ATfdV#-GZTfmmiKB-q-8h;p%rab0E&I{(ASM z`DUmWLao2`vTXAAsvjpxoNtd1hvWC~`P7WO+jM_6@HOP1`inlLKYTCO3;)*V+q~SG zXZUsW~IFaygB)oI4N_$?OGAOYI8)h))K z0o@zS#hlt_o7Y_xhcGmQhM0ec&@4!JKQvj6`$ByQ8ZRvk#i!bp{``_O1;vuWlMuA) z)}z8uMU^?!hqzj!DZmfLTUa=}o}65QQxiWBepVA?qRdhh-BBke3KT)S>0*Px2vilA zDZ6+@Spq8L`}^r++f34%?owBzD*TR{W6H@|--&vm8K4=I!#ySraEtU}JDE56)KgZ6 zT8qgDnieb+DUgzKxv}g-9cEqI8DG7P4lT&wK^@;79L2eW%DEp3hM;v!$Ju^rDik>S zJU0MMjQy5xOx?syBd|T&S%ihRs$<xc4{^9ByR02&moO_=(tETC+os=F zaP=2ALlt$(R_LC7DKB&0f1uPHMU^Y#hgL0?^9WT(_r!B(q;;9u7- zZLcYEmlZ4z7DviL-$fyIS?D$Fs;0j}RRf9zf^=Ne_Iy{{c%n$P8kZ(#UVAI>zQZDf z9o-WheYb(3YBg_CdGm`b7pwy51W3@d{;MS@j@1ku7TKyQp0e(yk3 ztQ88`MGbgpO>8ilgjKSy=NCbv%96=4z=X1^D0a^2BCC^2d#Xc&71a|9sJ>rZHoNdp z5U<`I(hN6VqD^-PjPqJy^&)}6hK>_)LhGRd;NQ|UET|y^{mj>p zk`WNjDFUuuBGYz*R#05OaTZ2G<4qrrKmyL^Wx%%z3*26V?*O%W@H{O&w`h^RT z;HD^LzO1W)tHLWbwL%~tBo2xdn0XPSXsh7c2+-fAGJQT12@c*%5LwsdA%)zR+B=q5 zcrDvX5C7VWpKs?K;|wO?3zMt$_dxgRr(};wc^%y{3{9Rmi?Rs>q2W=18bMv3V2ZAC zDC|F^1ZJTk(Jfs5&V}4qZ=wj*-3OrdSxj3Ead~;Cw;j&r(S*NsBfxYb*Y(@Xx)iI0 z$xD-0t2UReSu~ivre?*vTlbf4KfL<8TXz?+0$-?YIJ>Hfwob^a)bD%a6UGNYyTgaE zb>8@$V3Wvi9vlwh!t{gG%Mb+2sIc^f?tTE>r<<D?`=hm z7rGOb(*VT8_G0q=<<8>$T^{wvpm_QyttFraODrQ?sD0&{#-v(I*?OQx}i0#_E|#Ayqj4R z7v^+YB+!pMFFPZ0Va=RnJCCihtKWjDJ1QbrPH}CXV(Xp{U%P6{&j6MD3Tt$^uIlto zwqftq^YN)S93(|kLx2}efduUgkc)5_29Ptq{;=;Up2lS z<|%Qg_29V>&9eL^Ya2(FIA-g5oj#pgoX6Km1Orwf48}2wokv z_U<;G-fHlo>Sw&5H@EEx@oUOR$Y2L7ZSfP$@mp28x&9^$t_NvM-qq181($D1XqU(&aQ1uXJ2J0=aj{D(BMz(g5Ei zOhDIEC{QBsegJC4q})!fLh%DE!b!EtR1zPYThJ?D`OfX=MRkD)q^GOAG$IDhhlM(C zF{vK9Ik+Pjv*7D5;0;2caiR;n6~wOBu-zG)b@LmHe4 zIHp1X3g3V&Q9R+M0U(|6?=vvobrdR!DCa(Kr-;|y2thnc*#8iKJ0wd5;H?uiAOC&B z3kyd83El$`M<*cQrIrK$CZ!f(h02?P(>lpxai|gc3>bX_^y-=>AO}3+f#!z1qFtYt z=L;oW4Eb^sb>egeI?#Y}y7FqJ$`I_*p*Zyw>Y}VN^^G?~B{_u-er+JeI0ZccA-@A9 z>wtiw+Mbu+vK=LVb zK#Uc@MJ^CB1V;wJcgA2!?h-(9ktl7b*~XebRODzTUYW03?b8a!-wM0N1t7ugi|o@K z%WL`6dSarVj>A3QHXvPqfY+L*=#?mwFTT*@8I>zSPTHabyQi1%=cP8!`ipmTwq4_z zKMxz!5*KIVINafP#gW%OJ~Em%n352v-IF4Ki*t1OgGA?rS**QcEM4J=1j3G2e(Sa7 z<;a8Q*Mj{x1a?P_TY`2CH-VaP9N_T%*GOpcRjfQffES6?j=&wH9}?DVgD>pqf zPsBh&@fVw?%VINEP>H_;6LtKBF$;}1PT!>|LS4;|WDO>ACHTt|@K!>S*p)E3Lnc-X z2Kc0N6<$H~L@!v9*neG0yq!{TxfX#3kSaHLR~E3sy9u#bYwaQe!6!_}%U=&s8497e zvWUYmOa-e}xRbPKbGoiIy=Wb!%W-LY5)=W>*TCB1`y8Z%GH^SHjRqF-{Z6C+<-jc| zZ{^U0tzZI^*14ZRcKKJR-nAae38%HE5MZ)~JuCKvc2XxJ6@xg%8}d!hpS8WS6pkcB zh(iN*?8pV*;Wc#c5HuA9%;B>=e_yY7-N9YKCNExvTqoTSJ3qf%+$ojiV!I*^b-?!) zJrgI512_>=PH(RzFYZHO$9Ez@Esq$Ns=fec ziUK@;h2%;DURFD&!O=skkYirpX?8;Cpu2%+=obf1i;E7J{N6Y&y?CQxO#V1br^1dN zIml75sa`~Iv6B$PG_*N`52vKFbQ7qbY+EO^4V=_>0g6Cft(c!7uNCGFw(fx>AuJiDNO4j^q)tS5Hb z?S#Dq$8XP?z@iYjCus$sE$ojWW*NNdzAp`!mI80x0!EDVRTHhEO0U7%sZ^A@<%nRB z;MsI=WhQ!Eu|KDz2r3#QddiEK)`W^?6^0`?uAXRU-vgHr|#=K>QB4kVF1psM(gIho+Ozai;Fd^B-OUYx5@B+7h|KVL3v)j-q7eR@sV>$QePzKAWl+piCm)KipAbm=x#H zE+!fPmfk9|C9tQWZ_o2Aop%226`^{XW zW1JF1322l~?BC0ImczRUn7g!9*kP}LQX>zDBH%~cjn|tcF<3yD;#E3Smw!tLFTP1% zr4@+DxmdAWyAS7LoND5!cO0YgpQk!oj4D_KyITBocOe<7z_~?$Oi`nOw`lYz!W8dfvbC<=eN{t#b(>pYZQMk+N`Ak;yjYBhXK!KV zy^$uE1BOiv7g(057NUTlW7Gm!Aq<#UM=G$DO}Kix$c2<}d~>4s>gK#csbZZCTgH~2 zYocXXDZ*veXarJSrp`jbn30XX9<+81y^jKAt<+VJ^V z)Y*&cY|=0hH^~$*gVg@Wpu#V7uGrTkOt+jTf0H=TnzD`;4ncZf3%;O$hLxV~MB_xH z;$M*}0O_VU?ZiSD3k!i=l+UrXAPWeIk4b7X0p$hryyma&bsp~LBnDqmttt^@92TY@ zz)(D%euUU8e?V(ag7>!4Z3gB!tV`6vJ*jd;tUQb6uKuz-!U^ zU@WqoQX2Gibv{8m{OxUjUN@k~GaUTajVU##DVWHI>o4m@8tF9wnyA~(x9|L@j*Yn~ zoJiR`Knt6nm8&5rLYh}Rz3W)m-1zDI<>$a%lKNDy&y5dM)n0AHx)v06oS|^7^M<@b zGP7R(u5u-+7^Nx>0WyD{?E%@%j66_?{5C0aagu$H-E&JRY02c1`Y!pxck z&+l&YWB?YK@N3!#>-QQj=A;J%QYe@3f=+?FV#bcQbODWtg_k?_-NgmZ7Bc}1)^H0* z$hqqZhy{yS>1AE6S14`I_2$uF5tR?!VGc^0?yb_TXm8 zDPL|B7VC58j3$rwQq`;;gd1zQ@t)oE2Lkc6mgutXxfn=jwVpj>Itdj`Q?D|*OHcJ9wrpdhk0 z@>Bm3t8dzF5r^OUVntj#Gb&qjCSW|*Y>uDAS)sppnl(n3m?_3$4%hs9xMOU;n<8Qx&77xa>hOsEmzOj25? zeqcRcugm7LzE<0lxym`GqVknejb=FR=-^mFn;gTeG_&iE;DHvntDk*RxSav1bFDMh zk%<;rn&dqI6E-qF9wC6#MRlu?zCc~W!aKAo*e{0VIMiK#KQ<#D1Z9$>kd^sW3|=l< z55m)uwIAj~L~N!gIb-Wj1E{|dlqP!#3nk#5YOQ9W@*;V>!jbkheT2_ypo>VliQ;SY z>$yCNJ}%Cz;i}I-9Tc7rX*vDM0HSziF+T~<5|ov*nx?6^Vd1mLwdfSoo!WjnOq!Vo z1V`h&lOTn^$sZqf<`?04&Xz;`3Irw4N!`2*lW!uEs`QuZ#R8fY@i@MeZHG_ydi6l0 zWMPuNI!tKiy8bz77i?kh6#8kPe&4TdJ5jYBL<7a_D@cy)VVyoj&#>}YmAyNCYhho~ zI5Q=m%8zArcu#;Sv*Pep!><_B%t+!Y2i|>pXXnD8P(9%CTG2Ie7+Ot=$$aCet5iZ&ofUyh424*mT z?Nw(s*6(UQYj1=CiuBwUT2u>ybitHj{gF5ii8%LcVR5tNJ&i0@kO`ui^jj;4m_cGTfMQ7e4%kA|Pltx=>(z|T? z1FLK4{05>+QZLN;Z(Du*sVr{Tv=fC8MNC!62@Q!@1`LxHrFi-^Fx0>Z_@i&o8Mw3%6~)*Oc&%8`JsT(*Pa%RW0Z~4UA6iWmStt zR7Ht4OH0>0d~hw!9AUmLv2^>$?hxHvHb}67&Z-6Pw)__{75 zFbW1&`PayZpZQ*2RTERH=ySZ2);9S!-gtdVNE!Pj^HI4$@CPH4vp{~3gr5~vS>}sx z4}R8pXs{|#``J1ZZe{V(A4hZy7MEPM2jec6^@r<##xnQz6J5H2vLQ6oU&5Fqy6A{c`jlmb&uQeTaB@d)aQ4^+TZM@WV>@>=m*c4EClq zYvphYr}aY<7>S^*SyXJRW)MK$@8fHT4_487_^adI%z{@i%yTG0(rVmJUMJ(r;*(yN zh#y@^K;c!lm)GK)!jDJv)pTfP@Kesh%0${_SGyZl*zz#b-qG*-3Ugn!^iOrk%*v2u zH_scOFwjbHfh5x)&Rg}5|2e;-TFwdTQN?udGX}Vf5vBx9tz=TH{D2zjdhHjvgQC}2 zq%#_y{kS)o1!V2S;sYQZ)&g-k@BVVzP_$~n({(~Wgm_|6geCX8ea8nvR8yorV9Xzk z(#d7GLgtr^%P4-VcxAcn%s1ER`5X&>sy_KLZ0weOc>9^u)%|CXPJES~w$%fV6BBkk{ z?8xU9KWk?j(Wwa+)u%CEBEcJVpUvi0Ia$dbk}}uj#sT$<-Bx`kr84r%SU9ri>er_AT*xwKD@&Z4;Nm<@ipLPyb`_s2Fmd72&P+fZC_F#&6t z_BaYy)upDvTCSp*#2?wINB0Z7vyP8*Ryj41EH8q zJl1c*S&#EvJ@21bTh zz0lpU+}tapnY7P=w>E~#F&0mf!D`K+s6I;XTRbWY?fsnZB0xj;*S*2;z(ps$tCR@s z#N2mfj;q;p$K7RfI(sZ|oYT-OR7|h6N1_w1sogqr{IBkfdq znjB)vyIWs^c^9)G26M)dwRtg+M!nf6J48_#DqDrjcY6LF%J~Yu4_tr?xg|8^Cr%vM z$w0KQXZW~MHJehwExt}5^e8#Mxw>?)d4LNJ$FyF{94KwOl_uLhV6?E3`TezmgJJ)U z!n^9q=P@d{5f|CCfVJHXrziN7a7cu)K!3PX&^rcYW2ig_2gWAjTSr`}uORUrY^7~V z?x#s@-MJgCwTuFZh3I!4)Yr=1j*ER2MBY&)NPJFq;np|PUE@4^o;Wka^mn=F_!J<} z-cpNUt=6C$r}rHfq}fw-x;&Q&d1qVZ{v4=t^FJ^RrW}`H2s>61{;D5q@jP!Rb=>BK??f> diff --git a/modules/xlia/XLIA_Constants.pyc b/modules/xlia/XLIA_Constants.pyc deleted file mode 100644 index 222b9a41f7982ba4395a041948216aef0e42f33c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2493 zcmZ{k>vG#f6vx+g>NIYXrk6CmLCf9H)^bt;6iVYAY3*o`B}H0$5)U&wZsj^2qPP=n zxyd4-9~f=(OpFM5WR)yZAAAK={NEK>F-SScai?yRDU1o zA0Ya08ubyGP z)2FD?4x-NxeU9i0L{AZYiRddu3H0GJGvn9D`&@ffzwaWwq4gCKS1WKzM*qUES^!I` zgY$Ycf{~1rFjN-&8pD5n|Lc$Ti*VN{jb9ta_~lh@kUw|*DuqzF1Vh@FN0CaDYcSY> z?=zbVhjm?>NmbaES7CJA_>51hI!xpq*Kf&n6^m5n$Qv_pR!2o&U*v#j3pAlY&}+ zM_A1ROpc0}q!D$BkX?2L5!OiGLIFyG;R)6`u3mGQMWS_C?HDsCQL(uFq&B zHx@hLi7$YMhM{*T%V60Q7VgcK1k>W>iS|!_Xkqy^2)5F398pkSO7f$ z^W>R23`up}pCQ)jdQ#WtEglJOi|sT!qwIj9&e$wwD;vDjOR$4>TX46{0@x&ndGt^& zLuA?&axA*q)@Ew#lq#KSU7IP@{e9X`lp`4oHNssXsOCUXPN5ZH|2#dHIhJ!G?7D!3 zdkY<^Q*>iEXEMS)s47)I&3p3qX6oJkAE!xGZ91PCyDgu3Ci86B+-DNi7pP4SgcG^Y zY?E$M2iGX-Lm|4cehqVq9m|_4bMA!dNH|FLH+qTZT+NQ>RUwDWhU{BF>u8(~tl>!Z zPqL$@JJt{5)9Pa-m#Q PSEW$FGe9+^uEF&mf0Ou= diff --git a/modules/xlia/XLIA_DataType.pyc b/modules/xlia/XLIA_DataType.pyc deleted file mode 100644 index a0c0da6cecf02d21c32bec7081aee8e43767cefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3201 zcmc&$U2hvj6urBfI8I91wB@T60tpFZDiI41m5>m^BuSL< zqj{2w3`Dw~c)a%|^`#RB5?3W&l2;-xMILu?zbx^p#Ff*jC5cyLzqW>jl7H~4c|dN7 zLo%?%9jETNRgBw_i`v5^bEm3s_9yiG3k+5@z}Kn6o6VC~Re=&_zeWaqbp7?X2)mEI zg`P(krXJTg3S@kPIID>BNMkAz`Z7fW2xN)|uq0D7fMuDY0aRp)2CyPiG=Qp1(Ewlp z0crATDRm{>8fMn5@bkwx$s0g%?_e0)r;WiVP2425<;2d|KAYIAckHT#MEfAht=qs& zZ!#X+%)S1~Y_gEL2B|#hXHhyAx^gDg|96f@c5_tF4#Ol%TnJl(52?%Y$KL9~)v7IFQcVxs9o_i07!G+&V!tRqCtKSU>4-U6zU?> z5!C=lEnfi=Do}t-)6DBun01s{nI&Gg$`qgrdt90QH1cVPei7uFKxLFtNOg;$8{$lZ z*DyHeW;=I_QMvcgbE+%e|I^-F$2*sywqx4#QX7qL0hGFvLfLiCc^4Dd91hVuZa6QC zy|i=yWtDhp5lNp`uCu2DY zBteA@m_g2$yF>wtn4)Dt>L^-aMNqUVC&?)|1#P{&MPd}5kAVdH*#PfP1t zpYE9EL#?@vF?ROd_Rsi;R%7?!na5kd7}IQZisiMUa}Qcvpp+;UVQq9DoDtdIz1M2& z6>HE-Z+vAYP%NR@!o-FvYxG(XPMqltQ{BDrKN)0(cF_ChQ97~t1;!dJ0rj?24}Lel zjY0g1w}Cpm_S&@`-1hY_WUfNQ@aUw+1#^Q)oz9wMXf;FYn$I!J$tXJa(#U9|J##8q z@mGWS)mqR+{Q(Iv%q7IRh#suAhFOk7n#=W6Vz}DETey?+W}s)Z?~7B}58Qil*0~LD I&A++vFFP5XoB#j- diff --git a/modules/xlia/XLIA_Method.pyc b/modules/xlia/XLIA_Method.pyc deleted file mode 100644 index f0c5ff3e643d98a55d44a2f68aab66128b5fc2cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4995 zcmdT|TXWk)6h4wKiPNN)04=2jQmzKtc-m5Cm?;b)v`mNA4N7U#yl8~IPSn_vE3Hcd z=?l#}Py7HL_=Wrc_`b8U8MPCGD~pPdc8oE3zx{T;$>U zv_N9DK84%Hf8$g4(X-Pa;o2QzH`BJA#h~cl$g(tZB4u#9Y1FnS(D@ z%L9)$s-Z2T<$aLtFJwm-zg3d#oLG;;=bj{0u|8Mx%oAIZ9Z(E?$*+qo%dZd+d5~O` zvaOI|AwI<=b}F(pBiWXCo@Z->1UI9&Cu_LLs;;w{&*Ra})GkEH!rJXyOA9^Ksy+iY z?#8*q1gbSb2n(e-9p`b9+bC%ndmO_hYqR*rfitzJLPtQ+$l zx01Gb>MkHC4m&=r(}p52p<4}lQYXnDf;2YMo@s2vcy_+|`L)JRX|~nKpCpa7mD_iN z8;$R?c#u1K=}N;!8^iwM)y2z=UfLdXP2PCgjiUxtE_7P#Z|ftShEzSLTH=+w3*HHt z^Ur%H{h$I)i)?;3?lu_2+w^5z07n>2EJK|vIr4o zvfRPKrzF7mt?P0)X% z*5d(cl#SD59R6=ZELb49K=KX=6`wTzO9z*F1

wmyZg6CR1kgIO^UUr3xm|PMqv# zAp%U4QEb(kzB+$5-58CTB}VCn5`DP4+KyTF{>?BzY8q#S4@wuZo76EIt|jq(m*L^^(?We3>@d$VG56>!Q`OGnbWSadYT6HIH~> z!`y|(7ggsjMtiFc1Cec+d;_xmO;JV9J}b*kS#|T7S)m)Yp#=w}Nq3^pFy&+*TvC}5 zwxp-9CG~U<`ha`TV&92NAk!%UBR;YjFz4^DH^eu%1fo00@65Jt5%q$@>XS>&`-&N^ zKI&S|r4!YIH)kRXD{B4vj^|u zD%8KSS^!f{1~;rIr}8hG{Bpo1xDb*!Hn{UnGk6m#3&xhHk&S`|OHX7Nd?E=1u2+okaMe;t$MUq7lJ)3ZgA6zB*l;j%7 z3pdr?(biEt{!^Qr5mNPQ6?|*86Sd=L0HEZ}9w*h_{HS+k*lX5#O4IXb@yaN`SOT85 pmD^h3iz4^JMPH#fz2_*ziZM}b)nwP5k-p>-bDmsIqms?e`~xWS4v+u< diff --git a/modules/xlia/app_xlia.pyc b/modules/xlia/app_xlia.pyc deleted file mode 100644 index 02db95a0f8f3e5379892c62bf6e78f06c98d4cb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64173 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 K{jc|b`Tqk(wbir$ diff --git a/modules/xlia/xlia.pyc b/modules/xlia/xlia.pyc deleted file mode 100644 index 93fd083e75d638cc18640cf5859602ae41ecdf50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54445 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 a_O;}ut#|GCTJn`0gFD{1W9N>)`u_urQZu6f diff --git a/modules/xmc/XMC.pyc b/modules/xmc/XMC.pyc deleted file mode 100644 index 4fb4a3172d568544be9333fd0128ca8214541c34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45286 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 M((tnMY~AvI0CTzjUjP6A diff --git a/modules/xmc/XMC_Banner.pyc b/modules/xmc/XMC_Banner.pyc deleted file mode 100644 index fd350cfa5c3c2a73004c1634283bd2996b0b366d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19970 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 U^Y#tj{nxM4fB%l>7~c2(7sc~1$N&HU diff --git a/modules/xmc/XMC_Constants.pyc b/modules/xmc/XMC_Constants.pyc deleted file mode 100644 index ef9a3dce85df5220baf14e2c3848139f1539b9c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1536 zcmZvc+j7$|5QgP6P202$JyOo+LvM%&7%rG$XpOBF&)AZ%mD2V`Q|eBdfiz65a(D`O z2`+dYo&<(Fh6`4*bJ&(-tmyl-yISqa8T&n3|0bF{`=tC-;CCIK{EtIOMo4v+kX?ry zI3#n(N_Dq_Xbe#m(KwCZUM05$!WkgpHT{VFNaBfet*R1NVTm&5V$rYn`uv?Z4lD{fOU)wL)J1vd&glVOfvE;0Y1!XyfEtrcBaA z*9?2ir;%=$DQArOQU!D?^r@Z)DG1Y3>LjR1i>a6gR8Ik<(o3WQN!NikLKdbkEzTHA zn$khQX=}|ze*?o@P^N;=i}+@-q1{`Rn}%#t&w*8uQD3EjUK)zS6pi)b{}#YuBnsnF zZSWQgw8^jxZ4=eALm}o{r*;>i^j|7Ck1bZ|mr5=K#2@j5g2+~CgPTIx`j}AWxC5bd zF7MEqb35&tYfgqk4*!nCJ?wQ4+;&Ir z9p#5lpST};$8X*I!;!l!BA!t9)p6$}FUALtT)o%s&zp~%58ZArJ9&4IyPvxI?lv6J z?;Yh3N$1V?pS5`fo)s3)%`25hFw~uf)2P5R`aR8~HkH!4Qma^Br%{F9YOPvx{sEz7 BEQ$aC diff --git a/modules/xmc/XMC_DataType.pyc b/modules/xmc/XMC_DataType.pyc deleted file mode 100644 index 3cbad41d841040781b4a6cb47186ddcf1a41b186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2732 zcmc&$+iu%N5FIXcvlBPBqJfj3eid5OL=rSWfucwv8-W2^c2)vv3kVj3xKU_}q^eyf zaUnlBzmhM^2efmBlBK)^$b)5xJDk0cJhSJ_?uK91RzDwX9`$MZ3;F(>i`!z8@DQ&&z@D$bq?s*i zX!^yku-%G%d{Csh{|d@W?s50oSV6#FFEM>m#GlliCh(?Qs1FZCacOaJzp|MGc;FCy8zdeb3Jec{L zPd6V&S&^I$t&2Wp{pfJ7WiU_Ovyt5#oe3CY(meIX)c8vdxJmsSOv3K-ORfC>@-dk_kpg9Xlr;LU_d3@ZM zf%U1knK6&Jx)=l04W=XpP7bV0=ZZeQ0WHi1Z(WE=Azv;OZM|vHc{pvFgtUHMp_F&D z3LS^oXP?2V5+~8K^D6eb<2p^MbljMx9J2184f>mVz9JdBu_W?1&IeXs(p_$VNbIc_ z-4~thu4(P>n(oftw(NQyS-seEu;1C~?(DZUQb#g?BX1%|S(ButUkoM5`F@(^`Yt+u zz;FzE9}iEhTN*ovn-R7I$_7^)VkK1zHq=@W2CKnZ_&_x=OgCV}!@i<#!XQkINAw*S zq?3NgW*&feSG;Xtn}^OErm?10!uh|wfCPzDo>-tb59~Nyw2IvEImJ8Ks5M@;@DSJN YYT?U~=Fjqw@)wfRK?t{lRduiaKM!6rOaK4? diff --git a/modules/xmc/appXMC.pyc b/modules/xmc/appXMC.pyc deleted file mode 100644 index d8ef1107c5712843af2b7bc976ea1ed0b4a7bf5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30676 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 hO&;j z+jeF59hUsc@UFoVeP3cMU~H_*Shv7>1r`+8!dSORP>G;1g2o9d6Es24BtcUIO%rsA zpwk4+5Hw5BBLtlx=qy3!2s%&D96|F0T_9+Iphbc%5_E~6%LH8^=uv_mBj|C0o)L5T%pEEs1&83zm|SO^7kO^*38@x4ya4T4@F=v9G0f0OmV@)`>!SuiymD})Mt zT@GcHvb;BL830BB>Vlk{{d2NB&Oz@t0U5jz`AzF(RAKc9o5u5-Ep%( zlVEi^7B}s>E|ww%-0%+iJxck4I+b(bhEFAqkWAs2p6YlU!o|~o8ir-K8v>qA{DlCQ zBMm4BnA}VvkUpqLT_gh%bg|pI#p{OJvYYWD;FFU~jPqa=)8?-3c@WP{-7bSg)wVi@ zYj}ojov<%}-SA;S&Grc!4ry+=HB1_OHf%WwSM_zCV64Ps z61W{)bH&=`Dc_C9K;<0|dSX%3j%Ultur0A}Iik@J65mYNsa&pmo{Te!x|yf zoftPWRk+feR$jHAgv^K)U~nE;aaLE5!u=Xj$*4o86H(H{Qc0FrMx==)ge#_&os;Uy zKoxo97^HBvL#nTidI2NugLD|oe#9$HB@1IFsicHVWq1&?b?{!Y@)XSD*H$Mo)R9!dxz2f&FjhsN5}6f(ffzW4uo)YW$XB05Xp9VRf+e)v|qVa zsVe=WU~s1wDIZ4tfwJS89j+Z6Mi48GD(`(1OiKU& diff --git a/modules/xsmu/XSMU_DataType.pyc b/modules/xsmu/XSMU_DataType.pyc deleted file mode 100644 index 085fad7b4eab40345691a1e035495d5117cad601..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2920 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 z 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 G`Tq}t{QqnK diff --git a/modules/xsmu/xsmu.pyc b/modules/xsmu/xsmu.pyc deleted file mode 100644 index 61474173053f9ab007ff4f0b4d366323f5011164..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82127 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 DQ1G!` diff --git a/modules/xtcon/TCON_Banner.pyc b/modules/xtcon/TCON_Banner.pyc deleted file mode 100644 index 6aed67ed741e002de3ddafaeb3f587224dbf8499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11819 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 LCo-PM_SgRht!e0; diff --git a/modules/xtcon/TCON_Constants.pyc b/modules/xtcon/TCON_Constants.pyc deleted file mode 100644 index 6c0332e31b726f0948a47c251b63939965175704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2673 zcmZvdTXWk)6vtPIW74#7FG=YQ%B2*{rB4Ihx=vjD#x zxF(%NLUKZC`-JR!w=rW=!h+abUGNP-9UP1IKqSp|;j_4YqHxOMnltaDW zBstXiEs{fhnm@aA|-AA-B^=c!16VXjXw-DV%^uD1S zI_?9KL#KU6a_F!vl0#>GL=IrRACnyV>JG`FpFVNBxQileBkCZch`NXZLpk(iNb*&Z zHXCq~MsSglXNI4y6Qa#sID*qfM&_^`!Udl{w-5jO?e9POUq9Y1l)uWGDht^j512j+QpnTeRO^rx z79Q{FGsYLGEY#~WaTdpTuN`NA36&_ZP}z9PBOWsqGgCi4nT zhv^#Iw;2y3rcFNQ$d;>_{lf^v{tXa0AH`ZWWAiF_CIl|7YG0V diff --git a/modules/xtcon/TCON_DataType.pyc b/modules/xtcon/TCON_DataType.pyc deleted file mode 100644 index e0f28674c421c86e4f84a426285650e9bd24cc87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7374 zcmdT}TW=f36+XL5(z?s_C9Q4LE*hs{Q`khB#A#Zii6SwH1DjG-Ox*|#78~wbUWr`N z+>tE>Qc=JzioP~aDUiqhgTC~w{Z07+?f0G8ZUZUEl zsUp!Ci54W98Z}|av_y*%&5W9A63xnb{Vb+S{)9i)s zp@{n;fh+sCKzOo`3q(csae=7HJ}wY7*~bL}vI_(w@2&b2Y89&0Ph-PLv%QQ0`XI&p zfDK`9(2d)1Zx9bdvonmf^I?3zwLZM2tHTLCw+y*G$&4)zQu z4T2<1On~LXO3a~>>Q!et|F-HCH00ybuonk`nL$es*f$4(&t3H?Z^^h)C(gZ3?IC*^ zS+99Dr{?GeQ$p-S2d(;{BB-Li4KU_`DGFda_`7>wH32F#?YEl?{p zv5hGzGdHcnH?xfNcpf*KR%O))3N7RyJknHaT?XNk=vj? zj+>+QJIPI<2fB<>$n}jnWvpl_)VM%~*4K^GQ`{W2z~uAz$H&P)*Euc&%x>F-kLLQf zG$z=s;J8zig^GqSVD^3jqS%l^$@r^^Ml-UC1}(c(YzOzvvR*0`+mZt6kYzWYFF^o0};u_0cuCkDfy+ zLDNv?2nYghHe6vm8JI5db1rYuig#XckVScs+y}ude)cjt=(+~?dH9;roYtw z*l%j!eQw+b&82qJKQxYR-q1Y9XIlR7(3mNXxpHJo{w^@LwtA=4*3fQ#^v#3TR_`}` zU!|ozWBcmdDUA#Fm~=3VSK@BCr<*kBXU5*qc!1@Texx0y-vzKwJF%UT;og6V6;;=N znHBZS|2eB)uzCd*n{0LR`p1a!8x++)nZ4p&aj!V`+o4)eXnKZaj$y7eilw=`cIn39 zDtJ5c;b=sQy+yqBq~Fq8SGKDK?a8(?%9S{c`kP*o+Qs2A*_LouwblA0#x7uoVJF!(jYMknx#=G~z zZe}y^N#_Wf-6d(K&y?82zvIf%JjGpf7M+TFPV1{q#cSCZRr+-*sCDkIl6oCgsSrw? zydho3q;H`p&$Wt&U{rkP7N)BsXWkA!>&7EzPIXpi{uzkeng4$YBF9M&ZV<_F8GJYyqm~QPuvO&E@_Q;>2sAD0Wxvd6Fy=d9RRsr~k8l(!KmKqZkOi+{@;o}IwBK#CA z6;hF17H*14MU5Io3V`e)Rp9`Ord2FHGjTsdU>yWVU4ww$`THn?LRYNsw=@5p(%w_s z3q{{gj+5g!*W{lb-vo%CkMUi2qmcnzK&Q3oZ$A7TBxeEO22JCAtpDO9jQz|S;YllS3*tUX!~T=&_mLxy(<^HZeW_K*y~ z-(#YWq#g-D;Tt%uZm9-vUqdl{8r(Bp*Z))AKMEd!yCB0hB!XJjJ!Kh1JK&G4s>$@G5?pY8s2R-EU^ en@(Ifwd&jUKcC-H9o4qZIy3J1h4U|;zwtk_!|T5Q diff --git a/modules/xtcon/TCON_Method.pyc b/modules/xtcon/TCON_Method.pyc deleted file mode 100644 index 436ed5b6bab949aa35d3fa8a392d384b7fa9e6e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5429 zcmd5=-I5!{6+ZJLX{FWLhKijy7+6z9A`)1E9ULf30(h6I1uSoR9c;ELH8p5v?eR(@ zG1ChcwOgr*eV?0L@B&=$5WE5p!VMQZK=OU3M_R4d6v>5Eku*o=boX@k`Tcq(_;IE6 z_14-aeW^YH{@=k>79a_Jo(x2Wp6qzyQTA2#Wyg1NAcH`Lq3nb*tjSKzwT3dN%djCk z4H+)U&JtReB&o?mOw^L3E@>#co+J%*Fp3j<8q8nwan|1(WceK((dSZ} zh^t-0RgOU>Z_9z2U@ws38L=M42cG10u|D^F=!p&F02HDxqZuxoMy}k9(4YSex zOOfrDj=plKYvVgpe(mzwYu(`}*&n23_rC3q@-B6*lv*24bWNusS1+lTc!77(J1r~z z1@DY+XoWtT`Js~U;VQoZNrf?+2qO%^3VV|Y7{O#hNdjeRl7!0CH9*nTV1RNALUu)C z)I}}$C5>RjDtP>w@(`KOmZYWQUE_={%R}VFDIM9?8&8Yb?obO2xoOy4W@V@#hk&4Pjgl7NW4D(crjvB6)K2`X7+e; zRrO$hPeZoY&##Y?)NPl|Mm47z2!*O0!V`}z#(SAs z{7NtC+|#_mRO3;WTT9bq<;dPmi(x$2POU|qDId|-aLR?b%yKnsaP!2re$5Wro@v#m zHq%Qzc>xWXKT{l83q90^?3gFixC$O6kW~FLF4FaM5Kk0e$D`6ZiMqmn8BmlH z+R*^cB%n~@%?@*CV3cHi3zQSVs5>dZ5Ez^0hEd}@`YgHUNN8HKN^%jT!GXKzQ+Tmfd66^p)COBhHra}6WiLr zHhvO7XdI;LJw-&83x9gvGlUC=M z`wcLY)e7OyqZXnZQ8`x&eIAW(YC0NW1wFO~vX=W&3L-44f zsupzVV+4#jZ@P^+(_z3a14lvEup-Uj=FE!bb#&;MN1)YQVF#|ogcI?V;WUS@AET*c zE=b54TKC#sWjNOT6H$-U@gz z2qLi4;c%d0eJX}3&QQ9h;?lIYu3~d4HdJg)#U&M&iC)BJ%!zq$FUBv+K}#Mq1vMv*0!Mv;5B5k>mQY<__@ z!{lbkzFDDSB@0sBZ`PUtu6pxa zv(>D%gLW(M+RM#n13W5$Yxg=tL(A%-FLBmm8{eFaQ!PTSPO)NDZ|3xEhGAIfOM(6t o-^aNZTl%WXnS&6b`&g{%>dLFmd4FPsE$PlP-Wl&4@T%SV50{f(k^lez diff --git a/modules/xtcon/app_tcon.pyc b/modules/xtcon/app_tcon.pyc deleted file mode 100644 index 89c8bfdbcc5c94824756a0a18fa668c67e66c5f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58846 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�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 V20uLb^k8oAJno+x{DHx%{~wUH`11e& diff --git a/modules/xtcon/tcon.pyc b/modules/xtcon/tcon.pyc deleted file mode 100644 index a7adbba6aa44418bdab3eba22527c5462271da26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73522 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 diff --git a/ppsel/app_ppsel.pyc b/ppsel/app_ppsel.pyc deleted file mode 100644 index c3dcc029d32643d929e22fecd5eab9f92775711b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2786 zcmc&$TW=dh6h5=-II&9_#8nlMuy`m|6~}@Ks!9k!T$5Nz9W!>?CNHba?$(~f-nDkd zH9^T!ka*!|@PGI*JR|td**HZ&!$Q4PHQ$9Cy_H*+Lhhn_$0Iri%U4*j2kEJF1TqnosC16JU3~a&5J0NFb@GQ zH8XXLg4iCo<|vya&7pB&YDbU1XwI|zq-kHJ%@@7hJ>718pPQL2Xyfyy3x^AS^Wo-a z&FK_!o8fdC2)8*sbt@1W1ST~u2rA$$=ZO4@T2*gGX%$OXQHlw%;1qR>9P;S^Q5YYE z(TRAXIsJ~~939<;9}DGgL!)K2RQSNT;=wSo_dy)o5JX>ilz+lJ^39HU^b4|_3gG+V zLszq3MPk^UQD{Tw@?w^S7Eba~1Xw3OIDvMU5A996d?-8%;?*)_NUarqGt@Z0 zEe!hy2wXfCzky>eS*g+s)lu25V>75L{RIxEpJ4&UL3 z#c$CWR#yqoz93)mluwT!?=?wx7m^_L-$`0qNP=;HQ<7knVbL`pMI)LgW;k+2`VXgX zVp3~So6!0Tx^OcR{0ecP(p znT?XEGe>4zSoYh`jqk7*k3pSb;NAln<|Ymb-Eick8P4)VW1ghjh&gke*w&VWfOl(& z5DS>^m|}^0#JoSlt~z5(N!)_=c|e;t9QJ0 zuc}_>*DxEgN8BH-ngU0LK@Z~; zovqI9?Pq8m20Xs@r_Ptj<(->`lOzaS6*ECF$>P}lS==?K zgu9W?0?ml$PG&iRWv{Ya@hhduI;h_*43O^_-ZD5bxcBm+iAb+t%jE+DjV87DRB=`W W-iGB8+^>poe$BU`T!|m3s`nQxJ3*`f diff --git a/ppsel/capacitance/current_measurement_w_tcon.py b/ppsel/capacitance/current_measurement_w_tcon.py index 7f604cd..7cac500 100644 --- a/ppsel/capacitance/current_measurement_w_tcon.py +++ b/ppsel/capacitance/current_measurement_w_tcon.py @@ -23,32 +23,34 @@ def set_DC_voltage (xsmu_driver, value): autorange = AUTORANGE_ON range = VS_RANGE_10V - xsmu_driver.setSourceParameters (mode, autorange, range, values) + xsmu_driver.setSourceParameters (mode, autorange, range, value) def measure_current(xsmu_driver): - for index in range(100): - current = xsmu_driver.CM_getReading() - print ("The value of current is " + current + " and the time is " + time.strftime('%H:%M:%S') + '\n') + for index in range(10): + current = xsmu_driver.CM_getReading( filterLength = 1 ) + print ("The value of current is " + str(current) + " and the time is " + str(time.strftime('%H:%M:%S')) + '\n') def stabilize_temp (xtcon_driver, tolerance): - sample_temperature = xtcon_driver.getSampleTemperature() history = [] print ("Stabilizing .. \n") while True : - history.append(sample_temperature) + print ("Loop entered") + history.append(xtcon_driver.getSampleTemperature()) - if (len(history)<10): + if (len(history)<100): continue else : - fluctuation = max(history[-10:-1]) - min(history[-10:-1]) - - if (np.abs(fluctuation) < tolerance): - print ("Stable ..\n") - break + fluctuation = max(history[-100:-1]) - min(history[-100:-1]) + print ("Max : ", max(history[-100:-1]), "\tMin : ", min(history[-100:-1])) + + if (np.abs(fluctuation) < tolerance): + print ("Fluctuation : " + str(fluctuation)) + print ("Stable ..\n") + break @@ -60,8 +62,12 @@ def main(): xsmu_devices = xsmu_driver.scan() xsmu_driver.open(xsmu_devices[0]) + xtcon_devices = xtcon_driver.scan() + xtcon_driver.open(xtcon_devices[0]) + DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V setpoint = float(raw_input ("Enter isothermal setpoint (K) :")) + tolerance = float(raw_input ("Tempereature Tolerance (over 10 successive readings) (K) : ")) xtcon_driver.setIsothermalSetpoint (setpoint) print ("Starting Isothermal Run.. \n") @@ -71,11 +77,12 @@ def main(): print ("Setting DC Voltage.. \n") set_DC_voltage (xsmu_driver, DC_amplitude) - measure_current() + measure_current(xsmu_driver) xtcon_driver.stopIsothermalControl() set_DC_voltage (xsmu_driver, 0.0) - xlia_driver.close() - xsmu_driver.close() + + xtcon_driver.close() + xsmu_driver.close() main() diff --git a/ppsel/hires/HIRES_Constants.pyc b/ppsel/hires/HIRES_Constants.pyc deleted file mode 100644 index 97cefcc7524a33a83b72be746ad249b3d6e76454..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1075 zcmZva%Wl&^6o$uXNZYh2h0+FCu+9dXi&%hA$;cTROTIClSS3Ol6>K>X%|-D9#Eu19 z#4E61!;THFzyt6eED#GeEI2cEXeK4rjL-L<{~TwIz4oh7{}h@}U!d|=fqNTP{=h&e zL8#hCsBfUuK#75x)qX{zHI1qoUC^ke(Yi((8f|J+*Jw+lZH*cl?PzpSk~+<&ffp{`tkR- zFNaD&?GNqj&*z`tz31U0zjYl*3mXf8>dGVVG)!IV?%g<^jt7cmn4 zC*#EYEVBtU5yQ|49wh2Oj~(BMx(c_;hRWdhM`CMPARW;txu}tjMM*#e~nXknvnW5yw&= z#Y!J3h+AMmXIuUZ&>Boesg(`I$v7X}zh}Lk%wAggtFd()x&bBDli6^d7yHdSmN>~4 zv3b|LZB3_ndTI@ZvoyDg`P!3l4!uNfPT#0+>)~jU%umxp`Dx|1V5=KD@~V_;5tmAt LRcg(sRcgjxanar8 diff --git a/ppsel/hires/HIRES_DataType.pyc b/ppsel/hires/HIRES_DataType.pyc deleted file mode 100644 index bbed0912ed3bfecc1f57b486d4b9876ccf812e82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3120 zcmc&$|85&a5T3iUogZz|(4s;r(IQnK3yD~OsDy+N#yQ$Zi4)dWph4(#vX|r%`)uyk zfgtCvlo#L`ctailzHcs$-4-G7N7B39x!JkB+nJqjW;Xb1W%SK_(u*J`Nf(E806ErXj{7*-XXxA6< zXEm%n%&g<0#c4q!4Ome@cbw-obIP9#`z|@KjysdvA}w5!b*+1Y-z9@l-$r&YvU%dh zc_}@#iL?2fw9Ykj#lrS~(p5|qB2y#bOGBLuH@1#mlHvz&jlw+<=}_e&dskj~b&97Hk}*P`mMD%Y>bnev3{=c4Ktv zxMm!uS?Xf!6s)-kBGvoe(#74bS0K2Umn8!m$GQt~JQ()IeGCnqXl{Va^j7Ywl{dr* zwJWH3EeN2pdW!~j>y!w~03XdW}gd71vE9^hOx!4WOVXk@cqU4?XlCN#Qc z#DsQ@E@29}hdwpyUlHX>%haZMdmKZrZ?o6u8V$enH~Y?inLztW&meCj;EsLC?=p>d zoR5r5C$v)#(RyI$NX?W{KDO%ouakaJmY-{m7+oEy-JQM*rKUcb!j4ac9^+c};3@cscKHmZ zb6+-pJeD&pv=E`+Qb=nPfb zm!n%O*GFp?am&#C`GI_gH!r}0!J;n7lkC8nI~eK)mqmLG!_8*Y?1WL=+TD($t({P7 ztmDM_H?60}gzZRc?<+6A-QA9wk3+4=?(R!pqJD05qGr1lYPojzUwYqZ?(A)caTMR8e z6ptv-v8Bqqk3m6&#IJb|{1q?omM`y>;GSRSbi-qXVR6)hf}yJn4c1^c%IC zpW=V$AE5Ki9f~A0@xfx#o$k&~cjue=W_R81)05v?^XmbXAD4e$a5I`k$X`W$qC`jD1Pgy{C9+#tXs38k_LuTJ%L|hVYx`L@v@_iKkPhOY*N@Xpu?Q6FuuzTLA~!Q& zvHy$?#QB~}`7N>v!$U>s7+DA2d{JawI$+5|hs*-m3Vme*qL1l)s@N(Nmd(fE;zpHv zla%*JDP?O22`>h7MQglBTl{RA8@zQhv-NI0k4$WAyc^s7dLq~wlRU|5!Xk~dU`HtY z5;~@16Q{;@(;%`JdHB-WJpQy}BSETNR!O*)R$q(8USQ2~GRSgUjIqXY8b*7?9}t=% zg4k^%WH_A2!W-^U1H!Dc@V2rf@-}1M+iX33;(gBYo@aJbZ>{xqRWEt(@_5G-^1&m| zb~lgv^N;5rdV_(9`rcN|puIQCdZ}Gvnjh@TmIXpUH-JUTRd>}4O*^;MtfQ-}382OY zj=th%S}Y<0=RyL5n06d>bX*FVUycy1DvV<#Q%^`&vQJ0{!m)BpENi6O4RB2eb4;2= zY;}o+CE7kF3FzH!z@#bBLmiYn_2V?QzAuxKO9s9nVH`m$HG((G%^*so0{ozX7=i=_ zOh-^((SpFheA5c|f-EgEQ813U8a9#j-!HB9x>a1@-0>C8MK6MIrf|3Riu7s%Aw$(p`14A+ocUFH8t zuJmQ}&WU`0ghc%Tsm{v3PZiGYd?#JW!sv88UFWHh)e}mav!n}G?hV5-Bt7CXj=a<9 z895eCPl*K~Ec4PVZqEtU_I%da2plYW4g%$C#9=T^Uk|5fkg?CQzQjoj905;9@vhGNc V$h%{q2=;ThXz-SpQ*+MLu+3VUVhKa_%eE(jhi^>&COD~+p_7lly;NYNxVvI^V&_)p=COmb8Mev zZawEXPF9W3lCCPje(M*|?h26j01^@)7Fb}ph-(oDAy)haeCG=i5)x8*p65L?XMEjl zMckFJ=ltfqo!@)=-QRce|2Z`98;etKRZaSr$M;w8#B-i8K0cnQ8MBmE}Z zH1$DK8Zz~RrgX4_W7w32+oKri^nJ*b4ym-))DD~as3{$BZ}chum?<4~`F`ccOzD`* z7ftQBsXuN?CtQ9&`EgTv!sQPrf6|mrx%{B1O_=&=Q##YhKdJmv$PbwnO!T1nz?g@| zyj6PI_`@c6#;kb8AL*1n%e7dVJcK0;Kf&K5menK#XXht#OdkNK#CMvlps^Cxf@H|$ zBo&~A3~Qmt7@W*bR#U(IgLHIiU8h+Ih@n%!KgM$K9+;VU(5u;TMy$f37d@_@f>fD=lZT)ok*K3tkp56Alea6FB;vdG#Wva zkft%kO*DQ1W$~-nhrpPUXTm%QD#)30Aow7Uubc@A<{aqRf5!OFnpF@y$hnUjTk11@ zzY_h%FDg+q{(uq##y_CM0pkxUF=#+4d}}DB7SJ~+g(aYEQA%mV_=i*ix<0JLVdIY~ zF>3rH#(&KCN6iNq1JYwEN69fIjvD{C5@W`HT!~}GKcU2N#@vRy^2|fec&NUeXS;T$V3M9rrkCtY zA+{vunUBu`>1-{iCQ%5^nV7jau@%;DBpW8AzIp|- zjFgPAC}3^QCkd03$*WONNrD@pzZxWQGJv``NbGv!TGI~_@|%5gzI<(AX0~jX%U9>- zXV2TRJ%4RcT-;huE{M7(xd7t#IH;{yZ3kDMo8v%y9jWQHW<8i*4U&U_Q3)<9i{lI-Jn!AWEi z$yz0@BuV5-iPTM%Rn;a0`@KZlT8UQU{h2s5k>Bhr{{>{@0)X*`y(%|}8B(_P@hTGc zW;J820p~3)OW6zQf=YVKO0SuD=eT)0ZytE&LC!o7_uY1!_TCrFjV>|}`%qbIEMpaR z)k+D;LQQs16XG6KZr4W1X})+<6ui4GO2)HRb319GL_>6FcF{v(_iC*fI}Pr3m&>>z z{T~Td_hoDCv*`8`p7k-9L9^F48pvD#zr@g&JRFA1=11JEI0}}_I>ns zK;qiuCCGc#f;~a7qq4`mObq=$ItHNT)bP4y^l~ zKG+DLHj;z{UJn~___ZMX80nBC5q=*+CVYc{29QjasJS8KQEk@N>kX$zlCXN`zI25v zja!vQNcl8L=1q;jPtT^5webg$qKyIYWOZ1T_s@5AoK%-Ms z*!BTp^1%Xpsnn7bx@xmtuQYtsEy1s9*Ad^9&<`eQdh0o&0P-;OxMsrd6A0p-l^QUEVeup*=SDm!MSrPQd>XRS#6~xgN>Hp z-dU4D8D+`_w1TG4CV0mgXwqa44SWM^c*mP^^p_TOvnQi6@|b>WsjN{$-!aIwY5Xeb$5fca5w{eXVgNT}&n_Xp*jT*|WaO(TjRTHk>1(h}=aQfv ztFyb6+Irx^h6^o5(^)MIxsk>Y!J(W`J8Lf^V}BOF6>HpR!-;LUNwE3M+|v0AS7&E5 zrVTfxHm|#!6CGr-%wdzpaHyPao@76HfV=60ni}N(M6&EMI{p|>%q53HNrl0ncSh-x z-gs^Vs)WMfDAH6isi43&Y+ffOIDGDf#Kc=j?4U+i1hU7cBPI~6L@7i=0S0QSK5`0T zfVt7o@osNBh#_KSH+v8(ZKg?Xlzowa#*k&!tvFrmIFr(f2zNQu+zLLAJQ{3YK_~x# zC+=r=TI$ivOXhNFDHY*>gu;RX$~krmhBaGK9C+SEwK+vj?!_5<7fI1m#rHG!NOoic zA%}gLpBS?dY;Z{bh4Hil!%!fm{b+);_c%4p?jb6fq3@rbE3mPfqMH}RLA3^-*D~y{ z70~|e&#b5k)jQ|)-^ipv-!yp7!Erw|vkfGEG%f(8Xa1Qu!nu7=jdbsHgeHOROf0Fs z+hC0?fj%m>ygQ9yv}zlV$SBIAW@>86R`6}#1qdm!x7b2Dm~pHlCJNYO1;E)ckbsCt zb#W2r-Ni-H9Q$k+zltGzg2$bzbi~-xo)nje|5mf+R|{yv;quWoT|pud^YgTYkN6SZYb zpUg2b6m^G*v660Oy7+hkEu~l6hjvoMIN3{;aVE1Yow$9OvaO+~AF=~;ueEA7TOEc0_s2n@FGn z3Re!sXOD}M0B0}i(Z*S|kOdPi)oJ&d2#-={Uc%_<7hd#bD!nTBnl|lKxa_Y_ILnPP zYyy8%1R*Er*qtcE-|>B%)gm;_twnG`Wl6of)?9Zdv`8Z;FET|k4yyJ6S~{I8Q-^{^ z$B?x|TT5(Zn0fVVUv^oe!O1ZP0|_?5{pJC%$qnb9^Nzqz?#T^# z2fcxezDW++f7%t;?GM^i&Hyw_KvIIX4oZuAqByjpkn~WzO48?Al9cFp#iZ&`c;0!; zybW0+YNGhbnU8YjyeppQq7jC_Ny3HU( zqnkDsvv8JuC}W#LB_FThJL6(m`ScU^$)f!by-#qYTyTTK2|2Q4=8lE>0;;)NPVNJW zhp_|LPJBGvabdMCJDhW@1~zD?`pr4$>w9O#`f?m+-Wk`CElzCKObQRTV?Sr0QvdOu}8T(My91r zqF!1)ZLU4{=cIlPL!oNeN_?cQEyU+6)osK_>Xe|{2$MBGs%(5Nn=_A5 zkaODeATROh=s#Y%cBI!GJftOssC$=P@&?+)dmQ=vH0s?9zlxNd>tyA!s1`-eDtLqz zwY$Ua`#d>f7#dgL+lK037XSNfv)}au%l^1beh4d!sHD3K$mwHGyQWX#<>vR{xritJ zG5{&Ujo^FG*7#Z*A;h>4Cc*# zcTZT6MthI#I#y;Eb5PIji>_6OvyrXPF{fkt(LYy6Z2kiz?*CfGArFll5nUXGF9KOj zmsF07yF?041m4LQY^;ZHLa<`41rEY^dS>FXN^owgEN|t)?7=E?4{%5e#|T!I0+DiW z@;pd`$p-T@Z=zpSGaQQHWD4O(1b^`UjmA%yLIQtf#H{4ZodFa5v+;1$CUZ_VDR9K* zw$;OIZ;GkO0rRqv5Q)GwcO_eu2p1)^Tf9ddR%(72$tvSrqvU=IE+*|0OQ&8wh#co; zEPtR?N!FCO-9-3;nrbl$Rsx``;&h0l2`^!$l2k4sLXqA^5ANaOdMq(nuiOdHU2I9E z?p_1qWNvu8YPHP%)xmtT5jf@E(TCS&m#-|$h#D7`WWy;vx1hBBh&X=88|b?5Jc(oin+sPBsc6G z&JCKe+++XW=+=H0i(&tO;13D@2w)3g+V8RAj|u*S;7>m(E|GEjy~Rf5n==CfJRR?BB5VZwda6;O_}OCin+{{gGzZ(9<`5IIT$1#-nJw z=kHuxGr9uXe(W;&6iUS^4k2Cs?g9&)e)c!34px z1V;#7A~;8|M6gWo3c=S1ARLW-mEao$HG+=_J|s|h zkATNoVk^t_%63MnM`)N>Msm*Li7x^4f|dL5KTybf#eA_JPoY>W9xFaxe7QJMd`2a` z#o}-eYDQ3Z0(JS$e*qU&qSWTl_J@9;vjis zF7l<*0Ez4XEH=$QC>Nw$*cIBN+rH&X?jC{mlN;EjziIep>-s2{l)Zn46kkBX;AcLX z7BhW#G%d0uW`j5vG_o^hcz=dP$nQ|pHhI_z+6}5$ff-y-k&Z4))#G&-Ls0d+;;AF6 z^oBCZahwQ<>m-bm;69AQ!CT2497V<(cg2AbY{B6(hC)`{dgdr?h;yWhV!&a&vg(Ym z?0Tc_6K6+_V${X8X40Hv<8Egw{e>a}A@^!wrQBjG3p(nu(lURut2JWR4cFQQt!41b z`{}{U4h`vHe`tcl`0Jzz9X#;nFz!$s#Z8KFK{v#IFSC;SSHw^lbL~;iKsSvx1V3>YZYrl>c6}rL+Ck&z)7--E^XD>;YQRfNGP4`ni zD@G+h=;su=r(ww&_7@5I33!YS;}LiBc<;1~pcA594McOPF(u^rD?9G7B?a2+1SArB zgMbE@y$K-7V$*y2J(C?|#hV1Q{Onr<2MJ0586Bk_0S93Jl{IXgy8mh2zp#$d(}^6e tUPekvJwh3y6?n}lw%57HI%Hvp8F$gW!Q2@^g0u7BK3AN|Bc{|h$!uQ&hz diff --git a/ppsel/hires/hires.pyc b/ppsel/hires/hires.pyc deleted file mode 100644 index aa34f09bb42112d0b7201900c02ba24106a94132..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34101 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�yNn!@jAUE3+XDDUi)PRM z9de1YDB_Jcescq!Tv-I*M#6<#+68ng4icLD%K^|=~0`(sTcbLtSKk&0G+(~G4B^qUcsXu z4C`HOEcgQgBDHCAzVCix0kQ2JZ7ld9m!&`qe22SvNi6@BgY7|t#576m#_I=wb)>~U zAO-^YRFchxVMu20bz6UdF_yiJAHuvQB$Xhkwtk zG~H_Q7CLU7u!0?#@whXkeD@z`lAZ;R>Yx5txK8wYa^?4Mye#eLFJIzg>YmOBP`2~r z?&Gm>`#uP{tNvJru0kwa!sQ3Q?Ts;aCxdYW`gobmJsBMNqvhGh>+D-}yI7r_g@=&B zsd&4Y&qC!#f0?2*JAZoNMA17nb<(56=Y5*N9tJ;yVEyT&sHwdy{y7Hw7<`5mIoaa1 z3NG#NZ;uq1&%MF(8HgpHW9%*l=NV8xvNI_>C8NVIa_M_tVv19$YjX{d2c# U{Ex=-<0r>=kDngjHNNuy00%2-^8f$< diff --git a/ppsel/ppsel.pyc b/ppsel/ppsel.pyc deleted file mode 100644 index a4f7d9ef92f8fa113b023cbc586280ea8669fd2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4988 zcmd5=TYK9?5FN>v#IDn%R|>TB0<@;IF%)><-ZphpLvE~7nu-T~##Un`l4UG~qoLOH&fF~M0lI&=9XQkblIWs$(+;21GU)ScJwq^K}!}Bg$y5fj*@aIS* z5Zvpsv(Hj!KDc*I7Z-{rpj?PF_mG~|3 zZc6;NcyHU$lM>yM_?CFLC7u^=9;37Jvxrxd&YUvuNau_MHSzCA=ah8LO6N4k4@91N z?@`vQo`YS(-|=@O=>35gLE-al>{v=VsOAOpcp+Q{QMuNgAMIB?U+x zH7F~CQ<-)r?=>GEdJi2d$z%5V!s<#^8okEeM7Ggfems$}cSyF>xOYf~-ek3n<%P*E z(Xo;u7TK`dJTY3&_9yaYD~2huvE242t1d6DH7BdGXJxeF!r*z5X00qcIr_Ta9uBoJ zA~Yf`wSboX2$G3xIfVDND}x;x7&y=J@RqYLf*D%{BArZ84qS1_O-Uz5uL0g#p? zNn_=~>XVFH-VHlhH=_Z&LAcq?l#N?y77Vaok>p;#U!~D>_S#xAh}24H*xQ6Tlb+66 zNqT|7BDFf|fh+bs1}Z zLUT9lnb+{FqFItIfva_sIH+xgS*w?JKm4G!n+&#V>G!?b#@f=Vsn@<5ggdFFx9`-l z*5-(xe{cTXTECwLk)`wf=jJj#cnU40rNo_eXPq<7d8dr$Iai&m;~?tf>tL*t2iJzo zmaCqE)5jhG-_&4RsnRaGh`GX7skM!?tKcSzDfhy)n*^^~mb#`iv^XVa#xXa*ja8%< z?xUqoK>}nT#qrNzT!NSk(CjLcCt^7QH0PBm5~dshn2X8)&r`|(!PCl=#Wbs$7Z^9A zre?i_0iYT<_mx2qF*0CTdpeA)nZrDVgd(fmilT2@?QO*_0lRR264&tZv*SjO?!x!O zUYPklU6|%UXx%o=Nfr5272g0uo$%)fLK*4~kwY#w!q7-len_`(Xd8{4P7t<}Uij>} z23r(9%T!x)n^U>^1Wqp=N!(A`O?GebX)#oB%73HhE12;2dUhsJG4`WsXK0)MSeI_t z3ErhHR7{+T)26q$FFqI1QmP8yAgY!8F`N1(Bo!x zt-j(fuReIZRM$XE`ay3w>Fgl+@lgG`73~D|!5|q_)f{wV#vBeOXTe^kUTzIG(_?h2 zp^hJ*S(myMnX`uYQ*?fV2@^xSJT$}st?-!&T(!_06<8$q-c&(e1z)P5pb)3s>L)4g`Qh00CD#@HG*VcNK5y2te>4 zC;KQGa-2yJy0VYzA%Cb_;9)~4=3pGWV)vjZ`>=me3lMnlP*AD^h)mjZST@ZJyW_e? zQywR1l{Y;UYgsqyu!b@pLSh(TT9#;zQhTSi9OK+kDWyQqh(pQdB`^?*z1Ncp_U%X9j7t5r7zIZ3JBAxHRc6t%KsJA zj~aIb-wj?vxKpAWR}J$i_#;p@N6f6ijl!1VbuVt~Gu=5>-0HTlwSU6xr~*;k?qT9M zuQ=nZ;_wX9T;teWf=uJsG@_hl5ap0FhV!Pz-1L|$jW|r&D$CXh*{U1`G*gM8p$si; zm}m@9Vwe{Vle;-ha+c&g$psQ#0Bj9JpL77^LGoOSYfUQ03Ff!3AkV&(yAf17fBm&r zBr4?ly;dCfz6Po9$9k^#zL|$i(PQqAnm8MIj6}tg$Pa|M`J47imus1xOw5@*M*9(-rw9R5jyFRivF3PhL9YdG)a=OS9Ei?9!z+zGy;CS%&Lqy0Z{jWS19FbDu;Jvr10!v`kI`#J!jm z5{1&2v5xe{ciea2s+`UBZE{P)WGP#>1S4pmr+yJr00%N%s i?kzoPKe0gijM1E41DSK?a63JZJL+G4-O@?;)BOYA*RoCk diff --git a/ppsel/ppsel_constants.pyc b/ppsel/ppsel_constants.pyc deleted file mode 100644 index f9d236c9da4bde2164ad2c101a0f786f23bcce9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmZSn%*(YTKrb?x0ScIav;zcBl zF);*dFatGa0x?4-BaraZUrq2_<(}J zp~23s0U@4Fo<1PeAl?1}u72^p{w|?Dt{Olt1A-_H19J5<@^e%5(=$sF^NKSpP4&z3 zi?a2L%kuOi0(|^~T=fHsGE0jgq^^;ENn$#Tt!J!fs9#V}oSFk61G%}F4M=b?@-gx;0RRVsLLC4A diff --git a/ppsel/res/RES_Constants.pyc b/ppsel/res/RES_Constants.pyc deleted file mode 100644 index bb74fdaa55d8e135729cb99e6ce4749158031b7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1363 zcmZva%Wl&^6o$uXnzreM($c0aP%f)%hy{oR5-J(l)7X-4*b^(wW>j#LMl=`26A(KV zY!R=(f(@+L@CrNt@4*7GV8eoAJ5ha7V$Jw`|M}1HWM&qAua`f0wUZZQ`YXV@4kP}e z5E2nmY!lK}NJk-&LMp{}0nq}YBBDh^B}7YzmJzKWDkEA&w1#LM(FUR`h&B;jMYM%z z8__jHJBW4@O82XR^gTrThz<~4M|1sa2?|**#_~-lAqf{aF5B2Wf&%b`y&%LKk^)8s?GE9Ec5w@!{nbc~s zl9Pnbg=IR7`ogESCwJy@0cYNSGG-_)GJCkjKn?d%(%@;G$Mme}3S(=qxlfmNM5|#I3+?=JR&L3-X-S z+l(7-)-RwT6FJWMo78d}aw}PqAp*uZtOwd;@*>F8^Q;qDf=Hu|#w@uBp-wpkv(Q{i zaMNaTdrs7vzRw(fNe^9%(*~2fbAF!%CTtjdKpxJe0ytoc3C?Vf`II;P%NB!C&U|D! znCoKGhQqk2iDQ#lx=b!66>=yhG>s=IWO112{V>)0DTGz9lZz>C0jg)ien;*0wfpL56nD+ rYoj;m-G9;_Mw9c-QF8U;I!t9{WA+pvN=EYJ-!r|C^Ma$KlwkY=2<#O6 diff --git a/ppsel/res/RES_DataType.pyc b/ppsel/res/RES_DataType.pyc deleted file mode 100644 index 4a84838e77bfe22cf91b7c90621ed20ffa11ad17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3162 zcmc&$U2hvj6urCa*h$*7X$uvpP$MBxEF@w9q7o897-t(IB~BP`X&VWxR`xX6#9o`- zaUjTfO5gbdJn|3u0dUUUIB{Eq#6yC2W_;)F?991yKZ8G)7XR2?d(oBiUx5E_(2I2p zJv2}HA_I{H8A(0_n|5uOhER&O~19VLm6l1?g2USQY8jq*GtSM(JPp)jd$I z!XX{laz@t2ZUN(Z;*#BAnz;)o^Wc7qUOd8J6#-5shBulguWAAWrc)>UeRTbGxdXe8 z-a;>)W0-i{;3$y%F6pc)&Z7(yk=U0B8i+t9Xdo&wK?5--6EqN2nV^BF$pj4qEPbO?4MHj-Pzi0RAbx_W9bUjnN3F zHXuyHgq@grjZQ{(ZFJ&zXdI_m>SA0YBqVgHKJ*qYo_4(g*7?dT8Q3`1yNTn$us7~w zYN%s#6T>BHrLGdXp$QRLK^dw+0KipGHAn$F_R?%=25Pn&AkNKJ=oEV}UYIHfIE$|Y zTqIBezN5ahSEV0uP3_#3_U38V)LEB1vtO9=5+?hl<*G|eZIFw~E9?PWVV&BhxdHa& zon7g5Q9bw33t|=Tzd<+4_~yDHJ32_WZoF-uRB?=~l{!0!;}0>Nm4K#C z)u{x(gFuWr_2rk}1ZD;e0V`$l={#q?tp7NcQ_Z$uA?>c5RwPAct;k_ORXrv(C-5kx zY7A{kEeKMBQa8liEU6`Nw@T`^xMg{Kilpt!;T>l0LrwTR6i)losyxG+*9_zyu&QG6 zB-^)!zOL6?rfx>1^=8!Ugi+ku*@~mh?NHOI<9D-fT2GA$+mWW*w_g6RvlTTrLQTVt zF>>}xWX#P@)NHpx&Cu@Q8}B>K?cJ>~j>7HT&@`i`Ce$SU*1GS)W)zy&)-lgJI?L>N z+s%!37;U!VC!68cx?!wPmxpfaS}bVTVi4$}P$38Z<3VN^B#qt|na4?gY>R8MK2|Nj z*HR!nv!GPsSG`q#$qT&2nP(|@;A=@{m@5tI4J{oE3oI2^1A=*vQ*L8E!f+{wQdgQO zZ{s`~n$|*9e<8Sh+A}z`e8Vy^^em^+pt@=eGggeQ&;rG9vzd>${wl$1jqz1kn0?Iv NRL~ffy+!}t^56H>jOYLW diff --git a/ppsel/res/RES_Method.pyc b/ppsel/res/RES_Method.pyc deleted file mode 100644 index ae3558b28bf8c486ad0ec6b2b27bb2c390eb54cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3711 zcmd5zsSpDd2&8~0A*dCN6V^mc{cKW@dM0-M^ZRKX=xi1XTW9JikLT8YIMD z(TFHf)K`=^)OScR*P)S1iAQ~pk_z=J;8rPg=@f!B3O$Mx?JEi^bV~G`=t+NxAkk~r z@Y(op{MrtBb_vAa+luUA7TRSD%Km1aXL%vwfji0up}mUEZaR*G;V4cIL?Te&@rUYY z8)#+>GW~{*Mfssi`7N@FhtCzIRk99ibE3$)bPS52LuQ?wa+@^v57_x25K(!Uc@}AhLy<7LNx@ z&*Hf?56@ix9GPVDn)qk0x3ydPr!^1H9RIw9_ryP%kBC?4oEb15%>(m7=kSS~9E^=W zd(6JV-E%>gm)SjUzc${P0dx1Iyu z9no{PjHt^g=i-)GC=Q%wC60SDI6U;Zou?Y!O0iU1NHt#`Ba=ILAdkCv;Jo(A{KJ(% zSBe^&*}=#UrokveB}VkXPX(o?D1*|87;w1 zs*r)OD>5z$*Xt-;l~k&axl%2wQ@jG1eHZzVm+a~ms6MxmzKvmV=<@L^73NRTR7yyB z;et&?UcRv~lXBjiG3kA%X?Syx>pBf*MXjh+r%9gEZS%ogTq*o?kVL*O<&5tqSvVPC zD0PwM3QkM7aEYXEFj-~76^6dagmbfgkI9Ej?tuIYS9+IMI7>;)I?9Ej>eMTBclp1q z?y7E^uROS)oL`xw@YH-N2shZ_i&Ambkjp~>xrupMVPSa0A?t+;zGd|cUqn{nwB_bM DR~rit diff --git a/ppsel/res/app_res.pyc b/ppsel/res/app_res.pyc deleted file mode 100644 index fc9c7fcacd47b61a12d325db23f0a0b2e39cd175..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24079 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�MDsM@fpFMk;yzZRbwZ24QCl%XEF;E@C{ckhj>CAKg~b`{bP(#1pDU^G>hKA z4mB@H{2cRC@e7R6$?AW+y(qVKd1-_fnasMh4wG!H;z0R-N^`WHljQs(b7?5v*^6UjZOBVEH4l2Z5W+1oZ4<9TW{JwjA=iuOl{{?7H BbD01D diff --git a/ppsel/res/res.pyc b/ppsel/res/res.pyc deleted file mode 100644 index 597afabab2aaf8bcf82e7c14e82ef0f27c8dadcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47367 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 B2ABW< diff --git a/ppsel/sus/SUS_Constants.pyc b/ppsel/sus/SUS_Constants.pyc deleted file mode 100644 index bbac1ed3689d8100cc508c78868d802a78485673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1869 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 diff --git a/ppsel/sus/SUS_Method.pyc b/ppsel/sus/SUS_Method.pyc deleted file mode 100644 index bb1912791e4da36eb7873785594ee54015fadf1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4427 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 diff --git a/utilities/calib/app_calib_im.pyc b/utilities/calib/app_calib_im.pyc deleted file mode 100644 index 03ccf5b23187f3943ff5341e4fafa70820684c75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8692 zcmc&)OIIAn6|SD)IRd>9AS7h9WXl?m#aK?9<0L*wfI*fL7|9JX5sA*6X1Zr+n3tw& z5G0UA z&nqhW>Brw+;TwL1!o#nn>PoG#mQi&}ZCKKZdPZ$zlsBd}vdSA!8-2VXdYuu$RZ1-IQUORXF<=Gyyu1S_Q5M!76^ zsjLypA>#=exS<7n!yObp6eQY*YN&ckR0i#5qyhkBr2?h*Nd=1Tmx^eav!LifX@R1L zqyqI0OXVD4!!aYuSEl~~}3(Eo{62pU2!i|DtN+6G4!bznhh?8s8(tn{mz3@Q)A zmBF|&6jz4hN-nMdw`SHzTp3mRJfTRM7gF_$Y}vlVE{nCxNo`DOo&qAsdMUh)a#2Dd?H55pkD`+?=E(HSNrRMhwX-%ZeX_yEHEdZzKr-B+N#KkbN>z18=qrP55&K=h&_Ow z2+XQ&7$Gb(3jj(7#<58Z0^Mwl2*7MD)g#a^1o~w(>~|m`0Gcpkd;F0^cG7ZN2z#LOG& z5Ni*p!+y2*m8Gw$17biGUmRG618OgnCh>>G7ru2ks1625>B_;NnmoY#th%~msm^SM zf}Rr1U5jM~7QJ`m;kxo}DolwcPrkM?vXx$oo>n`9s`KY;ntnglu++riP&`pqHLc@^ z1|d^vx{*i@fTvM)fWyI7SEy6NT#A9I?HiCae0+isGMf`-!E%qUsTe95qtqj$vHM9X zcNDbJXfw3DTk4<>>s!`oQ>O{hjP>#_*#j6rR(%2uyqwM8cm3sLW}O_L1i|fNAec@- zFdczF5S(lZ{e=Cy3E-n$BzAM^@b|u9_%yZ&`#4Vh&NmFVW%%A~2B^|E4XUOyhdHI~ z7$M*fI5<3~4$ehJa{zWJRY5eDqabd@xWbtZ9ASuo6~$qIB!kcq0{}x3n-~EfMmrJ` zKrQ-R62Z!oc$hRA_TE?eJ+wtGfs23w5T5AQa3YHs@UY>Iu=YNdAU)yst~4c{gE~0o zIc~(B;|}?l^6n}xue=$h^B^+Nqa$m9krCN*Bo=7;2um}voH(s`=InRpU`9BA|LV;> zbyfS=s`q4x<4~9t$B419Fk`CsWSPhgu%l=%_fk|}Hu~1}2PtF_xgQ9&?n5keFy;Hw zeLunqKot|h2{1>OdeYU#P8O5WPWHq~g&vBz(wwX`ms$x18)51VD`C=+l}-^-Bp%sQ zK~^fHRCJ}ggt!90H)2-~(IxWaqc2Mj1`yzPl z?)cSK1=7JQumX%0pz=woXX z&@$t6iS(nLLYb1&O1UKEx|FM;Y#A>^7LlebIU<%~s|#hvK|V2+P7Gw8$uk(0FE2e@ zlVm`eQiFy0;^Wo%h2^CpPHgBnoeT+?4s#%941Hosj_U=j&92t1rZde(iYg{yawwtd z`6lCV7+4EROHayA9+sazd0bjE8xt8gOg5Yw97MQs^2TautSkPJ4G%y#R&x3IWnxaYf{Z}-EY?Pmhc;H1ywDImf6fJW3o)Wq}vBz zghnWWirYBBxkrXL%UKY4Nlqoj4}Xc_yn}VQR`>@LDs$BuvnHgxow;chtdEgMJ-}y- zPniMhvNga@W(?!5T0gd~SQGfnSX0)r^+{$Nqi$dpKOAw*x?{a-Em)T@{*iST<)_wN z^xezc2IVoUS5{~q^i~A(BEBJuy-%5^!BB9X7GKQC{Sbl=Tu@jDc@U%^!tX;2Vsf;o zxt~Fa^>S3L%Y~OfZU)41cJ#Bw-}wnfm-0lMv(DlR7DSy>L?KWt zJ#kj%mz@nfOKL2raz5ZAzGrp?MVr|*`#F-uchDXVk(0hLYtkCGeqi~|Vx>fW(Y3<& z7O?XS)ZVseott3dkNCbpjDN+Dz2|9|{^kuZ#TCJ6=#~8PD5!~H2HQx8j$?i3WYe(V zzK40bl|&~o=EX4@7iNyeWJH8|9$yCazhg~YH&O32SrBi=DQ~joqL5Q(cLirS?!V%r zK4lYR<4kRW$3Sco$^F%rXp~^Z7{sJ?T^v;I6vOyChVE^rHTwHEX!MBVp~6nlrP1RF z&BrP}Ri8(+-cu~SOro~L*uKAJ6LULFy>C&Ij*X4}4d0aFF2S1_)rm*rsX+(N!y>$k zf?~#Ra+%HNjMxgUe#}vU+-Wt>V5uxr| zr4Pg9kV0%k)5yueUd5dR&V7>-F=A{iz%9E$$N9f+Wmv#oYIg~diN1_mjiPDmw zBZ1cg%uOUl2N~LMk+wwWw#lDtC(4bIaUwMdM`K@F60oLxvN&OatY@1NhXzPs_s$Y& zP8&?{T~dUsF_>l|LK=sd* zhOuB~@+SY`(s*mq6SsuyXDMm(R>o{N$^yCLe}SL%{__iZ=<4Pe+ZDm_wf;x zi;Z1|hUx1@*eU>D%>I zsBejM7m-m1&947T$!a{4!AsbT^a*dh1kmPMV`s&rW(%!70lgdU?E4{BXD)yso7wi; zbQjo4HE77&#iy-yxBVaR6OuP&<(W(i)8%p#FZIf0$^FaaM$7Bg@#s+cl3+P4))-Mb zFIm_uLKe`55;Jo4So;%-9Gps%JTd(1Vg8KbGc-Ji?~pM+UXvaD zHvvJP`8NT>Hx(voU)#Zbk>7C`L(2_<-dPPA?YdtK+U*!iR-`BIdSUzmITxA--4rk}l)6@NRPxmhK{~ay- z{rSwxs)|4T`1>nd(U&MZ{4CW_YK66&YFKK`l2+7nYAvU{F}0Rg-hf)`Q{JHRhLks~ zyn^yhsd~R!>sQ{0{6>{0KQ<01@3ivHs5&TM3g%+gS@kES)-d;+@-8UvJa6AB^>Pig za%#Ca4t9e7;Zw9w(=4XTdKiBm`;Bd12URyX#hw8at+3N{8v*yC`%pZ%-<{RGdvKq% zJZsI_xC@oI3$+}&FoJ)YvjIvKkU*8|v60t2uIMZZt<)a4wA8+(_AD^TQDwtm0oB=d zdme18KUpqvp0L(*BkgxISq(G&xK%|K(JK_Cjj-vL>VbA!(Z)|dF1-mmTcv2bRr>Ao zrDx7!>9bDIjZAs(qmp*(Nqy!=GY?8#9W(+R_))3K)k|)>U6EQPh-TWmdIT$E+eW!8 zcd4uq%OT?_8n~f3T+tQ^9|{ufLp4;rB`SmVb5a2S@=}4)`=kOz_e({z%vn(MptL~I zLsEfyhoy3gu;G{yX{Nu`iffLk+bB&m!leVR}t%`=($S+;DRW0%F+`Ls4BHBSK%WW5|+MmgW@ zbo`dKm&0zS>e~X0j;n*PRlI<1N5CtH4RpiTY@2`KIE&?#iZfe&v{+f1om*U5)`RR= zcHCCo*ONyEy(m9fNk)=lyy}Zqpv736xn%ATdKX)|v%4@mFGQU=xfOUwEuJf|eb{lE zegr`P2JxiN-9{Hp=aZ&*c-+j9aZ9D)uKSHh=saoZ&)tru^~8)+BER8RweM*n&vUg~ zX@@~e>od5mY|nRmSNp4hhwVn1USNA6h}`vtAJ1Qw>B2_ZL)foyjIp~u%)%-)k+E3W zNtqgjT&V<*ex*V|MIWG0*06OJ*U|3?46q zSDUavm}MU5lMakylUM_~*%}jo&04BQpkD~|%V-$yKuQ2KVZ+9)8#3sI>2gF~KtHH9 zhZK-S4q%Dm_`w$KkxgRwlbdM9F#u9H1H}8o{{d$cdKA}bH9>07cW(v>o#CMXr0_(5 zZCUw4WZtTrrN#U(57O0RSps8njDP?RlX2x;RNjPilTsfijLYq~IzSbIIjs&c=Ur0X zBsSb9JHiCW^s>?yQz;#l!4;||BZIt3WPk;}K?dFwj}i?|Ej4cbT%6d?v1K1Kud02l zJ)rjc)y|iezNGeu0k!aI&)OeQJCQVrGhBG(Tl<4*Z-A68>9y!7wKb?ZU*xm&`>}?lF76K{6J=G?I=*iZ zGMS|ti)0UY8dZBZ8EkcdIyKB?7?|9=3R%O!rwAdl1z{E}_xPGjppr96JwO_}pP+I_ zK`Vea*+{sXV-RxV{_cF*Ja_elf|U0lRdIhsfS{&RFaiSnU!F$F{a+J5+)s3=@=o!;*mYw zmzC~kR7I-A-7mNfsh0 zio{Ve=3#&kk;zZD1p`hVe8FCpnX%5oiJ>XD3a`KyPbfMn9OXu z-mb~Y80bbCkzK^>BMua8iE0DJ%mE`O%_1ehDcg)WgFO2vFFQJiG80PM67@xt?E)gn z!gEHFQN+j+VQ#_1rV(S)*{bfkjY2lY?f8wruSq0{pwkOmjoo#(x>fIlkh1V!@A$hS zcI|HYwXh1=fRsrQqf4kQg|25W_%*lNI7a?)jBDf{wUOLi#GGY!`#?Hi_E3C)E?M*` z@L;k7@=bJ92%w7IZTljjrW>>bG)#S~VXGF@rM(7_NIS*hdLEL%sOoyYGeOcEj4aT{ z)+nAO#^@5|$2)~8C7qRWQOZ>*mqpbwUWm*iMOk!2EDK>5s!jrYA}X5{$UKu{Fd|=C ze7GWsfHY+W3-b$4mS^Xd78h_{L&MobNXT@U|2Sjl6GL)bF9_GWT8AxXij5RiLc-)v zLe=w4w&6(nPN0^bRh~VpJb(72yka&cGH{q^I9ExDV2gA|R&|~%JX&<9Xy*zGCTVfU zqsJ>!d+0VI-(h0rP`M6MKM~WMaEBlj8MST^C^1e1z6fNconVj#0kT*i@~+6O`$cl= zTqil|v+3?sVj#sJ*r~w4BhdppMM5~u2?^Re@~pON63$A)Z`JjN@EdIeH7zQa*~~5z zvP{6F+Xr-nMkHpPv~hxS2ZQ4DQ6wjsl@#CqlMLrQEdC+6`~wP=yJU@77p1(ByJnTF zkC9G2z;}#yxdH3EHNbCf4C5|YKejGd7xBGqOQlpruDuxXPv|N z$JQ;BpIW!jcPDoPl*g=IS*4-SYZ2D-xFQxipE6&A$>3aFcr_yri4cU~DTRg52f+#= z{XWDZCRdA_`x%^AuSeCYJoOUr-3GCO9e);E^rn$MeEr%`#F%yx6vNa^{c)yYr-10zGwMP zW2IDn@xz7hEMVsasQu8Qb*_PlU0m-FE)L-?1i6oTzs~7Q~xz%2n3ZQONnT z{S>D;!h__{&)5XnI8mG6F_73q`V{L6G)h=!3}V8%A`Yr>jA8r*Lw7c_8vXq{Gk?h)@ zYS6*YbJQ&q6f=J56K&q-#8&VK$Q%{Op_Yq0W}*XvG!~ML_-zJML93q1x{gWmiEV}9 zwDTDX6XE#USz$|RF7g^fPKFaT00w3U3;^5sE7~HSXsYilkbhKo3}~~$J8uK+Zj7(*+`_T8+J9$!Gp;5f~ehacYV(;HfKxS+1u%Khe1oZ z$Z$O)TqYaFf|=2qOo&V4-APZ}60)D9q|Lh-v*9=&*#D?SF%nh`cGQ$h2CRu2fohwO6UgQ-DgP8G79Y zZXHTr5-f-DxI~mrhc%l86rr3h3!0I`Skw6jz74F`JVP{wdmfh7( zFM#l*i;LdCQ~!RenJ7eWzz;hl?#&s*J<#^!D`S^yzcHbNZYa^8X&} z|NHaF&nhbZE8zF%xS}sm`1op7Q)-#DoT_QHrjTEp~93QMhl$dK|!lz*AGZ!2xyt87u`1=TzZmF=A zV{OHbc$ADlh3)9(8Y>|R6|x#~VudyK^P0sKT|i-!Ism&`9cp!;!7WFXET{dbPB)vg z;AeehvB-JCH&Bh!ytRb&ypL@~A5*a@bpq4Da`=8ry@dfjMkPer@+sZXCT zJagx#e$@)wku4v-KV`gXQlI?(vn;jp?#^U$-wa@dY}+80 zrJR%=&@MSk0l^K;;EJ|U1ke-!phRWBfR+kikdq4Zo|g&~-6a)hxmzkwbU`XmbdOY^ z-d?EyIek(Ae)^>{pxmXRaFGZ+75YEH1q2PDmqqkjN^OB7O&w_Hj~#ghowL%dsxqit zNGd%^r8lYcC6)f9axSR=%y#;qGUtg&(tIaVzrdEQi|o>@T}o?1QiGtDMDL~O8u(sm z)S#%qSq!|W-3lB*M$0o{qh7p>ewS(yl$y}g0>ieIXA8^IAJ3QF=@QC?>6!V3CDX%> zMc1oW12cAF(2LU3Ms5WkQj6ybZlAQg zogjiFfP;9_idSo+=~B`Z509HUGHxl?y!D_K37w~Pv*NW3%_nB090j$YVgldLW_-_h zB@=EAt)#-@i|{Y_15QD)C2KvG_eQJ z6M=cP1tWxI<^e$Iz&JLEL70z!o`xG0IT@wrG-U65Ai!Lh}G;@oYeOUcm(dX`^Nk*LgKcYS4IR1_{Y|0j%J# zz)A5&=Z}$jqjK7a1!5lLYlgA}aHL%3fdf;*sm0@ERJuv2ixYJU?c7zF#=~ZP$QYoF3!8NKTBZIt3WPk;}Mh5;kPZI-9wHmfRBcq2owj5&Sb#;if z3+k|2?fp@kE9!t4P;)O2^kG5mMbaexaPDQG4|~)>fs`&E^r+DT%+ISU+gi0IauoEK zXzpqvGqC7?Pj0R$|AxYpc=G5Qos+F}TFkiG?oqAZ=d<*?v4&P7hrP)}S=F`+r=b#Q!&ruZ5 zaXs-IcgV+>e^>eFxTnlL5Gi!%$XZ}zK=vGq1)4s>(u6E0PAi#t|C@6#AsoPeb>^PB zs&j1B2eQO*C``!qFg6ipLiK?x6WalH6z}DJhU%-Gu2u6egA5|~fne()#6kyCo|Nv% z7%Ko(LI@|oBwgxBSDQFlOv*ah6Dv)1P|TI4WTmOhN-)?MQ*T)bla8!(ijZRQ$etd_ zN{=!tIp1U@i3T6xBri!yve7_*!}x5y(ei`V>(Dowl5R-vPEc=4NM-`B)!5jOY(!#1 ziKJxAlMq276QOn;1ZrVDkY*F?8A(o-5t?O#Ov!gzjn@)|RT{PSPF<=Ia;WY7h{1_W ziDNdWxN^_=u`sdK#+Z$L$&WUwvdTIlKe=D83R|x?LlfAV>_lQ&DZtLI*9sYn$;_tb z?@LN0qa%aZE@A?bEGuzs$cR5=>||J^1el8LGU^QT>|=J~L>EzJf@w$MzKF7&LoC_< zoUvpSNj^3=+i#;&kx(3o`~C6SB92y23xf@bCJ}i0je2c=-K%U@TMfurc2I2v`yzPb zZ3i2T3Z#RzR475_71S0Qp6|>B8(zD1iU#61*J>bYBEuWOoF#AfNJ?OLQGARpS#%MI zuo(j5YT~0z2$ju#GY}c=cwt>&!|b=xsBeT-Y2N@$q@4osd>@%$RPp@4C8x4uq=Esq zMgc7_PM1hO-YJwRIjxlQQm#t5B%)-k}0y=_dR?p|jjMU{}S zIh0WK1DkQUM2=)TrDx@5Ps-1qJuNNUjfo6gD#raD2N7EKBW)SBnDoDtq|=!)5*_Vww@|5T+unHgy6e#)$wJp{%qM4ALM_78^wF6(M^p z(x%*7Bu9Pjczfj-NHGZZ$}sUr^uSJ$5YBT#f)k>Y@h(@;mvn)j+z`fH(Ld0a^$0%q^q5}IALfQJ>N;le!x2~Y9erER=!+Qt ziN1^SBYhWr_j9*Ec}RE43JryRi?E)>6|va+h#4D91}E#>%Sm}sgfIk;Dl~#0ge!>k zyAX}oY%Ol?W_Y4s4XRan1}5OU2V(tB{5M~xKaCu5mX1w;@f;!TcYlb{r6OH{`zec6 z7Bm!h9)&=$^vqqHUT}Yndr6W7RqjLH;ySa3QDkb@?&nB8-$HxTOHR6m^r#-z-?Drs zuu>|&_yNQJEMRv9)V^!cx(=B5Ev~nS@edfX_gNOEzkCZ!@vz`D^h&0A6x75p!)~NT z$Fbgfw5fyi``{3I35c0-?JQb7X<}} zZ~D}l_c;+Hp7Gd|07=qPk*7#>M3B}LvLU_0cqyz`Q(0FrN&aG^V7%72^2M6#jgmc?AC0#$VAE@xW4D7l3;~{So0Ykje^=&n|IncKim9u2d2+>b_Q5 zv5=^qj9dt|??^7<7Gln=Uw~l#27c_@861Qsox%I)-n*Z526#j$uSkvr84wetB{4+` zug931N^B9?OyuBQfFq%}V-qFEjgz2soJdWg%_Ki630O0hE8dnM>-bm+GecymduNX{ z?hN}%*!>3uYLPYsQ%yxmV-Yi*L1phJS&=?GO{4^4@(kdZ0jRhNKUQXaFtXtS`H#-12}7j5qc5msl|k9c|jKi{S6 zz*aWG9eJhrywPkozXU%Kc~iQ`3|g2jm+N?wS1wD!UoP)7{B{ku?rjW^T*`gLn!|!Y zxEyjW6rtQUi#--hwcOvK=-^6fXOQkO@1>)Z$0h~cH`4cuKK>2#4fgf+_2BBYrpJiz z=syVv`s_amSiTu?h}xI8@sKEJxrbzZ++=wPhWca)W`O}>L1X4-<{o+_>nj#=L91(%+Ai-d*|No-o1C0?0-k| ze}6XfRYk==S^Rx~Z&XF&<5#PiQp@aRR86Zjt^6};Eu;LLTFWYbK>34eBcs;(lt08@ z_WRX_QfoQo=hYe}468rla!~mr%6~`sqr7~r)K_a*kWov8vtSke4?hKso?$axGDG4b9;jZKDaGcGyda{$VmL9at?R9hfXDoqpx_ zNe3qDmkz9!lMbvlARX9hP&#>985Ud{rhVBNQSMTK`l%!ePnG^pj6%^+dRbJzrPLNA z(zJm#8M%>FFd%0LY}m;WKkN)79bn9k0ARM0PddX%XCDszSaBZYT*`e!+^b&j_* zd*{>MnDn41Yxh!g8FH^QYA{sbEH&D#O5g}ETAm3T^}+?*b_dWHV$Fo678s7LJY8I# z{d}S9&X&+F&dx0?E*Z{SS#rJlMqnn7O?qB>yqwIW4r8v*>!A@BaOaY>gSfj;H?6(- z*@r^Zos&y}hxFpL;wO(<-cArf5r9FwXvM3wF?2o|il@iJoEeXlYu@mB zhTankQjUUJP%(jT=rX=%ymGS<){S`wm*w4ut-v$EYUpFTkr~I>?tB<|>$MD5t-1vIg+RZ|hV$l9 z0-y;WmY^Jy!ELxMXJiHR18Qqf0a z*dI_6`&ge5uc1O&V+8$7?ud}`M z`@uu2iwA?rLg8vh#}6z*CVT0|D%l5~M%6x^434@$n_A&|1en~q3SA?>rwF02c@Y*O zcjcN)ppvmhJwzJ2pP+F^L8}*SmX`mX+V2B@txsAyMTlnf%Wty#aDc4(1QvKXox$(w z%Zbb?B|Z*<>qkH^m4aX@27w?r-4yN<_V1^Fk9U#!&56@L_?GEY*e3krDD@lPGTo8s zo#_lvWv*FNO=S-9$~Xx^ARlmWFs$~6W2f1NxYVj3n(U~E_Yz#;fesvDiiH)`VSyx* za3cW#rldYG0y(U8Bp-lT%=;t)&J(zpuom_|ROSPW#UX)AKmiC(?Q10wCKfy#xFMo_ z2o|I#(%zJzG;+`eY2+wKHNrjL4p2wZPJcM4A?M z610+)x4*vx(;@-lS9k4+T%99a?+A;dP`EAI!`wuf3DrBoCiVmDDBjDR9;z>Q`c}=| z9%K-?cLiHBPzwW0c}8x}#8?5S5<++m6d6*FhuS2_Vo`69J;v!?7scdM6i&q+PH@;5 zQ*YpeMTa<@prlwmvZs5(>0S>f=lgJyRPa8YYYl1Is$MzjXBjlBnwJaH-yVN@;w|u*HQ(%Tf)&?A+qQJRaHrNpCeIWLhkO zT-FKVO|IvMjrF!Mjk-%aNVSrXutk(m^#faSxG7LePs>jqm7hI*Tw1mp6CJn&m&+PU z+$SuywPS@HDYpE%@Q*qOYO?-0MHQ{k@$8p#s%(8Op0qr(VUc5(){?x z87_8dp&ba7xl-esqW)5#;Z(DpVv8lGGmx`N&i$|&=>K!r6={G z{v5K9TWIo5{IgJJNR1qc zmyWG~agdPScR#}HQi0y>F0pah(3I{2Gy=uaQ}@a2qPv1?sgea%E{%4Y){}FNUAvz{ z1$`5OM1yEl-e81;ORS=6tx zCqeuHd)sUnt!+@o5u$Q`hen=1yHD^mM~;v@^m}}Q(d|@yf+EL0(R~bjjX}xntV2xb zD-xjcCpgAmFtxMQYti4n!J>x(4-IyLEv+4oSw1oGiS|5X^{!#>K)}>&sk8lX%ckyj zl6l{vCEY1(^qa$mJBMgyO(zkJPYnimJ}e?4jcUekdaTXsjQ9%9f$XCKh160((#=DP zv>wu%_B%|d!um$4>kTlFpV(IKv|o%E0cU>kqM zSi~oq>N^YMA6Fiev0mlzd=t;rF6!=LLaK=vb>FG2SV=Tbk6sA2x1<*d46)=kGC(nZ zgFN>24W5+8pOQ=kI=6d+0ge&n9m=6B1ZtwTBPEDaVbg zq;#HWP14aMmX-vpJuz8=@B~ zdR2J$Boz{T_OKmC={zFGfmxzbzL+GAqIoo_s-8FTz5_}%n}NeuG)`D|P)%1ho!$6t zQ5ZRX7&U9&Uf{DTPnWt(c}s->v^|Ptp<%t3WumQu$QCb8x~i6R{WP^~U(VRg#iu@tqq!&1`*n1XJ=<6afFkbk5}ov&MkcdVpq)zgBw&*jVdT^s#$gfVN1x!{ zlZGEwL+G!<*P%9b$UAbB5IL{HTFqGxoLVC??}>IFqOK0>?ckSE(fGEGmy{W$6JCA^ znCAs5zQe3$;_Lxn&bv9FMnrvROp$oZfHh)0V#g+6FXwOf{QJn@Z(qOgO2gQnUi|w}9MRvR@bTxE zmN6@7-7zbUv=>aPV3uu<9<$Pu^e&o}qVaKxKUCyzz1OVt8Xtds($a7I0mDX|mW)4W z{2}8H8-GL^arKZ{88H4~vx2LmW(6Ha%nJG(F>hfu=y}wvVNS<*`ld0jtc;l8knzXN z?Skoi-2{i(x-x2lVH1p+Hyz{PpUop|bwYWo>eO+(Ve@<{Mt{*!OLxc)1@ z%%4AcaUDbP^KV~S|BFB8&%b=dwiuJNqeGbPv#e=IF-1FqSJ22@enHQ>FsTMH6Gx3(iL?x z#UgqI#l?;GR&a5>8P~&TFz8LL<7jIo(Sn_5se!SD{Mp~YK?qXbDPwE%m zf8p7S-MHCm#?2tQD6`TMbGxv;D-V@coIl0K_3@#_!_Khd@r4>ZZP z2cV)x+ z%heOcAD7Cc@h7Bm()cH&a?1ECvK4$#WQhD6?k4fcS#(!KYuJPX`l{3b7 zrSgRF&q(F0@t=?i-uPf6{gG*h+K~f0U{thZwSFmi&F<^gI3Q0xQo-IWa z_nOTSA>-o_oQ#?`dd%ziE10oQ6wIAh49f)>a>&Go zr7}t(!5nV)n9gsp&LZX)*ErR-YR!Hogj>J?G0^N4C+z06L|G- zJ@6?0@feEo4bPjcEZ4m0%G_*iVfxDKLNz{t3lA8zP+tvN@#KA@ZdB%%lcA&8&>MI= z9Ws&|!p>EZaQg&y!%`YkEl)4ZSLSM0r_0Mrp3Wkf-qjlm3pI9_t?3PjCL*0z@!IW9 z1Ogj#wcd&XxmVoW3fkSc)^6Y_f$x!N@h+h~Vj(1@Gu(A}s< z?rIQ(>8M7l9R)tx*4i>Ma2u_96uCZ_v(s(FQQ9*i+sz0YyEDzm-ZbzBD?$*DVDC{k zh=PE6xEF18MSI9IYC0LwMIIUTz$nBy)$sUMttJaTh;!3>*co*OoIWK;4_eqwu73;U z(Y4=n%w~a#05AdY_lrb(Ug`lr^f>oEN+DN>0-0uByGZS8hxQXvCO4rMdJTkrQvhpo zNHlW+!yV_&^XBHgZzi`Grox_i?Q6s_dy5eQ*yJYELtpL|Krf7!Kj*%VK*{u3@7Qr5 z*AYng@H+x)(>nqk_jf$1bKLiu$C8eG&3opiohOu7QC|qFgJm4!dn7M$+~{KQ!niDu z9W{}=a3X(UQZ9%+$n~_{Pa0h@o}S7-KrfW!$*1K4)NXZ(AQw>xQ%+B@#syNfR_l%1 zkqhx~?>7DQASV%mT`huZbcD>KVn&ln#YC{a8~Q<~)eHks4I&$j_SRNC^dm~lB`=7( zo$zu*9K5t#U$wQDg5ApzIrY+&ZXCD6^Uq!uY>R_?G0Z(o@Wa{3P@}j7nn0gxm4+NGAYuymw-EKwlI@|RQ zwV{amPC5n;A=X!xYD-sZ*O%ri&>n1<4dc#kSyh|7(JBm1!Tz26B@Cx-*(tYzdgoem zeWQgV7S*?>-%@zB-RSB>yeo1C*ajGAPjDZ;TynY;Vu@o?>q;C}>pMZ2hAi4zf!_PR zX54^E8tn`1x<3=F)w``&M#ba2@dGYk2*G44h@v_eh6Ip_Edx`NH|IU|MRKheNMyXP z-M*w)B7&U?tGb9nM&+xGI)J`)P{8UaG&!b{xHixq@u+>pvE<)G|uXNKsD_#3?Enkq9ezs6S=KtU<;>I;G7NJ)+1;Bg( z@B}D^WZa!Em{5Tk@XP!30uadT(T}3Y0Kvk5pgUb7cS6j_!Bk(U&1c^kTy>sX(f*ep?T^ISD3+e?lYTk^it;eepnhU`0SgNbMSz2d^z)cfD(Vm^u@M9u2G=g=lbn_j7gKHnrz>L%)sy9o zpmBRyy)cRYsJ`KA2RlHE15+*^!4pBqM812Rb54&_bj~>Ag>i7o{e0r1^AEx&7)P(` z<%ItIVpWRGPx`Cd1x5i6Iq0jdS49a(Ee_xhI&Pkf7p7=|sKkca&JWrO^d9A)gpwU)5$OU~MAhm#WlJPHPaWJ8^`k4p31plIi!r!&uxs>wOyG++ zBHFNAqcI#O@{E`|^goFXvFaMZ79b26>?v6>ICly-K$t4mN*0RXR1|QErI$p#xK`{T zCeEJA1F3#ew!9M?%cg_MrfJyf;Yei-QCAFn01xejb|*zOF<>fFjOYqfw1Utp@kFd? z*g$K|&X(E{G=qU8_J(`HRkOGx^o_*^xv>o#3v5S;A00vmfLRVP)q20$Y_-%XXW)IW zB?5ti2XSS;$lOB50~49^c-XJukf4Yu9`6}(iiP8d@6ZMrC0mfe$+bkzGJC#;Vt0w0 z0WE+Ky#{$e`I*;FN!&o2zy|%M18w9;&=Q_7V)_~q&{!x#0&4Z4p27zqfm8~z*vW#+V$(X@J&|D))@Kr-9Ewza)lxaxvuaHY1~`#=IS`ix;X?$6 z4(z3Cc;X-9P&=uIpd+u$+3_giDD(PXqEPS!>#!ooEGVo7P$9vXR&p6e64yln?BFS$ zfZGIg;5#W!**mEVm1)I^b3=Fv zx9c?%lbhId17YrbH9;}mdPCH!Iz=@Z@%>VsPVKGw8Wk^huNu~TLg2R>q%lqx=1PDd zayn9VHrY1;KiXT6M*R^n0qDp^TV;xfB_cv>W0XMMCgq5WxTqSP5GUR6w9fAIOj*pU z$XjL)vXw*|cG3`reRQV!1sY|ry`(pgn9J>8H`?7&k-fkhQaOrf?o*2%(eGe2;RfXDtFj)<6SiesvmIGI!eeh(-2 zUZxQME+O|*{m)YU?>xPg-0q* zAHoFwk+b89nBq7T`Qtdool@Z_%2SEixW|(DEV_bS$QXHV;;gi&MU%M_U>EBs+?DGR z$lB8)5!B4Bu)2PKg!Incgc&qWDsoIFjvmeo43EDPGpM{OOPs>3Y$$!t5Z(i!&?)L@ zk7**JLA@2!B-#$j?+L-@$xHj%qlWQlGAVzgT%mM7ccQa@o3eu73S2c6S- zEG6ET+4DUpQY^JfQuUw6u405}%S)NYdk%wAu}f`@!~#l{6oe322WdyRAjYh&i>a|2 zv|!X*+lK&_Nto>UXb_r-2$Z8-sNz8VE*fhkkkKafoaBx=S1vhz@D=1+r3)jwPVPps z?c_Gs9kkA!y6c4H*r#Xe-Ah7 z#)aF+OmG?xt>C`xSOFOC4Cd-FDNgoev$(j8#7n^a!6EfU3=&bOEP0F53&~!i#L;yh zR82`W=yUri8mM6KEWgXbh~UA8+PyhUW0C}wKvnSxY`%@iZ{v}Zl`*tbM(hs74@g%8 zptzCXrkil@Kv%{Byer1PmcUceoTvXIAnF2Uf9`=qC4%pZy&SP0z&~bJXIh=B!)mb;elbN#LB3RTB0p)X@2bicc;$E z{aGth{672CKS^%C=c#wTl{BYM4K>=J@h{A12vf9HD&`}`2{Ck^al)O9$U=7qxuOUR zz+7ea)BT8Toe2gvHCk4`C)lj^hlKO{aZPpNGpsQjCQ31Vy&qG(d+H)?lzzg zdpn(O;7JITP^w!sk4kgWhPp@=a#2CVQu5P=or%JzL@t@Fb^^I-6NO`N;Zv;OvWf~g zhl;9z1h>V1p#l&tvbIT8a={`xj;W-30i0cn)+C4SSh~%~4cjqx&9Hx*^?d>(6}dIj z3_HxOY%ybBOmrtjVV`mL2n6zDn8h`&CJAebvU8c>Yr1B%m37VF?9m~6PEOTmSM90J zUbciG();Lm@l~^oZRVWH#+>Xi!V*i;`E0u6zU8BPu{Y1aZs?t{J1*?t{RE32j@7(@ zsa)r34xqwR?LlZQ;Xy(hmsoi4^QhdryU%%EOLFdd=s62|>E5q`3cY8$)HWjzW{D<- zAQKE&$BRjB-sEv4)-bis4nhK+20;_=8qYWc7aDt5X}q0tPuHK@78;R!fVC29l%u^G zBiSA~m&gKkkp}iK^w?e@?bTixhfDmtbA)z%B2VN2q5m}J4swAe zB3Q^6C-o#llj8L>)!E!N0C*MftCv7Z2-E~xk=m2_OYg<4QmR#vMEl|&j;I5 zF)H(vL_Y{FRnoK{fu%Ep;?29as*5+Qi8&QLqmYHnSn{rSn)4Qk#)Cv%gx#&xpi^tF z*{s;e^Vo5V1!EPD0MTafSa5YhhrPMiJ>xrWR2$wimCirypTi)y zievDKBMkOeWnVOU3rmnOk?f#~@LL5JZ3hkU3*FV-TzgH4|6aF^t&7gxW`wNmY^;re zs`AVDkvM^U(%fz4XVOR0DVCpzHi{Be#m8Kbk_%kaZE^Y(TST3M0w36Y}O&XUc4 zv-&NQBH5*G$U8^bdJCMwbt9Z^f zg_35GDISH9*5{nT{tCiKDBmY%!*bS(YxhGYDFCSk{3&AU&Y)T#ncYk?HsvO`Jl4X% zE(vU9T@ZH-(1=Zxwu`-y?RL&&i=M*hz2=5pG4c-yXK!%^c-Vu!YI%qa@)AxT0oMHt z9{W>VR<$>{bauy{QjzK#1|SI-SVC-PB86k&{x35`&miCk86-RulL|uYveq?hjEYj~ z2bKY)u0bAhdgv@3@t~F0MNhA&@KH`??*9M-Drf>%pqQ*z%nv=TgG|^|o$3P`LTBhaop-Jq0& zMN??sr(!yng_@d@L~{UIg)|ciac>bfP|L7S_Q9>Xp%zkmd>M~UNm8|F+^~Dkk{jWM z$X2(Ti}`?67zFs{62gO>tnHwKy_2onPF9BBj9VpJBwPC3m#a4>&|-`61y_MvGt54R z?rL3-faOJCYApFYN^Y{bLZZ-DtP4WigJ93ThGuklKgV7ibYMvLV|duFlK~_Lt=I=M zP;sqrUxdNMX1)#5}?R66k6csnXvP4m=4wPaMpb;`k!*NAu zuMrN)CpkesdSL)l9f%=u6A;71Io$z~YDhFZ26l(5fbx)KoFXmGd!OGozfW?0Fj??r z15zG1PdfyVsCc5!wy!%t+4om;rA1 z77uW5+|>Pvx{U_DkXY-sU}=D_pTrp133p$2Iabpkcp~3NrWVGO2S7FvQQCEz{73d% zUG!{{KjcdqILtUDwpn=*8{=u5=aMNh@uB4d@!6Y+wqJ+{mtq9qYv>^HvqY%GQKPuX zW$fBxXBz;6Y?n=Zn&N#LHBTI}&#)#2zBmTlHrLDz3Y_E(G{xQmA;k2sQh8uf$UU^* zrxcz>g*%je$OTn797V=sFJy7txrcvc(}kYMUu~cU0oBAp-cQ+7*iIZyu=Ug#L`cjBu9nns-2(`XZeo|&R|u}@Y*Mok3UL=AYN&=x`vX)C2s%zD*h zxk-4U$TDk1WbV`G?uk5!^odZBA+wD%@c|OOChxzer5SE_W7TwD?@QudR3;V*#Nzex!%HI1Y<`EeTAp3^l=NP`hcYOD;P-j(-Qn?BU;LcU~=;P3)FLv z7F9PBkOuN2qa=)p;9oUwK8SmzOhof0;hpb;<+#rcR_@?GlGsI9_pWA7soQG}nJm!7 z)R7z`B{q$XmV6wy@@NKTE}8~L$W@OjO4Y)%zfMw-#Z2)moUdY`LFGf3Pi@jq;ba%8 z9pn(z4ohS|?7=oc?C=)0-W35Ev;+YqXaNk;paftGS8-~Q%a=ZyyTReKJ7BO1&`!WP zAw6NY$k!>A?@RupLzrqJ@WdEUffD9UZ^1wf+(C64M6gAiDV}O;(u6EmX=~c?IYlX= zDYD3QQCa*FYro2ZTJB&)jLh^6(vA4WwEa;WB4QA;#Kb(N1}3T5gG1EWWmG^$8kBpz z3&1`aL0)S+J};!noC;73#Nbvo?-lJ0G;#wf59Yx4eV$$l(DFY{)+U zV5{BP9h3}NFQX3em67hwVL?p}QOIlT;;NKjqy+kDR5OcFrim6-u&}@>FD25=fIbXzwG-B*ua)4@qG9 zA)?MUCi>qGrcPywp&kGYoaS0s-wJ9qiK^9V$biBBf>Nu=|Nr1IyUTl=1>+L(rKY#Y z+DBMWvOJ~&c;{KnvyhCfXIXom1&QT-hz0eEM+(Tsg(NrVp4AH5KE~n(3+^I#Gc2yM z5QE_**63GyG;6(p1##RH4MQ&U__7(_OYQ&ne%PGT20c{ zz4!3tegTDe5zDvn-C)oW^j7zWPPTW91>r)?C_;ip3qHph4SSib_nW9mrr7drk8&x` z-IGTUWBg~Ubq6&C)R6?}e!-$EaN9lw*M(y{NEzu|wrGU)sdJkn=@ diff --git a/utilities/calib/calib_is.pyc b/utilities/calib/calib_is.pyc deleted file mode 100644 index e624138d2c02d75074c2bd68e2ec928385d26e3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19519 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 X$@Rf{!_Q=)aN-92A%%}y=X>w diff --git a/utilities/calib/calib_vm.pyc b/utilities/calib/calib_vm.pyc deleted file mode 100644 index bfa79ce574eb10cfd5d4e24831c34d2a5849bbbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20230 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 diff --git a/utilities/calib/calib_vs.pyc b/utilities/calib/calib_vs.pyc deleted file mode 100644 index 462ae32d3727431267feac02cddd79c9f7951802..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19478 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 I(XEyL1coSby#N3J diff --git a/utilities/help/app_kbsc.pyc b/utilities/help/app_kbsc.pyc deleted file mode 100644 index 64c73089af9e9c207b27f928c33bf5d1881378f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2344 zcmcgtZEqVz5T5l*9J@}^ra*;2$Wp#omB^{kB2gg(wnC{IIpu7X#9vP5yNkWf`Odms z*RfPSh2O$I;}`G);F&pJ5{n}ELhiid*`1xYXJ+@xf9y1VdwqBo(E2Ik|2qux6-bDm zqL^sFT!~^uLq%bkekB@~D6CMpMPZevS43ySGH>d)Yf#mH;%O^zmdWFucwm-C7sKp; zSke52=p8|kMdmR`qlKrNMZS$%ucB2a^|P?mpQM@XF05&#qiGaa*_69rkFPrY?u&)K zS-2RP;AAvyLqc zQ~;`k5g38#utILXUBhP@_>HCp>=Qh3V`G#~v< zb-Pfli)y`4g)gYW06aFx-dn3S3$HsA?ozl%;e84pP`FRw!@@U29~8!RV7|(c?aIpT zrg_{j|7QNf|7Lzq%!AdMHZMB3U|9bBwT6(Zb;=DC)G z&Rv#fI!df&W3qD+>G8zs&v?$;aZKz)f67zdGa5@6F>h*#+g+?)njlN#I7nwRKM5@_ ztu~f4ceUlKcD<+lkQdm&u|JApmqU?M#u*%PbVovemebr9^CLe)s}TKo;=UZ7^akG_ z=fcjZ8_hZp@-_PA$Q``wUW?AwBDUBQi+yo30HA`Hi7c8ApQ+9@w1UH+!$1ieq{+D+ zOR$%3b+i<2#hiRFec`N diff --git a/utilities/help/kbsc.pyc b/utilities/help/kbsc.pyc deleted file mode 100644 index 19f6372851a626492657516b0b6d9296684b7c01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3566 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 P>Pyy1-lKK3sw&R!l016Y diff --git a/utilities/settings/app_settings.pyc b/utilities/settings/app_settings.pyc deleted file mode 100644 index 2ac1d2195371d5866965a768adaa85bbea7ff8b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2044 zcmc&#&2G~`5MDcJQoAib0#P9Zvgjp3A{HPHNC=@;r5xH4oJys=7-MgpZR2(19XC{J zPvu#7GoFA4fSK7Cihu)`l4L*c&dz?``F3X0`nu$Q9`yH8G5fUe`4XFXfRN$O5n~~C zGFN;OV&4&2OJp69wP|=R#NNIuvNdnrJPnjamieheMfy?^)6XbQ?+lrE`O`*0_kq@}d>TqDNrfBZQ-} zkYTPM(Ps4QX*eybqtG1d@ZDhZO|%}qtyFC+K71TPk~jVSlm4Ty1~pcoqzTRJyld+6bcUIT3}&GLV4=tJus6g0yl9))hr`xP$6irQ0GJ_J}K`RZUx? z)gA)6Z@flV>to2#_dIhGpN$p)37A$g0hw*HAXYHin~~!KYr?@L2{n&ziese}#4+W8 z6{$7nq%Mw{#t|-~;nbl7i8)OU9m+KagC6$C(Y!*ycsG+;rz4pK2US@FWerAUGMH55 zF+Q^(L3>ij0LqyT!Bpw2oCeASxjL2_DYlsqI>fqBmGuN}VK=tAHBwGhmP;_~8j*hN zUnB-(b=fk~5&ycoT@LC7ML=Ot-uVuv4W$Li&Z2(74k~ztHSCHrm+BA&MrpC6QEV*f zQ?6w!?{lX`+Pm!FibKrGuE^#^<}vyL+5+ap^0{a^f2CPyXgW;OX=oPzjb^E#=`u~X zp}F!$nvCw0s~G9Fx`(Jp0ohr-R?c8Lqg$_j+_-KqAGl#sZFG@Oe-v9sr diff --git a/utilities/settings/sample.pyc b/utilities/settings/sample.pyc deleted file mode 100644 index 2b15db8a074a43b83ef3e7853bea1bdc10df912c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6130 zcmc&&TXP&o6+Sb2UrUi<8&||7kT`)YsCaR}RRmmsEen?^WuuG)wzq(($xcf<((KGK z)3PE;<^lPU;*D1x;eYU#_yOVjPLFnFr2-F$SG(J1`}FQlr2 zFHy>W0L1utl8Q_`8G7Oo_a*gZQj=lL;WbI?GHJ-L;qbboP1)hdhNLZ-v}M?qNk@hq z^f%>&$gnGMODk6-UJ}!la9Q?5E3Zl1mUvm>4hNiyJRPn`j0xztGHY7pyzSl!j+lIg zPtQZmwgGnXX=Wjx(Q{tM~mc(_!Q}MMG z{URP{0NXH%EBInNa^lM=))Wan$wW@vc3nAWN%1$`x-0uv*p6WyM!3^#_nJ7_01Kcc zIxxHW=+M#h_`~qQ#^%P(M)>&A;K4_aEonJQVmr2+GB(NH*lKkWmDUu!B`(1(#~)p? zOtQVy*gOl+F18M^Qydxa6C9HQ1A=M&T4OKg;t;}7oikMiQ6Up~wF zPqsEc3O4#57s+Ai;Ct`)ZM1h*zxAVAxBG`SNfVoxvJXwLAP*JQhg;L*;0l)K8O!Sc z;&=QN@0xeR>*D_^>%J-mm4oD{V*DPJN?4v8G^KdElFUBzVJ<9af@%+h2h}<7rFg0> z^?8M=1J!^ z$+1$GU|ZGa^V0b?W`o}lM5r!}6|7X#7OX`6)-h(FT(#WwHnUXNz0&NK|EbYW;|E@3#yAwT=j_ z&X=LMc@~OW>ZUhUquOlzE7UFPRybyAJV)e)#&tC+JKb|p8X3X<64&Rfn105oAYESY zH3H&D3~&@XPLaC=^m3p2!{|f3aL-nokeY$eNd&sOr!tO4CoG z(Se3oM$z^A=TxVLxz47!ik>2N`OsXeUbR9|n}3Ei2&zA{oOw@}(5zYO67%ow-NQ9~=D0`XtX>JO;Evm@Rxpd<{UnC0RyU)&H3bCdbtUe+!kFdE*)k^WN7edLhcuu3VJ6$r>Y@%US5m7n^Mb zKf#vNl=EJg1kKdwHjo)n&?nLY+N!1*dBp1%9U6mkKw-Jys&v0Y^bUYt-CUUc1yPiR zB+S82u~CFlWtXeC#eQCvjFxkQk+|3(E4f{LoH;deDbmiHX6F2~pTlmm(5ins=&f8LPC*_za0>IYpZ9^!4Li7XGp z8Ycj@eXi;UrSEfa_S!6s!OUq z0wm;fLgm$`pSf+hYmzP0(LBmx^Qk(Txpwx*n7KNt`_h|+x~$OMZ^^ij7hJvVX@uTE z-szU&rBGcI2P{sVe}HXMl=7PZ;=fU=$#riJB9{|6`~<2^2xOPyNvZFHKb5ndh4+1uki zK!fJa0bU7B5de3&q#YL~it(uDE?11WcwG#gfZP+Lz5(llUx=7n;t|o7`lz#2m|asC z1nV-OJJEZWdu;nU(KP~Q_xgJtQrvYf0zapg>r>^b$8XoW;dfr| LbnpmNzjp1v>nGrq diff --git a/utilities/settings/sample_constants.pyc b/utilities/settings/sample_constants.pyc deleted file mode 100644 index 484a0adb5c7fd81dd157b95acc2aba6b1a9f8543..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274 zcmY+8-)h28490WXDnrm)U!e##%&`kWM3LT=THVEFZ=~2mJ=i~DQe`i+7u*XhhdE?{ z{PKMvByqp{y{{zL9pE00)P*FC1UZ100;CGGf?UDSOPzntwJvwy&39$oNPqTm6Ni-5DdqhrodRy5F{P9@3{3{w&On-O%9MHljcY535?M0dO)_EV zr}h*7f-n3*egK?vSF)|7(}7`d)9&@%horsto_p>}r9YeXKh~G;^;Gs(!ta-8<~N8w z{(CA`>JBwu#h&VTG78;S9Y5Dgs#D7Kvg(vYFR8es1{Kw*Dv#HfRa{nsIn|kS{R;0f zm{*;7^sDNTQk|OWA-Ji8B-y4R`m!5ghQwiEq@zm^BhQe0efdKLOccQA}Y*PlcG z+qAzIhsF(5FtEP95ym}UMhktkRWx$}!YZ{R4}0LLUp=)0iLR$S>$4B-0Tgb6mzx(M z>NOqOy-{M$ZuGiI5{}NM_jkgct=C$-y=_2rhr_^x)<(&evCm+jHwwEp+{lLRMoB+C zu=AM6hupQ??boC3Ae6hL*M`G<-qtXc=Dij=N`(0VT6;Skgzc@!b`!Jx@zwT0I@)cU z{iOZ<`Zu@qSMA%QXwNu#>Akk?Zsq#&mF3IrJsZW5jY88l+5X1L^6*f0nNKhhhTB%< zhS&5Oo@M}g9N-^ayMktZhX@f<0Sto+w0II_K*bjYI9X8rl6nMORS6I-0{|+b%*!l* zf!Uf00fafxPh{}uGzb-5(v+2TnLQ~hPl%42H)O%0>NiC>C9@}Gc1h`t)*^P<Kmnz0NMO%7!8w%*O``%U?$;n|1u0CCvxPw778Vl;0)`#IGP@-J!}GF$}+EyK&_NYiGo;`XxN-Z8XC?R$$dJDV5L{1bza=)hbt&U~M4O;y}0StI-v@ zpv=CnKJ)`$B@VP6oWT1ynu+KS>FaaQH0eMy=tsQZvU!HVwuEVVJ+ws(>Z|(#n-EK*ZK9!|_2$NTN@DV1QHz#T72$|6k*Jx6P zZbC@D_CsSw>ETmJ2{}ycug0kfi+;L_-I0SLg#1t;b=Y#BU1$9>G@fsfW1zMIKFe=ag5=O-+;`FiUA^G6Bd>}@c47_@6Di7X5 zUoTLw1W(yZ)^XKzmU%$ZV;*D$dj;K$|Cj({+i8W^{s78j;18Y{{g|IW@+1H|IR22T zCC7Fq#i87wq;^=irsFq06=^GHnsT zX?hDj<(Q+!S@$ZIx*%o8Np}34g@k#ycC96(BVfFUzW7Q=CvpyYDx{-XoW4WLaM;XE zBnHPO{zGD6&K@NezV-}$+Dp?n@)5RM$*X6Op{ZVAef2mgdkWEJ-eFpY}KFy~Du2QNk$nhO<|m_}utaEzyH zNh6<+yEEDgHIK1EB(6ZSO6P3i{K%cl z=}x}`ZI*83vC6SW;XsaTSBBwt zBZttKG58Y3)4H5SJZjmi_K|ZtKYjGWi~%L`akOct@+K?Px9;!EGQ3RQ{TtENc8q3S zb=#ZRT=x*q+-Ckt>TrY1lgwtxn5mLH&Yh`}AdJb^ApJhYC5Vabvj(*$x_&{+D54JJ zHodhLu`VAPf*`^7t00iKtsrpc#URiu5As4MuRE^(pXZoZ#xtJ2z Date: Thu, 29 Jun 2017 18:50:52 +0530 Subject: [PATCH 19/40] Added _setSourceMode from xsmu.py as it was necesary before calling set_DC_current/voltage --- ppsel/curr/current_measurement.py | 62 ++++++++++++++++++------------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/ppsel/curr/current_measurement.py b/ppsel/curr/current_measurement.py index 4b39879..cfbcfdb 100644 --- a/ppsel/curr/current_measurement.py +++ b/ppsel/curr/current_measurement.py @@ -34,6 +34,7 @@ import xsmu import csv import numpy as np +import multiprocessing as mp from XSMU_Constants import * filename = open("histogram_data.txt", "w") @@ -41,57 +42,58 @@ def set_DC_voltage (xsmu_driver, value): - # mode = SOURCE_MODE_VS - xsmu_driver._VS_setVoltage(value) # autorange = AUTORANGE_ON - # range = VS_RANGE_10V - # xsmu_driver.setSourceParameters (mode, autorange, range, value) + # mode = SOURCE_MODE_VS + xsmu_driver._VS_setVoltage(value) # autorange = AUTORANGE_ON + # range = VS_RANGE_10V + # xsmu_driver.setSourceParameters (mode, autorange, range, value) def set_DC_current (xsmu_driver, value): - # mode = SOURCE_MODE_CS - # autorange = AUTORANGE_ON - xsmu_driver._CS_setCurrent(value) # range = VS_RANGE_10V - # xsmu_driver.setSourceParameters (mode, autorange, range, value) + # mode = SOURCE_MODE_CS + # autorange = AUTORANGE_ON + xsmu_driver._CS_setCurrent(value) + xsmu_driver._CM_setRange(CM_RANGE_MAX) # range = VS_RANGE_10V + # xsmu_driver.setSourceParameters (mode, autorange, range, value) def measure_IV (xsmu_driver, iteration, mode): filename = open("histogram_data.txt", "a") - for index in range(iteration): current = xsmu_driver.CM_getReading (filterLength = 1) - voltage = xsmu_driver.VM_getReading (filterLength = 1) + voltage = xsmu_driver.VM_getReading (filterLength = 1) filename.write (str(voltage) + "," + str(current) + "," + str(time.time()) + "," + mode + "\n") filename.write ('Next Source Value\n') filename.close () - + print current, voltage return current, voltage + def setMode (xsmu_driver, voltage, current, voltage_step_size, current_step_size, mode): if (mode == "VOLTAGE"): set_DC_voltage (xsmu_driver, voltage + voltage_step_size) current_new = xsmu_driver.CM_getReading (filterLength = 1) - - if (np.abs(current_new - current) > current_step_size): - set_DC_current (xsmu_driver, current + current_step_size) - return "CURRENT", (current + current_step_size) + set_DC_voltage (xsmu_driver, voltage) + if (np.abs(current_new - current) >= current_step_size): + xsmu_driver._setSourceMode(SOURCE_MODE_CS) + return "CURRENT" else: - return "VOLTAGE", (voltage + voltage_step_size) + return "VOLTAGE" else : set_DC_current (xsmu_driver, current + current_step_size) voltage_new = xsmu_driver.VM_getReading (filterLength = 1) - - if (np.abs(voltage_new - voltage) > voltage_step_size): - set_DC_voltage (xsmu_driver, voltage + voltage_step_size) - return "VOLTAGE", (voltage + voltage_step_size) + set_DC_current (xsmu_driver, current) + if (np.abs(voltage_new - voltage) >= voltage_step_size): + xsmu_driver._setSourceMode(SOURCE_MODE_VS) + return "VOLTAGE" else: - return "CURRENT", (current + current_step_size) + return "CURRENT" def main(): @@ -111,12 +113,22 @@ def main(): set_DC_voltage (xsmu_driver, voltage) while ((voltage <= DC_Voltage_Amplitude) and (current <= DC_Current_Amplitude)): - current, voltage = measure_IV (xsmu_driver, iteration, mode) - mode, value = setMode (xsmu_driver, voltage, current, DC_Voltage_StepSize, DC_Current_StepSize, mode) if (mode == "VOLTAGE"): - voltage = value + set_DC_voltage (xsmu_driver, voltage) + current,voltage = measure_IV (xsmu_driver, iteration, mode) + mode = setMode (xsmu_driver, voltage, current, DC_Voltage_StepSize, DC_Current_StepSize, mode) + if (mode == "VOLTAGE"): + voltage = voltage + DC_Voltage_StepSize + else: + current = current + DC_Current_StepSize else : - current = value + set_DC_current (xsmu_driver, current) + current,voltage = measure_IV (xsmu_driver, iteration, mode) + mode = setMode (xsmu_driver, voltage, current, DC_Voltage_StepSize, DC_Current_StepSize, mode) + if (mode == "VOLTAGE"): + voltage = voltage + DC_Voltage_StepSize + else: + current = current + DC_Current_StepSize print mode raw_input ("Press enter after observing signals") From 54365ad8ba8a4fdc113ef5a9a1f8da25c799af25 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Fri, 30 Jun 2017 14:08:51 +0530 Subject: [PATCH 20/40] Data aquired will now be written to file --- ppsel/capacitance/current_measurement_w_tcon.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/ppsel/capacitance/current_measurement_w_tcon.py b/ppsel/capacitance/current_measurement_w_tcon.py index 7cac500..55094c4 100644 --- a/ppsel/capacitance/current_measurement_w_tcon.py +++ b/ppsel/capacitance/current_measurement_w_tcon.py @@ -6,12 +6,14 @@ sys.path.insert(0,"../../apps/widgets") sys.path.insert(0,"../../lib") -import math import xsmu import tcon import numpy as np from XSMU_Constants import * +f = open("I-Data.txt", "w") +f.close() + # Set voltage source to some value # Call function to measure current # Loop over the measuring function @@ -25,11 +27,13 @@ def set_DC_voltage (xsmu_driver, value): xsmu_driver.setSourceParameters (mode, autorange, range, value) -def measure_current(xsmu_driver): +def measure_current(xsmu_driver, iterations): - for index in range(10): + f = open("I-Data.txt", "a") + for index in range(iterations): current = xsmu_driver.CM_getReading( filterLength = 1 ) - print ("The value of current is " + str(current) + " and the time is " + str(time.strftime('%H:%M:%S')) + '\n') + f.write(str(current) + '\n') + f.close() def stabilize_temp (xtcon_driver, tolerance): @@ -38,7 +42,6 @@ def stabilize_temp (xtcon_driver, tolerance): print ("Stabilizing .. \n") while True : - print ("Loop entered") history.append(xtcon_driver.getSampleTemperature()) if (len(history)<100): @@ -68,6 +71,7 @@ def main(): DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V setpoint = float(raw_input ("Enter isothermal setpoint (K) :")) tolerance = float(raw_input ("Tempereature Tolerance (over 10 successive readings) (K) : ")) + iterations = int (raw_input ("Iterations : ")) xtcon_driver.setIsothermalSetpoint (setpoint) print ("Starting Isothermal Run.. \n") @@ -77,7 +81,7 @@ def main(): print ("Setting DC Voltage.. \n") set_DC_voltage (xsmu_driver, DC_amplitude) - measure_current(xsmu_driver) + measure_current(xsmu_driver, iterations) xtcon_driver.stopIsothermalControl() set_DC_voltage (xsmu_driver, 0.0) From d02463dfaa4c2c9791cb0cf7b312788f78f77cd4 Mon Sep 17 00:00:00 2001 From: gitansh95 Date: Fri, 30 Jun 2017 14:36:22 +0530 Subject: [PATCH 21/40] 5 values of voltages are now set, with multiple measurements for each value --- .../capacitance/current_measurement_w_tcon.py | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/ppsel/capacitance/current_measurement_w_tcon.py b/ppsel/capacitance/current_measurement_w_tcon.py index 55094c4..cf7b213 100644 --- a/ppsel/capacitance/current_measurement_w_tcon.py +++ b/ppsel/capacitance/current_measurement_w_tcon.py @@ -21,18 +21,19 @@ def set_DC_voltage (xsmu_driver, value): - mode = SOURCE_MODE_VS - autorange = AUTORANGE_ON - range = VS_RANGE_10V - - xsmu_driver.setSourceParameters (mode, autorange, range, value) + mode = SOURCE_MODE_VS + autorange = AUTORANGE_ON + range = VS_RANGE_10V + + xsmu_driver.setSourceParameters (mode, autorange, range, value) -def measure_current(xsmu_driver, iterations): +def measure_current(xsmu_driver, xtcon_driver, iterations): f = open("I-Data.txt", "a") for index in range(iterations): current = xsmu_driver.CM_getReading( filterLength = 1 ) - f.write(str(current) + '\n') + temperature = xtcon_driver.getSampleTemperature() + f.write(str(current) + "," + str(temperature) + '\n') f.close() def stabilize_temp (xtcon_driver, tolerance): @@ -48,7 +49,7 @@ def stabilize_temp (xtcon_driver, tolerance): continue else : fluctuation = max(history[-100:-1]) - min(history[-100:-1]) - print ("Max : ", max(history[-100:-1]), "\tMin : ", min(history[-100:-1])) + print "Max : " + str (max(history[-100:-1])) + "\tMin : " + str(min(history[-100:-1])) if (np.abs(fluctuation) < tolerance): print ("Fluctuation : " + str(fluctuation)) @@ -59,29 +60,38 @@ def stabilize_temp (xtcon_driver, tolerance): def main(): - xsmu_driver = xsmu.Driver() xtcon_driver = tcon.Driver() - - xsmu_devices = xsmu_driver.scan() - xsmu_driver.open(xsmu_devices[0]) - - xtcon_devices = xtcon_driver.scan() + xtcon_devices = xtcon_driver.scan() xtcon_driver.open(xtcon_devices[0]) - DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V setpoint = float(raw_input ("Enter isothermal setpoint (K) :")) tolerance = float(raw_input ("Tempereature Tolerance (over 10 successive readings) (K) : ")) - iterations = int (raw_input ("Iterations : ")) xtcon_driver.setIsothermalSetpoint (setpoint) print ("Starting Isothermal Run.. \n") xtcon_driver.startIsothermalControl() stabilize_temp (xtcon_driver, tolerance) + # Stabilizes the temperature and waits for user to take an IV run from Qrius GUI + print ("Press Enter when IV from Qrius GUI is complete") + + response = raw_input("Press y to continue? : y \n") + while (response != 'y'): + response = raw_input("Press y to continue? : y/n \n") + + xsmu_driver = xsmu.Driver() + xsmu_devices = xsmu_driver.scan() + xsmu_driver.open(xsmu_devices[0]) + + for i in range(5): + + DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V + iterations = int (raw_input ("Iterations : ")) + + print ("Setting DC Voltage.. \n") - print ("Setting DC Voltage.. \n") - set_DC_voltage (xsmu_driver, DC_amplitude) - measure_current(xsmu_driver, iterations) + set_DC_voltage (xsmu_driver, DC_amplitude) + measure_current(xsmu_driver, xtcon_driver, iterations) xtcon_driver.stopIsothermalControl() set_DC_voltage (xsmu_driver, 0.0) From bbd85b0ca235a8896ee5ecbad39d904931c6d3a7 Mon Sep 17 00:00:00 2001 From: gitansh95 Date: Fri, 30 Jun 2017 14:55:23 +0530 Subject: [PATCH 22/40] changes number of voltage setpoints to 1 from 5 --- ppsel/capacitance/current_measurement_w_tcon.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ppsel/capacitance/current_measurement_w_tcon.py b/ppsel/capacitance/current_measurement_w_tcon.py index cf7b213..8782799 100644 --- a/ppsel/capacitance/current_measurement_w_tcon.py +++ b/ppsel/capacitance/current_measurement_w_tcon.py @@ -83,7 +83,7 @@ def main(): xsmu_devices = xsmu_driver.scan() xsmu_driver.open(xsmu_devices[0]) - for i in range(5): + for i in range(1): DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V iterations = int (raw_input ("Iterations : ")) From 29d597e821d761cd22b26f8012fb1977fca158ba Mon Sep 17 00:00:00 2001 From: gitansh95 Date: Fri, 30 Jun 2017 18:47:04 +0530 Subject: [PATCH 23/40] measuring 3 values of currents, one for each range of the XSMU --- ppsel/capacitance/current_measurement_w_tcon.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ppsel/capacitance/current_measurement_w_tcon.py b/ppsel/capacitance/current_measurement_w_tcon.py index 8782799..69f8f65 100644 --- a/ppsel/capacitance/current_measurement_w_tcon.py +++ b/ppsel/capacitance/current_measurement_w_tcon.py @@ -73,7 +73,7 @@ def main(): stabilize_temp (xtcon_driver, tolerance) # Stabilizes the temperature and waits for user to take an IV run from Qrius GUI - print ("Press Enter when IV from Qrius GUI is complete") + raw_input ("Press Enter when IV from Qrius GUI is complete") response = raw_input("Press y to continue? : y \n") while (response != 'y'): @@ -83,10 +83,12 @@ def main(): xsmu_devices = xsmu_driver.scan() xsmu_driver.open(xsmu_devices[0]) - for i in range(1): + Amplitudes = [0.5, 0.69, 0.74] - DC_amplitude = float(raw_input ("Enter DC Voltage (V) : ")) # V - iterations = int (raw_input ("Iterations : ")) + for i in range(len(Amplitudes)): + + DC_amplitude = Amplitudes[i] # V + iterations = int (10) print ("Setting DC Voltage.. \n") From a760a56dca38b2ee0251e0aceedc717b5c164b2e Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Mon, 3 Jul 2017 13:32:47 +0530 Subject: [PATCH 24/40] Takes user input for iterations, voltage set point, which were previously hardcoded --- ppsel/capacitance/current_measurement_w_tcon.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/ppsel/capacitance/current_measurement_w_tcon.py b/ppsel/capacitance/current_measurement_w_tcon.py index 69f8f65..67fea4f 100644 --- a/ppsel/capacitance/current_measurement_w_tcon.py +++ b/ppsel/capacitance/current_measurement_w_tcon.py @@ -83,12 +83,15 @@ def main(): xsmu_devices = xsmu_driver.scan() xsmu_driver.open(xsmu_devices[0]) - Amplitudes = [0.5, 0.69, 0.74] + Amplitudes = [0.5] + time_stamps = [] for i in range(len(Amplitudes)): - + + time_stamps.append(time.time()) + DC_amplitude = Amplitudes[i] # V - iterations = int (10) + iterations = int(raw_input("Enter Number of iterations : ")) print ("Setting DC Voltage.. \n") @@ -98,6 +101,13 @@ def main(): xtcon_driver.stopIsothermalControl() set_DC_voltage (xsmu_driver, 0.0) + filename = open("TimeStamps.txt", "w") + + for item in time_stamps: + filename.write(str(item) + "\n") + + filename.close() + xtcon_driver.close() xsmu_driver.close() From b5af21ec379f11cd10fdedff4c536c7d07897481 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Mon, 3 Jul 2017 13:50:31 +0530 Subject: [PATCH 25/40] Renamed current_measurement_w_tcon.py to time_resolved_IV.py --- ...surement_w_tcon.py => time_resolved_IV.py} | 0 ppsel/curr/current_measurement.py~ | 37 +++++++++++++++++++ 2 files changed, 37 insertions(+) rename ppsel/capacitance/{current_measurement_w_tcon.py => time_resolved_IV.py} (100%) create mode 100644 ppsel/curr/current_measurement.py~ diff --git a/ppsel/capacitance/current_measurement_w_tcon.py b/ppsel/capacitance/time_resolved_IV.py similarity index 100% rename from ppsel/capacitance/current_measurement_w_tcon.py rename to ppsel/capacitance/time_resolved_IV.py diff --git a/ppsel/curr/current_measurement.py~ b/ppsel/curr/current_measurement.py~ new file mode 100644 index 0000000..d940d1b --- /dev/null +++ b/ppsel/curr/current_measurement.py~ @@ -0,0 +1,37 @@ +import sys, time + +sys.path.insert(0,"../../modules/xlia") +sys.path.insert(0,"../../apps") +sys.path.insert(0,"../../apps/widgets") +sys.path.insert(0,"../../lib") + +import math +import xsmu +from XSMU_Constants import * + +# Set voltage source to some value +# Call function to measure current +# Loop over the measuring function +# Print out the current values + +def set_DC_voltage (xsmu_driver, value): + + mode = SOURCE_MODE_VS + autorange = AUTORANGE_ON + range = VS_RANGE_10V + + xsmu_driver.setSourceParameters (mode, autorange, range, values) + +def measure_current(): + + for index in range(100): + current = CM_getReading() + print ("The value of current is " + current + " and the time is " + time.strftime('%H:%M:%S') + '\n') + + +mode = _setSourceMode(RUN_MODE_VS) +voltage = _VS_setVoltage(10) +current = CM_getReading(1) + +set_DC_voltage( +# Print out the current values From df2818c1c7c64545ab01fbad90eff53766a9d964 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Mon, 3 Jul 2017 13:53:56 +0530 Subject: [PATCH 26/40] Created a new folder called user_scripts and moved the time_resolved_IV.py to that folder --- {ppsel/capacitance => user_scripts}/time_resolved_IV.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {ppsel/capacitance => user_scripts}/time_resolved_IV.py (100%) diff --git a/ppsel/capacitance/time_resolved_IV.py b/user_scripts/time_resolved_IV.py similarity index 100% rename from ppsel/capacitance/time_resolved_IV.py rename to user_scripts/time_resolved_IV.py From e9c9fa17b130f3c4f4dd26397bc077afa8994867 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Mon, 3 Jul 2017 15:20:00 +0530 Subject: [PATCH 27/40] Modified the paths that have to be added to facilitate proper importing of required modules --- user_scripts/time_resolved_IV.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/user_scripts/time_resolved_IV.py b/user_scripts/time_resolved_IV.py index 67fea4f..f3beb8d 100644 --- a/user_scripts/time_resolved_IV.py +++ b/user_scripts/time_resolved_IV.py @@ -1,10 +1,10 @@ import sys, time -sys.path.insert(0,"../../modules/xsmu") -sys.path.insert(0,"../../modules/xtcon") -sys.path.insert(0,"../../apps") -sys.path.insert(0,"../../apps/widgets") -sys.path.insert(0,"../../lib") +sys.path.insert(0,"../modules/xsmu") +sys.path.insert(0,"../modules/xtcon") +sys.path.insert(0,"../apps") +sys.path.insert(0,"../apps/widgets") +sys.path.insert(0,"../lib") import xsmu import tcon From 5d65d228cdffd692f3b686c81e8f21915b029738 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Mon, 3 Jul 2017 15:59:51 +0530 Subject: [PATCH 28/40] Created a similar program where current is given to the sample and voltage is repeatedly measured --- user_scripts/voltage_measurements.py | 113 +++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 user_scripts/voltage_measurements.py diff --git a/user_scripts/voltage_measurements.py b/user_scripts/voltage_measurements.py new file mode 100644 index 0000000..ed206ba --- /dev/null +++ b/user_scripts/voltage_measurements.py @@ -0,0 +1,113 @@ +import sys, time + +sys.path.insert(0,"../modules/xsmu") +sys.path.insert(0,"../modules/xtcon") +sys.path.insert(0,"../apps") +sys.path.insert(0,"../apps/widgets") +sys.path.insert(0,"../lib") + +import xsmu +import tcon +import numpy as np +from XSMU_Constants import * + +f = open("V-Data.txt", "w") +f.close() + +# Set current source to some value +# Call function to measure voltage +# Loop over the measuring function +# Print out the voltage values + +def set_DC_current (xsmu_driver, value): + + mode = SOURCE_MODE_CS + autorange = AUTORANGE_ON + range = VS_RANGE_10V + + xsmu_driver.setSourceParameters (mode, autorange, range, value) + +def measure_voltage (xsmu_driver, xtcon_driver, iterations): + + f = open("I-Data.txt", "a") + for index in range(iterations): + voltage = xsmu_driver.VM_getReading( filterLength = 1 ) + temperature = xtcon_driver.getSampleTemperature() + f.write(str(voltage) + "," + str(temperature) + '\n') + f.close() + +def stabilize_temp (xtcon_driver, tolerance, monitoring_period) + + history = [] + + print ("Stabilizing .. \n") + + while True : + history.append(xtcon_driver.getSampleTemperature()) + + if (len(history) < monitoring_period): + continue + else : + fluctuation = max(history[-monitoring_period:-1]) - min(history[-monitoring_period:-1]) + print "Max : " + str (max(history[-monitoring_period:-1])) + "\tMin : " + str(min(history[-monitoring_period:-1])) + + if (np.abs(fluctuation) < tolerance): + print ("Fluctuation : " + str(fluctuation)) + print ("Stable ..\n") + break + +def main(): + + xtcon_driver = tcon.Driver () + xtcon_devices = xtcon_driver.scan() + xtcon_driver .open(xtcon_devices[0]) + + setpoint = float(raw_input ("Enter isothermal setpoint (K) : ")) + tolerance = float(raw_input ("Tempereature Tolerance (over 10 successive readings) (K) : ")) + monitoring_period = int (raw_input ("Enter the monitoring_period ( Positive Integer ) : ")) + + print ("Starting Isothermal Run.. \n") + xtcon_driver.setIsothermalSetpoint (setpoint) + xtcon_driver.startIsothermalControl() + + # Stabilizes the temperature and waits for user to take an IV run from Qrius GUI + stabilize_temp (xtcon_driver, tolerance, monitoring_period) + raw_input ("Press Enter when IV from Qrius GUI is complete") + + response = raw_input("Press y to continue? : y \n") + while (response != 'y'): + response = raw_input("Press y to continue? : y/n \n") + + xsmu_driver = xsmu.Driver () + xsmu_devices = xsmu_driver.scan() + xsmu_driver .open(xsmu_devices[0]) + + Amplitudes = [0.005] + time_stamps = [] + + for i in range(len(Amplitudes)): + + time_stamps.append(time.time()) + + DC_amplitude = Amplitudes[i] # V + iterations = int(raw_input("Enter Number of iterations : ")) + + print ("Setting DC Current.. \n") + + set_DC_current (xsmu_driver, DC_amplitude) + measure_voltage (xsmu_driver, xtcon_driver, iterations) + + xtcon_driver.stopIsothermalControl() + set_DC_current (xsmu_driver, 0.0) + + filename = open("TimeStamps.txt", "w") + + for item in time_stamps: + filename.write(str(item) + "\n") + + filename.close() + + xtcon_driver.close() + xsmu_driver.close() + +main() \ No newline at end of file From a16194cc200ade6870f48b1e92d868a6ea7acb97 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Tue, 4 Jul 2017 11:29:18 +0530 Subject: [PATCH 29/40] Intial Commit - Program to measure noise as before, but now with a step ramp, where user is asked to give a starting temperature, ending temperature, and a step size --- user_scripts/multiple_temperatures_IV.py | 122 +++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 user_scripts/multiple_temperatures_IV.py diff --git a/user_scripts/multiple_temperatures_IV.py b/user_scripts/multiple_temperatures_IV.py new file mode 100644 index 0000000..4d2928d --- /dev/null +++ b/user_scripts/multiple_temperatures_IV.py @@ -0,0 +1,122 @@ +import sys, time + +sys.path.insert(0,"../modules/xsmu") +sys.path.insert(0,"../modules/xtcon") +sys.path.insert(0,"../apps") +sys.path.insert(0,"../apps/widgets") +sys.path.insert(0,"../lib") + +import xsmu +import tcon +import numpy as np +from XSMU_Constants import * + +f = open("I-T-Data.txt", "w") +f.close() + +# Set voltage source to some value +# Call function to measure current +# Loop over the measuring function +# Print out the current values + +def set_DC_voltage (xsmu_driver, value): + + mode = SOURCE_MODE_VS + autorange = AUTORANGE_ON + range = VS_RANGE_10V + + xsmu_driver.setSourceParameters (mode, autorange, range, value) + +def measure_current(xsmu_driver, xtcon_driver, iterations): + + f = open("I-Data.txt", "a") + for index in range(iterations): + current = xsmu_driver.CM_getReading( filterLength = 1 ) + temperature = xtcon_driver.getSampleTemperature() + f.write(str(current) + "," + str(temperature) + '\n') + f.close() + +def stabilize_temp (xtcon_driver, tolerance, monitoring_period): + + history = [] + + print ("Stabilizing .. \n") + + while True : + history.append(xtcon_driver.getSampleTemperature()) + + if (len(history) Date: Thu, 6 Jul 2017 11:06:27 +0530 Subject: [PATCH 30/40] Added markers to see which step is causing delay --- modules/xsmu/xsmu.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index 0b887cf..1d8df5a 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -445,13 +445,22 @@ def CM_setRange (self, autorange, range): # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ def CM_getReading (self, filterLength = 128): - + + t_1 = time.time() self.check_connected() - + t_2 = time.time() - t_1 + + print ("The time taken for check_connected() is " + t_2) + + t_3 = time.time() if self.src_mode != SOURCE_MODE_CS and self.cm_autorange: range = self._CM_doAutoRange() self.do_callback (CM_RANGE_CHANGED, self.cm_autorange, range) - + + t_4 = time.time() - t_3 + print ("The time taken for setting the range (i.e or checking for autorange) is " + t_4) + + t_5 = time.time() timeout = COMM_TIMEOUT_INTERVAL if (libxsmu.firmware_version (self.deviceID) @@ -461,12 +470,20 @@ def CM_getReading (self, filterLength = 128): else: timeout += filterLength * 0.01 - + + t_6 = time.time() - t_5 + print ("The time taken for settings timeout duration is " + t_6 + + t_7 = time.time() (current, timeout) = \ libxsmu.CM_getReading (self.deviceID, filterLength, timeout) - - print filterLength + t_8 = time.time() - t_7 + + t_9 = time.time() self.check_timeout (timeout, 'Get ammeter reading') + t_10 = time.time() - t_9 + print ("The time taken for check_timeout is " + t_10) + return current # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ From 7261a115ac4f096272b6ce0cb6c3a5ef42b8f6e9 Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Thu, 6 Jul 2017 11:07:05 +0530 Subject: [PATCH 31/40] Fixed indentations --- user_scripts/time_resolved_IV.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/user_scripts/time_resolved_IV.py b/user_scripts/time_resolved_IV.py index f3beb8d..2123fd7 100644 --- a/user_scripts/time_resolved_IV.py +++ b/user_scripts/time_resolved_IV.py @@ -31,7 +31,7 @@ def measure_current(xsmu_driver, xtcon_driver, iterations): f = open("I-Data.txt", "a") for index in range(iterations): - current = xsmu_driver.CM_getReading( filterLength = 1 ) + current = xsmu_driver .CM_getReading( filterLength = 1 ) temperature = xtcon_driver.getSampleTemperature() f.write(str(current) + "," + str(temperature) + '\n') f.close() @@ -60,7 +60,7 @@ def stabilize_temp (xtcon_driver, tolerance): def main(): - xtcon_driver = tcon.Driver() + xtcon_driver = tcon.Driver() xtcon_devices = xtcon_driver.scan() xtcon_driver.open(xtcon_devices[0]) @@ -79,7 +79,7 @@ def main(): while (response != 'y'): response = raw_input("Press y to continue? : y/n \n") - xsmu_driver = xsmu.Driver() + xsmu_driver = xsmu.Driver() xsmu_devices = xsmu_driver.scan() xsmu_driver.open(xsmu_devices[0]) @@ -105,7 +105,7 @@ def main(): for item in time_stamps: filename.write(str(item) + "\n") - + filename.close() xtcon_driver.close() From 13cf60912e0717ba676c2ee0fb4819c58c6d8fef Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Thu, 6 Jul 2017 15:45:47 +0530 Subject: [PATCH 32/40] Hardcoded serial no so that the program doesn't interfere with other XSMUs connected to the PC --- user_scripts/time_resolved_IV.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/user_scripts/time_resolved_IV.py b/user_scripts/time_resolved_IV.py index 2123fd7..701bfe6 100644 --- a/user_scripts/time_resolved_IV.py +++ b/user_scripts/time_resolved_IV.py @@ -80,8 +80,7 @@ def main(): response = raw_input("Press y to continue? : y/n \n") xsmu_driver = xsmu.Driver() - xsmu_devices = xsmu_driver.scan() - xsmu_driver.open(xsmu_devices[0]) + xsmu_driver.open("XSMU012A") Amplitudes = [0.5] time_stamps = [] From 328cbdd40284ed5e2a7f152d8566bdf081b9c944 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Thu, 6 Jul 2017 16:07:07 +0530 Subject: [PATCH 33/40] Removed small compilation errors like missing ) etc --- modules/xsmu/xsmu.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index 1d8df5a..5bd5daf 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -1,5 +1,6 @@ # coding: utf-8 import libxsmu +import time from app_xsmu import GUI from app_xsmu import GUI_SourceParameters @@ -450,7 +451,7 @@ def CM_getReading (self, filterLength = 128): self.check_connected() t_2 = time.time() - t_1 - print ("The time taken for check_connected() is " + t_2) + print ("The time taken for check_connected() is " + str(t_2)) t_3 = time.time() if self.src_mode != SOURCE_MODE_CS and self.cm_autorange: @@ -458,7 +459,7 @@ def CM_getReading (self, filterLength = 128): self.do_callback (CM_RANGE_CHANGED, self.cm_autorange, range) t_4 = time.time() - t_3 - print ("The time taken for setting the range (i.e or checking for autorange) is " + t_4) + print ("The time taken for setting the range (i.e or checking for autorange) is " + str(t_4)) t_5 = time.time() timeout = COMM_TIMEOUT_INTERVAL @@ -472,17 +473,17 @@ def CM_getReading (self, filterLength = 128): timeout += filterLength * 0.01 t_6 = time.time() - t_5 - print ("The time taken for settings timeout duration is " + t_6 + print ("The time taken for settings timeout duration is " + str(t_6)) t_7 = time.time() (current, timeout) = \ libxsmu.CM_getReading (self.deviceID, filterLength, timeout) t_8 = time.time() - t_7 - + print ("The time taken for current measurement is " + str(t_8)) t_9 = time.time() self.check_timeout (timeout, 'Get ammeter reading') t_10 = time.time() - t_9 - print ("The time taken for check_timeout is " + t_10) + print ("The time taken for check_timeout is " + str(t_10)) return current From eff964002002c10330bc351aa39c2cd6b25dc29c Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Thu, 6 Jul 2017 18:12:08 +0530 Subject: [PATCH 34/40] Removed the time stamp checks --- modules/xsmu/xsmu.py | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/modules/xsmu/xsmu.py b/modules/xsmu/xsmu.py index 5bd5daf..834e427 100644 --- a/modules/xsmu/xsmu.py +++ b/modules/xsmu/xsmu.py @@ -447,21 +447,15 @@ def CM_setRange (self, autorange, range): def CM_getReading (self, filterLength = 128): - t_1 = time.time() + self.check_connected() - t_2 = time.time() - t_1 - - print ("The time taken for check_connected() is " + str(t_2)) - t_3 = time.time() + if self.src_mode != SOURCE_MODE_CS and self.cm_autorange: range = self._CM_doAutoRange() self.do_callback (CM_RANGE_CHANGED, self.cm_autorange, range) - t_4 = time.time() - t_3 - print ("The time taken for setting the range (i.e or checking for autorange) is " + str(t_4)) - t_5 = time.time() timeout = COMM_TIMEOUT_INTERVAL if (libxsmu.firmware_version (self.deviceID) @@ -472,18 +466,11 @@ def CM_getReading (self, filterLength = 128): else: timeout += filterLength * 0.01 - t_6 = time.time() - t_5 - print ("The time taken for settings timeout duration is " + str(t_6)) - t_7 = time.time() (current, timeout) = \ libxsmu.CM_getReading (self.deviceID, filterLength, timeout) - t_8 = time.time() - t_7 - print ("The time taken for current measurement is " + str(t_8)) - t_9 = time.time() + self.check_timeout (timeout, 'Get ammeter reading') - t_10 = time.time() - t_9 - print ("The time taken for check_timeout is " + str(t_10)) return current From 2e6440b999c3538b946e7f3d7cf88aaf94f502f1 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Fri, 7 Jul 2017 10:40:12 +0530 Subject: [PATCH 35/40] changed amplitudes --- user_scripts/time_resolved_IV.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_scripts/time_resolved_IV.py b/user_scripts/time_resolved_IV.py index 701bfe6..632efc3 100644 --- a/user_scripts/time_resolved_IV.py +++ b/user_scripts/time_resolved_IV.py @@ -82,7 +82,7 @@ def main(): xsmu_driver = xsmu.Driver() xsmu_driver.open("XSMU012A") - Amplitudes = [0.5] + Amplitudes = [0.3, 3, 10] time_stamps = [] for i in range(len(Amplitudes)): From b9b28b540b0d545370b3e5e58ef2900aa7fc8cbf Mon Sep 17 00:00:00 2001 From: Vishnu Raghuraman Date: Fri, 7 Jul 2017 11:12:14 +0530 Subject: [PATCH 36/40] Put the iterations line out of loop --- user_scripts/time_resolved_IV.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/user_scripts/time_resolved_IV.py b/user_scripts/time_resolved_IV.py index 632efc3..0a8fea4 100644 --- a/user_scripts/time_resolved_IV.py +++ b/user_scripts/time_resolved_IV.py @@ -82,15 +82,15 @@ def main(): xsmu_driver = xsmu.Driver() xsmu_driver.open("XSMU012A") - Amplitudes = [0.3, 3, 10] - time_stamps = [] + Amplitudes = [0.3, 3, 10] + time_stamps = [] + iterations = int(raw_input("Enter Number of iterations : ")) for i in range(len(Amplitudes)): time_stamps.append(time.time()) DC_amplitude = Amplitudes[i] # V - iterations = int(raw_input("Enter Number of iterations : ")) print ("Setting DC Voltage.. \n") From 8afa621fddbe3396141f8410a44aa178f8fd8e12 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Fri, 14 Jul 2017 18:56:42 +0530 Subject: [PATCH 37/40] IV sweep using libxsmu --- ppsel/capacitance/IV_sweep.py | 342 ++++++++++++++++++++++++++++++++++ 1 file changed, 342 insertions(+) create mode 100644 ppsel/capacitance/IV_sweep.py diff --git a/ppsel/capacitance/IV_sweep.py b/ppsel/capacitance/IV_sweep.py new file mode 100644 index 0000000..d7bd2e5 --- /dev/null +++ b/ppsel/capacitance/IV_sweep.py @@ -0,0 +1,342 @@ +#------------------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------------------------ +# +# ALGORITHM FOR IV MEASUREMENTS +# +# Set voltage source to 0 +# Call function to measure IV +# Print out the (voltage, current, time) values +# Change voltage source to (value + step_size) +# +# measure current, if (current_new - current_old) > current_step -> switch mode to current +# Set current source to (last measured current value + current_step) +# Call function to measure current +# Call function to measure voltage +# Loop over the measuring functions +# Print out the (voltage, current, time) values +# +# measure current, if (current_new - current_old) < current_step -> keep the new voltage value +# Call function to measure current +# Call function to measure voltage +# Loop over the measuring functions +# Print out the (voltage, current, time) values +# +#------------------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------------------------- + +import sys, time +import libxsmu +import csv +import numpy as np + +logfile = open("histogram_data.txt", "w") +logfile.close () + +def set_DC_voltage (deviceID, value): + + ############################ + # Set VS range + + timeout = 1.0 + voltageSourceRange = 0 # 0: 10V, 1: 100V + + print \ + "voltageSourceRange :", voltageSourceRange, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + voltageSourceRange, timeout = \ + libxsmu.VS_setRange (deviceID, voltageSourceRange, timeout) + + if (timeout == 0.0): + print 'Communication timeout in VS_setRange.' + exit (-2) + + ############################ + # Set VS voltage + + timeout = 1.0 + voltage = value + voltage, timeout = libxsmu.VS_setVoltage (deviceID, voltage, timeout) + print \ + "Voltage: ", voltage, "\n" \ + "Timeout: ", timeout + + if (timeout == 0.0): + print 'Communication timeout in VS_setVoltage' + exit (-2) + + ############################ + + +def set_DC_current (deviceID, value): + + ############################ + # Set CS range + + currentSourceRange = 0 # 0: 10uA, 1: 100uA, 2: 1mA, 3: 10mA, 4: 100mA + timeout = 1.0 + + if (np.abs(value) < 0.0001): + currentSourceRange = 1 + + elif (np.abs(value) < 0.001): + currentSourceRange = 2 + + elif (np.abs(value) < 0.01): + currentSourceRange = 3 + + currentSourceRange, timeout = \ + libxsmu.CS_setRange (deviceID, currentSourceRange, timeout) + + print \ + "currentSourceRange :", currentSourceRange, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in CS_setRange.' + exit (-2) + + + ############################ + # Set CS current + + timeout = 1.0 + current = value + current, timeout = libxsmu.CS_setCurrent (deviceID, current, timeout) + + print \ + "Voltage: ", current, "\n" \ + "Timeout: ", timeout + + if (timeout == 0.0): + print 'Communication timeout in CS_setCurrent' + exit (-2) + + ############################ + +def measureI (deviceID, filterLength): + + ############################ + # Set CM range + + timeout = 1.0 + currentMeterRange = 3 # 0: 10uA, 1: 100uA, 2: 1mA, 3: 10mA, 4: 100mA + + currentMeterRange, timeout = \ + libxsmu.CM_setRange (deviceID, currentMeterRange, timeout) + + print \ + "currentMeterRange :", currentMeterRange, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in CM_setRange.' + exit (-2) + + ############################ + # Get CM Current + + filter_length = filterLength + timeout = 1 + 0.022 * filter_length + + current, timeout = libxsmu.CM_getReading (deviceID, filter_length, timeout) + + print \ + "current :", current, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in CM_getReading.' + exit (-2) + + return current + + +def measureV (deviceID, filterLength): + + ############################ + # Set VM range + + timeout = 1.0 + voltageMeterRange = 4 # 0: 1mV, 1: 10mV, 2: 100mV, 3: 1V, 4: 10V, 5: 100V + + voltageMeterRange, timeout = \ + libxsmu.VM_setRange (deviceID, voltageMeterRange, timeout) + print \ + "voltageMeterRange :", voltageMeterRange, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in VM_setRange.' + exit (-2) + + ############################ + # Get VM Voltage + + filter_length = filterLength + timeout = 1 + 0.03 * filter_length + + #voltage, timeout = libxsmu.VM_getReading (deviceID, filter_length, timeout) + + voltage, timeout = libxsmu.VM2_getReading (deviceID, filter_length, timeout) + + print \ + "voltage :", voltage, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in VM_getReading.' + exit (-2) + + return voltage + + +def measure_IV (deviceID, iteration, mode, filterLength): + + logfile = open("histogram_data.txt", "a") + + for index in range(iteration): + + current = measureI(deviceID, filterLength) + voltage = measureV(deviceID, filterLength) + + logfile.write(str(voltage) + "," + str(current) + "," + str(time.time()) + "," + mode + "\n") + + + logfile.write ('Next Source Value...\n') + logfile.close () + + print current, voltage + + return current, voltage + +def sourceMode (deviceID, mode): + + timeout = 10.0 + sourceMode, timeout = libxsmu.setSourceMode (deviceID, mode, timeout) + print \ + "sourceMode :", sourceMode, "\n" \ + "Remaining time:", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in setSourceMode.' + exit (-2) + + +def sourceSwitching (deviceID, voltage, current, voltage_step, current_step, mode, filterLength): + + if (mode == "VOLTAGE"): + + set_DC_voltage (deviceID, (voltage + voltage_step)) + current_new = measureI(deviceID, filterLength) + set_DC_voltage (deviceID, voltage) + + if (np.abs(current_new - current) >= current_step): + sourceMode (deviceID, 1) # source mode : 0 = Voltage, 1 = Current + return "CURRENT" + + else: + return "VOLTAGE" + + else : + set_DC_current (deviceID, current + current_step) + voltage_new = measureV(deviceID, filterLength) + set_DC_current (deviceID, current) + + if (np.abs(voltage_new - voltage) >= voltage_step): + sourceMode (deviceID, 0) # source mode : 0 = Voltage, 1 = Current + return "VOLTAGE" + + else: + return "CURRENT" + + +def main(): + + + ########################################################################## + # Scans USB bus for Xplore SMU. + + N = libxsmu.scan() + print "Total device:", N + + if N == 0: + print 'No Xplore SMU device found.' + exit (-1) + + ########################################################################## + # Queries serial number of the first device. + # This should be sufficient if only a single device is present. + + serialNo = 'XSMU012A' + print "Serial number:", serialNo + + timeout = 1.0 + deviceID, goodID, timeout = libxsmu.open_device (serialNo, timeout) + print \ + "Device ID :", deviceID, "\n" \ + "goodID :", goodID, "\n" \ + "Remaining time:", timeout, "sec", "\n" + + if (timeout == 0.0) or (not goodID): + print 'Communication timeout in open_device.' + exit (-2) + + ########################################################################## + # User input parameters + + Voltage_Range = float (raw_input ("Enter Voltage Range (V) : ")) # V + Current_Range = float (raw_input ("Enter Current Range (A) : ")) # I + Voltage_Step = float (raw_input ("Enter Voltage Step Size (V) : ")) # Delta_V + Current_Step = float (raw_input ("Enter Current Step Size (A) : ")) # Delta_V + iteration = int (raw_input ("Enter number of iterations : ")) # no. of measurements at each (I,V) point + + ########################################################################## + #Intelligent Switching algorithm + + voltage = 0.0 + current = 0.0 + mode = "VOLTAGE" + + filterLength = 1 + + set_DC_voltage(deviceID, voltage) + + while ((voltage <= Voltage_Range) and (current <= Current_Range)): + + if (mode == "VOLTAGE"): + + set_DC_voltage (deviceID, voltage) + current, voltage = measure_IV (deviceID, iteration, mode, filterLength) + mode = sourceSwitching (deviceID, voltage, current, Voltage_Step, Current_Step, mode, filterLength) + + if (mode == "VOLTAGE"): + voltage = voltage + Voltage_Step + + else: + current = current + Current_Step + + elif (mode == "CURRENT"): + + set_DC_current (deviceID, current) + current, voltage = measure_IV (deviceID, iteration, mode, filterLength) + mode = sourceSwitching (deviceID, voltage, current, Voltage_Step, Current_Step, mode, filterLength) + + if (mode == "VOLTAGE"): + voltage = voltage + Voltage_Step + + else: + current = current + Current_Step + + print mode + + set_DC_voltage (deviceID, 0.0) + + raw_input ("Run Finished. Press Enter to Exit\n") + + ########################################################################## + # closes the device. + + libxsmu.close_device(deviceID) + +main() From 66312c2fe34e0b0ce4444e9a423d866abf001c8b Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Sat, 15 Jul 2017 13:50:30 +0530 Subject: [PATCH 38/40] added user scripts for IV using libxsmu --- ppsel/capacitance/IV_sweep.py | 99 ++++++++++++++++++++++++---- user_scripts/time_resolved_IV.py | 16 ++--- user_scripts/voltage_measurements.py | 34 +++++----- 3 files changed, 113 insertions(+), 36 deletions(-) diff --git a/ppsel/capacitance/IV_sweep.py b/ppsel/capacitance/IV_sweep.py index d7bd2e5..486b212 100644 --- a/ppsel/capacitance/IV_sweep.py +++ b/ppsel/capacitance/IV_sweep.py @@ -65,7 +65,8 @@ def set_DC_voltage (deviceID, value): print 'Communication timeout in VS_setVoltage' exit (-2) - ############################ + ############################ + time.sleep(1) def set_DC_current (deviceID, value): @@ -73,7 +74,7 @@ def set_DC_current (deviceID, value): ############################ # Set CS range - currentSourceRange = 0 # 0: 10uA, 1: 100uA, 2: 1mA, 3: 10mA, 4: 100mA + currentSourceRange = 3 # 0: 10uA, 1: 100uA, 2: 1mA, 3: 10mA, 4: 100mA timeout = 1.0 if (np.abs(value) < 0.0001): @@ -105,7 +106,7 @@ def set_DC_current (deviceID, value): current, timeout = libxsmu.CS_setCurrent (deviceID, current, timeout) print \ - "Voltage: ", current, "\n" \ + "Current: ", current, "\n" \ "Timeout: ", timeout if (timeout == 0.0): @@ -113,14 +114,15 @@ def set_DC_current (deviceID, value): exit (-2) ############################ + time.sleep(1) -def measureI (deviceID, filterLength): +def set_CM_Range(deviceID, range): ############################ # Set CM range timeout = 1.0 - currentMeterRange = 3 # 0: 10uA, 1: 100uA, 2: 1mA, 3: 10mA, 4: 100mA + currentMeterRange = range # 0: 10uA, 1: 100uA, 2: 1mA, 3: 10mA, 4: 100mA currentMeterRange, timeout = \ libxsmu.CM_setRange (deviceID, currentMeterRange, timeout) @@ -131,7 +133,13 @@ def measureI (deviceID, filterLength): if (timeout == 0.0): print 'Communication timeout in CM_setRange.' - exit (-2) + exit (-2) + +def measureI (deviceID, filterLength): + + ############################ + # Set CM Range to 10mA + set_CM_Range(deviceID, 3) ############################ # Get CM Current @@ -141,6 +149,35 @@ def measureI (deviceID, filterLength): current, timeout = libxsmu.CM_getReading (deviceID, filter_length, timeout) + print '**** Current : ' + str(current) + ' ****' + + if (timeout == 0.0): + print 'Communication timeout in CM_getReading.' + exit (-2) + + ############################ + + if (np.abs(current) < 0.0001): + # Set CM Range to 100uA + set_CM_Range(deviceID, 1) + print 'Range : 100 uA' + + elif (np.abs(current) < 0.001): + # Set CM Range to 1mA + set_CM_Range(deviceID, 2) + print 'Range : 1 mA' + + elif (np.abs(current) < 0.01): + print 'Range : 10 mA' + + else : + print 'Out of Range' + + ############################ + + timeout = 1 + 0.022 * filter_length + current, timeout = libxsmu.CM_getReading (deviceID, filter_length, timeout) + print \ "current :", current, "\n" \ "Remaining time :", timeout, "sec", "\n" @@ -152,16 +189,16 @@ def measureI (deviceID, filterLength): return current -def measureV (deviceID, filterLength): +def set_VM_Range(deviceID, range): ############################ # Set VM range timeout = 1.0 - voltageMeterRange = 4 # 0: 1mV, 1: 10mV, 2: 100mV, 3: 1V, 4: 10V, 5: 100V + voltageMeterRange = range # 0: 1mV, 1: 10mV, 2: 100mV, 3: 1V, 4: 10V, 5: 100V voltageMeterRange, timeout = \ - libxsmu.VM_setRange (deviceID, voltageMeterRange, timeout) + libxsmu.VM2_setRange (deviceID, voltageMeterRange, timeout) print \ "voltageMeterRange :", voltageMeterRange, "\n" \ "Remaining time :", timeout, "sec", "\n" @@ -169,17 +206,55 @@ def measureV (deviceID, filterLength): if (timeout == 0.0): print 'Communication timeout in VM_setRange.' exit (-2) - + + +def measureV (deviceID, filterLength): + + ############################ + # Set VM Range to 10V + + set_VM_Range(deviceID, 4) + ############################ # Get VM Voltage filter_length = filterLength timeout = 1 + 0.03 * filter_length - #voltage, timeout = libxsmu.VM_getReading (deviceID, filter_length, timeout) - voltage, timeout = libxsmu.VM2_getReading (deviceID, filter_length, timeout) + print '**** Voltage : ' + str(voltage) + ' ****' + + if (timeout == 0.0): + print 'Communication timeout in VM_getReading.' + exit (-2) + + ############################ + + if (np.abs(voltage) < 0.01): + ############################ + # Set VM Range to 100mV + set_VM_Range(deviceID, 2) + print 'VM Range : 100 mV' + + elif (np.abs(voltage) < 1): + ############################ + # Set VM Range to 1V + set_VM_Range(deviceID, 3) + print 'VM Range : 1 V' + + elif (np.abs(voltage < 10)): + print 'VM Range : 10 V' + + else : + print 'Out of Range' + + ############################ + + timeout = 1 + 0.03 * filter_length + + voltage, timeout = libxsmu.VM2_getReading (deviceID, filter_length, timeout) + print \ "voltage :", voltage, "\n" \ "Remaining time :", timeout, "sec", "\n" diff --git a/user_scripts/time_resolved_IV.py b/user_scripts/time_resolved_IV.py index 632efc3..9b89325 100644 --- a/user_scripts/time_resolved_IV.py +++ b/user_scripts/time_resolved_IV.py @@ -45,11 +45,11 @@ def stabilize_temp (xtcon_driver, tolerance): while True : history.append(xtcon_driver.getSampleTemperature()) - if (len(history)<100): + if (len(history)<200): continue else : - fluctuation = max(history[-100:-1]) - min(history[-100:-1]) - print "Max : " + str (max(history[-100:-1])) + "\tMin : " + str(min(history[-100:-1])) + fluctuation = max(history[-200:-1]) - min(history[-200:-1]) + print "Max : " + str (max(history[-200:-1])) + "\tMin : " + str(min(history[-200:-1])) if (np.abs(fluctuation) < tolerance): print ("Fluctuation : " + str(fluctuation)) @@ -73,16 +73,16 @@ def main(): stabilize_temp (xtcon_driver, tolerance) # Stabilizes the temperature and waits for user to take an IV run from Qrius GUI - raw_input ("Press Enter when IV from Qrius GUI is complete") + #raw_input ("Press Enter when IV from Qrius GUI is complete") - response = raw_input("Press y to continue? : y \n") - while (response != 'y'): - response = raw_input("Press y to continue? : y/n \n") + #response = raw_input("Press y to continue? : y \n") + #while (response != 'y'): + # response = raw_input("Press y to continue? : y/n \n") xsmu_driver = xsmu.Driver() xsmu_driver.open("XSMU012A") - Amplitudes = [0.3, 3, 10] + Amplitudes = [0.05, 0.5, 5] time_stamps = [] for i in range(len(Amplitudes)): diff --git a/user_scripts/voltage_measurements.py b/user_scripts/voltage_measurements.py index ed206ba..8d0c901 100644 --- a/user_scripts/voltage_measurements.py +++ b/user_scripts/voltage_measurements.py @@ -19,24 +19,24 @@ # Loop over the measuring function # Print out the voltage values -def set_DC_current (xsmu_driver, value): +def set_DC_current (xsmu_driver, value, source_range): mode = SOURCE_MODE_CS autorange = AUTORANGE_ON - range = VS_RANGE_10V + range = source_range xsmu_driver.setSourceParameters (mode, autorange, range, value) def measure_voltage (xsmu_driver, xtcon_driver, iterations): - f = open("I-Data.txt", "a") + f = open("V-Data.txt", "a") for index in range(iterations): voltage = xsmu_driver.VM_getReading( filterLength = 1 ) temperature = xtcon_driver.getSampleTemperature() f.write(str(voltage) + "," + str(temperature) + '\n') f.close() -def stabilize_temp (xtcon_driver, tolerance, monitoring_period) +def stabilize_temp (xtcon_driver, tolerance, monitoring_period): history = [] @@ -58,9 +58,9 @@ def stabilize_temp (xtcon_driver, tolerance, monitoring_period) def main(): - xtcon_driver = tcon.Driver () - xtcon_devices = xtcon_driver.scan() - xtcon_driver .open(xtcon_devices[0]) + xtcon_driver = tcon.Driver () + xtcon_devices = xtcon_driver.scan() + xtcon_driver.open(xtcon_devices[0]) setpoint = float(raw_input ("Enter isothermal setpoint (K) : ")) tolerance = float(raw_input ("Tempereature Tolerance (over 10 successive readings) (K) : ")) @@ -78,27 +78,29 @@ def main(): while (response != 'y'): response = raw_input("Press y to continue? : y/n \n") - xsmu_driver = xsmu.Driver () - xsmu_devices = xsmu_driver.scan() - xsmu_driver .open(xsmu_devices[0]) + xsmu_driver = xsmu.Driver() + xsmu_driver.open("XSMU012A") - Amplitudes = [0.005] + Amplitudes = [0.005, 0.0005, 0.00005] + ranges = [CM_RANGE_10mA, CM_RANGE_1mA, CM_RANGE_100uA] time_stamps = [] + iterations = int(raw_input("Enter Number of iterations : ")) + for i in range(len(Amplitudes)): time_stamps.append(time.time()) - DC_amplitude = Amplitudes[i] # V - iterations = int(raw_input("Enter Number of iterations : ")) + DC_amplitude = Amplitudes[i] # A + DC_range = ranges[i] print ("Setting DC Current.. \n") - set_DC_current (xsmu_driver, DC_amplitude) + set_DC_current (xsmu_driver, DC_amplitude, DC_range) measure_voltage (xsmu_driver, xtcon_driver, iterations) xtcon_driver.stopIsothermalControl() - set_DC_current (xsmu_driver, 0.0) + set_DC_current (xsmu_driver, 0.0, ranges[0]) filename = open("TimeStamps.txt", "w") @@ -110,4 +112,4 @@ def main(): xtcon_driver.close() xsmu_driver.close() -main() \ No newline at end of file +main() From 0bbd4dfc81d7a865925d832678f0087e9e824a48 Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Wed, 19 Jul 2017 16:39:59 +0530 Subject: [PATCH 39/40] IV sweep program using libxsmu, bugs to be fixed, temperature control to be added --- user_scripts/IV_sweep.py | 417 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 417 insertions(+) create mode 100644 user_scripts/IV_sweep.py diff --git a/user_scripts/IV_sweep.py b/user_scripts/IV_sweep.py new file mode 100644 index 0000000..486b212 --- /dev/null +++ b/user_scripts/IV_sweep.py @@ -0,0 +1,417 @@ +#------------------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------------------------ +# +# ALGORITHM FOR IV MEASUREMENTS +# +# Set voltage source to 0 +# Call function to measure IV +# Print out the (voltage, current, time) values +# Change voltage source to (value + step_size) +# +# measure current, if (current_new - current_old) > current_step -> switch mode to current +# Set current source to (last measured current value + current_step) +# Call function to measure current +# Call function to measure voltage +# Loop over the measuring functions +# Print out the (voltage, current, time) values +# +# measure current, if (current_new - current_old) < current_step -> keep the new voltage value +# Call function to measure current +# Call function to measure voltage +# Loop over the measuring functions +# Print out the (voltage, current, time) values +# +#------------------------------------------------------------------------------------------------- +#------------------------------------------------------------------------------------------------- + +import sys, time +import libxsmu +import csv +import numpy as np + +logfile = open("histogram_data.txt", "w") +logfile.close () + +def set_DC_voltage (deviceID, value): + + ############################ + # Set VS range + + timeout = 1.0 + voltageSourceRange = 0 # 0: 10V, 1: 100V + + print \ + "voltageSourceRange :", voltageSourceRange, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + voltageSourceRange, timeout = \ + libxsmu.VS_setRange (deviceID, voltageSourceRange, timeout) + + if (timeout == 0.0): + print 'Communication timeout in VS_setRange.' + exit (-2) + + ############################ + # Set VS voltage + + timeout = 1.0 + voltage = value + voltage, timeout = libxsmu.VS_setVoltage (deviceID, voltage, timeout) + print \ + "Voltage: ", voltage, "\n" \ + "Timeout: ", timeout + + if (timeout == 0.0): + print 'Communication timeout in VS_setVoltage' + exit (-2) + + ############################ + time.sleep(1) + + +def set_DC_current (deviceID, value): + + ############################ + # Set CS range + + currentSourceRange = 3 # 0: 10uA, 1: 100uA, 2: 1mA, 3: 10mA, 4: 100mA + timeout = 1.0 + + if (np.abs(value) < 0.0001): + currentSourceRange = 1 + + elif (np.abs(value) < 0.001): + currentSourceRange = 2 + + elif (np.abs(value) < 0.01): + currentSourceRange = 3 + + currentSourceRange, timeout = \ + libxsmu.CS_setRange (deviceID, currentSourceRange, timeout) + + print \ + "currentSourceRange :", currentSourceRange, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in CS_setRange.' + exit (-2) + + + ############################ + # Set CS current + + timeout = 1.0 + current = value + current, timeout = libxsmu.CS_setCurrent (deviceID, current, timeout) + + print \ + "Current: ", current, "\n" \ + "Timeout: ", timeout + + if (timeout == 0.0): + print 'Communication timeout in CS_setCurrent' + exit (-2) + + ############################ + time.sleep(1) + +def set_CM_Range(deviceID, range): + + ############################ + # Set CM range + + timeout = 1.0 + currentMeterRange = range # 0: 10uA, 1: 100uA, 2: 1mA, 3: 10mA, 4: 100mA + + currentMeterRange, timeout = \ + libxsmu.CM_setRange (deviceID, currentMeterRange, timeout) + + print \ + "currentMeterRange :", currentMeterRange, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in CM_setRange.' + exit (-2) + +def measureI (deviceID, filterLength): + + ############################ + # Set CM Range to 10mA + set_CM_Range(deviceID, 3) + + ############################ + # Get CM Current + + filter_length = filterLength + timeout = 1 + 0.022 * filter_length + + current, timeout = libxsmu.CM_getReading (deviceID, filter_length, timeout) + + print '**** Current : ' + str(current) + ' ****' + + if (timeout == 0.0): + print 'Communication timeout in CM_getReading.' + exit (-2) + + ############################ + + if (np.abs(current) < 0.0001): + # Set CM Range to 100uA + set_CM_Range(deviceID, 1) + print 'Range : 100 uA' + + elif (np.abs(current) < 0.001): + # Set CM Range to 1mA + set_CM_Range(deviceID, 2) + print 'Range : 1 mA' + + elif (np.abs(current) < 0.01): + print 'Range : 10 mA' + + else : + print 'Out of Range' + + ############################ + + timeout = 1 + 0.022 * filter_length + current, timeout = libxsmu.CM_getReading (deviceID, filter_length, timeout) + + print \ + "current :", current, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in CM_getReading.' + exit (-2) + + return current + + +def set_VM_Range(deviceID, range): + + ############################ + # Set VM range + + timeout = 1.0 + voltageMeterRange = range # 0: 1mV, 1: 10mV, 2: 100mV, 3: 1V, 4: 10V, 5: 100V + + voltageMeterRange, timeout = \ + libxsmu.VM2_setRange (deviceID, voltageMeterRange, timeout) + print \ + "voltageMeterRange :", voltageMeterRange, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in VM_setRange.' + exit (-2) + + +def measureV (deviceID, filterLength): + + ############################ + # Set VM Range to 10V + + set_VM_Range(deviceID, 4) + + ############################ + # Get VM Voltage + + filter_length = filterLength + timeout = 1 + 0.03 * filter_length + + voltage, timeout = libxsmu.VM2_getReading (deviceID, filter_length, timeout) + + print '**** Voltage : ' + str(voltage) + ' ****' + + if (timeout == 0.0): + print 'Communication timeout in VM_getReading.' + exit (-2) + + ############################ + + if (np.abs(voltage) < 0.01): + ############################ + # Set VM Range to 100mV + set_VM_Range(deviceID, 2) + print 'VM Range : 100 mV' + + elif (np.abs(voltage) < 1): + ############################ + # Set VM Range to 1V + set_VM_Range(deviceID, 3) + print 'VM Range : 1 V' + + elif (np.abs(voltage < 10)): + print 'VM Range : 10 V' + + else : + print 'Out of Range' + + ############################ + + timeout = 1 + 0.03 * filter_length + + voltage, timeout = libxsmu.VM2_getReading (deviceID, filter_length, timeout) + + print \ + "voltage :", voltage, "\n" \ + "Remaining time :", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in VM_getReading.' + exit (-2) + + return voltage + + +def measure_IV (deviceID, iteration, mode, filterLength): + + logfile = open("histogram_data.txt", "a") + + for index in range(iteration): + + current = measureI(deviceID, filterLength) + voltage = measureV(deviceID, filterLength) + + logfile.write(str(voltage) + "," + str(current) + "," + str(time.time()) + "," + mode + "\n") + + + logfile.write ('Next Source Value...\n') + logfile.close () + + print current, voltage + + return current, voltage + +def sourceMode (deviceID, mode): + + timeout = 10.0 + sourceMode, timeout = libxsmu.setSourceMode (deviceID, mode, timeout) + print \ + "sourceMode :", sourceMode, "\n" \ + "Remaining time:", timeout, "sec", "\n" + + if (timeout == 0.0): + print 'Communication timeout in setSourceMode.' + exit (-2) + + +def sourceSwitching (deviceID, voltage, current, voltage_step, current_step, mode, filterLength): + + if (mode == "VOLTAGE"): + + set_DC_voltage (deviceID, (voltage + voltage_step)) + current_new = measureI(deviceID, filterLength) + set_DC_voltage (deviceID, voltage) + + if (np.abs(current_new - current) >= current_step): + sourceMode (deviceID, 1) # source mode : 0 = Voltage, 1 = Current + return "CURRENT" + + else: + return "VOLTAGE" + + else : + set_DC_current (deviceID, current + current_step) + voltage_new = measureV(deviceID, filterLength) + set_DC_current (deviceID, current) + + if (np.abs(voltage_new - voltage) >= voltage_step): + sourceMode (deviceID, 0) # source mode : 0 = Voltage, 1 = Current + return "VOLTAGE" + + else: + return "CURRENT" + + +def main(): + + + ########################################################################## + # Scans USB bus for Xplore SMU. + + N = libxsmu.scan() + print "Total device:", N + + if N == 0: + print 'No Xplore SMU device found.' + exit (-1) + + ########################################################################## + # Queries serial number of the first device. + # This should be sufficient if only a single device is present. + + serialNo = 'XSMU012A' + print "Serial number:", serialNo + + timeout = 1.0 + deviceID, goodID, timeout = libxsmu.open_device (serialNo, timeout) + print \ + "Device ID :", deviceID, "\n" \ + "goodID :", goodID, "\n" \ + "Remaining time:", timeout, "sec", "\n" + + if (timeout == 0.0) or (not goodID): + print 'Communication timeout in open_device.' + exit (-2) + + ########################################################################## + # User input parameters + + Voltage_Range = float (raw_input ("Enter Voltage Range (V) : ")) # V + Current_Range = float (raw_input ("Enter Current Range (A) : ")) # I + Voltage_Step = float (raw_input ("Enter Voltage Step Size (V) : ")) # Delta_V + Current_Step = float (raw_input ("Enter Current Step Size (A) : ")) # Delta_V + iteration = int (raw_input ("Enter number of iterations : ")) # no. of measurements at each (I,V) point + + ########################################################################## + #Intelligent Switching algorithm + + voltage = 0.0 + current = 0.0 + mode = "VOLTAGE" + + filterLength = 1 + + set_DC_voltage(deviceID, voltage) + + while ((voltage <= Voltage_Range) and (current <= Current_Range)): + + if (mode == "VOLTAGE"): + + set_DC_voltage (deviceID, voltage) + current, voltage = measure_IV (deviceID, iteration, mode, filterLength) + mode = sourceSwitching (deviceID, voltage, current, Voltage_Step, Current_Step, mode, filterLength) + + if (mode == "VOLTAGE"): + voltage = voltage + Voltage_Step + + else: + current = current + Current_Step + + elif (mode == "CURRENT"): + + set_DC_current (deviceID, current) + current, voltage = measure_IV (deviceID, iteration, mode, filterLength) + mode = sourceSwitching (deviceID, voltage, current, Voltage_Step, Current_Step, mode, filterLength) + + if (mode == "VOLTAGE"): + voltage = voltage + Voltage_Step + + else: + current = current + Current_Step + + print mode + + set_DC_voltage (deviceID, 0.0) + + raw_input ("Run Finished. Press Enter to Exit\n") + + ########################################################################## + # closes the device. + + libxsmu.close_device(deviceID) + +main() From 229a1af1c1ae34353517efcba703d0a1a618154c Mon Sep 17 00:00:00 2001 From: vishnu2709 Date: Thu, 28 Sep 2017 11:45:49 +0530 Subject: [PATCH 40/40] Voltage measurement at multiple temperatures --- user_scripts/voltage_measurements.py | 67 +++++++++++++--------------- 1 file changed, 31 insertions(+), 36 deletions(-) diff --git a/user_scripts/voltage_measurements.py b/user_scripts/voltage_measurements.py index 8d0c901..a6d1215 100644 --- a/user_scripts/voltage_measurements.py +++ b/user_scripts/voltage_measurements.py @@ -62,53 +62,48 @@ def main(): xtcon_devices = xtcon_driver.scan() xtcon_driver.open(xtcon_devices[0]) - setpoint = float(raw_input ("Enter isothermal setpoint (K) : ")) - tolerance = float(raw_input ("Tempereature Tolerance (over 10 successive readings) (K) : ")) - monitoring_period = int (raw_input ("Enter the monitoring_period ( Positive Integer ) : ")) + temperatures = [] - print ("Starting Isothermal Run.. \n") - xtcon_driver.setIsothermalSetpoint (setpoint) - xtcon_driver.startIsothermalControl() + setpoint = float(raw_input ("Enter isothermal setpoint (K) : ")) + temperatures.append (setpoint) + response = raw_input ("Do you want to add another temperature setpoint? : y/n") + while (response == 'y'): + setpoint = float(raw_input ("Enter isothermal setpoint (K) : ")) + temperatures.append (setpoint) + response = raw_input ("Do you want to add another temperature setpoint? : y/n") - # Stabilizes the temperature and waits for user to take an IV run from Qrius GUI - stabilize_temp (xtcon_driver, tolerance, monitoring_period) - raw_input ("Press Enter when IV from Qrius GUI is complete") + tolerance = float(raw_input ("Tempereature Tolerance (over 10 successive readings) (K) : ")) + monitoring_period = int (raw_input ("Enter the monitoring period (Number of temperature readings) : ")) + iterations = int(raw_input("Enter Number of datapoints at each temperature : ")) + + xsmu_driver = xsmu.Driver() + xsmu_driver.open("XSMU012A") + + for setpoint in temperatures: + print ("Starting Isothermal Run at " + str(setpoint) + " K \n") + xtcon_driver.setIsothermalSetpoint (setpoint) + xtcon_driver.startIsothermalControl() - response = raw_input("Press y to continue? : y \n") - while (response != 'y'): - response = raw_input("Press y to continue? : y/n \n") + # Stabilizes the temperature and waits for user to take an IV run from Qrius GUI + stabilize_temp (xtcon_driver, tolerance, monitoring_period) - xsmu_driver = xsmu.Driver() - xsmu_driver.open("XSMU012A") - Amplitudes = [0.005, 0.0005, 0.00005] - ranges = [CM_RANGE_10mA, CM_RANGE_1mA, CM_RANGE_100uA] - time_stamps = [] + Amplitudes = [0.0] + ranges = [CM_RANGE_100uA] - iterations = int(raw_input("Enter Number of iterations : ")) + for i in range(len(Amplitudes)): + + DC_amplitude = Amplitudes[i] # A + DC_range = ranges[i] - for i in range(len(Amplitudes)): - - time_stamps.append(time.time()) - - DC_amplitude = Amplitudes[i] # A - DC_range = ranges[i] + print ("Setting DC Current.. \n") - print ("Setting DC Current.. \n") + set_DC_current (xsmu_driver, DC_amplitude, DC_range) + measure_voltage (xsmu_driver, xtcon_driver, iterations) - set_DC_current (xsmu_driver, DC_amplitude, DC_range) - measure_voltage (xsmu_driver, xtcon_driver, iterations) + xtcon_driver.stopIsothermalControl() - xtcon_driver.stopIsothermalControl() set_DC_current (xsmu_driver, 0.0, ranges[0]) - - filename = open("TimeStamps.txt", "w") - - for item in time_stamps: - filename.write(str(item) + "\n") - - filename.close() - xtcon_driver.close() xsmu_driver.close()