Hi Christian,
thanks a lot for the user feedback.
I have a created a backlog item. A check to test whether data was already saved should not be a big deal. Still, it might take some time until the feature is processed as others are already pending.
In the meantime, you might use some other solutions:
In the screenshot, the add-on module UserIO is used to create a user input dialog for each repetition of Loop1. Here, the user can enter the next sample name.
In a second branch, the real measurement is performed. A MakeFile module can customized to automatically add the sample name to the file name and a Calc module can be used to add the sample name also as “measurement data” into the file.
Instead of saving every single measurement, this routine automatically saves the data for each iteration into a separate file. The user only needs to save once at the end of the entire measurement to copy all data from the temporary data folder to the final measurement data folder.
The above solution does not support to enter the name while the measurement is running, but at least it could add some more safety by always asking for the sample name before the measurement continues.
Here is the procedure of the screenshot that you can copy and paste into the sequencer to try it yourself.
{
"child_items": [
{
"child_items": [
{
"child_items": [],
"is_checked": true,
"is_expanded": true,
"module_details": {
"module_type": "UserIO",
"Label": "UserIO1",
"value": "",
"Type": "String",
"Message": "Please enter the sample name:",
"Variable": "sample_name",
"Unit": "",
"Maximum": "",
"Minimum": "",
"Choices": "",
"Blocking": true,
"Autoclose": true,
"Comment": ""
}
},
{
"child_items": [
{
"child_items": [
{
"child_items": [],
"is_checked": true,
"is_expanded": true,
"module_details": {
"module_type": "Calc",
"Label": "Calc1",
"value": "",
"Variable": "Sample",
"Unit": "",
"Function": "{UserIO1_sample_name}",
"Plot": true,
"Save": true,
"Execution": "Always",
"Value1": "UserIO1 sample_name",
"Value2": "",
"Value3": "",
"Comment": ""
}
}
],
"is_checked": true,
"is_expanded": true,
"module_details": {
"module_type": "SMU",
"Label": "SMU1",
"value": "",
"Device": "SMU-Simulation_Diode",
"Channel": "",
"Port": "",
"SweepValue": "SweepEditor",
"SweepMode": "Voltage in V",
"RouteOut": "Rear",
"4wire": false,
"Compliance": "0.001",
"SkipCompliance": false,
"Speed": "Fast",
"Range": "0",
"RangeVoltage": "Auto",
"Average": 1,
"Configuration": "",
"PostProcessingResistance": false,
"PostProcessingConductance": false,
"PostProcessingPower": false,
"ShowPulse": false,
"CheckPulse": false,
"PulseCount": 1,
"PulseOffLevel": "0",
"PulseOnTime": "200e-6",
"PulseOffTime": "200e-3",
"PulsePeriod": "1e-3",
"PulseDelay": "0.0",
"PulseMeasStart": 50,
"PulseMeasTime": 30,
"PulseRiseTime": "100e-9",
"PulseFallTime": "100e-9",
"PulseImpedance": "200e-3",
"SweepEditor": {
"sweeps": [
{
"loop": "1",
"start": "-2.0",
"end": "2.0",
"step_points": "0.1",
"scaling": "Step width",
"hold": "0.1"
}
]
},
"ListSweepCheck": true,
"ListSweepType": "Sweep",
"ListSweepStart": "0.0",
"ListSweepEnd": "1.0",
"ListSweepStepPointsType": "Step width:",
"ListSweepStepPointsValue": "0.1",
"ListSweepDual": false,
"ListSweepCustomValues": "",
"ListSweepHoldtime": "0.1",
"ListSweepDelaytime": "0.1",
"Comment": ""
}
}
],
"is_checked": true,
"is_expanded": true,
"module_details": {
"module_type": "MakeFile",
"Label": "MakeFile1",
"value": "{UserIO1_sample_name}",
"FileID": "{UserIO1_sample_name}",
"ShowAdvancedOptions": true,
"BranchIndex": true,
"FileIndex": true,
"ModuleLabels": true,
"Comment": ""
}
}
],
"is_checked": true,
"is_expanded": true,
"module_details": {
"module_type": "Loop",
"Label": "Loop1",
"value": "nonstop",
"Repetitions": "0",
"UseReduction": false,
"MaxPoints": 10000,
"Reduction": "Quadratic",
"KeepLastPoints": 10,
"Comment": ""
}
}
],
"data_type": "Sequencer",
"version": "v1"
}