m4.devices package

m4.devices.accelerometers module

Authors
    1. Selmi: written in 2020
class m4.devices.accelerometers.ZmqAccelerometers

Bases: m4.devices.base_accelerometers.BaseAccelerometers

Class for accelerometers control via zmq

HOW TO USE IT:

from m4.devices.accelerometers import ZmqAccelerometers
acc = ZmqAccelerometers()
tt = acc. acquireData(recording_seconds)
acquireData(recording_seconds=5)
Parameters:recording_seconds (int [s]) – recording seconds for data acquisition
Returns:name – tracking number of measurements
Return type:string

m4.devices.angle_rotator module

Authors
    1. Selmi: written in 2020
class m4.devices.angle_rotator.OpcUaAngleRotator(opcUa)

Bases: m4.devices.base_angle_rotator.BaseAngleRotator

Class for ring angle rotation control via opc ua

HOW TO USE IT:

from m4.devices.opc_ua_controller import OpcUaController
opcUa = OpcUaController()
from m4.devices.angle_rotator import OpcUaAngleRotator
ang = OpcUaAngleRotator(OpcUa)
pos = ang.getPosition()
pos = ang.setPosition(absolute_position_in_deg)
getPosition()

Function to get the rotating ring angle

Returns:current_pos – rotating ring position
Return type:int [deg]
setPosition(absolute_position_in_deg)

Function to set the rotating ring angle (range: 0 to 360)

Parameters:absolute_position_in_deg (int [deg]) – rotating ring position to set
Returns:current_pos – rotating ring position
Return type:int [deg]

m4.devices.base_accelerometers module

Authors
    1. Selmi: written in 2020
class m4.devices.base_accelerometers.BaseAccelerometers

Bases: object

Abstract class for parabola

acquireData(recording_seconds)

Function for data acquisition

Parameters:recording_seconds (int [s]) – recording seconds for data acquisition

m4.devices.base_angle_rotator module

Authors
    1. Selmi: written in 2020
class m4.devices.base_angle_rotator.BaseAngleRotator

Bases: object

Abstract class for the ring angle rotation

getPosition()

Function for getting object position

setPosition(absolute_position_in_deg)

Function for setting object position

Parameters:absolute_position_in_deg (int [deg]) – rotating ring position

m4.devices.base_interferometer module

Authors
    1. Selmi: written in 2020
class m4.devices.base_interferometer.BaseInterferometer

Bases: object

Abstract class for the interferometer

acquire_phasemap(nframes, show)

Function for data acquisition

save_phasemap(location, file_name, masked_image)

Function for saving data

m4.devices.base_m4 module

m4.devices.base_parabola_slider module

Authors
    1. Selmi: written in 2020
class m4.devices.base_parabola_slider.BaseParabolaSlider

Bases: object

Abstract class for the parabola slider

getPosition()

Function for getting object position

setPosition(absolute_position_in_mm)

Function for setting object position

Parameters:absolute_position_in_mm (int [mm]) –

m4.devices.base_parabola module

Authors
    1. Selmi: written in 2020
class m4.devices.base_parabola.BaseParabola

Bases: object

Abstract class for parabola

getPosition()

Function for getting object position

setPosition(absolute_position_in_mm)

Function for setting object position

Parameters:absolute_position_in_mm (int [mm]) –

m4.devices.base_reference_mirror_slider module

Authors
    1. Selmi: written in 2020
class m4.devices.base_reference_mirror_slider.BaseReferenceMirrorSlider

Bases: object

Abstract class for the reference mirror slider

getPosition()

Function for getting object position

setPosition(absolute_position_in_mm)

Function for setting object position

Parameters:absolute_position_in_mm (int [mm]) –

m4.devices.base_reference_mirror module

Authors
    1. Selmi: written in 2020
class m4.devices.base_reference_mirror.BaseReferenceMirror

Bases: object

Abstract class for reference mirror

getPosition()

Function for getting object position

setPosition(absolute_position_in_mm)

Function for setting object position

Parameters:absolute_position_in_mm (int [mm]) –

m4.devices.base_temperature_sensors module

Authors
    1. Selmi: written in 2020
class m4.devices.base_temperature_sensors.BaseTemperatureSensors

Bases: object

Abstract class for PT

getTemperature()

Function for getting PT temperature

m4.devices.i4d module

class m4.devices.i4d.I4D(IP, PORT)

Bases: object

Interferometer class

HOW TO USE IT:

from m4.devices.i4d import I4D
i4d = I4D(ip_address, port)
burstFramesToDisk(numberOfFrames)
Parameters:numberOfFrames (int) – number of frames to acquire
burstFramesToSpecificDirectory(directory, numberOfFrames)
Parameters:
  • directory (string) – directory where to save files
  • numberOfFrames (int) – number of frames to acquire
convertRawFramesInDirectoryToMeasurementsInDestinationDirectory(measurementsDirectory, rawFramesDirectory)
Parameters:
  • measurementsDirectory (string) – path where to save the measurements converted
  • rawFramesDirectory (string) – path where raw frames are located
dataServiceGetModulationData()
Returns:
  • width (int) – width of the image in pixel
  • height (int) – height of the image in pixel
  • pixel_size_in_microns (int)
  • data_array (numpy array) – vector containing image data
getFeatureAnalysisResults()
Returns:
  • features
  • fractionalFeatureArea
  • numberOfFeatures
  • totalFeatureAreaInSquareMicrons
getFirstNineZernikeTerms()
Returns:
Return type:zernike_waves_terms
getFringeAmplitudeData()
Returns:
  • data (numpy array) – vector containing image data
  • height (int) – height of the image in pixel
  • pixel_size_in_microns (int)
  • width (int) – width of the image in pixel
getIntensityData()
Returns:
  • data (numpy array) – vector containing image data
  • height (int) – height of the image in pixel
  • pixel_size_in_microns (int)
  • width (int) – width of the image in pixel
getInterferogram(index)
Parameters:index
Returns:
Return type:json_data
getMeasurementInfo()
Returns:
  • averageFringeAmplitude
  • averageIntensity
  • averageModulation
  • fringeAmpThresholdPercentage
  • intensityThresholdPercentage
  • modulationThresholdPercentage
  • numberOfSamples
  • numberOfValidPixels
  • pathMatchPositionInMM
  • RMSInNM
  • userSettingsFilePath
  • wavelengthInNM
  • wedge
getPhaseStepCalculatorResults()
Returns:
  • averagePhaseStepInDegrees
  • height
  • phaseStepsInDegrees
  • width
getSurfaceData()
Returns:
  • data (numpy array) – vector containing image data
  • height (int) – height of the image in pixel
  • pixel_size_in_microns (int)
  • width (int) – width of the image in pixel
getSystemInfo()
Returns:
Return type:serialNumber
getUnprocessedSurfaceData()
Returns:
  • data (numpy array) – vector containing image data
  • height (int) – height of the image in pixel
  • pixel_size_in_microns (int)
  • width (int) – width of the image in pixel
loadConfiguration(configurationPath)
Parameters:configurationPath (string) – file path for configuration to load
saveDataToDisk(path)
Parameters:path (string) – path where to save the measurements
setDetectorMask(mask)
Parameters:mask (numpy array) – numpy 2d array with np.nan in the obscured area
setTriggerMode(trigger)
Parameters:trigger
takeAveragedMeasurement(numberOfSamples)
Parameters:numberOfSamples (int) – numbers of measurements to average
takeSingleMeasurement()
Returns:
  • width (int) – width of the image in pixel
  • height (int) – height of the image in pixel
  • pixel_size_in_microns (int)
  • data_array (numpy array) – vector containing image data

m4.devices.interferometer module

m4.devices.m4_controller module

m4.devices.opc_ua_controller module

Authors
    1. Selmi: written in September 2020
class m4.devices.opc_ua_controller.OpcUaController

Bases: object

Function for test tower management via OpcUa

HOW TO USE IT:

from m4.devices.opc_ua_controller import OpcUaController
opcUa = OpcUaController()
STOP_NODE = 'ns=7;s=MAIN.b_StopCmd'
TEMPERATURE_NODE = 'ns=7;s=MAIN.i_Temperature_Sensor'
get_position(int_number)
Parameters:int_number (int) – number of the chosen object
Returns:position – position of the requested object
Return type:float
get_temperature_vector()
Returns:temperature_vector – values obtained from PT
Return type:numpy array
get_variables_positions()
Returns:variables – all variables value
Return type:numpy array
move_object(int_number)

Function that applies command and moves object

Parameters:int_number (int) – number of the chosen object
readActsPositions(n1, n2, n3)

Function to read actuators positions

Parameters:n2, n3 (n1,) – number of the chosen object
Returns:acts – vector of actuators position
Return type:numpy array
setActsPositions(n1, n2, n3, v1, v2, v3)

Function to set actuators positions

Parameters:
  • n2, n3 (n1,) – number of the chosen object
  • v2, v3 (v1,) – value to pass to actuators
Returns:

acts – vector of actuators position

Return type:

numpy array

set_target_position(int_number, value)
Parameters:
  • int_number (int) – number of the chosen object
  • value (float) – value to assign to the chosen object
Returns:

target_position – value assigned to the chosen object (not applied)

Return type:

float

stop()

Stop all commands

wait_for_stop(int_number)

Function to wait for the movement to be completed

Parameters:int_number (int) – number of the chosen object

m4.devices.parabola_slider module

Authors
    1. Selmi: written in 2020
class m4.devices.parabola_slider.OpcUaParabolaSlider(opcUa)

Bases: m4.devices.base_parabola_slider.BaseParabolaSlider

Class for parabola slide control via opc ua

HOW TO USE IT:

from m4.devices.opc_ua_controller import OpcUaController
opcUa = OpcUaController()
from m4.devices.parabola_slider import OpcUaParabolaSlider
par_slider = OpcUaParabolaSlider(opcUa)
getPosition()

Function to get the parabola slider position

Returns:current_pos – parabola slider position
Return type:int [mm]
getPositionInM()
Returns:current_pos – parabola slider position in meters
Return type:int [m]
setPosition(absolute_position_in_mm)

Function to set the absolute position of the parabola slider

Parameters:absolute_position_in_mm (int [mm]) –
Returns:current_pos – absolute parabola slider position
Return type:int [mm]

m4.devices.parabola module

Authors
    1. Selmi: written in 2020
class m4.devices.parabola.OpcUaParabola(opcUa)

Bases: m4.devices.base_parabola.BaseParabola

Class for parabola control via opc ua

HOW TO USE IT:

from m4.devices.opc_ua_controller import OpcUaController
opcUa = OpcUaController()
from m4.devices.parabola import OpcUaParabola
par = OpcUaParabola(opcUa)
getPosition()

Function to get the parabola position

Returns:current_pos – parabola position
Return type:int [-, -, mm, arcsec, arcsec, -]
setPosition(absolute_position_in_mm)

Function to set the absolute position of the parabola

Parameters:absolute_position_in_mm (numpy array [-, -, mm, arcsec, arcsec, -]) – vector of six numbers containing dof values of parabola
Returns:current_pos – absolute parabola position
Return type:numpy array [mm]

m4.devices.reference_mirror_slider module

m4.devices.reference_mirror module

Authors
    1. Selmi: written in 2021
class m4.devices.reference_mirror.OpcUaReferenceMirror(opcUa)

Bases: m4.devices.base_reference_mirror.BaseReferenceMirror

Class for reference mirror control via opc ua

HOW TO USE IT:

from m4.devices.opc_ua_controller import OpcUaController
opcUa = OpcUaController()
from m4.devices.reference_mirror import OpcUaReferenceMirror
rm = OpcUaReferenceMirror(opcUa)
getPosition()

Function to get the reference mirror position

Returns:current_pos – reference mirror position
Return type:int [-, -, mm, arcsec, arcsec, -]
setPosition(absolute_position_in_mm)

Function to set the absolute position of the reference mirror

Parameters:absolute_position_in_mm (numpy array [-, -, mm, arcsec, arcsec, -]) – vector of six value
Returns:current_pos – absolute reference mirror position
Return type:numpy array [-, -, mm, arcsec, arcsec, -]

m4.devices.temperature_sensors module

Authors
    1. Selmi: written in 2020
class m4.devices.temperature_sensors.OpcUaTemperatureSensors(opcUa)

Bases: m4.devices.base_temperature_sensors.BaseTemperatureSensors

Class for Pt sensors control via opc ua

HOW TO USE IT:

from m4.devices.opc_ua_controller import OpcUaController
opcUa = OpcUaController()
from m4.devices.temperature_sensors import OpcUaTemperatureSensor
sens = OpcUaTemperatureSensor(OpcUa)
getTemperature()
Returns:temperature – vector containing temperature
Return type:numpy array

m4.devices.tuna_filter module