Changes in Version 1.5.5

This page summarizes new features and changes introduced in version 1.5.5 of SweepMe!

Main

  • Parameter system:The parameter system has been revised. A parameter manager stores alle available parameters for a certain key in the form „<label>_<module>_<unit>“. These keys can be used in curly brackets in line edit fields and are replace during readout. The widget ‚Parameters‘ presents the possible existing parameters.
  • In-line evaluation:Besides the replacement of parameters, curly brackets can also be used to do simple in-line calculations. If the content of the curly brackets is not a known parameter, an evaluation is done. For example { {my variable} * 2} would lead to a replacement of my variable (assuming it is defined) and then it will be multiplied by two. Everything outside curly brackets will not be evaluated.
  • Reconfigure:If parameters are used in line edit fields and SweepMe! detects a change of the replaced value during the measurement, „configure“ will be called again. Thus, parameter variations can be done that have not been possible by using the sweep mode.
  • Stop:The functionality „Stop“ that was present in the SweepEditor or as a module „Stop“ was removed. It was used to switch all instruments to a certain stop value between two measurement points. However, the handling was unclear and not easy to explain. Also, not all modules/devices supported stop. Thus, we removed it. You can resemble the behavior by creating settings and parameter sweeps that go to a certain stop value after each applied value.
  • Hotkeys:Shortcuts like ‚Shift+Alt+R‘ can be used to run a measurement and ‚Shift+Alt+S‘ to stop it. Use 'Shift+Alt+P' to pause or to resume. That way you can now combine SweepMe! with a foot pedal controller to start measurements in a glove box.
  • Data files:Time stamp is now given in ISO8601 format, e.g. '2020-10-09T16:42:38.173079'. The timestamp can now be parsed by ready-to-use functions when loading data files and also microseconds are saved.
  • Account:Using the menu of the version manger, you can now login to your account with SweepMe!. Then, further content can be downloaded, e.g. versions in the state ‚testing‘. We further plan, that user registering for private/non-commercial can use all content for free after login.
  • pysweepme:Parts of SweepMe! have been outsourced into an open-source package called ‚pysweepme‘. It includes the port handling and folder management. It can be used to quickly develop new device classes (drivers) or to create independent python programs that make use of the existing drivers.
  • Ports:Accompanied with pysweepme, we revised the port manager dialog. Showing sent and written commands in the Debug window can be switched on and off at any time. Only available GPIB ports are displayed.
  • Termination:If a Device Class used a while-loop which is not aborted by some condition, SweepMe! was freezing. The user is now asked whether the measurement should be terminated if it still runs several seconds after pressing the Stop-button.
  • Dashboard:The right main window „DockingStation“ is now called „Dashboard“. This change does not introduce any break, but will help to come closer to the wording used in the field of IoT where widgets are often arranged in dashboards. Widgets have now a right-click menu to rename or delete them where they are.
  • Dock widgets:Titles of the dock widgets of the dashboard can be renamed.
  • Licenses:Licenses can now be deactivated, e.g. if one wants to switch from an older to a newer computer. The modules that have been acquired by the deactivated license will be removed.
  • Portable:Some people use many setups and want to have everything with them. This is why SweepMe! can be changed to ‚portable‘, using „Options“ or by removing the ‚installed.ini‘ from the installation. An installation on an USB stick will be by default portable.
  • Style:A qt style sheet (qss file) is used to load and modify the visual appearance of SweepMe!. Experienced users can modify this file to create a customized GUI style.
  • Comments:A comment can be added to each module via the right-click menu of the sequencer item. It will be shown as the tooltip of this item. Html as well as plain text can be used.
  • Program files:SweepMe! Can now be installed to „C:\Program Files(x86)\...“ without interfering with missing admin rights. No files will be written anymore to the installation path.
  • Sweep editor:The column 'scaling' can be used set the scaling mode to replace the previous checkbox. Scaling modes 'Points (lin.)' and 'Points per dec.' added. A preview of the created values can be seen in a table via right-click menu.
  • Python packages:Scipy updated to version 1.3.3., PySide2 updated to 5.14
  • Versioning:SweepMe! comes with versioned modules and drivers to make clear which content is currently used and whether an update is needed.
  • Interfaces (beta):Interfaces are beta in 1.5.5. and allow to send commands to SweepMe!, e.g. to start/stop a measurement or to retrieve the values of some parameters. Interfaces are a new possibility to synchronize several measurement softwares. First interfaces are 'COMport', 'WebSocket' and 'HTTPserver'. As the command syntax is still under development, there might be later changes that lead to compatibility breaks.

Modules

  • Channel:Whenever an instrument has multiple channels, the channel was so far presented as multiple device classes of the same instrument with an ending that defines the channel. Modules that have device classes with multiple channels now have a new GUI field „Channel“ that can be used to define the channel. Changes are made in a way that old device classes still work, but please carefully check your settings. This change was made to reduce the number of shown device classes, improve the visibility of the channel parameter, and allow for a parameterization of the used channel without touching the device class.
  • Temperature:The module has been revised and old device classes have to be adapted again. It is now possible to have a sweep mode, e.g. to set a power instead of a temperature. Furthermore, the temperature unit can be changed in the GUI (if provided by the driver).
  • CustomFunction:A new „gui“-mode can be used to create GUI widgets that can be placed within the Dashboard. It allows you to create your very own widgets to display your data or to interact with the measurement.
  • Calibration files:Modules that have a field 'Calibration' can use a function to search for calibrations. Calibrations that are stored in the public folder 'CALIBRATIONS' are returned now including the file extension. Also subfolders are searched for so that calibration files can be organized by date or other criteria.

Devices/Drivers

  • Driver:In future, we will probably replace the term „Device“ or „Device Class“ by „Driver“. Why? Device (Class) is a term from the early beginnings and it leads to confusion in the field of semiconductor industry where devices are rather the samples to be investigated. The term „Driver“ is more general and also comprises bindings to other things like software tools. For now, we still use the term „Device“, but we will increase the use of the term „Driver“ for Devices and Device Classes.
  • Reconfigure:A new function „reconfigure“ can be used. It is called if a property of the GUI has changed due to a parameter change. The default behavior is that 'get_GUIparameter' and 'configure' are called again. However, 'reconfigure' can be overwritten to only set the parameters again that have changed.
  • ImportInterceptor:If multiple drivers import the same package, but different versions of it, pythons lazy import can make problems. In that case, only the version related to the first import is loaded and provided to all other ports. To be able to load exactly the package that is shipped with your driver, the ImportInterceptor can be used to create a driver-unique package import.

Widgets

  • Gauge:This new widget can be used to graphically visualize a value between a minimum and maximum value.
  • Parameters:This new widget displays the parameters that are known to the system and that can be used within curly brackets {…} in line edit fields. Furthermore, the type and value of the parameter can be seen. The user can sort and filter the table.
  • Plot:The plotting speed is increased whenever the scales do not change by using blitting. The legend is now correctly filled with the sweep values of the modules that created the variation. The title of the dock widget is used for the thumbnail image. Colored stripes are shown at y (left) and z (right) axes if both are used. The line and marker properties can be set independently for the left and right axes. Filtering of measurement data is possible, e.g. to show the data of the last minute.
  • Monitor:After the measurement, values are greyed out. Thus, it is indicated that they are not up to date, but still the user can read the last value.
  • Document:This new widget allows to present a text as plain text or formatted as rich text or markdown. Thus, manuals or explanations can be added to the dashboard. Furthermore, html and markdown formatting allows to add links or images.
  • General:The way how widgets are loaded has been unified which will make it easier to implement them. Feel free to suggest new ones that will be added to next version.