CBPComponent

class lsst.ts.cbp.CBPComponent

Bases: object

This class is for implementing the CBP component.

The component implements a python wrapper over DMC code written by DFM Manufacturing. The following api exposes commands that move the motors of the CBP, sets the focus and selects the mask.

Notes

The class uses the python socket module to build TCP/IP connections to the Galil controller for the CBP. The underlying api is built on DMC.

Attributes:
log : logging.Logger

The logger for the component

socket : socket.Socket

The socket that handles the TCP/IP connection for the CBP

altitude : float

The value of the CBP altitude encoder in degrees.

azimuth : float

The value of the CBP azimuth encoder in degrees.

mask : str

The current mask name

mask_rotation : float

The current value of the mask rotation encoder in degrees.

masks : SimpleNamespace

A simplenamespace that contains the mask names and rotation values and id.

focus : float

The current value of the focus encoder in microns.

panic_status : float

The current value of the panic variable in the CBP dmc code. A non-zero value represents a panic state and causes the motors to cease functioning until panic is dealt with or goes away. This status is set by the values of the other statuses.

auto_park : float

The current value of the auto_park variable. If this value is one, that means that CBP suffered a power loss that lasted more than 12 seconds and was on battery back up. The CBP will then park itself automatically, moving azimuth to 0 and altitude to -70 and locking focus and mask. To un-park CBP, the park variable should be set to zero.

park : float

The current value of the park variable. This value can be set to one or zero, if set to one it will park the CBP if set to zero it will un-park.

encoder_status : Status

A flag enum that contains the status information for each encoder.

Methods Summary

change_focus(position) This changes the focus to whatever value the user sent.
check_auto_park() Gets the autopark variable from CBP
check_cbp_status() Read and record the status of the encoders.
check_panic_status() Gets the panic variable from CBP
check_park() Gets the park variable from CBP
configure(config)
connect() Create a socket and connect to the CBP’s static address and designated port.
disconnect() Disconnect from the tcp socket.
generate_mask_info() Generates initial mask info.
get_azimuth() Get azimuth value from azimuth encoder which is in degrees.
get_cbp_telemetry() Gets the position data of the CBP.
get_elevation() Read and record the mount elevation encoder, in degrees.
get_focus() This gets the value of the focus encoder.
get_mask() This gets the current mask value from the encoder which is converted into the name of the mask.
get_mask_rotation() This gets the mask rotation value from the encoder which is in degrees.
get_motion_status()
move_azimuth(position) This moves the horizontal axis to the value sent by the user.
move_elevation(position) This moves the vertical axis to the value that the user sent.
publish() This updates the attributes within the component.
send_command(msg) Send the encoded command and read the reply.
set_mask(mask) This sets the mask value
set_mask_rotation(mask_rotation) This sets the mask rotation
set_park() Park the CBP
set_simulation_mode(simulation_mode)
set_unpark() Unpark the CBP.

Methods Documentation

change_focus(position: int)

This changes the focus to whatever value the user sent.

Parameters:
position: int

The value of the new focus in microns.

Returns:
None
check_auto_park()

Gets the autopark variable from CBP

Returns:
None
check_cbp_status()

Read and record the status of the encoders.

Returns:
None
check_panic_status()

Gets the panic variable from CBP

Returns:
None
check_park()

Gets the park variable from CBP

Returns:
None
configure(config)
connect()

Create a socket and connect to the CBP’s static address and designated port.

Returns:
None

Nothing

disconnect()

Disconnect from the tcp socket.

generate_mask_info()

Generates initial mask info.

get_azimuth()

Get azimuth value from azimuth encoder which is in degrees.

Returns:
None
get_cbp_telemetry()

Gets the position data of the CBP.

Returns:
None
get_elevation()

Read and record the mount elevation encoder, in degrees.

Note that the low-level controller calls this axis “altitude”.

Returns:
None
get_focus()

This gets the value of the focus encoder. Units: microns

Returns:
None
get_mask()

This gets the current mask value from the encoder which is converted into the name of the mask.

Returns:
None
get_mask_rotation()

This gets the mask rotation value from the encoder which is in degrees.

Returns:
None
get_motion_status()
move_azimuth(position: float)

This moves the horizontal axis to the value sent by the user.

Parameters:
position: float

The desired azimuth (degrees).

Returns:
None
move_elevation(position: float)

This moves the vertical axis to the value that the user sent.

Parameters:
position: float

The desired elevation (degrees)

Returns:
None
publish()

This updates the attributes within the component.

Returns:
None
send_command(msg)

Send the encoded command and read the reply.

Parameters:
msg : str

The string command to be sent.

set_mask(mask: str)

This sets the mask value

Parameters:
mask: str

This is the name of the mask which is converted to an int using a dictionary.

Returns:
None
set_mask_rotation(mask_rotation: float)

This sets the mask rotation

Parameters:
mask_rotation: float

The mask_rotation value that will be sent.

Returns:
None
set_park()

Park the CBP

Returns:
None
set_simulation_mode(simulation_mode)
set_unpark()

Unpark the CBP.