qplotter 1.6.0b3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. qplot/__init__.py +46 -0
  2. qplot/__main__.py +232 -0
  3. qplot/_auxiliary_paths.py +63 -0
  4. qplot/_metadata.py +12 -0
  5. qplot/_repair.py +14 -0
  6. qplot/_shutdown_supervisor.py +4049 -0
  7. qplot/_version.py +12 -0
  8. qplot/_windows_shutdown_job.py +1166 -0
  9. qplot/configuration/__init__.py +3 -0
  10. qplot/configuration/config.py +573 -0
  11. qplot/configuration/config_schema.json +319 -0
  12. qplot/configuration/scripts.py +255 -0
  13. qplot/configuration/themes/__init__.py +13 -0
  14. qplot/configuration/themes/_base.py +579 -0
  15. qplot/configuration/themes/blank.py +17 -0
  16. qplot/configuration/themes/dark.py +54 -0
  17. qplot/configuration/themes/light.py +54 -0
  18. qplot/datahandling/LoadFromDB.py +224 -0
  19. qplot/datahandling/__init__.py +47 -0
  20. qplot/datahandling/_trusted_live_helper.py +812 -0
  21. qplot/datahandling/_trusted_live_protocol.py +1745 -0
  22. qplot/datahandling/database.py +2330 -0
  23. qplot/datahandling/dimensions.py +43 -0
  24. qplot/datahandling/file_identity.py +461 -0
  25. qplot/datahandling/parameter_data.py +149 -0
  26. qplot/datahandling/plot_progress.py +17 -0
  27. qplot/datahandling/qcodes_cache.py +277 -0
  28. qplot/datahandling/qcodes_compat.py +14 -0
  29. qplot/datahandling/readSQL.py +2442 -0
  30. qplot/datahandling/readonly.py +2561 -0
  31. qplot/datahandling/source_activity.py +21 -0
  32. qplot/datahandling/trusted_array_preview.py +127 -0
  33. qplot/datahandling/trusted_derived_cache.py +1605 -0
  34. qplot/datahandling/trusted_derived_rendering.py +868 -0
  35. qplot/datahandling/trusted_heatmap.py +241 -0
  36. qplot/datahandling/trusted_live.py +2808 -0
  37. qplot/datahandling/trusted_live_queries.py +5907 -0
  38. qplot/datahandling/trusted_live_service.py +1894 -0
  39. qplot/datahandling/trusted_live_supervisor.py +2161 -0
  40. qplot/datahandling/trusted_plot.py +283 -0
  41. qplot/datahandling/trusted_presentation.py +1065 -0
  42. qplot/datahandling/trusted_snapshot.py +1132 -0
  43. qplot/datahandling/trusted_work_coordinator.py +2157 -0
  44. qplot/datahandling/trusted_work_scheduler.py +1204 -0
  45. qplot/diagnostics.py +241 -0
  46. qplot/resources/testdata/qplot_test_db_01_10mb.csv +11 -0
  47. qplot/resources/testdata/qplot_test_db_02_25mb.csv +14 -0
  48. qplot/resources/testdata/qplot_test_db_03_50mb.csv +17 -0
  49. qplot/resources/testdata/qplot_test_db_04_100mb.csv +20 -0
  50. qplot/resources/testdata/qplot_test_db_05_250mb.csv +23 -0
  51. qplot/resources/testdata/qplot_test_db_06_500mb.csv +26 -0
  52. qplot/resources/testdata/qplot_test_db_07_1gb.csv +29 -0
  53. qplot/resources/testdata/qplot_test_db_08_5gb.csv +32 -0
  54. qplot/resources/testdata/qplot_test_db_09_10gb.csv +35 -0
  55. qplot/resources/testdata/qplot_test_db_10_30gb.csv +38 -0
  56. qplot/testdata.py +1733 -0
  57. qplot/tools/__init__.py +13 -0
  58. qplot/tools/finite_means.py +114 -0
  59. qplot/tools/general.py +134 -0
  60. qplot/tools/heatmap_geometry.py +381 -0
  61. qplot/tools/operation_registry.py +179 -0
  62. qplot/tools/plot_tools.py +625 -0
  63. qplot/tools/sample_statistics.py +56 -0
  64. qplot/tools/worker.py +2787 -0
  65. qplot/windows/__init__.py +9 -0
  66. qplot/windows/_colorbar.py +422 -0
  67. qplot/windows/_commands.py +523 -0
  68. qplot/windows/_config_persistence.py +123 -0
  69. qplot/windows/_database_actions.py +4904 -0
  70. qplot/windows/_dataset_handle.py +221 -0
  71. qplot/windows/_dragdrop.py +71 -0
  72. qplot/windows/_export_paths.py +1167 -0
  73. qplot/windows/_help.py +169 -0
  74. qplot/windows/_native_averaging.py +173 -0
  75. qplot/windows/_native_transforms.py +389 -0
  76. qplot/windows/_plot1d_snap.py +608 -0
  77. qplot/windows/_plot1d_traces.py +2183 -0
  78. qplot/windows/_plot2d_colorbar.py +1126 -0
  79. qplot/windows/_plot2d_colorbar_dialog.py +786 -0
  80. qplot/windows/_plot2d_layers.py +2197 -0
  81. qplot/windows/_plot2d_sweeps.py +712 -0
  82. qplot/windows/_plotWin.py +1993 -0
  83. qplot/windows/_plot_actions.py +2695 -0
  84. qplot/windows/_plot_appearance.py +276 -0
  85. qplot/windows/_plot_axis_scaling.py +1485 -0
  86. qplot/windows/_plot_export.py +1445 -0
  87. qplot/windows/_plot_feedback.py +110 -0
  88. qplot/windows/_plot_marquee.py +656 -0
  89. qplot/windows/_plot_refresh.py +942 -0
  90. qplot/windows/_plot_state.py +239 -0
  91. qplot/windows/_plot_transform_labels.py +60 -0
  92. qplot/windows/_preferences.py +635 -0
  93. qplot/windows/_refresh_interval.py +70 -0
  94. qplot/windows/_run_controls.py +828 -0
  95. qplot/windows/_shortcuts.py +47 -0
  96. qplot/windows/_subplots/__init__.py +8 -0
  97. qplot/windows/_subplots/subplot1d.py +531 -0
  98. qplot/windows/_subplots/subplot2d.py +918 -0
  99. qplot/windows/_svg_export.py +209 -0
  100. qplot/windows/_trusted_derived_qt.py +1759 -0
  101. qplot/windows/_widgets/__init__.py +23 -0
  102. qplot/windows/_widgets/_run_formatting.py +387 -0
  103. qplot/windows/_widgets/details_tables.py +1119 -0
  104. qplot/windows/_widgets/dropbox.py +290 -0
  105. qplot/windows/_widgets/operations.py +460 -0
  106. qplot/windows/_widgets/preview.py +2997 -0
  107. qplot/windows/_widgets/run_list_items.py +488 -0
  108. qplot/windows/_widgets/toolbar.py +111 -0
  109. qplot/windows/_widgets/treeWidgets.py +2572 -0
  110. qplot/windows/_window_controls.py +413 -0
  111. qplot/windows/main.py +1635 -0
  112. qplot/windows/plot1d.py +311 -0
  113. qplot/windows/plot2d.py +1901 -0
  114. qplotter-1.6.0b3.dist-info/METADATA +318 -0
  115. qplotter-1.6.0b3.dist-info/RECORD +119 -0
  116. qplotter-1.6.0b3.dist-info/WHEEL +5 -0
  117. qplotter-1.6.0b3.dist-info/entry_points.txt +4 -0
  118. qplotter-1.6.0b3.dist-info/licenses/LICENSE +21 -0
  119. qplotter-1.6.0b3.dist-info/top_level.txt +1 -0
