AnalyzerSettings.UpdateInterfacesFromSettings() has no effect

Hello,
thanks to @timreyes I can try out the simulation data generation of my analyzer in Logic 2.x by setting environment variable ENABLE_SIMULATION=1.
My analyzer works fine, as expected, but I noticed that in Logic 2.x (currently 2.3.13) AnalyzerSettings.UpdateInterfacesFromSettings() does not update the analyzer settings in the GUI.
In my analyzer I have an option for baudrate and autobaud. If autobaud is enabled I disable it and set the detected baudrate once the autobaud detection has completed successfully. In Logic 1.x this is propagated to the GUI settings of the analyzer but in Logic 2.x it is not.

BR,
Chris

Thanks Chris, good catch. Right now, in the 2.x software, the UI assumes that the values won’t be changed by the analyzer and does not check the analyzer for updates after initialization.

There are a handful of things missing from the analyzer API implementation in Logic 2:

  • adding frames to packets
  • this issue (loading interfaces back into the UI)
  • the ability to re-run analyzers using NeedsRerun (which is why we’ve removed autobaud from the serial analyzer)

We’ve also eliminated the need for LoadSettings and SaveSettings, by saving the settings interfaces instead.

It’s a work in progress, sorry for the trouble! I’ve added this to the bug list; we weren’t aware of the issue before. Unfortunately I can’t say when we’ll be able to get to it. The analyzer system needs some big fixes, but we have our plate for for quite a while in other areas of the app. Very sorry this isn’t already working properly!

In the interim, I think measuring & estimating baud rate would be best done with a custom python measurement. It’s a lot less convenient than just checking a box, but it would be quick and easy to implement.

Hi Mark, thanks for the update. Yes, I noticed these other issues as well. I’m OK with using Logic 1.x, I just always check how my analyzer behaves in Logic 2.x and report any issues.
For my autobaud detection I ran into the issue that I cannot re-run the analyzer in Logic 2. I could solve this issue in my case by measuring the ones and zeros of my 0x55 sync byte at the beginning of each protocol frame. For a generic autobaud detection the existing functions in the API are not well suited in my mind. Being able to get a histogram for a certain pulse range would be the best approach in my mind as mentioned in another topic regarding autobaud. This approach would still require a re-run though.

I ran into an issue with Logic 1.x when I had my NeedsRerun based detection. When the analyzer was already present but without autobaud activated and you activate it later, I couldn’t figure out how to trigger a re-interpretation of the data. See Autobaud detection

For my autobaud detection I ran into the issue that I cannot re-run the analyzer in Logic 2. I could solve this issue in my case by measuring the ones and zeros of my 0x55 sync byte at the beginning of each protocol frame. For a generic autobaud detection the existing functions in the API are not well suited in my mind. Being able to get a histogram for a certain pulse range would be the best approach in my mind as mentioned in another topic regarding autobaud. This approach would still require a re-run though.

We’re also thinking about this, but we’re not sure yet what solution we would like to go with. We really didn’t like the Re-run boolean option in the Logic 1.x software, which suffered from numerous issues. I’d rather not do that again, but we don’t have a better idea in mind yet.

This is more steps for the user, but I’d like to see a baud-rate-estimator measurement implemented in python. Although “It just works” autobaud would be prefered, it could be a nice way to calculate an accurate baud rate using the measurement API, which, most importantly, is available now.

the last Logic 1.x releases had analyzer re-run issues, unfortunately I’m not sure it works in all cases. The only Saleae analyzer to use the API feature was the async serial analyzer, and we eventually removed the feature from the UI since it wasn’t working properly. It’s still in the API, but not guaranteed to work.