pylab_ml.matrix.pickering.pickering_40_5xx.Pickering_40_5xx

class Pickering_40_5xx(addr=None, connectionTableName=None, identify=False, instName=None, emulator=False)[source]

Bases: Pickering

Interface to the Matrix Pickering 40-541-021 (66x8 Matrix, 69x16).

Date:

May 05, 2026

Author:

Semi-ATE <info@Semi-ATE.org>

../_images/pickeringmatrix.jpg

Warning

only tested with one table and Matrix Pickering 40-541-021 (66 x 8 Matrix)
please use it carefully with other tables and matrixs
matlab.m files as table will not supported any more

Todo

SwitchOver not tested!!
only one device allowed
ScenariosSet not implemented
Auswertung protected=0/1 für Category fehlt
stackable testen
wie ist switchover in neuem setup-file von Matlab implementiert
__init__(addr=None, connectionTableName=None, identify=False, instName=None, emulator=False)[source]

Initialise the instrument.

Parameters:
  • addr (str, optional) – address Name from NIMax, or None, but than it is time-killing (only works ith one Pickering Matrix at PCIe ). The default is None.

  • connectionTableName (str, optional) – filename from setup- or matlab-file with connection definition. The default is $WORKAREA/harness/matrix*.setup

  • instName (str, optional) – instance Name from top

  • emulator (bool, optional) – if True than emulate only a Matrix. No real hardware. The default is False.

Example: Initialization
>>> tablename = 'matrix_messplatz.setup'
>>> matrix = Pickering_40_5xx(addr='Switch', tablename, instName='matrix')
>>> matrix.set('Position2','close')              # need connectionTable
>>> matrix.set('Oszi','close')
>>> matrix.set('APB_Vsup','close')
>>> matrix.set('APB_Vsup','open')
>>> matrix.set('SMU_Vsup','close')
>>> matrix.set('SMU_Vsup')                       # default = open
>>> matrix.set('APB_Vsup','close',SwitchOver=True)
>>> matrix.display('nodes')
>>> matrix.display('state')
>>> matrix.connect('1,1,1;1,2,3;1,3,5','close')  # if connectionTable not loaded
detailed example of usage:
  • examples/pickeringmatrix/matrix_40_541_201.py

Methods

GetChannelPattern(cardnr)

Only for testing and debugging, could be removed or improve...

GetChannelState(cardnr)

Only for testing and debugging, could be removed or improve...

GetCrosspointMask(cardnr)

Only for testing and debugging, could be removed or improve...

GetMaskPattern(cardnr)

Only for testing and debugging, could be removed or improve...

GetMaskState(cardnr)

Only for testing and debugging, could be removed or improve...

__init__([addr, connectionTableName, ...])

Initialise the instrument.

clear()

Clear all connections (open).

close()

Close connection to Pickering device.

connect(crosspointtable, state)

Set state from crosspoint.

create_session()

Create Session, called von class Instrument.

display([mode])

Display state, nodes or connection in ASCII-String.

error_list()

List of outstanding errors.

find_names()

find_names() returns list of identifiers strings, lhs of = assignments

findcard()

Find address for Pickering Card.

help()

identify()

Identify message.

init([identify])

Optional init for interlock startup after identification.

load_connectionTable([connectionTableName])

Load matlab(.m) or setup-file(.setup) with definition from connections.

local()

Not possible, always remote control.

message([message])

Device has no display, message display to logger.

mqtt_add(client, instrument[, liste, qos])

Add the instrument to mqtt.

mqtt_disconnect()

Remove the instrument from mqtt.

publish(topic, value)

Publish topic as type='cmd' with paylad=value.

publish_get(function_name, value)

Publish function_name as type='get' with paylad=value.

publish_set(function_name, value)

Publish function_name as type='set' with paylad=value.

reset()

Reset.

set(connection[, state, SwitchOver])

Set categories or scenarios to state 'open' or 'close'.

setup_inst()

Set instrument settings for setup, called von class Instrument.

Attributes

command

id

Get the id from the device.

interchoices

mqtt_enable

mqtt_list

mqtt_status

Getter for the mqtt_status.

GetChannelPattern(cardnr)[source]

Only for testing and debugging, could be removed or improve…

GetChannelState(cardnr)[source]

Only for testing and debugging, could be removed or improve…

GetCrosspointMask(cardnr)[source]

Only for testing and debugging, could be removed or improve…

GetMaskPattern(cardnr)[source]

Only for testing and debugging, could be removed or improve…

GetMaskState(cardnr)[source]

Only for testing and debugging, could be removed or improve…

clear()[source]

Clear all connections (open).

close()

Close connection to Pickering device.

connect(crosspointtable, state)[source]

Set state from crosspoint.

Parameters:
  • crosspointtable (str) – stringlist with nodes (‘1,3,4;1,5,6;1,2,14’) card, row, col.

  • state (str) – ‘open’ or ‘close’.

Raises:

Exception – when more than one card use.

Returns:

True : etablish state
False : error

Return type:

bool

create_session()[source]

Create Session, called von class Instrument.

display(mode=None)[source]

Display state, nodes or connection in ASCII-String.

mode==None or ‘state’ display actual state
mode==’nodes’ display connected nodes
mode==’connection’ display available codes for connections
mode==someone else display help
error_list()

List of outstanding errors.

find_names()

find_names() returns list of identifiers strings, lhs of = assignments

findcard()

Find address for Pickering Card.

Returns:

-1 if no card found
addr if card found
-1 and display addr if more than 1 card found.

Return type:

int

property id

Get the id from the device.

identify()[source]

Identify message.

init(identify=False)

Optional init for interlock startup after identification.

json = <module 'json' from '/home/runner/miniconda3/envs/test/lib/python3.9/json/__init__.py'>
load_connectionTable(connectionTableName=None)[source]

Load matlab(.m) or setup-file(.setup) with definition from connections.

create constantsTable and connectionTable

local()

Not possible, always remote control.

message(message=None)

Device has no display, message display to logger.

mqtt_add(client, instrument, liste='#', qos=0)

Add the instrument to mqtt.

calling from base_instrument, after the instrument (device) has been create. Normally you have not to use this function, only base_instrument use it.

Returns:

None.

mqtt_disconnect()

Remove the instrument from mqtt.

calling from base_instrument, if the instrument are closing. Normally you have not to use this function, only base_instrument use it.

Returns:

None.

property mqtt_status

Getter for the mqtt_status.

publish(topic, value)

Publish topic as type=’cmd’ with paylad=value.

publish_get(function_name, value)

Publish function_name as type=’get’ with paylad=value.

publish_set(function_name, value)

Publish function_name as type=’set’ with paylad=value.

reset()

Reset.

set(connection, state='open', SwitchOver=False)[source]

Set categories or scenarios to state ‘open’ or ‘close’.

Parameters:
  • connection (str) – categories or scenarios.

  • state (str, optional) – ‘open’ or ‘close’. Defaults to ‘open’.

  • SwitchOver (TYPE, optional) –

    True : connection will be open AFTER the new one was set,
    False : default -> first: open last connection, than: close new connection

Returns:

None

setup_inst()[source]

Set instrument settings for setup, called von class Instrument.