<d1b2>
<dannas> Some small progress. I've added support for setting a bunch of channel options. Previously I could only query for them.
<d1b2>
<dannas> The program stalls while waiting for retrieval of some configuration parameters, so I need to look into if I can do more aggressive caching.
<d1b2>
<dannas> I also need to investigate how to advertise which options the scope supports.
<azonenberg>
dannas: there is currently no siglent command to query options
<azonenberg>
we have an open feature request against their firmware engineering team to add one
<d1b2>
<dannas> Ok, that's too bad
<monochroma>
exploit a buffer overflow and implement your own
<d1b2>
<dannas> I guess I'll just let that be as-is and maybe we can reconsider further down the road whether there should be some static setting for scopes that don't supports *OPT (or what the SCPI command is called)
<azonenberg>
the good news is, as of a week or two ago Jason from Siglent put us in touch with their firmware team for the 2xxx and higher scopes. Seems like 1xxx is a separate platform but we can probably get them to reach out to the right people
<azonenberg>
Siglent seems to be interested in working with us, just a matter of time to make things happen
<azonenberg>
And yes, I plan to add static configuration. This ties into some more general refactoring of being able to pass parameters to drivers and transports separately
<azonenberg>
i'm probably going to be changing the instrument connection string syntax
<azonenberg>
perhaps making it look more like a URL
<d1b2>
<dannas> "just a matter of time" sure is the sitation for me as well. I seem to be able to squeze in about an hour a day. 🙂 But if I just keep a steady pace I'll be done not too far away.
<monochroma>
azonenberg: which series are MAUI based?
<azonenberg>
monochroma: None of the siglent branded ones are
<azonenberg>
(although they're very close)
<d1b2>
<dannas> I've seen several occasions where glscopeclients locks up and the OS comes in asking whether the program should be stopped or if I want to wait. Do we have some general philophy about what requests should take place on the UI thread?
<azonenberg>
dannas: In general, things in the UI thread should be those for which an immediate response is necessary. like to determine whether to show something in the context menu
<monochroma>
azonenberg: oh, completely different code base that just looks like MAUI?
<azonenberg>
and those should be aggressively cached and it should only actually make the request once
<azonenberg>
monochroma: yes as far as i can tell
<monochroma>
huh, interesting
<d1b2>
<dannas> Ok, what I'm mostly seeing is that the first time I want to open channel prefs, the program stalls.
<azonenberg>
the wavesurfer 3000 is an arm port of maui but that is i think lecroy proprietary
<azonenberg>
i dont think siglent gets to use the same fw on their version
<d1b2>
<dannas> But I think I've seen it when I ran the test driver as well. Though that was a month ago so my memory might not serve me well here.
<azonenberg>
dannas: interesting
<azonenberg>
so, if it is just the loading delay you might be able to fix it by prefetching in a background thread right after the driver initializes
<azonenberg>
and as long as the user doesnt click those things in the first few seconds after connecting to the scope there will be no perceptible delay
<azonenberg>
and the first time they open channel prefs it will have a hot cache
<d1b2>
<dannas> Yeah, prefetching would solve that.
<azonenberg>
I don't do that in the lecroy driver as it's fast enough
<azonenberg>
but i cache aggressively after lazy fetching
<d1b2>
<dannas> It would have been nice to have some tests that exercises the drivers in scopehal for the requests that you can query for. Would allow regression testing by other scope owners.
<d1b2>
<dannas> Hm, maybe that already exists
<d1b2>
<dannas> checks the tests directory
<d1b2>
<dannas> It's annoying how inconsistent the Siglent SCPI commandset is. Some commands expects floating point numbers in scientific notation, others expects integers/floatingpoint depending on the magnitude of the value. Some wants the channel specified first, others place it later.
<azonenberg>
yeah lol
<azonenberg>
meanwhile lecroy has spots where there's enumerated constants for one of several different modes
<azonenberg>
and different commands take enums to describe the same thing
<azonenberg>
but the text of the enums is not the same
<azonenberg>
that said, despite not being as orthogonal as i'd like, and having the most godawful format imaginable for logic analyzer waveforms
<azonenberg>
i will give lecroy a lot of brownie points for the API being extremely stable and not changing much
<azonenberg>
to the point that early 2000s scope and a modern SDA 8Zi-B will work with the same driver and no changes other than adding new models to the table of memory sizes/sample rates
nelgau has joined #scopehal
nelgau has quit [Ping timeout: 256 seconds]
<_whitenotifier-8>
[starshipraider] azonenberg pushed 1 commit to master [+12/-0/±4] https://git.io/JyD0V
<_whitenotifier-8>
[starshipraider] azonenberg 14df154 - Work on AKL-PT5 v0.2