C# Класс TransferCavityLock2012.Controller

A class for locking the laser using a transfer cavity. The controller reads the voltage fed to the piezo of the cavity, the voltage from a photodiode measuring the light from a master laser (He-Ne) and a further n photodiode signals from n lasers you're trying to lock. The controller then fits a lorenzian to each of these datasets, and works out what to do with each slave laser to keep the peak distances the same. In the hardware class, you need to make a TCLConfig and populate all the fields of that TCLConfig.
Наследование: System.MarshalByRefObject
Показать файл Открыть проект Примеры использования класса

Открытые свойства

Свойство Тип Описание
SlaveLasers SlaveLaser>.Dictionary
TCLState ControllerState
config DAQ.TransferCavityLock2012.TCLConfig
default_ScanPoints int
rampStopLock object
tweakLock object

Открытые методы

Метод Описание
Controller ( ) : System
Controller ( string configName ) : System
DisengageLock ( string name ) : void
EngageLock ( string name ) : void
InitializeLifetimeService ( ) : Object
InitializeUI ( ) : void
RefreshLockParametersOnUI ( string name ) : void
SetLaserSetpoint ( string laserName, double newSetpoint ) : void
Start ( ) : void
StartLogger ( ) : void
StartTCL ( ) : void
StopLogger ( ) : void
StopTCL ( ) : void

This will make the program exit the while loop in ramploop. Note: this will call

UpdateUIState ( string name, SlaveLaser state ) : void

The controller needs to be able to change the UI. Enabling buttons, changing the values in text boxes...

disposeMasterVoltageOut ( ) : void
setupMasterVoltageOut ( ) : void
writeMasterVoltageOut ( double voltage ) : void

Приватные методы

Метод Описание
AddSetPointDecrement ( string name ) : void
AddSetPointIncrement ( string name ) : void
GainChanged ( string name, double g ) : void
RefreshErrorGraph ( string name ) : void
SetPointIncrementSize ( string name, double value ) : void
VoltageToLaserChanged ( string name, double voltage ) : void

These are events triggered by one of the LockControlPanels. Example: User changes the voltage to be sent to the slave laser. The UI will call VoltageToLaserChanged. Each LockControlPanel knows which laser it corresponds to. so the "name" argument tells the controller which SlaveLaser class it needs to send the command to!

acquireAI ( ScanParameters sp ) : CavityScanData

Reads some analogue inputs. The basic unit of the program.

calculateNewMasterVoltage ( double masterV ) : double
checkRampChannel ( ) : bool

Functions for locking master laser to cavity length

createInitialScanParameters ( ) : ScanParameters
endRamping ( ) : void

The function which gets called at the end, after breaking out of the while loop.

fitMaster ( CavityScanData data ) : double[]
fitSlave ( string name, CavityScanData data ) : double[]
getErrorCount ( string name ) : int
incrementCounter ( string name ) : void
initializeAIHardware ( ScanParameters sp ) : void

Prepares the hardware for analog reads.

initializeAIs ( string>.Dictionary channels ) : void
initializeSlaveLaserControl ( string>.Dictionary lockableLasers ) : void
mainLoop ( ) : void

The main loop. Reads the analog inputs, fits to the data and (when locked) adjusts the slave laser voltage.

plotCavity ( CavityScanData data ) : void
plotError ( string name, double time, double error ) : void
plotMaster ( CavityScanData data ) : void
plotMaster ( CavityScanData data, double MasterFit ) : void
plotSlave ( string name, CavityScanData data, double slaveFit ) : void
plotSlaveNoFit ( string name, CavityScanData data ) : void
readParametersFromUI ( ) : void
updateTime ( System.DateTime previousTime ) : void

Описание методов

Controller() публичный Метод

public Controller ( ) : System
Результат System

Controller() публичный Метод

public Controller ( string configName ) : System
configName string
Результат System

DisengageLock() публичный Метод

public DisengageLock ( string name ) : void
name string
Результат void

EngageLock() публичный Метод

public EngageLock ( string name ) : void
name string
Результат void

InitializeLifetimeService() публичный Метод

public InitializeLifetimeService ( ) : Object
Результат Object

InitializeUI() публичный Метод

public InitializeUI ( ) : void
Результат void

RefreshLockParametersOnUI() публичный Метод

public RefreshLockParametersOnUI ( string name ) : void
name string
Результат void

SetLaserSetpoint() публичный Метод

public SetLaserSetpoint ( string laserName, double newSetpoint ) : void
laserName string
newSetpoint double
Результат void

Start() публичный Метод

public Start ( ) : void
Результат void

StartLogger() публичный Метод

public StartLogger ( ) : void
Результат void

StartTCL() публичный Метод

public StartTCL ( ) : void
Результат void

StopLogger() публичный Метод

public StopLogger ( ) : void
Результат void

StopTCL() публичный Метод

This will make the program exit the while loop in ramploop. Note: this will call
public StopTCL ( ) : void
Результат void

UpdateUIState() публичный Метод

The controller needs to be able to change the UI. Enabling buttons, changing the values in text boxes...
public UpdateUIState ( string name, SlaveLaser state ) : void
name string
state SlaveLaser
Результат void

disposeMasterVoltageOut() публичный Метод

public disposeMasterVoltageOut ( ) : void
Результат void

setupMasterVoltageOut() публичный Метод

public setupMasterVoltageOut ( ) : void
Результат void

writeMasterVoltageOut() публичный Метод

public writeMasterVoltageOut ( double voltage ) : void
voltage double
Результат void

Описание свойств

SlaveLasers публичное свойство

public Dictionary SlaveLasers
Результат SlaveLaser>.Dictionary

TCLState публичное свойство

public ControllerState TCLState
Результат ControllerState

config публичное свойство

public TCLConfig,DAQ.TransferCavityLock2012 config
Результат DAQ.TransferCavityLock2012.TCLConfig

default_ScanPoints публичное свойство

public int default_ScanPoints
Результат int

rampStopLock публичное свойство

public object rampStopLock
Результат object

tweakLock публичное свойство

public object tweakLock
Результат object