<feed xmlns='http://www.w3.org/2005/Atom'>
<title>labUI.git/ui/strip_chart.py, branch main</title>
<subtitle>Data acquisition program written in Python for use with serial communication devices.
</subtitle>
<id>https://git.kolset.xyz/labUI.git/atom?h=main</id>
<link rel='self' href='https://git.kolset.xyz/labUI.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/'/>
<updated>2026-08-03T21:32:56Z</updated>
<entry>
<title>Fix acquisition pipeline stutter with many channels</title>
<updated>2026-08-03T21:32:56Z</updated>
<author>
<name>Christian Kolset</name>
<email>ckolset@colostate.edu</email>
</author>
<published>2026-08-03T21:32:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/commit/?id=9bcad5d3af258eb72bc9c8ac87e3f1713e1b8b80'/>
<id>urn:sha1:9bcad5d3af258eb72bc9c8ac87e3f1713e1b8b80</id>
<content type='text'>
Batches per-tick device readings into one signal emit instead of one
per channel, evaluates derived channels once per tick instead of once
per raw sample, and makes ChannelBuffer.window() cost scale with the
window size instead of total buffer history. Strip chart X-range now
scrolls on an independent ~30fps timer instead of only snapping when
new data lands, which was the main visible cause of the stutter.

Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Replace grid-snap canvas with BSP-tree drag-to-split tiling</title>
<updated>2026-06-03T21:20:45Z</updated>
<author>
<name>Christian Kolset</name>
<email>christian.kolset@gmail.com</email>
</author>
<published>2026-06-03T21:20:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/commit/?id=216a278102e3f63f155d76d62790a3ca60fcec02'/>
<id>urn:sha1:216a278102e3f63f155d76d62790a3ca60fcec02</id>
<content type='text'>
Dragging a tile to the edge (left/right/top/bottom) of another tile
splits that tile's space and inserts the dragged tile on that side.
Drop zones occupy the outer third of each tile edge; center has no zone.
Ghost overlay shows the split target during drag.

Data model: LayoutConfig.tree (BSP tree as nested dict). PaneSpec.row/col
removed. strip_chart uses tree_to_grid() → rowspan/colspan for pyqtgraph.
Backward compat: tree=None falls back to layout_mode stacking path.

Example: 3 stacked → drag Tile 3 to left of Tile 1 → Tile 3|Tile 1 on
top (side-by-side), Tile 2 spans full bottom.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Add drag-and-snap tiling layout canvas to Plot Builder</title>
<updated>2026-06-03T21:05:36Z</updated>
<author>
<name>Christian Kolset</name>
<email>christian.kolset@gmail.com</email>
</author>
<published>2026-06-03T21:05:36Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/commit/?id=7b926faab3dcd52e45fc1b4b24f955a4dcf66959'/>
<id>urn:sha1:7b926faab3dcd52e45fc1b4b24f955a4dcf66959</id>
<content type='text'>
Replace layout radio buttons (Stacked/Side-by-Side/Grid) with a visual
LayoutCanvas widget. Pane tiles snap to grid cells on drag-drop; dropping
on an occupied cell swaps positions. Ghost highlight shows snap target
during drag.

- PaneSpec gains row/col fields (None = unassigned; backward compat preserved)
- LayoutConfig gains "free" mode; strip_chart reads explicit positions
- PaneBlock loses ▲▼ move buttons; reordering is canvas-only
- QSS entries added for layoutTile, layoutTileDragging, layoutCanvasBar

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Improved arduino interface. Now allowing the user to configure pins on the fly.</title>
<updated>2026-04-27T22:53:14Z</updated>
<author>
<name>Christian Kolset</name>
<email>christian.kolset@gmail.com</email>
</author>
<published>2026-04-27T22:53:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/commit/?id=2b9943ba0d28449a590acfa8a41555b174b6ba84'/>
<id>urn:sha1:2b9943ba0d28449a590acfa8a41555b174b6ba84</id>
<content type='text'>
</content>
</entry>
<entry>
<title>V8</title>
<updated>2026-04-20T22:55:57Z</updated>
<author>
<name>Christian Kolset</name>
<email>christian.kolset@gmail.com</email>
</author>
<published>2026-04-20T22:55:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/commit/?id=d5acb04b88373d33b038bb59945fb5ab8b4f543b'/>
<id>urn:sha1:d5acb04b88373d33b038bb59945fb5ab8b4f543b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Removed QtPy5 snippet and fixed directories</title>
<updated>2026-04-13T21:22:56Z</updated>
<author>
<name>Christian Kolset</name>
<email>christian.kolset@gmail.com</email>
</author>
<published>2026-04-13T21:22:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kolset.xyz/labUI.git/commit/?id=2ed9d37da7b27d25173535550fb92702225ac14e'/>
<id>urn:sha1:2ed9d37da7b27d25173535550fb92702225ac14e</id>
<content type='text'>
</content>
</entry>
</feed>
