I came across a problem regarding the conditions module. The steps to reproduce are probably rather complicated but the issue itself looks as follows:
I have a tree (picture below):
-read_values module; “SAMPLE_POSITIONS”
(excel sheet; 64 rows in this case, where the last column has a 1/0 (true/false) value depending if it should be measured or not.)
-condition module; “Check if sample should be measured”
(set to always, comparing the value from above with 0 and calling “skip_sweeps_below” if statement is true.)
-SMU / Spectrometer module to measure something
(Robot can be ignored, as the issue occurs even when the module is unchecked)
When I set only the first row to 1, it will still “measure” the other 63 rows even though it recognizes the value to be 0 and also skipping the actual measurement. (In the Parameter Widget the value can also be seen correctly) “measure” means the SMU will briefly turn on and the spectrometer makes a sound but no data is collected/saved.
When creating a new test setting with the tree described as above, the problem does not happen. We had similar problems before, where the condition would not work, where, however, just redoing the setting (full copy one by one) fixed the issue. Can this be an issue when updating SweepMe! while using “older” settings? The setting was created in 1.5.6 and there is no warning in the general tab. (We currently use SweepMe! Version 1.5.6.19)
I can give you an immediate answer why this happens. In 1.5.6, there was a change of the Condition module to make the Execution phases more self-explaining.
You could check whether the old and and new settings differ here. Do you see any differences in the configuration of the Condition module.
Was there any change at the setup why it suddenly does not work anymore?
In general, I recommend to update to 1.5.6.30. In case you have any problems with 1.5.6.30, we can provide a full installer for your previous version to revert changes.
Further, please have a look at the version manager that you find via menu ‘Tools’. Which version of Condition are you using at the moment and are there newer versions available. Note down the current version and try newer ones. After changing a module version, the setting must be reloaded to refresh the module and it UI.
It would be even better to upgrade to 1.5.7 which can be installed in parallel to 1.5.6. However, SweepMe! 1.5.7 is 64bit only and this might conflict with using the CAS140 which to my knowledge uses a 32bit dll. We overcome this limitation by providing an interface-proxy library that helps to translate 32bit processes into 64bit processes. Write us to contact@sweep-me.net if you need support with that.
Please note that any possible fix in the Condition module will only be done for SweepMe! 1.5.7 as 1.5.6 has reached end-of-life according to our version release plan: Versioning - SweepMe! Wiki
Thank you for the insights and tips! Someone just happened to use the setup while being present so we discovered this issue. I tried to further specify the problem (with different settings with similar trees) but could not replicate it. Updating the module (condition) did not solve the issue. I will try updating the version to 1.5.6.30 soon.
For the moment the issue can be fixed when a small delay is put directly after the condition.
Updating to 1.5.7 will most likely not be done as this is only a small problem which does not affect the measurement itself.
thanks for the update. Adding a Delay of course sounds like something does not work properly yet, but as long as we cannot confirm it for 1.5.7 it will be diffcult for us to fix something. Still happy you can proceed with your measurements.
Something that I forgot to mention last time: Condition has a Debug mode that can be activated by right-clicking somewhere into the tab: