ADC Equalisationο
Users can start the Equalisation process in one or more stations by utilising the TriggerAdcEqualisation command. This command is available on the controller device (recommended) and on all the station devices.
Controller Equalisationο
The controller command TriggerAdcEqualisation is a flexible way to initiate the equalisation command for multiple stations.
The command can be initiated like any other MCCS command:
controller = tango.DeviceProxy('low-mccs/control/control')
station_1 = {
'station_id': 1,
'target_adc': 17,
'bias': 0
}
station_args = [station_1]
controller.TriggerAdcEqualisation(
json.dumps(station_args)
)
The argument provided to the command is a list of dictionaries. Each dictionary corresponds to one station and can have three values:
station_id: Required integer value that corresponds to the station index to be equalised. If this value is not provided, the controller will log an error and move to the next command.
target_adc: Optional float value in ADU units corresponding to the target ADC of the equalisation process. If this value is omitted, the controller will calculate the optimal value based on the sidereal day.
bias: Optional float value (between -32 and 32) that is added at the end of the equalisation process for fine adjustments.
If the users provide no argument to the command, then the code starts the ADC Equalisation process for all stations, using the calculated value for target_adc.
Once the command is called, it initialises the TriggerAdcEqualisation command on each station and monitors the result. If all stations finish with ResultCode.OK, the controller command will also finish with ResultCode.OK.
Note
The Equalisation process for a station takes at least 20 seconds to complete. Since this process is happening asynchronously, the controller command will also take around 20-30 seconds to complete (regardless of the number of stations equalising)
Station Equalisationο
Each station has its own TriggerAdcEqualisation command. This is the command called by the controller during its equalisation process.
To run the command:
station = tango.DeviceProxy('low-mccs/station/001')
station_args = {
'target_adc': 17,
'bias': 0
}
station.TriggerAdcEqualisation(
json.dumps(station_args)
)
The arguments provided here are the same as before, minus the station id. In this case the user has already chosen the station.
target_adc: (required float value). The expected average power received by antennas in ADU units. Has an input minimum of 0, but in code itβs limited to 4.2e-7 (corresponds to the maximum output of 31.75 dB). There is no maximum value; however, 40 ADUs will result in 0 dB with no bias, and 1600 ADUs will result in 0 dB with the maximum bias allowed of 32dB.
bias: (optional float value) user-specified bias in dB added to the antenna preadu levels. Bias input value is rounded as part of value sanitation, and as a result, it increases in steps of 0.25. Ranges from -32 to 32 with a default of 0.
Warning
Using this command directly is not recommended as there is no option for default target_adc values.