devices module

_PcieCard

class pysmurf.core.devices._PcieCard.PcieCard(comm_type, lane, ip_addr, dev_rssi, dev_data)[source]

Class to setup the PCIe card devices.

This class takes care of setting up both PCIe card devices according to the communication type used.

If the PCIe card is present in the system:

  • All the RSSI connection lanes which point to the target IP address will be closed.

  • If PCIe communication type is used: * Verify that the DeviceId are correct for the RSSI (ID = 0) and the DATA (ID = 1) devices. * The RSSI connection is open in the specific lane. Also, when the the server is closed, the RSSI connection is closed.

If the PCIe card is not present:

  • If PCIe communication type is used, the program is terminated.

  • If ETH communication type is used, then this class does not do anything.

This class must be used in a ‘with’ block in order to ensure that the RSSI connection is close correctly during exit even in the case of an exception condition.

class pysmurf.core.devices._PcieCard.PcieDev(dev, name, description)[source]

Class to setup each PCIe device

This class contains wrapper to facilitate the process of setting up each PCIe device independently by the PcieCard class.

This class must be used in a ‘with’ block in order to ensure that the RSSI connection is close correctly during exit even in the case of an exception condition.

close_lane(lane)[source]

Close the RSSI connection on the specified Ethernet lane.

get_id()[source]

Get the Device ID

get_local_ip(lane)[source]

Get the local IP address for the specified Ethernet lane.

get_local_mac(lane)[source]

Get the local MAC address for the specified Ethernet lane.

get_remote_ip(lane, client)[source]

Get the remote IP address for the specified Ethernet lane.

open_lane(lane, ip)[source]

Open the RSSI connection on the specified lane, using the specified IP address.

print_version()[source]

Print the PCIe device firmware information.

set_local_ip(lane, ip)[source]

Set the local IP address for the specified Ethernet lane.

set_local_mac(lane, mac)[source]

Set the local MAC address for the specified Ethernet lane.

set_remote_ip(lane, client, ip)[source]

Set the remote IP address for the specified Ethernet lane.

_SmurfApplication

class pysmurf.core.devices._SmurfApplication.SmurfApplication(*args: Any, **kwargs: Any)[source]

SMuRF Application Block

_SmurfProcessor

class pysmurf.core.devices._SmurfProcessor.Downsampler(*args: Any, **kwargs: Any)[source]

SMuRF Data Downsampler Python Wrapper.

class pysmurf.core.devices._SmurfProcessor.GeneralAnalogFilter(*args: Any, **kwargs: Any)[source]

SMuRF Data GeneralAnalogFilter Python Wrapper.

class pysmurf.core.devices._SmurfProcessor.SmurfChannelMapper(*args: Any, **kwargs: Any)[source]

SMuRF Channel Mapper Python Wrapper.

class pysmurf.core.devices._SmurfProcessor.SmurfProcessor(*args: Any, **kwargs: Any)[source]

SMuRF Processor device.

This is a slave device that accepts a raw SMuRF Streaming data stream from the FW application, and process it by doing channel mapping, data unwrapping, filtering and downsampling in a monolithic C++ module.

Parameters
  • name (str) – Name of the device.

  • description (str) – Description of the device.

  • root (pyrogue.Root or None, optional, default None) – The pyrogue root. The configuration status of this root will go to the data file as metadata.

  • txDevice (pyrogue.Device or None, optional, default None) – A packet transmitter device.

class pysmurf.core.devices._SmurfProcessor.Unwrapper(*args: Any, **kwargs: Any)[source]

SMuRF Data Unwrapper Python Wrapper.

_UdpReceiver