Phase Micro Stepper Driver

This module implements the PhaseMicrostepper driver.

class PhaseMicroStepperDriver(logger, host, udp_port, tcp_port, communication_state_changed=None, component_state_changed=None, update_rate=5.0)

Device Server for the SAT.LMC PhaseMicrostepper (100MHz).

__init__(logger, host, udp_port, tcp_port, communication_state_changed=None, component_state_changed=None, update_rate=5.0)

Initialise the attributes and properties of the PhaseMicroStepper.

Parameters:
  • logger (Logger) – a logger for this object to use

  • host (str) – the hostname of the PhaseMicroStepper

  • udp_port (int) – the udp port number

  • tcp_port (int) – the tcp port number

  • communication_state_changed (Optional[Callable[[CommunicationStatus], None]]) – callback to be called when the status of the communications channel between the component manager and its component changes

  • component_state_changed (Optional[Callable[[bool], None]]) – callback to be called when the component faults (or stops faulting)

  • update_rate (float) – how often updates to attribute values should be provided. This is not necessarily the same as the rate at which the instrument is polled. For example, the instrument may be polled every 0.1 seconds, thus ensuring that any invoked commands or writes will be executed promptly. However, if the update_rate is 5.0, then routine reads of instrument values will only occur every 50th poll (i.e. every 5 seconds).

advance_10megahertz(advance)

Advance the output phase of 10MHz OUT signals.

Value in units of 10ns. Acceptable range is from 0 to +9.

Parameters:

advance (int) – advance by this value

Return type:

str

Returns:

the command string & value

advance_phase(advance)

Advance the output phase of all OUT signals.in units of 1e-15s.

The resolution is about 1e-13. Acceptable range is from -5000000 to +5000000.

Parameters:

advance (int) – advance by this value

Return type:

str

Returns:

the command string & value

advance_pps(advance)

Advance the phase of PPS OUT signals in units of 10ns.

The acceptable range is limited from -99000000 to 30000000.

Parameters:

advance (int) – advance by this value

Return type:

str

Returns:

the command string & value

get_offset_frequency()

Return the offset frequency set in the last setF command.

Return type:

str

Returns:

the command and offset frequency in units of 1e-20

get_request()

Check whether the attributes should be read on the next poll.

Return type:

bool

Returns:

true if attributes are read on the next poll.

poll(poll_request)

Poll the hardware.

Connect to the hardware, write any values that are to be written, and then read all values.

Parameters:

poll_request (bool) – whether to perform in this poll.

Return type:

dict[str, Any]

Returns:

responses to queries in this poll

poll_succeeded(poll_response)

Handle the receipt of new polling values.

This is a hook called by the poller when values have been read during a poll.

Parameters:

poll_response (dict[str, Any]) – response to the pool, including any values read.

Return type:

None

polling_stopped()

Respond to polling having stopped.

This is a hook called by the poller when it stops polling.

Return type:

None

set_ip_address(ip_address)

Set the IP address of the EOG and closes the TCP connection.

Parameters:

ip_address (str) – the new IP address

Return type:

str

Returns:

the command string & IP address set

set_offset_frequency(offset)

Set the offset frequency.

Sets the OUT signals respect to the frequency of 100MHz IN signal, in units of 1e-20. Resolution is better than 3e-20. The acceptable range is from -1000000000000 to 1000000000000.

Parameters:

offset (int) – the offset frequency

Return type:

str

Returns:

the command and converted frquency in units of 1e-20

set_udp_address(udp_address)

Set the UDP destination address.

If network address is 255.255.255.255, the UDP message is broadcast to all address.

Parameters:

udp_address (str) – the new UDP address

Return type:

str

Returns:

the command string & UDP address set

start_communicating()

Establish communication with the phasemicrostepper.

Return type:

None

stop_communicating()

Stop communicating with the PhaseMicroStepper.

Return type:

None

sync_pps()

Shift the rising edge of 1PPS OUT signals in order to align it with 1PPS IN.

The value in the second string is 0 if the operation is OK, 1 in case of error. In most of the cases, the error is due to the absence of a valid signal on the 1PPS IN connector.

Return type:

tuple[int, str]

Returns:

the command string and second string as “syncPPS done, Error = 0”