Ejemplo n.º 1
0
def _get_trigger_direction_from_name(direction_name):
    """Return the trigger direction from the direction name."""

    PS3000A_THRESHOLD_DIRECTION = make_enum([
        ("PS3000A_ABOVE", "PS3000A_INSIDE"),
        ("PS3000A_BELOW", "PS3000A_OUTSIDE"),
        ("PS3000A_RISING", "PS3000A_ENTER", "PS3000A_NONE"),
        ("PS3000A_FALLING", "PS3000A_EXIT"),
        ("PS3000A_RISING_OR_FALLING", "PS3000A_ENTER_OR_EXIT"),
        "PS3000A_ABOVE_LOWER",
        "PS3000A_BELOW_LOWER",
        "PS3000A_RISING_LOWER",
        "PS3000A_FALLING_LOWER",
        "PS3000A_POSITIVE_RUNT",
        "PS3000A_NEGATIVE_RUNT",
    ])
    if direction_name in [
            'ABOVE', 'BELOW', 'RISING', 'FALLING', 'RISING_OR_FALLING'
    ]:
        def_name = f"PS3000A_{direction_name}"
    else:
        raise InvalidParameterError(f"Trigger direction {direction_name} is "
                                    "not supported")
    return PS3000A_THRESHOLD_DIRECTION[def_name]
class Ps6000lib(Library):
    def __init__(self):
        super(Ps6000lib, self).__init__("ps6000")


ps6000 = Ps6000lib()

ps6000.PS6000_RANGE = make_enum([
    "PS6000A_10MV",
    "PS6000_20MV",
    "PS6000_50MV",
    "PS6000_100MV",
    "PS6000_200MV",
    "PS6000_500MV",
    "PS6000_1V",
    "PS6000_2V",
    "PS6000_5V",
    "PS6000_10V",
    "PS6000_20V",
    "PS6000_50V",
    "PS6000_MAX_RANGES",
])

ps6000.PS6000_CHANNEL = make_enum([
	"PS6000_CHANNEL_A",
	"PS6000_CHANNEL_B",
	"PS6000_CHANNEL_C",
	"PS6000_CHANNEL_D",
	("PS6000_EXTERNAL", "PS6000_MAX_CHANNELS"),
	"PS6000_TRIGGER_AUX",
from picosdk.ctypes_wrapper import C_CALLBACK_FUNCTION_FACTORY
from picosdk.library import Library
from picosdk.constants import make_enum


class Ps5000alib(Library):
    def __init__(self):
        super(Ps5000alib, self).__init__("ps5000a")


ps5000a = Ps5000alib()

ps5000a.PS5000A_DEVICE_RESOLUTION = make_enum([
    "PS5000A_DR_8BIT",
    "PS5000A_DR_12BIT",
    "PS5000A_DR_14BIT",
    "PS5000A_DR_15BIT",
    "PS5000A_DR_16BIT",
])

ps5000a.DEFAULT_RESOLUTION = ps5000a.PS5000A_DEVICE_RESOLUTION[
    "PS5000A_DR_8BIT"]

ps5000a.PS5000A_COUPLING = make_enum([
    'PS5000A_AC',
    'PS5000A_DC',
])

# Just use AC and DC.
ps5000a.PICO_COUPLING = {
    k[-2:]: v
Ejemplo n.º 4
0
from picosdk.constants import make_enum


class Ps2000alib(Library):
    def __init__(self):
        super(Ps2000alib, self).__init__("ps2000a")


ps2000a = Ps2000alib()

# A tuple in an enum like this is 2 names for the same value.
ps2000a.PS2000A_CHANNEL = make_enum([
    "PS2000A_CHANNEL_A",
    "PS2000A_CHANNEL_B",
    "PS2000A_CHANNEL_C",
    "PS2000A_CHANNEL_D",
    ("PS2000A_EXTERNAL", "PS2000A_MAX_CHANNELS"),
    "PS2000A_TRIGGER_AUX",
    "PS2000A_MAX_TRIGGER_SOURCE",
])

# only include the normal analog channels for now:
ps2000a.PICO_CHANNEL = {
    k[-1]: v
    for k, v in ps2000a.PS2000A_CHANNEL.items() if "PS2000A_CHANNEL_" in k
}

ps2000a.PS2000A_COUPLING = make_enum([
    'PS2000A_AC',
    'PS2000A_DC',
])
Ejemplo n.º 5
0
    "USB_DRDAQ_CHANNEL_PH": 5,
    "USB_DRDAQ_CHANNEL_RES": 6,
    "USB_DRDAQ_CHANNEL_LIGHT": 7,
    "USB_DRDAQ_CHANNEL_TEMP": 8,
    "USB_DRDAQ_CHANNEL_MIC_WAVE": 9,
    ("USB_DRDAQ_CHANNEL_MIC_LEVEL", "USB_DRDAQ_MAX_CHANNELS"): 10,
}

usbDrDaq.USB_DRDAQ_GPIO = {
    "USB_DRDAQ_GPIO_1": 1,
    "USB_DRDAQ_GPIO_2": 2,
    "USB_DRDAQ_GPIO_3": 3,
    "USB_DRDAQ_GPIO_4": 4
}

usbDrDaq.USB_DRDAQ_SCOPE_RANGE = make_enum(
    ["USB_DRDAQ_1V25", "USB_DRDAQ_2V5", "USB_DRDAQ_5V", "USB_DRDAQ_10V"])

usbDrDaq.USB_DRDAQ_WAVE = make_enum([
    "USB_DRDAQ_SINE", "USB_DRDAQ_SQUARE", "USB_DRDAQ_TRIANGLE",
    "USB_DRDAQ_RAMP_UP", "USB_DRDAQ_RAMP_DOWN", "USB_DRDAQ_DC"
])

usbDrDaq.USB_DRDAQ_BLOCK_METHOD = make_enum(
    ["BM_SINGLE", "BM_WINDOW", "BM_STREAM"])

doc = """ PICO_STATUS UsbDrDaqCloseUnit
    (
	    int16_t    handle
	); """
usbDrDaq.make_symbol("_CloseUnit", "UsbDrDaqCloseUnit", c_uint32, [c_int16],
                     doc)
Ejemplo n.º 6
0
from ctypes import *
from picosdk.library import Library
from picosdk.constants import make_enum


class Ps5000alib(Library):
    def __init__(self):
        super(Ps5000alib, self).__init__("ps5000a")


ps5000a = Ps5000alib()

ps5000a.PS5000A_DEVICE_RESOLUTION = make_enum([
    "PS5000A_DR_8BIT",
    "PS5000A_DR_12BIT",
    "PS5000A_DR_14BIT",
    "PS5000A_DR_15BIT",
    "PS5000A_DR_16BIT",
])

ps5000a.DEFAULT_RESOLUTION = ps5000a.PS5000A_DEVICE_RESOLUTION["PS5000A_DR_8BIT"]

ps5000a.PS5000A_COUPLING = make_enum([
    'PS5000A_AC',
    'PS5000A_DC',
])

# Just use AC and DC.
ps5000a.PICO_COUPLING = {k[-2:]: v for k, v in ps5000a.PS5000A_COUPLING.items()}

# A tuple in an enum like this is 2 names for the same value.
Ejemplo n.º 7
0
from picosdk.library import Library
from picosdk.constants import make_enum


class Ps5000lib(Library):
    def __init__(self):
        super(Ps5000lib, self).__init__("ps5000")


ps5000 = Ps5000lib()

ps5000.PS5000_CHANNEL = make_enum([
    "PS5000_CHANNEL_A",
    "PS5000_CHANNEL_B",
    "PS5000_CHANNEL_C",
    "PS5000_CHANNEL_D",
    ("PS5000_MAX_CHANNELS", "PS5000_EXTERNAL"),
    "PS5000_TRIGGER_AUX",
    "PS5000_MAX_TRIGGER_SOURCES",
])

ps5000.PS5000_RANGE = make_enum([
    "PS5000_10MV",
    "PS5000_20MV",
    "PS5000_50MV",
    "PS5000_100MV",
    "PS5000_200MV",
    "PS5000_1V",
    "PS5000_2V",
    "PS5000_5V",
    "PS5000_10V",
    PL1000_CHANNEL_15 = 15
    PL1000_CHANNEL_16 = 16
    PL1000_MAX_CHANNEL = PL1000_CHANNEL_16

    return {
        k.upper(): v
        for k, v in locals().items() if k.startswith("PL1000")
    }


pl1000.PL1000Inputs = _pl1000Inputs()

pl1000.PL1000DO_Channel = make_enum([
    'PL1000_DO_CHANNEL_0',
    'PL1000_DO_CHANNEL_1',
    'PL1000_DO_CHANNEL_2',
    'PL1000_DO_CHANNEL_3',
    'PL1000_DO_CHANNEL_MAX',
])

pl1000.PL1000OpenProgress = {
    'PL1000_OPEN_PROGRESS_FAIL': -1,
    'PL1000_OPEN_PROGRESS_PENDING': 0,
    'PL1000_OPEN_PROGRESS_COMPLETE': 1,
}

pl1000.PL1000_BLOCK_METHOD = make_enum([
    "BM_SINGLE",
    "BM_WINDOW",
    "BM_STREAM",
])
Ejemplo n.º 9
0
    PICO_CHANNEL_H_FLAGS = 128
    PICO_PORT0_FLAGS = 65536
    PICO_PORT1_FLAGS = 131072
    PICO_PORT2_FLAGS = 262144
    PICO_PORT3_FLAGS = 524288

    return {k.upper(): v for k, v in locals().items() if k.startswith("PICO")}


picoEnum.PICO_CHANNEL_FLAGS = _define_channel_flags()

picoEnum.PICO_PORT_DIGITAL_CHANNEL = make_enum([
    "PICO_PORT_DIGITAL_CHANNEL0",
    "PICO_PORT_DIGITAL_CHANNEL1",
    "PICO_PORT_DIGITAL_CHANNEL2",
    "PICO_PORT_DIGITAL_CHANNEL3",
    "PICO_PORT_DIGITAL_CHANNEL4"
    "PICO_PORT_DIGITAL_CHANNEL5",
    "PICO_PORT_DIGITAL_CHANNEL6",
    "PICO_PORT_DIGITAL_CHANNEL7",
])

picoEnum.PICO_DATA_TYPE = make_enum([
    "PICO_INT8_T",
    "PICO_INT16_T",
    "PICO_INT32_T",
    "PICO_UINT32_T",
    "PICO_INT64_T",
])


def _define_coupling():
Ejemplo n.º 10
0
from ctypes import *
from picosdk.library import Library
from picosdk.constants import make_enum


class Ps5000alib(Library):
    def __init__(self):
        super(Ps5000alib, self).__init__("ps5000a")


ps5000a = Ps5000alib()

ps5000a.PS5000A_DEVICE_RESOLUTION = make_enum([
    "PS5000A_DR_8BIT",
    "PS5000A_DR_12BIT",
    "PS5000A_DR_14BIT",
    "PS5000A_DR_15BIT",
    "PS5000A_DR_16BIT",
])

ps5000a.DEFAULT_RESOLUTION = ps5000a.PS5000A_DEVICE_RESOLUTION[
    "PS5000A_DR_8BIT"]

ps5000a.PS5000A_COUPLING = make_enum([
    'PS5000A_AC',
    'PS5000A_DC',
])

# Just use AC and DC.
ps5000a.PICO_COUPLING = {
    k[-2:]: v
Ejemplo n.º 11
0
    PL1000_CHANNEL_15 = 15
    PL1000_CHANNEL_16 = 16
    PL1000_MAX_CHANNEL = PL1000_CHANNEL_16

    return {
        k.upper(): v
        for k, v in locals().items() if k.startswith("PL1000")
    }


pl1000.PL1000Inputs = _pl1000Inputs()

pl1000.PL1000DO_Channel = make_enum([
    'PL1000_DO_CHANNEL_0',
    'PL1000_DO_CHANNEL_1',
    'PL1000_DO_CHANNEL_2',
    'PL1000_DO_CHANNEL_3',
    'PL1000_DO_CHANNEL_MAX',
])

pl1000.PL1000OpenProgress = {
    'PL1000_OPEN_PROGRESS_FAIL': -1,
    'PL1000_OPEN_PROGRESS_PENDING': 0,
    'PL1000_OPEN_PROGRESS_COMPLETE': 1,
}

doc = """ PICO_STATUS pl1000CloseUnit
    (
	    int16_t  handle
	); """
pl1000.make_symbol("_CloseUnit_", "pl1000CloseUnit", c_uint32, [c_int16], doc)
Ejemplo n.º 12
0
"""

from ctypes import *
from picosdk.library import Library
from picosdk.constants import make_enum


class Ps3000alib(Library):
    def __init__(self):
        super(Ps3000alib, self).__init__("ps3000a")


ps3000a = Ps3000alib()

ps3000a.PS3000A_COUPLING = make_enum([
    'PS3000A_AC',
    'PS3000A_DC',
])

# Just use AC and DC.
ps3000a.PICO_COUPLING = {
    k[-2:]: v
    for k, v in ps3000a.PS3000A_COUPLING.items()
}

# A tuple in an enum like this is 2 names for the same value.
ps3000a.PS3000A_CHANNEL = make_enum([
    "PS3000A_CHANNEL_A",
    "PS3000A_CHANNEL_B",
    "PS3000A_CHANNEL_C",
    "PS3000A_CHANNEL_D",
    ("PS3000A_EXTERNAL", "PS3000A_MAX_CHANNELS"),
Ejemplo n.º 13
0
"""

from ctypes import *
from picosdk.library import Library
from picosdk.constants import make_enum


class Ps3000alib(Library):
    def __init__(self):
        super(Ps3000alib, self).__init__("ps3000a")


ps3000a = Ps3000alib()

ps3000a.PS3000A_COUPLING = make_enum([
    'PS3000A_AC',
    'PS3000A_DC',
])

# Just use AC and DC.
ps3000a.PICO_COUPLING = {k[-2:]: v for k, v in ps3000a.PS3000A_COUPLING.items()}

# A tuple in an enum like this is 2 names for the same value.
ps3000a.PS3000A_CHANNEL = make_enum([
    "PS3000A_CHANNEL_A",
    "PS3000A_CHANNEL_B",
    "PS3000A_CHANNEL_C",
    "PS3000A_CHANNEL_D",
    ("PS3000A_EXTERNAL", "PS3000A_MAX_CHANNELS"),
    "PS3000A_TRIGGER_AUX",
    "PS3000A_MAX_TRIGGER_SOURCE",
])
Ejemplo n.º 14
0
from picosdk.errors import ArgumentOutOfRangeError
from picosdk.constants import make_enum


class picohrdllib(Library):
    def __init__(self):
        super(picohrdllib, self).__init__("picohrdl")


picohrdl = picohrdllib()

picohrdl.HRDL_VOLTAGERANGE = make_enum([
    "HRDL_2500_MV",
    "HRDL_1250_MV",
    "HRDL_625_MV",
    "HRDL_313_MV",
    "HRDL_156_MV",
    "HRDL_78_MV",
    "HRDL_39_MV",
])

picohrdl.HRDL_CONVERSIONTIME = make_enum([
    "HRDL_60MS",
    "HRDL_100MS",
    "HRDL_180MS",
    "HRDL_340MS",
    "HRDL_660MS",
])

doc = """ int16_t HRDLCloseUnit
    (
Ejemplo n.º 15
0
from ctypes import *
from picosdk.library import Library
from picosdk.constants import make_enum


class Ps3000lib(Library):
    def __init__(self):
        super(Ps3000lib, self).__init__("ps3000")


ps3000 = Ps3000lib()

ps3000.PS3000_CHANNEL = make_enum([
    "PS3000_CHANNEL_A",
    "PS3000_CHANNEL_B",
    "PS3000_CHANNEL_C",
    "PS3000_CHANNEL_D",
])

# use the last character, i.e. the channel name:
ps3000.PICO_CHANNEL = {k[-1]: v for k, v in ps3000.PS3000_CHANNEL.items()}

# This field is passed to the driver as a boolean, not an enum.
ps3000.PICO_COUPLING = {'AC': 0, 'DC': 1}

ps3000.PS3000_VOLTAGE_RANGE = {
    'PS3000_20MV': 1,
    'PS3000_50MV': 2,
    'PS3000_100MV': 3,
    'PS3000_200MV': 4,
    'PS3000_500MV': 5,
Ejemplo n.º 16
0
"""

from ctypes import *
from picosdk.library import Library
from picosdk.constants import make_enum


class Ps4000alib(Library):
    def __init__(self):
        super(Ps4000alib, self).__init__("ps4000a")


ps4000a = Ps4000alib()

ps4000a.PS4000A_COUPLING = make_enum([
    'PS4000A_AC',
    'PS4000A_DC',
])

# Just use AC and DC.
ps4000a.PICO_COUPLING = {
    k[-2:]: v
    for k, v in ps4000a.PS4000A_COUPLING.items()
}

# A tuple in an enum like this is 2 names for the same value.
ps4000a.PS4000A_CHANNEL = make_enum([
    "PS4000A_CHANNEL_A",
    "PS4000A_CHANNEL_B",
    "PS4000A_CHANNEL_C",
    "PS4000A_CHANNEL_D",
    ("PS4000A_CHANNEL_E", "PS4000A_MAX_4_CHANNELS"),
Ejemplo n.º 17
0
"""

from ctypes import *
from picosdk.library import Library, ArgumentOutOfRangeError
from picosdk.constants import make_enum


class Ps2000lib(Library):
    def __init__(self):
        super(Ps2000lib, self).__init__("ps2000")


ps2000 = Ps2000lib()

ps2000.PS2000_CHANNEL = make_enum([
    "PS2000_CHANNEL_A",
    "PS2000_CHANNEL_B",
])

# use the last character, i.e. the channel name:
ps2000.PICO_CHANNEL = {k[-1]: v for k, v in ps2000.PS2000_CHANNEL.items()}

# This field is passed to the driver as a boolean, not an enum.
ps2000.PICO_COUPLING = {
    'AC': 0,
    'DC': 1
}

ps2000.PS2000_VOLTAGE_RANGE = {
    'PS2000_20MV':  1,
    'PS2000_50MV':  2,
    'PS2000_100MV': 3,
Ejemplo n.º 18
0
usbPt104.PT104_CHANNELS = {
    'USBPT104_CHANNEL_1': 1,
    'USBPT104_CHANNEL_2': 2,
    'USBPT104_CHANNEL_3': 3,
    'USBPT104_CHANNEL_4': 4,
    'USBPT104_CHANNEL_5': 5,
    'USBPT104_CHANNEL_6': 6,
    'USBPT104_CHANNEL_7': 7,
    'USBPT104_CHANNEL_8': 8,
    'USBPT104_MAX_CHANNELS': 8
}

usbPt104.PT104_DATA_TYPE = make_enum([
    'USBPT104_OFF', 'USBPT104_PT100', 'USBPT104_PT1000',
    'USBPT104_RESISTANCE_TO_375R', 'USBPT104_RESISTANCE_TO_10K',
    'USBPT104_DIFFERENTIAL_TO_115MV', 'USBPT104_DIFFERENTIAL_TO_2500MV',
    'USBPT104_SINGLE_ENDED_TO_115MV', 'USBPT104_SINGLE_ENDED_TO_2500MV',
    'USBPT104_MAX_DATA_TYPES'
])

usbPt104.IP_DETAILS_TYPE = make_enum(['IDT_GET' 'IDT_SET'])


def _define_communication_type():
    CT_USB = 0x00000001
    CT_ETHERNET = 0x00000002
    CT_ALL = 0xFFFFFFFF

    return {k.upper(): v for k, v in locals().items() if k.startswith("CT")}

Ejemplo n.º 19
0
from ctypes import *
from picosdk.library import Library
from picosdk.errors import ArgumentOutOfRangeError
from picosdk.constants import make_enum

class usbtc08lib(Library):
    def __init__(self):
        super(usbtc08lib, self).__init__("usbtc08")


usbtc08 = usbtc08lib()

usbtc08.USBTC08_UNITS = make_enum([
    "USBTC08_UNITS_CENTIGRADE",
	"USBTC08_UNITS_FAHRENHEIT",
	"USBTC08_UNITS_KELVIN",
	"USBTC08_UNITS_RANKINE",
])

class USBTC08_INFO(Structure):
    _pack_ = 1
    _fields_ = [("size", c_int16),
                ("DriverVersion", c_int8),
                ("PicoppVersion", c_int16),
				("HardwareVersion", c_int16),
				("Variant", c_int16),
				("szSerial[USBTC08_MAX_SERIAL_CHAR}", c_int8),
				("szCalDate[USBTC08_MAX_DATE_CHARS]", c_int8)]

doc = """ int16_t usb_tc08_open_unit
    (
Ejemplo n.º 20
0
class Ps6000lib(Library):
    def __init__(self):
        super(Ps6000lib, self).__init__("ps6000")


ps6000 = Ps6000lib()

ps6000.PS6000_RANGE = make_enum([
    "PS6000A_10MV",
    "PS6000_20MV",
    "PS6000_50MV",
    "PS6000_100MV",
    "PS6000_200MV",
    "PS6000_500MV",
    "PS6000_1V",
    "PS6000_2V",
    "PS6000_5V",
    "PS6000_10V",
    "PS6000_20V",
    "PS6000_50V",
    "PS6000_MAX_RANGES",
])

ps6000.PS6000_CHANNEL = make_enum([
    "PS6000_CHANNEL_A",
    "PS6000_CHANNEL_B",
    "PS6000_CHANNEL_C",
    "PS6000_CHANNEL_D",
    ("PS6000_EXTERNAL", "PS6000_MAX_CHANNELS"),
    "PS6000_TRIGGER_AUX",
Ejemplo n.º 21
0
"""

from ctypes import *
from picosdk.library import Library
from picosdk.constants import make_enum
from picosdk.ctypes_wrapper import C_CALLBACK_FUNCTION_FACTORY

class Ps4000alib(Library):
    def __init__(self):
        super(Ps4000alib, self).__init__("ps4000a")


ps4000a = Ps4000alib()

ps4000a.PS4000A_COUPLING = make_enum([
    'PS4000A_AC',
    'PS4000A_DC',
])

# Just use AC and DC.
ps4000a.PICO_COUPLING = {k[-2:]: v for k, v in ps4000a.PS4000A_COUPLING.items()}

# A tuple in an enum like this is 2 names for the same value.
ps4000a.PS4000A_CHANNEL = make_enum([
    "PS4000A_CHANNEL_A",
    "PS4000A_CHANNEL_B",
    "PS4000A_CHANNEL_C",
    "PS4000A_CHANNEL_D",
    ("PS4000A_CHANNEL_E", "PS4000A_MAX_4_CHANNELS"),
    "PS4000A_CHANNEL_F",
    "PS4000A_CHANNEL_G",
    "PS4000A_CHANNEL_H",
Ejemplo n.º 22
0

ps4000 = Ps4000lib()

# This field is passed to the driver as a boolean, not an enum.
ps4000.PICO_COUPLING = {
    'AC': 0,
    'DC': 1
}

# A tuple in an enum like this is 2 names for the same value.
ps4000.PS4000_CHANNEL = make_enum([
    "PS4000_CHANNEL_A",
    "PS4000_CHANNEL_B",
    "PS4000_CHANNEL_C",
    "PS4000_CHANNEL_D",
    ("PS4000_EXTERNAL", "PS4000_MAX_CHANNELS"),
    "PS4000_TRIGGER_AUX",
    "PS4000_MAX_TRIGGER_SOURCE",
])

# only include the normal analog channels for now:
ps4000.PICO_CHANNEL = {k[-1]: v for k, v in ps4000.PS4000_CHANNEL.items() if "PS4000_CHANNEL_" in k}

ps4000.PS4000_RANGE = make_enum([
    "PS4000_10MV",
    "PS4000_20MV",
    "PS4000_50MV",
    "PS4000_100MV",
    "PS4000_200MV",
    "PS4000_500MV",
Ejemplo n.º 23
0
from picosdk.ctypes_wrapper import C_CALLBACK_FUNCTION_FACTORY
from picosdk.library import Library
from picosdk.constants import make_enum


class Ps5000alib(Library):
    def __init__(self):
        super(Ps5000alib, self).__init__("ps5000a")


ps5000a = Ps5000alib()

ps5000a.PS5000A_DEVICE_RESOLUTION = make_enum([
    "PS5000A_DR_8BIT",
    "PS5000A_DR_12BIT",
    "PS5000A_DR_14BIT",
    "PS5000A_DR_15BIT",
    "PS5000A_DR_16BIT",
])

ps5000a.DEFAULT_RESOLUTION = ps5000a.PS5000A_DEVICE_RESOLUTION["PS5000A_DR_8BIT"]

ps5000a.PS5000A_COUPLING = make_enum([
    'PS5000A_AC',
    'PS5000A_DC',
])

# Just use AC and DC.
ps5000a.PICO_COUPLING = {k[-2:]: v for k, v in ps5000a.PS5000A_COUPLING.items()}