Skip to content

Commit 146d8f5

Browse files
committed
Add test for tetramm frame time
1 parent 9e94555 commit 146d8f5

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

src/dodal/devices/areadetector/adaravis.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ class AdAravisMakoController(DetectorControl):
143143
# TODO: Extract this to config and actually use the model of the camera.
144144
# https://github.com/DiamondLightSource/dodal/issues/340
145145
# cite: https://cdn.alliedvision.com/fileadmin/content/documents/products/cameras/various/appnote/GigE/GigE-Cameras_AppNote_PIV-Min-Time-Between-Exposures.pdf
146-
deadtime_map: Dict[str, float] = {
146+
_deadtime_map: Dict[str, float] = {
147147
"GB650": 78.0e-6,
148148
"GC650": 121e-6,
149149
"GE680": 38.2e-6,
@@ -240,7 +240,7 @@ def __init__(self, driver: AdAravisMakoDriver, gpio_number: int) -> None:
240240

241241
def get_deadtime(self, exposure: float) -> float:
242242
# https://github.com/DiamondLightSource/dodal/issues/340
243-
return self.deadtime_map.get("G-234")
243+
return self._deadtime_map.get("G-234")
244244

245245
async def arm(
246246
self,

tests/devices/unit_tests/test_tetramm.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,22 @@ async def test_excepts_for_invalid_triggers(tetramm_controller: TetrammControlle
6868
await tetramm_controller.arm(DetectorTrigger.internal)
6969
# Function excepts early and does not do any sets
7070
assert tetramm_controller._drv.averaging_time == previous_averaging_time
71+
72+
73+
async def test_set_frame_time(tetramm_controller: TetrammController):
74+
"""
75+
frame_time >= readings_per_frame * values_per_reading / sample_rate
76+
With the default values:
77+
base_sample_rate = 100_000
78+
minimum_values_per_reading = 5
79+
readings_per_frame = 1_000
80+
frame_time >= 1_000 * 5 / 100_000 = 1/20
81+
"""
82+
83+
await tetramm_controller.set_frame_time(1 / 19)
84+
85+
with pytest.raises(
86+
ValueError,
87+
match="frame_time 0.02 is too low to collect at least 5 values per reading, at 1,000 readings per frame.",
88+
):
89+
await tetramm_controller.set_frame_time(1 / 50)

0 commit comments

Comments
 (0)