daplis_rtp.gui.linospad2_dual_tab module

Tab for real-time plotting of the full LinoSPAD2 sensor (2 × 256 pixels).

Layout mirrors the single-board “Online plot” tab. The left frame holds two stacked browse rows (one per board), the plot, and the two spin boxes holding the x-axis limits (0-511, spanning both halves). The right frame holds all controls: shared daughterboard/firmware/timestamps selectors, two motherboard selectors, a shared preset-mask checkbox and reset button, and the pixel-mask area split into two side-by-side scroll areas (board 1 left, board 2 right) that together occupy the same space as the single scroll area in the original tab.

Pixel-address correction is always applied to board 2 (never to board 1) as required by the sensor geometry; no UI control is exposed for this. The same holds for the absolute timestamps: full-sensor data are always collected with them, as they are needed to synchronize the two boards, so they are always unpacked here.

class daplis_rtp.gui.linospad2_dual_tab.LinoSPAD2Dual(parent=None)[source]

Bases: QWidget

__init__(parent=None)[source]
change_path_1()[source]
change_path_2()[source]
get_dir_1()[source]
get_dir_2()[source]
mask_pixels()[source]
presetmask_pixels()[source]

Load and apply preset masks for both boards.

Each board uses the shared daughterboard and its own motherboard number to look up the mask file. Boards that have no mask file are silently skipped; an error is shown only if neither board has a mask.

report_occupancy(fw_ver, occupancy_1, occupancy_2)[source]

Hand one refresh’s slot occupancy to the status box.

The pixels of interest are given on the 0-511 x-axis of this tab, so each board takes the part of them that falls on its own half and maps it to TDCs with the ‘pix_add_fix’ its rates were built with - always off for board 1 and on for board 2.

reset_pix_mask()[source]
resizeEvent(self, a0: QResizeEvent | None)[source]
slot_checkBox_grouping_2()[source]
slot_checkplotscale_2()[source]
slot_mask_changed()[source]

Keep the count beside the button in step with the boxes.

The mask arrays themselves are rebuilt by ‘mask_pixels’ on the next refresh, so ticking a box never races the plotting.

slot_refresh()[source]
slot_startstream()[source]
slot_stopstream()[source]
slot_updateLeftXLim()[source]
slot_updateRightXLim()[source]
update_time_stamp()[source]
daplis_rtp.gui.linospad2_dual_tab.size_like_ui_tabs(widget, width=100)[source]

Give a combo or spin box the size the ‘.ui’ tabs give theirs.