@@ -141,12 +141,8 @@ def _process_pending_commands(self):
141141 self .exposure_time = int (exp_value )
142142 self .set_camera_config (self .exposure_time , self .gain )
143143 self ._cfg .set_option ("camera_exp" , self .exposure_time )
144- self ._console_queue .put (
145- "CAM: Exp=" + str (self .exposure_time )
146- )
147- logger .info (
148- f"Manual exposure set: { self .exposure_time } µs"
149- )
144+ self ._console_queue .put ("CAM: Exp=" + str (self .exposure_time ))
145+ logger .info (f"Manual exposure set: { self .exposure_time } µs" )
150146
151147 elif command .startswith ("set_gain" ):
152148 old_gain = self .gain
@@ -172,9 +168,7 @@ def _process_pending_commands(self):
172168 max_exposure = self ._auto_exposure_pid .max_exposure ,
173169 )
174170 elif handler_type == "reset" :
175- new_handler = ResetZeroStarHandler (
176- reset_exposure = 400000
177- )
171+ new_handler = ResetZeroStarHandler (reset_exposure = 400000 )
178172 elif handler_type == "histogram" :
179173 new_handler = HistogramZeroStarHandler (
180174 min_exposure = self ._auto_exposure_pid .min_exposure ,
@@ -186,12 +180,8 @@ def _process_pending_commands(self):
186180 )
187181
188182 if new_handler is not None :
189- self ._auto_exposure_pid ._zero_star_handler = (
190- new_handler
191- )
192- self ._console_queue .put (
193- f"CAM: AE Handler={ handler_type } "
194- )
183+ self ._auto_exposure_pid ._zero_star_handler = new_handler
184+ self ._console_queue .put (f"CAM: AE Handler={ handler_type } " )
195185 logger .info (
196186 f"Auto-exposure zero-star handler changed to: { handler_type } "
197187 )
@@ -204,12 +194,8 @@ def _process_pending_commands(self):
204194 mode = command .split (":" )[1 ]
205195 if mode in ["pid" , "snr" ]:
206196 self ._auto_exposure_mode = mode
207- self ._console_queue .put (
208- f"CAM: AE Mode={ mode .upper ()} "
209- )
210- logger .info (
211- f"Auto-exposure mode changed to: { mode .upper ()} "
212- )
197+ self ._console_queue .put (f"CAM: AE Mode={ mode .upper ()} " )
198+ logger .info (f"Auto-exposure mode changed to: { mode .upper ()} " )
213199 else :
214200 logger .warning (
215201 f"Unknown auto-exposure mode: { mode } (valid: pid, snr)"
@@ -222,17 +208,13 @@ def _process_pending_commands(self):
222208 else :
223209 self .exposure_time = int (self .exposure_time * 0.75 )
224210 self .set_camera_config (self .exposure_time , self .gain )
225- self ._console_queue .put (
226- "CAM: Exp=" + str (self .exposure_time )
227- )
211+ self ._console_queue .put ("CAM: Exp=" + str (self .exposure_time ))
228212
229213 elif command == "exp_save" :
230214 self ._auto_exposure_enabled = False
231215 self ._cfg .set_option ("camera_exp" , self .exposure_time )
232216 self ._cfg .set_option ("camera_gain" , int (self .gain ))
233- self ._console_queue .put (
234- f"CAM: Exp Saved ({ self .exposure_time } µs)"
235- )
217+ self ._console_queue .put (f"CAM: Exp Saved ({ self .exposure_time } µs)" )
236218 logger .info (
237219 f"Exposure saved and auto-exposure disabled: { self .exposure_time } µs"
238220 )
@@ -241,17 +223,12 @@ def _process_pending_commands(self):
241223 self ._save_next_to = command .split (":" )[1 ]
242224 self ._console_queue .put ("CAM: Save flag set" )
243225
244- elif (
245- command .startswith ("capture" )
246- and command != "capture_exp_sweep"
247- ):
226+ elif command .startswith ("capture" ) and command != "capture_exp_sweep" :
248227 captured_image = self .capture ()
249228 self ._camera_image .paste (captured_image )
250229
251230 if self ._save_next_to :
252- filename = (
253- f"{ utils .data_dir } /captures/{ self ._save_next_to } "
254- )
231+ filename = f"{ utils .data_dir } /captures/{ self ._save_next_to } "
255232 if not filename .endswith (".png" ):
256233 filename += ".png"
257234 self .capture_file (filename )
@@ -278,9 +255,7 @@ def _process_pending_commands(self):
278255 self ._console_queue .put ("CAM: Started camera" )
279256
280257 except ValueError as e :
281- logger .error (
282- f"Error processing camera command '{ command } ': { str (e )} "
283- )
258+ logger .error (f"Error processing camera command '{ command } ': { str (e )} " )
284259
285260 def _run_exposure_sweep (self , command ):
286261 """Capture exposure sweep for SQM testing."""
@@ -336,15 +311,11 @@ def _run_exposure_sweep(self, command):
336311
337312 exp_ms = exp_us / 1000
338313
339- processed_filename = (
340- sweep_dir / f"img_{ i :03d} _{ exp_ms :.2f} ms_processed.png"
341- )
314+ processed_filename = sweep_dir / f"img_{ i :03d} _{ exp_ms :.2f} ms_processed.png"
342315 processed_img = self .capture ()
343316 processed_img .save (str (processed_filename ))
344317
345- raw_filename = (
346- sweep_dir / f"img_{ i :03d} _{ exp_ms :.2f} ms_raw.tiff"
347- )
318+ raw_filename = sweep_dir / f"img_{ i :03d} _{ exp_ms :.2f} ms_raw.tiff"
348319 self .capture_raw_file (str (raw_filename ))
349320
350321 logger .debug (
@@ -379,23 +350,19 @@ def _run_exposure_sweep(self, command):
379350 observer_lat = location .lat ,
380351 observer_lon = location .lon ,
381352 observer_altitude_m = location .altitude ,
382- gps_datetime = gps_datetime .isoformat ()
383- if gps_datetime
384- else None ,
353+ gps_datetime = gps_datetime .isoformat () if gps_datetime else None ,
385354 reference_sqm = reference_sqm ,
386355 ra_deg = ra_deg ,
387356 dec_deg = dec_deg ,
388357 altitude_deg = altitude_deg ,
389358 azimuth_deg = azimuth_deg ,
390- notes = f"Exposure sweep: { num_images } images, { min_exp / 1000 :.1f} -{ max_exp / 1000 :.1f} ms" ,
359+ notes = f"Exposure sweep: { num_images } images, { min_exp / 1000 :.1f} -{ max_exp / 1000 :.1f} ms" ,
391360 )
392361 logger .info (
393362 f"Successfully saved sweep metadata to { sweep_dir } /sweep_metadata.json"
394363 )
395364 except Exception as e :
396- logger .error (
397- f"Failed to save sweep metadata: { e } " , exc_info = True
398- )
365+ logger .error (f"Failed to save sweep metadata: { e } " , exc_info = True )
399366
400367 self ._console_queue .put ("CAM: Sweep done!" )
401368 logger .info (
@@ -566,22 +533,29 @@ def get_image_loop(
566533 if self ._auto_exposure_snr is None :
567534 # Use camera profile to derive thresholds
568535 try :
569- cam_type = detect_camera_type (self .get_cam_type ())
536+ cam_type = detect_camera_type (
537+ self .get_cam_type ()
538+ )
570539 cam_type = f"{ cam_type } _processed"
571- self ._auto_exposure_snr = (
572- ExposureSNRController . from_camera_profile ( cam_type )
540+ self ._auto_exposure_snr = ExposureSNRController . from_camera_profile (
541+ cam_type
573542 )
574543 except ValueError as e :
575544 # Unknown camera, use defaults
576545 logger .warning (
577546 f"Camera detection failed: { e } , using default SNR thresholds"
578547 )
579- self ._auto_exposure_snr = ExposureSNRController ()
548+ self ._auto_exposure_snr = (
549+ ExposureSNRController ()
550+ )
580551 # Get adaptive noise floor from shared state
581- adaptive_noise_floor = self .shared_state .noise_floor ()
552+ adaptive_noise_floor = (
553+ self .shared_state .noise_floor ()
554+ )
582555 new_exposure = self ._auto_exposure_snr .update (
583- self .exposure_time , base_image ,
584- noise_floor = adaptive_noise_floor
556+ self .exposure_time ,
557+ base_image ,
558+ noise_floor = adaptive_noise_floor ,
585559 )
586560 else :
587561 # PID mode: use star-count based controller (default)
0 commit comments