qplot/diagnostics.py ADDED
@@ -0,0 +1,241 @@
1
+ import logging
2
+ import sys
3
+ from logging.handlers import RotatingFileHandler
4
+ from pathlib import Path
5
+
6
+ from qplot._auxiliary_paths import ensure_safe_auxiliary_path
7
+
8
+ LOGGER_NAME = "qplot"
9
+ LOG_FILE_NAME = "qplot.log"
10
+ LOG_FORMAT = "%(asctime)s %(levelname)s [%(name)s] %(message)s"
11
+ DEFAULT_MAX_BYTES = 1_000_000
12
+ DEFAULT_BACKUP_COUNT = 3
13
+
14
+ _ORIGINAL_EXCEPTHOOK = None
15
+ _EXCEPTHOOK_INSTALLED = False
16
+
17
+
18
+ class _DatabaseSafeRotatingFileHandler(RotatingFileHandler):
19
+ """Prevent logging and log rotation from touching measurement files."""
20
+
21
+ def _open(self):
22
+ ensure_safe_auxiliary_path(self.baseFilename)
23
+ return super()._open()
24
+
25
+ def emit(self, record):
26
+ try:
27
+ ensure_safe_auxiliary_path(self.baseFilename)
28
+ except OSError:
29
+ if self.stream is not None:
30
+ self.stream.close()
31
+ self.stream = None
32
+ return
33
+ super().emit(record)
34
+
35
+ def doRollover(self):
36
+ try:
37
+ ensure_safe_auxiliary_path(self.baseFilename)
38
+ for index in range(1, self.backupCount + 1):
39
+ ensure_safe_auxiliary_path(self.rotation_filename(
40
+ f"{self.baseFilename}.{index}",
41
+ ))
42
+ except OSError:
43
+ return
44
+ super().doRollover()
45
+
46
+
47
+ def default_log_file():
48
+ """
49
+ Returns qPlot's default log file path.
50
+
51
+ """
52
+ return Path.home() / ".qplot" / LOG_FILE_NAME
53
+
54
+
55
+ def get_logger(name=None):
56
+ """
57
+ Returns qPlot's base logger or a child logger.
58
+
59
+ """
60
+ if not name:
61
+ return logging.getLogger(LOGGER_NAME)
62
+ if name == LOGGER_NAME or str(name).startswith(f"{LOGGER_NAME}."):
63
+ return logging.getLogger(str(name))
64
+ return logging.getLogger(f"{LOGGER_NAME}.{name}")
65
+
66
+
67
+ def configure_logging(
68
+ log_file=None,
69
+ level=logging.INFO,
70
+ force=False,
71
+ max_bytes=DEFAULT_MAX_BYTES,
72
+ backup_count=DEFAULT_BACKUP_COUNT,
73
+ ):
74
+ """
75
+ Configures qPlot's file logger.
76
+
77
+ Logging failures are intentionally non-fatal: diagnostics should never stop
78
+ the GUI from starting.
79
+
80
+ """
81
+ logger = get_logger()
82
+ logger.setLevel(level)
83
+ logger.propagate = False
84
+
85
+ target = Path(log_file) if log_file is not None else default_log_file()
86
+
87
+ if force:
88
+ _remove_owned_handlers(logger)
89
+ elif log_file is None and _has_owned_handler(logger):
90
+ return logger
91
+ elif _has_handler_for(logger, target):
92
+ return logger
93
+
94
+ formatter = logging.Formatter(LOG_FORMAT)
95
+ handler: logging.Handler
96
+ try:
97
+ target.parent.mkdir(parents=True, exist_ok=True)
98
+ handler = _DatabaseSafeRotatingFileHandler(
99
+ target,
100
+ maxBytes=max_bytes,
101
+ backupCount=backup_count,
102
+ encoding="utf-8",
103
+ )
104
+ except (OSError, ValueError):
105
+ handler = logging.NullHandler()
106
+
107
+ handler.setLevel(level)
108
+ handler.setFormatter(formatter)
109
+ handler.__dict__["_qplot_owned"] = True
110
+ logger.addHandler(handler)
111
+ return logger
112
+
113
+
114
+ def install_excepthook(call_original=True):
115
+ """
116
+ Installs a process-wide exception hook that writes uncaught exceptions.
117
+
118
+ """
119
+ global _ORIGINAL_EXCEPTHOOK, _EXCEPTHOOK_INSTALLED
120
+
121
+ configure_logging()
122
+ if _ORIGINAL_EXCEPTHOOK is None:
123
+ _ORIGINAL_EXCEPTHOOK = sys.excepthook
124
+
125
+ def hook(exc_type, exc_value, traceback):
126
+ get_logger().critical(
127
+ "Uncaught exception",
128
+ exc_info=(exc_type, exc_value, traceback),
129
+ )
130
+ if call_original and _ORIGINAL_EXCEPTHOOK is not None:
131
+ _ORIGINAL_EXCEPTHOOK(exc_type, exc_value, traceback)
132
+
133
+ sys.excepthook = hook
134
+ _EXCEPTHOOK_INSTALLED = True
135
+ return hook
136
+
137
+
138
+ def log_event(message, *args, level=logging.INFO, logger_name=None):
139
+ """
140
+ Logs a diagnostic event after ensuring logging is configured.
141
+
142
+ """
143
+ configure_logging()
144
+ get_logger(logger_name).log(level, message, *args)
145
+
146
+
147
+ def log_exception(context, error=None, logger_name=None):
148
+ """
149
+ Logs an exception or sanitized worker error text.
150
+
151
+ Only actual exceptions supply traceback details. Worker text is already
152
+ bounded and detached from its originating exception before Qt transport.
153
+
154
+ """
155
+ configure_logging()
156
+ logger = get_logger(logger_name)
157
+ if error is None:
158
+ logger.exception(context)
159
+ else:
160
+ logger.error(
161
+ "%s: %s",
162
+ context,
163
+ error,
164
+ exc_info=(type(error), error, error.__traceback__)
165
+ if isinstance(error, BaseException) else None,
166
+ )
167
+
168
+
169
+ def log_user_error(title, message, details=None, logger_name=None):
170
+ """
171
+ Logs the summary of a user-visible error dialog.
172
+
173
+ Dialog details can contain database values, connection strings, or other
174
+ measurement metadata. They remain available in the on-screen dialog but
175
+ are deliberately excluded from the persistent clear-text log.
176
+
177
+ """
178
+ configure_logging()
179
+ logger = get_logger(logger_name)
180
+ if details:
181
+ logger.error("%s: %s\nDetails: omitted from persistent log", title, message)
182
+ else:
183
+ logger.error("%s: %s", title, message)
184
+
185
+
186
+ def log_bounded_shutdown(message, diagnostics, logger_name=None):
187
+ """
188
+ Persists qPlot's internal bounded-shutdown resource snapshot exactly.
189
+
190
+ Unlike user-dialog details, this payload is generated solely from qPlot's
191
+ process and resource-liveness accounting and is required for post-mortem
192
+ shutdown diagnosis.
193
+
194
+ """
195
+ configure_logging()
196
+ get_logger(logger_name).error("%s\n%s", message, diagnostics)
197
+
198
+
199
+ def _has_handler_for(logger, target):
200
+ try:
201
+ target = target.resolve()
202
+ except OSError:
203
+ target = target.absolute()
204
+
205
+ for handler in logger.handlers:
206
+ if not getattr(handler, "_qplot_owned", False):
207
+ continue
208
+ if not hasattr(handler, "baseFilename"):
209
+ continue
210
+ try:
211
+ if Path(handler.baseFilename).resolve() == target:
212
+ return True
213
+ except OSError:
214
+ continue
215
+ return False
216
+
217
+
218
+ def _has_owned_handler(logger):
219
+ return any(getattr(handler, "_qplot_owned", False) for handler in logger.handlers)
220
+
221
+
222
+ def _remove_owned_handlers(logger):
223
+ for handler in list(logger.handlers):
224
+ if not getattr(handler, "_qplot_owned", False):
225
+ continue
226
+ logger.removeHandler(handler)
227
+ handler.close()
228
+
229
+
230
+ def _reset_logging_for_tests():
231
+ """
232
+ Resets qPlot diagnostics globals for isolated unit tests.
233
+
234
+ """
235
+ global _ORIGINAL_EXCEPTHOOK, _EXCEPTHOOK_INSTALLED
236
+
237
+ _remove_owned_handlers(get_logger())
238
+ if _EXCEPTHOOK_INSTALLED and _ORIGINAL_EXCEPTHOOK is not None:
239
+ sys.excepthook = _ORIGINAL_EXCEPTHOOK
240
+ _ORIGINAL_EXCEPTHOOK = None
241
+ _EXCEPTHOOK_INSTALLED = False
@@ -0,0 +1,11 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
@@ -0,0 +1,14 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
12
+ 2,current,Current,nA,-0.02,0.02,301,-2,2,451
13
+ 2,conductance,Conductance,uS,-0.2,0.2,301,-6,6,451
14
+ 2,signal,Signal,a.u.,-0.4,0.4,301,-20,20,451
@@ -0,0 +1,17 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
12
+ 2,current,Current,nA,-0.02,0.02,301,-2,2,451
13
+ 2,conductance,Conductance,uS,-0.2,0.2,301,-6,6,451
14
+ 2,signal,Signal,a.u.,-0.4,0.4,301,-20,20,451
15
+ 2,current,Current,nA,-0.03,0.03,401,-3,3,601
16
+ 2,conductance,Conductance,uS,-0.3,0.3,401,-9,9,601
17
+ 2,signal,Signal,a.u.,-0.6,0.6,401,-30,30,601
@@ -0,0 +1,20 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
12
+ 2,current,Current,nA,-0.02,0.02,301,-2,2,451
13
+ 2,conductance,Conductance,uS,-0.2,0.2,301,-6,6,451
14
+ 2,signal,Signal,a.u.,-0.4,0.4,301,-20,20,451
15
+ 2,current,Current,nA,-0.03,0.03,401,-3,3,601
16
+ 2,conductance,Conductance,uS,-0.3,0.3,401,-9,9,601
17
+ 2,signal,Signal,a.u.,-0.6,0.6,401,-30,30,601
18
+ 2,current,Current,nA,-0.04,0.04,551,-4,4,851
19
+ 2,conductance,Conductance,uS,-0.4,0.4,551,-12,12,851
20
+ 2,signal,Signal,a.u.,-0.8,0.8,551,-40,40,851
@@ -0,0 +1,23 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
12
+ 2,current,Current,nA,-0.02,0.02,301,-2,2,451
13
+ 2,conductance,Conductance,uS,-0.2,0.2,301,-6,6,451
14
+ 2,signal,Signal,a.u.,-0.4,0.4,301,-20,20,451
15
+ 2,current,Current,nA,-0.03,0.03,401,-3,3,601
16
+ 2,conductance,Conductance,uS,-0.3,0.3,401,-9,9,601
17
+ 2,signal,Signal,a.u.,-0.6,0.6,401,-30,30,601
18
+ 2,current,Current,nA,-0.04,0.04,551,-4,4,851
19
+ 2,conductance,Conductance,uS,-0.4,0.4,551,-12,12,851
20
+ 2,signal,Signal,a.u.,-0.8,0.8,551,-40,40,851
21
+ 2,current,Current,nA,-0.05,0.05,1001,-5,5,1501
22
+ 2,conductance,Conductance,uS,-0.5,0.5,1001,-15,15,1501
23
+ 2,signal,Signal,a.u.,-1.0,1.0,1001,-50,50,1501
@@ -0,0 +1,26 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
12
+ 2,current,Current,nA,-0.02,0.02,301,-2,2,451
13
+ 2,conductance,Conductance,uS,-0.2,0.2,301,-6,6,451
14
+ 2,signal,Signal,a.u.,-0.4,0.4,301,-20,20,451
15
+ 2,current,Current,nA,-0.03,0.03,401,-3,3,601
16
+ 2,conductance,Conductance,uS,-0.3,0.3,401,-9,9,601
17
+ 2,signal,Signal,a.u.,-0.6,0.6,401,-30,30,601
18
+ 2,current,Current,nA,-0.04,0.04,551,-4,4,851
19
+ 2,conductance,Conductance,uS,-0.4,0.4,551,-12,12,851
20
+ 2,signal,Signal,a.u.,-0.8,0.8,551,-40,40,851
21
+ 2,current,Current,nA,-0.05,0.05,1001,-5,5,1501
22
+ 2,conductance,Conductance,uS,-0.5,0.5,1001,-15,15,1501
23
+ 2,signal,Signal,a.u.,-1.0,1.0,1001,-50,50,1501
24
+ 2,current,Current,nA,-0.06,0.06,1251,-6,6,1901
25
+ 2,conductance,Conductance,uS,-0.6,0.6,1251,-18,18,1901
26
+ 2,signal,Signal,a.u.,-1.2,1.2,1251,-60,60,1901
@@ -0,0 +1,29 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
12
+ 2,current,Current,nA,-0.02,0.02,301,-2,2,451
13
+ 2,conductance,Conductance,uS,-0.2,0.2,301,-6,6,451
14
+ 2,signal,Signal,a.u.,-0.4,0.4,301,-20,20,451
15
+ 2,current,Current,nA,-0.03,0.03,401,-3,3,601
16
+ 2,conductance,Conductance,uS,-0.3,0.3,401,-9,9,601
17
+ 2,signal,Signal,a.u.,-0.6,0.6,401,-30,30,601
18
+ 2,current,Current,nA,-0.04,0.04,551,-4,4,851
19
+ 2,conductance,Conductance,uS,-0.4,0.4,551,-12,12,851
20
+ 2,signal,Signal,a.u.,-0.8,0.8,551,-40,40,851
21
+ 2,current,Current,nA,-0.05,0.05,1001,-5,5,1501
22
+ 2,conductance,Conductance,uS,-0.5,0.5,1001,-15,15,1501
23
+ 2,signal,Signal,a.u.,-1.0,1.0,1001,-50,50,1501
24
+ 2,current,Current,nA,-0.06,0.06,1251,-6,6,1901
25
+ 2,conductance,Conductance,uS,-0.6,0.6,1251,-18,18,1901
26
+ 2,signal,Signal,a.u.,-1.2,1.2,1251,-60,60,1901
27
+ 2,current,Current,nA,-0.07,0.07,1801,-7,7,2701
28
+ 2,conductance,Conductance,uS,-0.7,0.7,1801,-21,21,2701
29
+ 2,signal,Signal,a.u.,-1.4,1.4,1801,-70,70,2701
@@ -0,0 +1,32 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
12
+ 2,current,Current,nA,-0.02,0.02,301,-2,2,451
13
+ 2,conductance,Conductance,uS,-0.2,0.2,301,-6,6,451
14
+ 2,signal,Signal,a.u.,-0.4,0.4,301,-20,20,451
15
+ 2,current,Current,nA,-0.03,0.03,401,-3,3,601
16
+ 2,conductance,Conductance,uS,-0.3,0.3,401,-9,9,601
17
+ 2,signal,Signal,a.u.,-0.6,0.6,401,-30,30,601
18
+ 2,current,Current,nA,-0.04,0.04,551,-4,4,851
19
+ 2,conductance,Conductance,uS,-0.4,0.4,551,-12,12,851
20
+ 2,signal,Signal,a.u.,-0.8,0.8,551,-40,40,851
21
+ 2,current,Current,nA,-0.05,0.05,1001,-5,5,1501
22
+ 2,conductance,Conductance,uS,-0.5,0.5,1001,-15,15,1501
23
+ 2,signal,Signal,a.u.,-1.0,1.0,1001,-50,50,1501
24
+ 2,current,Current,nA,-0.06,0.06,1251,-6,6,1901
25
+ 2,conductance,Conductance,uS,-0.6,0.6,1251,-18,18,1901
26
+ 2,signal,Signal,a.u.,-1.2,1.2,1251,-60,60,1901
27
+ 2,current,Current,nA,-0.07,0.07,1801,-7,7,2701
28
+ 2,conductance,Conductance,uS,-0.7,0.7,1801,-21,21,2701
29
+ 2,signal,Signal,a.u.,-1.4,1.4,1801,-70,70,2701
30
+ 2,current,Current,nA,-0.08,0.08,5001,-8,8,7501
31
+ 2,conductance,Conductance,uS,-0.8,0.8,5001,-24,24,7501
32
+ 2,signal,Signal,a.u.,-1.6,1.6,5001,-80,80,7501
@@ -0,0 +1,35 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
12
+ 2,current,Current,nA,-0.02,0.02,301,-2,2,451
13
+ 2,conductance,Conductance,uS,-0.2,0.2,301,-6,6,451
14
+ 2,signal,Signal,a.u.,-0.4,0.4,301,-20,20,451
15
+ 2,current,Current,nA,-0.03,0.03,401,-3,3,601
16
+ 2,conductance,Conductance,uS,-0.3,0.3,401,-9,9,601
17
+ 2,signal,Signal,a.u.,-0.6,0.6,401,-30,30,601
18
+ 2,current,Current,nA,-0.04,0.04,551,-4,4,851
19
+ 2,conductance,Conductance,uS,-0.4,0.4,551,-12,12,851
20
+ 2,signal,Signal,a.u.,-0.8,0.8,551,-40,40,851
21
+ 2,current,Current,nA,-0.05,0.05,1001,-5,5,1501
22
+ 2,conductance,Conductance,uS,-0.5,0.5,1001,-15,15,1501
23
+ 2,signal,Signal,a.u.,-1.0,1.0,1001,-50,50,1501
24
+ 2,current,Current,nA,-0.06,0.06,1251,-6,6,1901
25
+ 2,conductance,Conductance,uS,-0.6,0.6,1251,-18,18,1901
26
+ 2,signal,Signal,a.u.,-1.2,1.2,1251,-60,60,1901
27
+ 2,current,Current,nA,-0.07,0.07,1801,-7,7,2701
28
+ 2,conductance,Conductance,uS,-0.7,0.7,1801,-21,21,2701
29
+ 2,signal,Signal,a.u.,-1.4,1.4,1801,-70,70,2701
30
+ 2,current,Current,nA,-0.08,0.08,5001,-8,8,7501
31
+ 2,conductance,Conductance,uS,-0.8,0.8,5001,-24,24,7501
32
+ 2,signal,Signal,a.u.,-1.6,1.6,5001,-80,80,7501
33
+ 2,current,Current,nA,-0.09,0.09,5601,-9,9,8401
34
+ 2,conductance,Conductance,uS,-0.9,0.9,5601,-27,27,8401
35
+ 2,signal,Signal,a.u.,-1.8,1.8,5601,-90,90,8401
@@ -0,0 +1,38 @@
1
+ dimensions,measured_name,measured_label,measured_unit,v_sd_start,v_sd_stop,v_sd_points,v_g_start,v_g_stop,v_g_points
2
+ 1,current,Current,nA,-0.1,0.1,1001,,,
3
+ 1,conductance,Conductance,uS,-0.1,0.1,1001,,,
4
+ 1,resistance,Resistance,kOhm,-0.1,0.1,1001,,,
5
+ 1,transconductance,Transconductance,uS/V,-0.1,0.1,1001,,,
6
+ 1,current,Current,nA,-0.1,0.1,1001,,,
7
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
8
+ 2,current,Current,nA,-0.01,0.01,201,-1,1,301
9
+ 2,resistance,Resistance,kOhm,-0.05,0.05,201,-5,5,301
10
+ 2,charge_sensor,Charge sensor,a.u.,-0.02,0.02,201,-2,2,301
11
+ 2,signal,Signal,a.u.,-0.2,0.2,201,-10,10,301
12
+ 2,current,Current,nA,-0.02,0.02,301,-2,2,451
13
+ 2,conductance,Conductance,uS,-0.2,0.2,301,-6,6,451
14
+ 2,signal,Signal,a.u.,-0.4,0.4,301,-20,20,451
15
+ 2,current,Current,nA,-0.03,0.03,401,-3,3,601
16
+ 2,conductance,Conductance,uS,-0.3,0.3,401,-9,9,601
17
+ 2,signal,Signal,a.u.,-0.6,0.6,401,-30,30,601
18
+ 2,current,Current,nA,-0.04,0.04,551,-4,4,851
19
+ 2,conductance,Conductance,uS,-0.4,0.4,551,-12,12,851
20
+ 2,signal,Signal,a.u.,-0.8,0.8,551,-40,40,851
21
+ 2,current,Current,nA,-0.05,0.05,1001,-5,5,1501
22
+ 2,conductance,Conductance,uS,-0.5,0.5,1001,-15,15,1501
23
+ 2,signal,Signal,a.u.,-1.0,1.0,1001,-50,50,1501
24
+ 2,current,Current,nA,-0.06,0.06,1251,-6,6,1901
25
+ 2,conductance,Conductance,uS,-0.6,0.6,1251,-18,18,1901
26
+ 2,signal,Signal,a.u.,-1.2,1.2,1251,-60,60,1901
27
+ 2,current,Current,nA,-0.07,0.07,1801,-7,7,2701
28
+ 2,conductance,Conductance,uS,-0.7,0.7,1801,-21,21,2701
29
+ 2,signal,Signal,a.u.,-1.4,1.4,1801,-70,70,2701
30
+ 2,current,Current,nA,-0.08,0.08,5001,-8,8,7501
31
+ 2,conductance,Conductance,uS,-0.8,0.8,5001,-24,24,7501
32
+ 2,signal,Signal,a.u.,-1.6,1.6,5001,-80,80,7501
33
+ 2,current,Current,nA,-0.09,0.09,5601,-9,9,8401
34
+ 2,conductance,Conductance,uS,-0.9,0.9,5601,-27,27,8401
35
+ 2,signal,Signal,a.u.,-1.8,1.8,5601,-90,90,8401
36
+ 2,current,Current,nA,-0.10,0.10,11001,-10,10,17001
37
+ 2,conductance,Conductance,uS,-1.0,1.0,11001,-30,30,17001
38
+ 2,signal,Signal,a.u.,-2.0,2.0,11001,-100,100,17001