From 94767f5a9d4acd0f8d412846fe39b47d3b3fdef4 Mon Sep 17 00:00:00 2001 From: Brian Harrison Date: Mon, 20 Apr 2026 15:54:08 -0400 Subject: [PATCH] feat: add recording_mode to config editor in sfm webapp --- sfm/server.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sfm/server.py b/sfm/server.py index 5fbaf0b..3f9ca5a 100644 --- a/sfm/server.py +++ b/sfm/server.py @@ -285,6 +285,7 @@ def _serialise_compliance_config(cc: Optional["ComplianceConfig"]) -> Optional[d if cc is None: return None return { + "recording_mode": cc.recording_mode, # 0x00=Single Shot, 0x01=Continuous, 0x03=Histogram, 0x04=Histogram+Continuous "record_time": cc.record_time, "sample_rate": cc.sample_rate, "trigger_level_geo": cc.trigger_level_geo, @@ -836,8 +837,9 @@ class DeviceConfigBody(BaseModel): Recording parameters -------------------- - sample_rate : Samples per second. Valid values: 1024, 2048, 4096. - record_time : Record duration in seconds (e.g. 1.0, 2.0, 3.0). + recording_mode : Recording mode enum. Values: 0=Single Shot, 1=Continuous, 3=Histogram, 4=Histogram+Continuous. + sample_rate : Samples per second. Valid values: 1024, 2048, 4096. + record_time : Record duration in seconds (e.g. 1.0, 2.0, 3.0). Trigger / alarm thresholds (geo channels, in/s) ------------------------------------------------ @@ -852,6 +854,7 @@ class DeviceConfigBody(BaseModel): notes : Extended notes. """ # Recording parameters + recording_mode: Optional[int] = None sample_rate: Optional[int] = None record_time: Optional[float] = None # Threshold parameters @@ -884,6 +887,7 @@ def device_config( Example body (all fields optional — include only what you want to change): { + "recording_mode": 1, "sample_rate": 1024, "record_time": 3.0, "trigger_level_geo": 0.5, @@ -911,6 +915,7 @@ def device_config( with _build_client(port, baud, host, tcp_port) as client: client.connect() client.apply_config( + recording_mode=body.recording_mode, sample_rate=body.sample_rate, record_time=body.record_time, trigger_level_geo=body.trigger_level_geo,