nelgau has quit [Remote host closed the connection]
nelgau has joined #scopehal
nelgau has quit [Remote host closed the connection]
nelgau has joined #scopehal
Degi has quit [Ping timeout: 240 seconds]
Degi has joined #scopehal
nelgau has quit [Remote host closed the connection]
nelgau has joined #scopehal
nelgau has quit [Ping timeout: 250 seconds]
nelgau has joined #scopehal
<azonenberg>
Soooo that refactoring was easier than i thought
<azonenberg>
i forgot that the stream index field in StreamDescriptor defaults to zero
<azonenberg>
literally i had to do was change that one line, the function that pops the vector, and recompile all the drivers without changing any code in them
<_whitenotifier-7>
[scopehal] azonenberg b8a36c0 - Oscilloscope: SequenceSet now takes a StreamDescriptor so we can have more than one stream on a scope channel
<azonenberg>
So now trying to figure out how to handle s-parameter channels a bit more cleanly
<azonenberg>
more specifically, the fact that s-params are normally log mag / degree angles for display
<azonenberg>
but need to be linear mag / radian angles for math processing
<azonenberg>
The current TouchstoneImportFilter has a method GetParams() which returns the actual internal s-parameters
<azonenberg>
and DeEmbedFilter, the sole user of the s-params, ignores the actual mag/angle waveforms you give it
<azonenberg>
and casts the source object to TouchstoneImportFilter* and calls that method
<azonenberg>
Which is, to say the least, an ugly strategy
<azonenberg>
I could easily change DeEmbedFilter to actually use the raw mag/angle inputs but then i would need to do a lot of trig and rescaling every update
<azonenberg>
which would hurt performance
<azonenberg>
also the other issue to consider is that i might at some point want to do math operations on the s-params
<azonenberg>
For now i think i'll remove the fast path and actually use the db/degree data, converting as needed
<azonenberg>
imports and VNA sweeps don't change nearly as fast as scope waveforms so the cost of rescaling is minimal
<azonenberg>
and this is a more clean, unified approach that works with data from any source
<_whitenotifier-7>
[scopehal] azonenberg b34877f - SParameters: can now construct an SParameterVector from an AnalogChannel pair containing dB mag and degree angle data
<_whitenotifier-7>
[scopehal-apps] azonenberg 85849b1 - OscilloscopeWindow::OnAddChannel() makes sure to pick a compatible group, creating one if needed