sb0 changed the topic of #m-labs to: ARTIQ, Migen, MiSoC, Mixxeo & other M-Labs projects :: fka #milkymist :: Logs http://irclog.whitequark.org/m-labs
fengling has quit [Ping timeout: 256 seconds]
rohitksingh has joined #m-labs
evilspirit has joined #m-labs
rohitksingh has quit [Ping timeout: 260 seconds]
<cr1901_modern>
sb0: Can you pull, uncomment line 26, and confirm you get an AssertionError during startup when you get the chance. If you comment line 26 and repeatedly resize the widget, you'll see the problem.
mazzoo_ has quit [Ping timeout: 265 seconds]
mazzoo_ has joined #m-labs
fengling has joined #m-labs
fengling has quit [Ping timeout: 256 seconds]
rohitksingh has joined #m-labs
sj_mackenzie has joined #m-labs
evilspirit has quit [Ping timeout: 246 seconds]
evilspirit has joined #m-labs
evilspirit has quit [Client Quit]
sj_mackenzie has quit [Remote host closed the connection]
sb0 has joined #m-labs
fengling has joined #m-labs
fengling has quit [Ping timeout: 256 seconds]
acathla has quit [Quit: Coyote finally caught me]
acathla has joined #m-labs
<sb0>
of course, pyqtgraph.GraphicsWindow doesn't behave like a qt widget as far as winId & co are concerned. what else did I expect...
ylamarre has joined #m-labs
ylamarre has quit [Ping timeout: 265 seconds]
ylamarre has joined #m-labs
rohitksingh has quit [Ping timeout: 255 seconds]
<cr1901_modern>
sb0: redrawing is fixed, but I'm currently mulling over a difficult problem with resizing
<cr1901_modern>
Everything is implemented, save for data points and ensuring sliders cannot have their order swapped (which is tougher than I thought to do elegantly)
<sb0>
_florent_, what do you think about removing the sop signal from dataflow?
<GitHub20>
artiq/applets e37e0bd Sebastien Bourdeauducq: applets/plot_xy_hist: use applets.simple and datasets
<GitHub20>
artiq/applets 81a86b2 Sebastien Bourdeauducq: applets/plot_xy_hist: do not clear arrow/histogram when unrelated data is modified
<sb0>
cr1901_modern, alternately clicking the zoom buttons alters the view, which seems fishy to me
<sb0>
cr1901_modern, sometimes it displays a lot of decimals in the graduations which makes them unreadable (as the labels collide with one another)
<sb0>
cr1901_modern, so you only support those cases where both sliders are visible?
<sb0>
cr1901_modern, zooming in and out should not alter the cursor positions
<_florent_>
sb0: I'm ok with that
<_florent_>
sb0: I'll adapt liteeth_mini if you want
<cr1901_modern>
sb0: "alternately clicking the zoom buttons alters the view" << Related to aforementioned AssertionError
<cr1901_modern>
sb0: "graduations which makes them unreadable" << Yes, the alternative at pathological cases is to have major tick labels which display the same number (1e-15 1e-15 1e-15).
<cr1901_modern>
sb0: "so you only support those cases where both sliders are visible?" << The scene tries hard to ensure that both sliders are visible at all times.
<cr1901_modern>
sb0: "zooming in and out should not alter the cursor positions" << During a zoom in, what happens is that the linear transformation from pixels to units is changed, and the cursors are moved/keep their old unit values. Do you want it so that the cursors maintain their position and change values instead?
<cr1901_modern>
In any case, I'm stumped on the AssertionFailure, so I'm prob gonna make a minimal test case and post to QtForums
<sb0>
_florent_, ok. thanks!
<sb0>
cr1901_modern, well, zooming is only something that is related to the view, and it should not change the data
<sb0>
so moving the cursors is bad
<sb0>
cr1901_modern, why do you want to keep both cursors visible at the same time? i don't think you should try to enforce that at all. there is the "zoom to fit" button that the user can click to bring both cursors into the view.
<cr1901_modern>
Okay, let's tackle each point separately. I'm certainly open to changing what I've done b/c I've done some things that I don't really like
<cr1901_modern>
The view deals with pixels only; it has no knowledge of what's displayed on the sliders. All that the view knows is to move the sliders when told to by a proxy class, and notify the proxy class of any changes via signals
<cr1901_modern>
By "zooming changing the data", I presume you're talking about what happens when the sliders reach the edges?
<cr1901_modern>
sb0: ^^
<sb0>
cr1901_modern, well, when i zoom the cursors do not move but the graduations change. this is wrong.
<sb0>
and yeah it changes the data in the spinboxes, too...
<cr1901_modern>
That shouldn't be the case/wasn't my intent. Can you please post screenshots of before and after?
<sb0>
it's easy to reproduce, put the cursors at -10/+10
<sb0>
and then zoom in to the max
<sb0>
with the mouse wheel
<sb0>
when the graduations are at small values, e.g. -0.1/0.1, the data will begin to change
<cr1901_modern>
"zoom in to the max" << Zooming is not dependent on cursor position, so I assume you mean "just keep zooming in"
<sb0>
yes
<sb0>
just bring the cursors out of the view when you are zooming on a different part of the axis ...
<sb0>
or when the cursors are so spread apart that they cannot be both displayed at the current zoom level
<sb0>
i guess you may have to review the architecture of this thing...
<cr1901_modern>
Alright, I'll get rid of it.
<cr1901_modern>
I'm going by your Github description and implementing what pyqtgraph did without pyqtgraph. There's two ways to change the center of the displayed axis in pyqtgraph that I'm aware of
<cr1901_modern>
1. Right mouse click and drag
<cr1901_modern>
2. When you move a slider to the edge of the screen, the axis will zoom out automatically and recenter the axis
<cr1901_modern>
To implement #2, the sliders send a signal called sigBoundsUpdate when they detect they are at the edge of the screen. The transformation from pixels to spinboxes is recalculated.
<cr1901_modern>
You do not want this behavior?
<cr1901_modern>
sb0: ^^ (not sure if I should keep sending you notifications or not lol)
sj_mackenzie has joined #m-labs
<sb0>
cr1901_modern, #2 is fine, or scroll instead of zooming
<sb0>
scrolling is probably better imo
<sb0>
_florent_, when eop=1 you are also supposed to send valid data (the last message in the packet), correct?
<sb0>
there is no way to send all the data of the packet first, and then, eop in a later cycle
<_florent_>
i don't know, maybe, but here here we are sending valid data while eop=1
<_florent_>
as it's done generally (Avalon ST, AXI)
sb0 has quit [Ping timeout: 250 seconds]
sb0 has joined #m-labs
<sb0>
so in the rtio analyzer case, when finishing the transmission, the encoder would have to send a dummy packet with eop
<sb0>
*dummy message
<sb0>
...which is redundant with eop
<sb0>
corner cases, corner cases ...
<_florent_>
i'm not opposed to change that, having control packets in the stream can be interesting.
<sb0>
but if control messages are separate, that will limit throughput when the packet size is small
<_florent_>
yes
<sb0>
might be OK, though
<sb0>
I'm certainly fine with that, and probably that works too for ethernet?
<_florent_>
I think yes
<sb0>
bbl
sb0 has quit [Quit: Leaving]
sb0 has joined #m-labs
sb0 has quit [Quit: Leaving]
rohitksingh has joined #m-labs
FabM has quit [Quit: ChatZilla 0.9.92 [Firefox 43.0.4/20160105164030]]
rohitksingh has quit [Quit: Leaving.]
ylamarre has quit [Ping timeout: 265 seconds]
mindrunner has quit [Quit: quit]
ylamarre has joined #m-labs
mindrunner has joined #m-labs
sb0__ has joined #m-labs
<sb0__>
whitequark: how do I fix AssertionError: artiq-0.0-py_2399+git63f7899.tar.bz2 MatchSpec('aiohttp')
<sb0__>
when doing conda install artiq-kc705-nist_qc1