From 824d1115dccd6726a33adb97a6c54160bc1e2359 Mon Sep 17 00:00:00 2001
From: Runner PC Cavity Lab <johannes.schabbauer@tuwien.ac.at>
Date: Thu, 12 Sep 2024 16:20:05 +0200
Subject: [PATCH] Added frequency conversion to detuning from D2 line

---
 TimeBaseAOMDriver/labscript_devices.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/TimeBaseAOMDriver/labscript_devices.py b/TimeBaseAOMDriver/labscript_devices.py
index f50fc5f..20b0441 100644
--- a/TimeBaseAOMDriver/labscript_devices.py
+++ b/TimeBaseAOMDriver/labscript_devices.py
@@ -1,5 +1,6 @@
 from labscript import Device, DigitalOut, StaticAnalogQuantity, set_passed_properties, LabscriptError, MHz
 from .unitconversions import dBm_to_W, Hz_to_MHz
+from labscript_utils.unitconversions.detuning import detuning
 import numpy as np
 
 class TimeBaseAOM(Device):
@@ -10,11 +11,19 @@ class TimeBaseAOM(Device):
     
     def __init__(
             self, name, parent_device, connection, 
-            digital_gate=[], AM_offset=None, FM_deviation=None,
+            digital_gate=[], unit_conversion_parameters={},
             **kwargs):
 
         Device.__init__(self,name,parent_device,connection, **kwargs)
 
+        # If the channel is instantiated with unit conversion parameters,
+        # use them to calculate the right detuning. If not just convert 
+        # between Hz and MHz.
+        if unit_conversion_parameters:
+            unit_conversion_class = detuning
+        else:
+            unit_conversion_class = Hz_to_MHz
+
         self.amp = StaticAnalogQuantity(
             f"{self.name}_ampl",self,"amp",
             limits=(self.parent_device.min_amp,self.parent_device.max_amp), 
@@ -23,7 +32,7 @@ class TimeBaseAOM(Device):
         self.freq= StaticAnalogQuantity(
             f"{self.name}_freq",self,"freq",
             limits=(self.parent_device.min_freq,self.parent_device.max_freq), 
-            unit_conversion_class=Hz_to_MHz
+            unit_conversion_class=unit_conversion_class, unit_conversion_parameters=unit_conversion_parameters
         )
         self.AM_offset = StaticAnalogQuantity(f"{self.name}_amoffs",self,"-",limits=(-225,15)) # Maximum would be 25, but this is not recommended for proper operation
         self.FM_deviation = StaticAnalogQuantity(f"{self.name}_fmdev",self,"-")
-- 
GitLab