Python high-level analyzers are finally here! We haven’t polished the feature at all yet, so expect a lot of changes and improvements over the next few weeks. Please send us your issues, your suggestions for improvements, and please share the high-level analyzers you write!
High-Level Analyzer Extensions! You can now write a short Python script and process decoded protocol results - change the text, merge multiple results, filter or create new results from scratch.
Added an RMS analog measurement and digital clock frequency measurements - Python measurements are coming soon!
I just tried out the Gyro example HLA and it does seem to work as advertised!
I hope that you’ll add support for viewing the HLA output in a table. What’s there is nice but it’s a bit hard to get a high level picture of what’s happening.
Along those same lines, exporting the analyzer results would be great. I’ve developed a workflow that involves diffing my own analyzer output. While diffing captures in Logic would be nice, there’s already a plethora of diff tools so maybe it wouldn’t be the best use of your time
Woot! Glad to hear it works on a computer outside of our office - it took quite a bit of effort just to get it to this point.
There is more work ahead than behind - we’re going to build a completely new results table that will support protocol specific (or HLA specific) columns, and we’ll also hook up HLAs to the terminal view. Export will definitely happen too.
I should mention that 2.2.6 now includes regular analyzer export, I know users have been waiting for that for a while. Hope it helps! And, in the short term, you could simply save the frames you produce to a file while you produce them in python.
Yup, I’m actually using the I2C analyzer at the moment.
Two bits of feedback:
Exporting analyzer results is a bit counter-intuitive. Ideally there would be a floppy glyph, arrow or something similar right next to the terminal slider, or somewhere else visible and near the Decoded Protocols table. I suppose next to the analyzer name would work as well.
Unless I’m missing something, you have to hover over the analyzer name to bring up the menu glyph, click it, then select export. Now that I know where to find it it’s not so bad but finding it was a bit frustrating. I understand the desire to keep the UI from getting cluttered (and appreciate it) however I think for now exporting the data will be a common task
Please consider adding Hex+Binary as a formatting option.
when working under heavy load (4 channels, 50mhz analog, 125mbps digital) the stop button is not responding after the recording has begun, need to force shut down of the software to stop.
happened consistently on my pc.
im working with saleas 16 pro on windows 10 if it matters.
Seems like this version doesn’t run on High Sierra & Mojave anymore (2.2.5 did):
MacBook-Pro:~ romuald$ /Users/romuald/Downloads/Logic2.app/Contents/MacOS/Logic ; exit;
Environment
Executable path: /Users/romuald/Downloads/Logic2.app/Contents/MacOS/Logic
Executable directory: /Users/romuald/Downloads/Logic2.app/Contents/MacOS
Original working directory: /Users/romuald
Current working directory: /Users/romuald/Downloads/Logic2.app/Contents/MacOS
Python Home: /Users/romuald/Downloads/Logic2.app/Contents/Resources/osx/pythonlibs
(node:70003) UnhandledPromiseRejectionWarning: Error: Dynamic Linking Error: dlopen(/Users/romuald/Downloads/Logic2.app/Contents/Resources/osx/pythonlibs/lib/libpython3.8.dylib, 2): Symbol not found: ____chkstk_darwin
Referenced from: /Users/romuald/Downloads/Logic2.app/Contents/Resources/osx/pythonlibs/lib/libpython3.8.dylib (which was built for Mac OS X 10.15)
Expected in: /usr/lib/libSystem.B.dylib
in /Users/romuald/Downloads/Logic2.app/Contents/Resources/osx/pythonlibs/lib/libpython3.8.dylib
at new DynamicLibrary (/Users/romuald/Downloads/Logic2.app/Contents/Resources/app.asar/node_modules/ffi-napi/lib/dynamic_library.js:74:11)
at Object.Library (/Users/romuald/Downloads/Logic2.app/Contents/Resources/app.asar/node_modules/ffi-napi/lib/library.js:45:14)
at startGraphServer (/Users/romuald/Downloads/Logic2.app/Contents/Resources/app.asar/dist/index.js:68:13)
at App.<anonymous> (/Users/romuald/Downloads/Logic2.app/Contents/Resources/app.asar/dist/index.js:178:48)
at App.emit (events.js:208:15)
(node:70003) UnhandledPromiseRejectionWarning: Error: Dynamic Linking Error: dlopen(/Users/romuald/Downloads/Logic2.app/Contents/Resources/osx/pythonlibs/lib/libpython3.8.dylib, 2): Symbol not found: ____chkstk_darwin
Referenced from: /Users/romuald/Downloads/Logic2.app/Contents/Resources/osx/pythonlibs/lib/libpython3.8.dylib (which was built for Mac OS X 10.15)
Expected in: /usr/lib/libSystem.B.dylib
in /Users/romuald/Downloads/Logic2.app/Contents/Resources/osx/pythonlibs/lib/libpython3.8.dylib
at new DynamicLibrary (/Users/romuald/Downloads/Logic2.app/Contents/Resources/app.asar/node_modules/ffi-napi/lib/dynamic_library.js:74:11)
at Object.Library (/Users/romuald/Downloads/Logic2.app/Contents/Resources/app.asar/node_modules/ffi-napi/lib/library.js:45:14)
at startGraphServer (/Users/romuald/Downloads/Logic2.app/Contents/Resources/app.asar/dist/index.js:68:13)
at App.<anonymous> (/Users/romuald/Downloads/Logic2.app/Contents/Resources/app.asar/dist/index.js:178:48)
at App.emit (events.js:208:15)
(node:70003) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:70003) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:70003) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:70003) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
@Romke sorry about that! Looks like our python 3.8 build is targeting the 10.15 MacOS SDK, but haven’t looked into it yet. We’ll take a look today.
Quick question - are you planning on updating to Catalina?
I ask because I want to drop support for everything except for 10.1, 10.15, and newer, because the 10.14 SDK included some new C++17 features that we have available on Linux and Windows, but have to work around on MacOS. There are other solutions for that though.
I’ve seen this many times too, it’s related to our performance problems. Now that high level analyzers have shipped, we’re putting the whole team on it!
Whoops, sorry about that @siddacious! I implemented the feature and set the display base to a fixed value for testing, but forgot to go back and connect it to the settings in the UI.
I think the “i” problem is related to the export using the ASCII format. inthe 8 bit decode version, the address isn’t a valid low-ascii character, so the legacy export code displayed it as a decimal number instead.
“Packet Id” is always set to 0
Whoops, I think that’s another bug in the adapter layer that connected the analyzer API from the old software to the new system, something that mainly affected export.
Address and Data are single quoted
The single quotes are added because of the way the legacy analyzer export code handles non-standard ascii characters when in the ASCII mode. adding display base support will fix most of these issues.
2.2.6 is getting a segmentation fault after the memory buffer has filled.
Ubuntu 20.04 x64 on an i5, Logic Pro 8.
I am monitoring 4 channels digital at 6.25MS/s, 1 analog at 1.562MS/s. 3GB buffer.
Keeping a 5 second backlog, stopping recording on trigger of one channel.
Once Logic crashes and I restart it, I have to power-cycle the Logic Pro or I get a connection error.
The trigger has not happened when it crashes; it is still recording. What I see is that the progress bar showing the amount of memory used in the buffer increases until it hits the 3GB limit. Here are the last several lines of terminal output:
State Handler [59685]
State Handler [422146]
State Handler [59688]
State Handler [422188]
State Handler [59690]
State Handler [422220]
State Handler [59693]
State Handler [422278]
State Handler [59696]
State Handler [422322]
State Handler [59699]
State Handler [422380]
State Handler [59702]
State Handler [422422]
State Handler [59704]
State Handler [422461]
State Handler [59707]
State Handler [422513]
State Handler [59710]
State Handler [422555]
State Handler [59713]
State Handler [422610]
State Handler [59715]
State Handler [422646]
State Handler [59718]
State Handler [422690]
State Handler [59721]
State Handler [422739]
State Handler [59724]
State Handler [422789]
State Handler [59727]
State Handler [422845]
State Handler [59729]
State Handler [422880]
State Handler [59732]
State Handler [422926]
State Handler [59735]
terminate called after throwing an instance of 'Saleae::SaleaeException'
what(): Invalid data sequence or position