# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.
from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_ok')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_ok')
    _ok = swig_import_helper()
    del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_ok', [dirname(__file__)])
        except ImportError:
            import _ok
            return _ok
        try:
            _mod = imp.load_module('_ok', fp, pathname, description)
        finally:
            if fp is not None:
                fp.close()
        return _mod
    _ok = swig_import_helper()
    del swig_import_helper
else:
    raise RuntimeError('Python 2.6 or later required')
del _swig_python_version_info

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


import weakref

class SwigPyIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _ok.delete_SwigPyIterator

    def value(self) -> "PyObject *":
        return _ok.SwigPyIterator_value(self)

    def incr(self, n: 'size_t'=1) -> "swig::SwigPyIterator *":
        return _ok.SwigPyIterator_incr(self, n)

    def decr(self, n: 'size_t'=1) -> "swig::SwigPyIterator *":
        return _ok.SwigPyIterator_decr(self, n)

    def distance(self, x: 'SwigPyIterator') -> "ptrdiff_t":
        return _ok.SwigPyIterator_distance(self, x)

    def equal(self, x: 'SwigPyIterator') -> "bool":
        return _ok.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _ok.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _ok.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _ok.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _ok.SwigPyIterator_previous(self)

    def advance(self, n: 'ptrdiff_t') -> "swig::SwigPyIterator *":
        return _ok.SwigPyIterator_advance(self, n)

    def __eq__(self, x: 'SwigPyIterator') -> "bool":
        return _ok.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: 'SwigPyIterator') -> "bool":
        return _ok.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: 'ptrdiff_t') -> "swig::SwigPyIterator &":
        return _ok.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: 'ptrdiff_t') -> "swig::SwigPyIterator &":
        return _ok.SwigPyIterator___isub__(self, n)

    def __add__(self, n: 'ptrdiff_t') -> "swig::SwigPyIterator *":
        return _ok.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        return _ok.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _ok:
_ok.SwigPyIterator_swigregister(SwigPyIterator)

class okStrings(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def iterator(self) -> "swig::SwigPyIterator *":
        return _ok.okStrings_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self) -> "bool":
        return _ok.okStrings___nonzero__(self)

    def __bool__(self) -> "bool":
        return _ok.okStrings___bool__(self)

    def __len__(self) -> "std::vector< std::string >::size_type":
        return _ok.okStrings___len__(self)

    def __getslice__(self, i: 'std::vector< std::string >::difference_type', j: 'std::vector< std::string >::difference_type') -> "std::vector< std::string,std::allocator< std::string > > *":
        return _ok.okStrings___getslice__(self, i, j)

    def __setslice__(self, *args) -> "void":
        return _ok.okStrings___setslice__(self, *args)

    def __delslice__(self, i: 'std::vector< std::string >::difference_type', j: 'std::vector< std::string >::difference_type') -> "void":
        return _ok.okStrings___delslice__(self, i, j)

    def __delitem__(self, *args) -> "void":
        return _ok.okStrings___delitem__(self, *args)

    def __getitem__(self, *args) -> "std::vector< std::string >::value_type const &":
        return _ok.okStrings___getitem__(self, *args)

    def __setitem__(self, *args) -> "void":
        return _ok.okStrings___setitem__(self, *args)

    def pop(self) -> "std::vector< std::string >::value_type":
        return _ok.okStrings_pop(self)

    def append(self, x: 'std::vector< std::string >::value_type const &') -> "void":
        return _ok.okStrings_append(self, x)

    def empty(self) -> "bool":
        return _ok.okStrings_empty(self)

    def size(self) -> "std::vector< std::string >::size_type":
        return _ok.okStrings_size(self)

    def swap(self, v: 'okStrings') -> "void":
        return _ok.okStrings_swap(self, v)

    def begin(self) -> "std::vector< std::string >::iterator":
        return _ok.okStrings_begin(self)

    def end(self) -> "std::vector< std::string >::iterator":
        return _ok.okStrings_end(self)

    def rbegin(self) -> "std::vector< std::string >::reverse_iterator":
        return _ok.okStrings_rbegin(self)

    def rend(self) -> "std::vector< std::string >::reverse_iterator":
        return _ok.okStrings_rend(self)

    def clear(self) -> "void":
        return _ok.okStrings_clear(self)

    def get_allocator(self) -> "std::vector< std::string >::allocator_type":
        return _ok.okStrings_get_allocator(self)

    def pop_back(self) -> "void":
        return _ok.okStrings_pop_back(self)

    def erase(self, *args) -> "std::vector< std::string >::iterator":
        return _ok.okStrings_erase(self, *args)

    def __init__(self, *args):
        _ok.okStrings_swiginit(self, _ok.new_okStrings(*args))

    def push_back(self, x: 'std::vector< std::string >::value_type const &') -> "void":
        return _ok.okStrings_push_back(self, x)

    def front(self) -> "std::vector< std::string >::value_type const &":
        return _ok.okStrings_front(self)

    def back(self) -> "std::vector< std::string >::value_type const &":
        return _ok.okStrings_back(self)

    def assign(self, n: 'std::vector< std::string >::size_type', x: 'std::vector< std::string >::value_type const &') -> "void":
        return _ok.okStrings_assign(self, n, x)

    def resize(self, *args) -> "void":
        return _ok.okStrings_resize(self, *args)

    def insert(self, *args) -> "void":
        return _ok.okStrings_insert(self, *args)

    def reserve(self, n: 'std::vector< std::string >::size_type') -> "void":
        return _ok.okStrings_reserve(self, n)

    def capacity(self) -> "std::vector< std::string >::size_type":
        return _ok.okStrings_capacity(self)
    __swig_destroy__ = _ok.delete_okStrings

# Register okStrings in _ok:
_ok.okStrings_swigregister(okStrings)


__version__ =  	"5.3.0"

okFPGACONFIGURATIONMETHOD_NVRAM = _ok.okFPGACONFIGURATIONMETHOD_NVRAM
okFPGACONFIGURATIONMETHOD_JTAG = _ok.okFPGACONFIGURATIONMETHOD_JTAG
class okCScriptValues(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def iterator(self) -> "swig::SwigPyIterator *":
        return _ok.okCScriptValues_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self) -> "bool":
        return _ok.okCScriptValues___nonzero__(self)

    def __bool__(self) -> "bool":
        return _ok.okCScriptValues___bool__(self)

    def __len__(self) -> "std::vector< OpalKelly::ScriptValue >::size_type":
        return _ok.okCScriptValues___len__(self)

    def __getslice__(self, i: 'std::vector< OpalKelly::ScriptValue >::difference_type', j: 'std::vector< OpalKelly::ScriptValue >::difference_type') -> "std::vector< OpalKelly::ScriptValue,std::allocator< OpalKelly::ScriptValue > > *":
        return _ok.okCScriptValues___getslice__(self, i, j)

    def __setslice__(self, *args) -> "void":
        return _ok.okCScriptValues___setslice__(self, *args)

    def __delslice__(self, i: 'std::vector< OpalKelly::ScriptValue >::difference_type', j: 'std::vector< OpalKelly::ScriptValue >::difference_type') -> "void":
        return _ok.okCScriptValues___delslice__(self, i, j)

    def __delitem__(self, *args) -> "void":
        return _ok.okCScriptValues___delitem__(self, *args)

    def __getitem__(self, *args) -> "std::vector< OpalKelly::ScriptValue >::value_type const &":
        return _ok.okCScriptValues___getitem__(self, *args)

    def __setitem__(self, *args) -> "void":
        return _ok.okCScriptValues___setitem__(self, *args)

    def pop(self) -> "std::vector< OpalKelly::ScriptValue >::value_type":
        return _ok.okCScriptValues_pop(self)

    def append(self, x: 'okCScriptValue') -> "void":
        return _ok.okCScriptValues_append(self, x)

    def empty(self) -> "bool":
        return _ok.okCScriptValues_empty(self)

    def size(self) -> "std::vector< OpalKelly::ScriptValue >::size_type":
        return _ok.okCScriptValues_size(self)

    def swap(self, v: 'okCScriptValues') -> "void":
        return _ok.okCScriptValues_swap(self, v)

    def begin(self) -> "std::vector< OpalKelly::ScriptValue >::iterator":
        return _ok.okCScriptValues_begin(self)

    def end(self) -> "std::vector< OpalKelly::ScriptValue >::iterator":
        return _ok.okCScriptValues_end(self)

    def rbegin(self) -> "std::vector< OpalKelly::ScriptValue >::reverse_iterator":
        return _ok.okCScriptValues_rbegin(self)

    def rend(self) -> "std::vector< OpalKelly::ScriptValue >::reverse_iterator":
        return _ok.okCScriptValues_rend(self)

    def clear(self) -> "void":
        return _ok.okCScriptValues_clear(self)

    def get_allocator(self) -> "std::vector< OpalKelly::ScriptValue >::allocator_type":
        return _ok.okCScriptValues_get_allocator(self)

    def pop_back(self) -> "void":
        return _ok.okCScriptValues_pop_back(self)

    def erase(self, *args) -> "std::vector< OpalKelly::ScriptValue >::iterator":
        return _ok.okCScriptValues_erase(self, *args)

    def __init__(self, *args):
        _ok.okCScriptValues_swiginit(self, _ok.new_okCScriptValues(*args))

    def push_back(self, x: 'okCScriptValue') -> "void":
        return _ok.okCScriptValues_push_back(self, x)

    def front(self) -> "std::vector< OpalKelly::ScriptValue >::value_type const &":
        return _ok.okCScriptValues_front(self)

    def back(self) -> "std::vector< OpalKelly::ScriptValue >::value_type const &":
        return _ok.okCScriptValues_back(self)

    def assign(self, n: 'std::vector< OpalKelly::ScriptValue >::size_type', x: 'okCScriptValue') -> "void":
        return _ok.okCScriptValues_assign(self, n, x)

    def resize(self, *args) -> "void":
        return _ok.okCScriptValues_resize(self, *args)

    def insert(self, *args) -> "void":
        return _ok.okCScriptValues_insert(self, *args)

    def reserve(self, n: 'std::vector< OpalKelly::ScriptValue >::size_type') -> "void":
        return _ok.okCScriptValues_reserve(self, n)

    def capacity(self) -> "std::vector< OpalKelly::ScriptValue >::size_type":
        return _ok.okCScriptValues_capacity(self)
    __swig_destroy__ = _ok.delete_okCScriptValues

# Register okCScriptValues in _ok:
_ok.okCScriptValues_swigregister(okCScriptValues)

class okDeviceSensors(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def iterator(self) -> "swig::SwigPyIterator *":
        return _ok.okDeviceSensors_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self) -> "bool":
        return _ok.okDeviceSensors___nonzero__(self)

    def __bool__(self) -> "bool":
        return _ok.okDeviceSensors___bool__(self)

    def __len__(self) -> "std::vector< okTDeviceSensor >::size_type":
        return _ok.okDeviceSensors___len__(self)

    def __getslice__(self, i: 'std::vector< okTDeviceSensor >::difference_type', j: 'std::vector< okTDeviceSensor >::difference_type') -> "std::vector< okTDeviceSensor,std::allocator< okTDeviceSensor > > *":
        return _ok.okDeviceSensors___getslice__(self, i, j)

    def __setslice__(self, *args) -> "void":
        return _ok.okDeviceSensors___setslice__(self, *args)

    def __delslice__(self, i: 'std::vector< okTDeviceSensor >::difference_type', j: 'std::vector< okTDeviceSensor >::difference_type') -> "void":
        return _ok.okDeviceSensors___delslice__(self, i, j)

    def __delitem__(self, *args) -> "void":
        return _ok.okDeviceSensors___delitem__(self, *args)

    def __getitem__(self, *args) -> "std::vector< okTDeviceSensor >::value_type const &":
        return _ok.okDeviceSensors___getitem__(self, *args)

    def __setitem__(self, *args) -> "void":
        return _ok.okDeviceSensors___setitem__(self, *args)

    def pop(self) -> "std::vector< okTDeviceSensor >::value_type":
        return _ok.okDeviceSensors_pop(self)

    def append(self, x: 'okTDeviceSensor') -> "void":
        return _ok.okDeviceSensors_append(self, x)

    def empty(self) -> "bool":
        return _ok.okDeviceSensors_empty(self)

    def size(self) -> "std::vector< okTDeviceSensor >::size_type":
        return _ok.okDeviceSensors_size(self)

    def swap(self, v: 'okDeviceSensors') -> "void":
        return _ok.okDeviceSensors_swap(self, v)

    def begin(self) -> "std::vector< okTDeviceSensor >::iterator":
        return _ok.okDeviceSensors_begin(self)

    def end(self) -> "std::vector< okTDeviceSensor >::iterator":
        return _ok.okDeviceSensors_end(self)

    def rbegin(self) -> "std::vector< okTDeviceSensor >::reverse_iterator":
        return _ok.okDeviceSensors_rbegin(self)

    def rend(self) -> "std::vector< okTDeviceSensor >::reverse_iterator":
        return _ok.okDeviceSensors_rend(self)

    def clear(self) -> "void":
        return _ok.okDeviceSensors_clear(self)

    def get_allocator(self) -> "std::vector< okTDeviceSensor >::allocator_type":
        return _ok.okDeviceSensors_get_allocator(self)

    def pop_back(self) -> "void":
        return _ok.okDeviceSensors_pop_back(self)

    def erase(self, *args) -> "std::vector< okTDeviceSensor >::iterator":
        return _ok.okDeviceSensors_erase(self, *args)

    def __init__(self, *args):
        _ok.okDeviceSensors_swiginit(self, _ok.new_okDeviceSensors(*args))

    def push_back(self, x: 'okTDeviceSensor') -> "void":
        return _ok.okDeviceSensors_push_back(self, x)

    def front(self) -> "std::vector< okTDeviceSensor >::value_type const &":
        return _ok.okDeviceSensors_front(self)

    def back(self) -> "std::vector< okTDeviceSensor >::value_type const &":
        return _ok.okDeviceSensors_back(self)

    def assign(self, n: 'std::vector< okTDeviceSensor >::size_type', x: 'okTDeviceSensor') -> "void":
        return _ok.okDeviceSensors_assign(self, n, x)

    def resize(self, *args) -> "void":
        return _ok.okDeviceSensors_resize(self, *args)

    def insert(self, *args) -> "void":
        return _ok.okDeviceSensors_insert(self, *args)

    def reserve(self, n: 'std::vector< okTDeviceSensor >::size_type') -> "void":
        return _ok.okDeviceSensors_reserve(self, n)

    def capacity(self) -> "std::vector< okTDeviceSensor >::size_type":
        return _ok.okDeviceSensors_capacity(self)
    __swig_destroy__ = _ok.delete_okDeviceSensors

# Register okDeviceSensors in _ok:
_ok.okDeviceSensors_swigregister(okDeviceSensors)

class okTRegisterEntries(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def iterator(self) -> "swig::SwigPyIterator *":
        return _ok.okTRegisterEntries_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self) -> "bool":
        return _ok.okTRegisterEntries___nonzero__(self)

    def __bool__(self) -> "bool":
        return _ok.okTRegisterEntries___bool__(self)

    def __len__(self) -> "std::vector< okTRegisterEntry >::size_type":
        return _ok.okTRegisterEntries___len__(self)

    def __getslice__(self, i: 'std::vector< okTRegisterEntry >::difference_type', j: 'std::vector< okTRegisterEntry >::difference_type') -> "std::vector< okTRegisterEntry,std::allocator< okTRegisterEntry > > *":
        return _ok.okTRegisterEntries___getslice__(self, i, j)

    def __setslice__(self, *args) -> "void":
        return _ok.okTRegisterEntries___setslice__(self, *args)

    def __delslice__(self, i: 'std::vector< okTRegisterEntry >::difference_type', j: 'std::vector< okTRegisterEntry >::difference_type') -> "void":
        return _ok.okTRegisterEntries___delslice__(self, i, j)

    def __delitem__(self, *args) -> "void":
        return _ok.okTRegisterEntries___delitem__(self, *args)

    def __getitem__(self, *args) -> "std::vector< okTRegisterEntry >::value_type const &":
        return _ok.okTRegisterEntries___getitem__(self, *args)

    def __setitem__(self, *args) -> "void":
        return _ok.okTRegisterEntries___setitem__(self, *args)

    def pop(self) -> "std::vector< okTRegisterEntry >::value_type":
        return _ok.okTRegisterEntries_pop(self)

    def append(self, x: 'okTRegisterEntry') -> "void":
        return _ok.okTRegisterEntries_append(self, x)

    def empty(self) -> "bool":
        return _ok.okTRegisterEntries_empty(self)

    def size(self) -> "std::vector< okTRegisterEntry >::size_type":
        return _ok.okTRegisterEntries_size(self)

    def swap(self, v: 'okTRegisterEntries') -> "void":
        return _ok.okTRegisterEntries_swap(self, v)

    def begin(self) -> "std::vector< okTRegisterEntry >::iterator":
        return _ok.okTRegisterEntries_begin(self)

    def end(self) -> "std::vector< okTRegisterEntry >::iterator":
        return _ok.okTRegisterEntries_end(self)

    def rbegin(self) -> "std::vector< okTRegisterEntry >::reverse_iterator":
        return _ok.okTRegisterEntries_rbegin(self)

    def rend(self) -> "std::vector< okTRegisterEntry >::reverse_iterator":
        return _ok.okTRegisterEntries_rend(self)

    def clear(self) -> "void":
        return _ok.okTRegisterEntries_clear(self)

    def get_allocator(self) -> "std::vector< okTRegisterEntry >::allocator_type":
        return _ok.okTRegisterEntries_get_allocator(self)

    def pop_back(self) -> "void":
        return _ok.okTRegisterEntries_pop_back(self)

    def erase(self, *args) -> "std::vector< okTRegisterEntry >::iterator":
        return _ok.okTRegisterEntries_erase(self, *args)

    def __init__(self, *args):
        _ok.okTRegisterEntries_swiginit(self, _ok.new_okTRegisterEntries(*args))

    def push_back(self, x: 'okTRegisterEntry') -> "void":
        return _ok.okTRegisterEntries_push_back(self, x)

    def front(self) -> "std::vector< okTRegisterEntry >::value_type const &":
        return _ok.okTRegisterEntries_front(self)

    def back(self) -> "std::vector< okTRegisterEntry >::value_type const &":
        return _ok.okTRegisterEntries_back(self)

    def assign(self, n: 'std::vector< okTRegisterEntry >::size_type', x: 'okTRegisterEntry') -> "void":
        return _ok.okTRegisterEntries_assign(self, n, x)

    def resize(self, *args) -> "void":
        return _ok.okTRegisterEntries_resize(self, *args)

    def insert(self, *args) -> "void":
        return _ok.okTRegisterEntries_insert(self, *args)

    def reserve(self, n: 'std::vector< okTRegisterEntry >::size_type') -> "void":
        return _ok.okTRegisterEntries_reserve(self, n)

    def capacity(self) -> "std::vector< okTRegisterEntry >::size_type":
        return _ok.okTRegisterEntries_capacity(self)
    __swig_destroy__ = _ok.delete_okTRegisterEntries

# Register okTRegisterEntries in _ok:
_ok.okTRegisterEntries_swigregister(okTRegisterEntries)

OK_MAX_DEVICEID_LENGTH = _ok.OK_MAX_DEVICEID_LENGTH
OK_MAX_SERIALNUMBER_LENGTH = _ok.OK_MAX_SERIALNUMBER_LENGTH
OK_MAX_PRODUCT_NAME_LENGTH = _ok.OK_MAX_PRODUCT_NAME_LENGTH
OK_MAX_BOARD_MODEL_STRING_LENGTH = _ok.OK_MAX_BOARD_MODEL_STRING_LENGTH
OK_USBSPEED_UNKNOWN = _ok.OK_USBSPEED_UNKNOWN
OK_USBSPEED_FULL = _ok.OK_USBSPEED_FULL
OK_USBSPEED_HIGH = _ok.OK_USBSPEED_HIGH
OK_USBSPEED_SUPER = _ok.OK_USBSPEED_SUPER
okUSBSPEED_UNKNOWN = _ok.okUSBSPEED_UNKNOWN
okUSBSPEED_FULL = _ok.okUSBSPEED_FULL
okUSBSPEED_HIGH = _ok.okUSBSPEED_HIGH
okUSBSPEED_SUPER = _ok.okUSBSPEED_SUPER
OK_INTERFACE_UNKNOWN = _ok.OK_INTERFACE_UNKNOWN
OK_INTERFACE_USB2 = _ok.OK_INTERFACE_USB2
OK_INTERFACE_PCIE = _ok.OK_INTERFACE_PCIE
OK_INTERFACE_USB3 = _ok.OK_INTERFACE_USB3
okDEVICEINTERFACE_UNKNOWN = _ok.okDEVICEINTERFACE_UNKNOWN
okDEVICEINTERFACE_USB2 = _ok.okDEVICEINTERFACE_USB2
okDEVICEINTERFACE_PCIE = _ok.okDEVICEINTERFACE_PCIE
okDEVICEINTERFACE_USB3 = _ok.okDEVICEINTERFACE_USB3
OK_PRODUCT_UNKNOWN = _ok.OK_PRODUCT_UNKNOWN
OK_PRODUCT_XEM3001V1 = _ok.OK_PRODUCT_XEM3001V1
OK_PRODUCT_XEM3001V2 = _ok.OK_PRODUCT_XEM3001V2
OK_PRODUCT_XEM3010 = _ok.OK_PRODUCT_XEM3010
OK_PRODUCT_XEM3005 = _ok.OK_PRODUCT_XEM3005
OK_PRODUCT_XEM3001CL = _ok.OK_PRODUCT_XEM3001CL
OK_PRODUCT_XEM3020 = _ok.OK_PRODUCT_XEM3020
OK_PRODUCT_XEM3050 = _ok.OK_PRODUCT_XEM3050
OK_PRODUCT_XEM9002 = _ok.OK_PRODUCT_XEM9002
OK_PRODUCT_XEM3001RB = _ok.OK_PRODUCT_XEM3001RB
OK_PRODUCT_XEM5010 = _ok.OK_PRODUCT_XEM5010
OK_PRODUCT_XEM6110LX45 = _ok.OK_PRODUCT_XEM6110LX45
OK_PRODUCT_XEM6001 = _ok.OK_PRODUCT_XEM6001
OK_PRODUCT_XEM6010LX45 = _ok.OK_PRODUCT_XEM6010LX45
OK_PRODUCT_XEM6010LX150 = _ok.OK_PRODUCT_XEM6010LX150
OK_PRODUCT_XEM6110LX150 = _ok.OK_PRODUCT_XEM6110LX150
OK_PRODUCT_XEM6006LX9 = _ok.OK_PRODUCT_XEM6006LX9
OK_PRODUCT_XEM6006LX16 = _ok.OK_PRODUCT_XEM6006LX16
OK_PRODUCT_XEM6006LX25 = _ok.OK_PRODUCT_XEM6006LX25
OK_PRODUCT_XEM5010LX110 = _ok.OK_PRODUCT_XEM5010LX110
OK_PRODUCT_ZEM4310 = _ok.OK_PRODUCT_ZEM4310
OK_PRODUCT_XEM6310LX45 = _ok.OK_PRODUCT_XEM6310LX45
OK_PRODUCT_XEM6310LX150 = _ok.OK_PRODUCT_XEM6310LX150
OK_PRODUCT_XEM6110V2LX45 = _ok.OK_PRODUCT_XEM6110V2LX45
OK_PRODUCT_XEM6110V2LX150 = _ok.OK_PRODUCT_XEM6110V2LX150
OK_PRODUCT_XEM6002LX9 = _ok.OK_PRODUCT_XEM6002LX9
OK_PRODUCT_XEM6310MTLX45T = _ok.OK_PRODUCT_XEM6310MTLX45T
OK_PRODUCT_XEM6320LX130T = _ok.OK_PRODUCT_XEM6320LX130T
OK_PRODUCT_XEM7350K70T = _ok.OK_PRODUCT_XEM7350K70T
OK_PRODUCT_XEM7350K160T = _ok.OK_PRODUCT_XEM7350K160T
OK_PRODUCT_XEM7350K410T = _ok.OK_PRODUCT_XEM7350K410T
OK_PRODUCT_XEM6310MTLX150T = _ok.OK_PRODUCT_XEM6310MTLX150T
OK_PRODUCT_ZEM5305A2 = _ok.OK_PRODUCT_ZEM5305A2
OK_PRODUCT_ZEM5305A7 = _ok.OK_PRODUCT_ZEM5305A7
OK_PRODUCT_XEM7001A15 = _ok.OK_PRODUCT_XEM7001A15
OK_PRODUCT_XEM7001A35 = _ok.OK_PRODUCT_XEM7001A35
OK_PRODUCT_XEM7360K160T = _ok.OK_PRODUCT_XEM7360K160T
OK_PRODUCT_XEM7360K410T = _ok.OK_PRODUCT_XEM7360K410T
OK_PRODUCT_ZEM5310A4 = _ok.OK_PRODUCT_ZEM5310A4
OK_PRODUCT_ZEM5310A7 = _ok.OK_PRODUCT_ZEM5310A7
OK_PRODUCT_ZEM5370A5 = _ok.OK_PRODUCT_ZEM5370A5
OK_PRODUCT_XEM7010A50 = _ok.OK_PRODUCT_XEM7010A50
OK_PRODUCT_XEM7010A200 = _ok.OK_PRODUCT_XEM7010A200
OK_PRODUCT_XEM7310A75 = _ok.OK_PRODUCT_XEM7310A75
OK_PRODUCT_XEM7310A200 = _ok.OK_PRODUCT_XEM7310A200
OK_PRODUCT_XEM7320A75T = _ok.OK_PRODUCT_XEM7320A75T
OK_PRODUCT_XEM7320A200T = _ok.OK_PRODUCT_XEM7320A200T
OK_PRODUCT_XEM7305 = _ok.OK_PRODUCT_XEM7305
OK_PRODUCT_FPX1301 = _ok.OK_PRODUCT_FPX1301
OK_PRODUCT_XEM8350KU060 = _ok.OK_PRODUCT_XEM8350KU060
OK_PRODUCT_XEM8350KU085 = _ok.OK_PRODUCT_XEM8350KU085
OK_PRODUCT_XEM8350KU115 = _ok.OK_PRODUCT_XEM8350KU115
OK_PRODUCT_XEM8350SECONDARY = _ok.OK_PRODUCT_XEM8350SECONDARY
OK_PRODUCT_XEM7310MTA75 = _ok.OK_PRODUCT_XEM7310MTA75
OK_PRODUCT_XEM7310MTA200 = _ok.OK_PRODUCT_XEM7310MTA200
OK_PRODUCT_XEM9025 = _ok.OK_PRODUCT_XEM9025
OK_PRODUCT_XEM8320AU25P = _ok.OK_PRODUCT_XEM8320AU25P
OK_PRODUCT_XEM8310AU25P = _ok.OK_PRODUCT_XEM8310AU25P
OK_PRODUCT_FPX9301 = _ok.OK_PRODUCT_FPX9301
OK_PRODUCT_OEM_START = _ok.OK_PRODUCT_OEM_START
okPRODUCT_UNKNOWN = _ok.okPRODUCT_UNKNOWN
okPRODUCT_XEM3001V1 = _ok.okPRODUCT_XEM3001V1
okPRODUCT_XEM3001V2 = _ok.okPRODUCT_XEM3001V2
okPRODUCT_XEM3010 = _ok.okPRODUCT_XEM3010
okPRODUCT_XEM3005 = _ok.okPRODUCT_XEM3005
okPRODUCT_XEM3001CL = _ok.okPRODUCT_XEM3001CL
okPRODUCT_XEM3020 = _ok.okPRODUCT_XEM3020
okPRODUCT_XEM3050 = _ok.okPRODUCT_XEM3050
okPRODUCT_XEM9002 = _ok.okPRODUCT_XEM9002
okPRODUCT_XEM3001RB = _ok.okPRODUCT_XEM3001RB
okPRODUCT_XEM5010 = _ok.okPRODUCT_XEM5010
okPRODUCT_XEM6110LX45 = _ok.okPRODUCT_XEM6110LX45
okPRODUCT_XEM6001 = _ok.okPRODUCT_XEM6001
okPRODUCT_XEM6010LX45 = _ok.okPRODUCT_XEM6010LX45
okPRODUCT_XEM6010LX150 = _ok.okPRODUCT_XEM6010LX150
okPRODUCT_XEM6110LX150 = _ok.okPRODUCT_XEM6110LX150
okPRODUCT_XEM6006LX9 = _ok.okPRODUCT_XEM6006LX9
okPRODUCT_XEM6006LX16 = _ok.okPRODUCT_XEM6006LX16
okPRODUCT_XEM6006LX25 = _ok.okPRODUCT_XEM6006LX25
okPRODUCT_XEM5010LX110 = _ok.okPRODUCT_XEM5010LX110
okPRODUCT_ZEM4310 = _ok.okPRODUCT_ZEM4310
okPRODUCT_XEM6310LX45 = _ok.okPRODUCT_XEM6310LX45
okPRODUCT_XEM6310LX150 = _ok.okPRODUCT_XEM6310LX150
okPRODUCT_XEM6110V2LX45 = _ok.okPRODUCT_XEM6110V2LX45
okPRODUCT_XEM6110V2LX150 = _ok.okPRODUCT_XEM6110V2LX150
okPRODUCT_XEM6002LX9 = _ok.okPRODUCT_XEM6002LX9
okPRODUCT_XEM6310MTLX45T = _ok.okPRODUCT_XEM6310MTLX45T
okPRODUCT_XEM6320LX130T = _ok.okPRODUCT_XEM6320LX130T
okPRODUCT_XEM7350K70T = _ok.okPRODUCT_XEM7350K70T
okPRODUCT_XEM7350K160T = _ok.okPRODUCT_XEM7350K160T
okPRODUCT_XEM7350K410T = _ok.okPRODUCT_XEM7350K410T
okPRODUCT_XEM6310MTLX150T = _ok.okPRODUCT_XEM6310MTLX150T
okPRODUCT_ZEM5305A2 = _ok.okPRODUCT_ZEM5305A2
okPRODUCT_ZEM5305A7 = _ok.okPRODUCT_ZEM5305A7
okPRODUCT_XEM7001A15 = _ok.okPRODUCT_XEM7001A15
okPRODUCT_XEM7001A35 = _ok.okPRODUCT_XEM7001A35
okPRODUCT_XEM7360K160T = _ok.okPRODUCT_XEM7360K160T
okPRODUCT_XEM7360K410T = _ok.okPRODUCT_XEM7360K410T
okPRODUCT_ZEM5310A4 = _ok.okPRODUCT_ZEM5310A4
okPRODUCT_ZEM5310A7 = _ok.okPRODUCT_ZEM5310A7
okPRODUCT_ZEM5370A5 = _ok.okPRODUCT_ZEM5370A5
okPRODUCT_XEM7010A50 = _ok.okPRODUCT_XEM7010A50
okPRODUCT_XEM7010A200 = _ok.okPRODUCT_XEM7010A200
okPRODUCT_XEM7310A75 = _ok.okPRODUCT_XEM7310A75
okPRODUCT_XEM7310A200 = _ok.okPRODUCT_XEM7310A200
okPRODUCT_XEM7320A75T = _ok.okPRODUCT_XEM7320A75T
okPRODUCT_XEM7320A200T = _ok.okPRODUCT_XEM7320A200T
okPRODUCT_XEM7305 = _ok.okPRODUCT_XEM7305
okPRODUCT_FPX1301 = _ok.okPRODUCT_FPX1301
okPRODUCT_XEM8350KU060 = _ok.okPRODUCT_XEM8350KU060
okPRODUCT_XEM8350KU085 = _ok.okPRODUCT_XEM8350KU085
okPRODUCT_XEM8350KU115 = _ok.okPRODUCT_XEM8350KU115
okPRODUCT_XEM8350SECONDARY = _ok.okPRODUCT_XEM8350SECONDARY
okPRODUCT_XEM7310MTA75 = _ok.okPRODUCT_XEM7310MTA75
okPRODUCT_XEM7310MTA200 = _ok.okPRODUCT_XEM7310MTA200
okPRODUCT_XEM9025 = _ok.okPRODUCT_XEM9025
okPRODUCT_XEM8320AU25P = _ok.okPRODUCT_XEM8320AU25P
okPRODUCT_XEM8310AU25P = _ok.okPRODUCT_XEM8310AU25P
okPRODUCT_FPX9301 = _ok.okPRODUCT_FPX9301
okPRODUCT_OEM_START = _ok.okPRODUCT_OEM_START
OK_FPGACONFIGURATIONMETHOD_NVRAM = _ok.OK_FPGACONFIGURATIONMETHOD_NVRAM
OK_FPGACONFIGURATIONMETHOD_JTAG = _ok.OK_FPGACONFIGURATIONMETHOD_JTAG
okFPGARESETPROFILE_MAGIC = _ok.okFPGARESETPROFILE_MAGIC
okFPGAVENDOR_UNKNOWN = _ok.okFPGAVENDOR_UNKNOWN
okFPGAVENDOR_XILINX = _ok.okFPGAVENDOR_XILINX
okFPGAVENDOR_INTEL = _ok.okFPGAVENDOR_INTEL
class okTRegisterEntry(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    address = property(_ok.okTRegisterEntry_address_get, _ok.okTRegisterEntry_address_set)
    data = property(_ok.okTRegisterEntry_data_get, _ok.okTRegisterEntry_data_set)

    def __init__(self):
        _ok.okTRegisterEntry_swiginit(self, _ok.new_okTRegisterEntry())
    __swig_destroy__ = _ok.delete_okTRegisterEntry

# Register okTRegisterEntry in _ok:
_ok.okTRegisterEntry_swigregister(okTRegisterEntry)

class okTTriggerEntry(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    address = property(_ok.okTTriggerEntry_address_get, _ok.okTTriggerEntry_address_set)
    mask = property(_ok.okTTriggerEntry_mask_get, _ok.okTTriggerEntry_mask_set)

    def __init__(self):
        _ok.okTTriggerEntry_swiginit(self, _ok.new_okTTriggerEntry())
    __swig_destroy__ = _ok.delete_okTTriggerEntry

# Register okTTriggerEntry in _ok:
_ok.okTTriggerEntry_swigregister(okTTriggerEntry)

class okTFPGAResetProfile(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    magic = property(_ok.okTFPGAResetProfile_magic_get, _ok.okTFPGAResetProfile_magic_set)
    configFileLocation = property(_ok.okTFPGAResetProfile_configFileLocation_get, _ok.okTFPGAResetProfile_configFileLocation_set)
    configFileLength = property(_ok.okTFPGAResetProfile_configFileLength_get, _ok.okTFPGAResetProfile_configFileLength_set)
    doneWaitUS = property(_ok.okTFPGAResetProfile_doneWaitUS_get, _ok.okTFPGAResetProfile_doneWaitUS_set)
    resetWaitUS = property(_ok.okTFPGAResetProfile_resetWaitUS_get, _ok.okTFPGAResetProfile_resetWaitUS_set)
    registerWaitUS = property(_ok.okTFPGAResetProfile_registerWaitUS_get, _ok.okTFPGAResetProfile_registerWaitUS_set)
    padBytes1 = property(_ok.okTFPGAResetProfile_padBytes1_get, _ok.okTFPGAResetProfile_padBytes1_set)
    wireInValues = property(_ok.okTFPGAResetProfile_wireInValues_get, _ok.okTFPGAResetProfile_wireInValues_set)
    registerEntryCount = property(_ok.okTFPGAResetProfile_registerEntryCount_get, _ok.okTFPGAResetProfile_registerEntryCount_set)
    registerEntries = property(_ok.okTFPGAResetProfile_registerEntries_get, _ok.okTFPGAResetProfile_registerEntries_set)
    triggerEntryCount = property(_ok.okTFPGAResetProfile_triggerEntryCount_get, _ok.okTFPGAResetProfile_triggerEntryCount_set)
    triggerEntries = property(_ok.okTFPGAResetProfile_triggerEntries_get, _ok.okTFPGAResetProfile_triggerEntries_set)
    padBytes2 = property(_ok.okTFPGAResetProfile_padBytes2_get, _ok.okTFPGAResetProfile_padBytes2_set)

    def __init__(self):
        _ok.okTFPGAResetProfile_swiginit(self, _ok.new_okTFPGAResetProfile())
    __swig_destroy__ = _ok.delete_okTFPGAResetProfile

# Register okTFPGAResetProfile in _ok:
_ok.okTFPGAResetProfile_swigregister(okTFPGAResetProfile)

class okTFlashLayout(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    sectorCount = property(_ok.okTFlashLayout_sectorCount_get, _ok.okTFlashLayout_sectorCount_set)
    sectorSize = property(_ok.okTFlashLayout_sectorSize_get, _ok.okTFlashLayout_sectorSize_set)
    pageSize = property(_ok.okTFlashLayout_pageSize_get, _ok.okTFlashLayout_pageSize_set)
    minUserSector = property(_ok.okTFlashLayout_minUserSector_get, _ok.okTFlashLayout_minUserSector_set)
    maxUserSector = property(_ok.okTFlashLayout_maxUserSector_get, _ok.okTFlashLayout_maxUserSector_set)

    def __init__(self):
        _ok.okTFlashLayout_swiginit(self, _ok.new_okTFlashLayout())
    __swig_destroy__ = _ok.delete_okTFlashLayout

# Register okTFlashLayout in _ok:
_ok.okTFlashLayout_swigregister(okTFlashLayout)

class okTDeviceInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    deviceID = property(_ok.okTDeviceInfo_deviceID_get, _ok.okTDeviceInfo_deviceID_set)
    serialNumber = property(_ok.okTDeviceInfo_serialNumber_get, _ok.okTDeviceInfo_serialNumber_set)
    productName = property(_ok.okTDeviceInfo_productName_get, _ok.okTDeviceInfo_productName_set)
    productID = property(_ok.okTDeviceInfo_productID_get, _ok.okTDeviceInfo_productID_set)
    deviceInterface = property(_ok.okTDeviceInfo_deviceInterface_get, _ok.okTDeviceInfo_deviceInterface_set)
    usbSpeed = property(_ok.okTDeviceInfo_usbSpeed_get, _ok.okTDeviceInfo_usbSpeed_set)
    deviceMajorVersion = property(_ok.okTDeviceInfo_deviceMajorVersion_get, _ok.okTDeviceInfo_deviceMajorVersion_set)
    deviceMinorVersion = property(_ok.okTDeviceInfo_deviceMinorVersion_get, _ok.okTDeviceInfo_deviceMinorVersion_set)
    hostInterfaceMajorVersion = property(_ok.okTDeviceInfo_hostInterfaceMajorVersion_get, _ok.okTDeviceInfo_hostInterfaceMajorVersion_set)
    hostInterfaceMinorVersion = property(_ok.okTDeviceInfo_hostInterfaceMinorVersion_get, _ok.okTDeviceInfo_hostInterfaceMinorVersion_set)
    isPLL22150Supported = property(_ok.okTDeviceInfo_isPLL22150Supported_get, _ok.okTDeviceInfo_isPLL22150Supported_set)
    isPLL22393Supported = property(_ok.okTDeviceInfo_isPLL22393Supported_get, _ok.okTDeviceInfo_isPLL22393Supported_set)
    isFrontPanelEnabled = property(_ok.okTDeviceInfo_isFrontPanelEnabled_get, _ok.okTDeviceInfo_isFrontPanelEnabled_set)
    wireWidth = property(_ok.okTDeviceInfo_wireWidth_get, _ok.okTDeviceInfo_wireWidth_set)
    triggerWidth = property(_ok.okTDeviceInfo_triggerWidth_get, _ok.okTDeviceInfo_triggerWidth_set)
    pipeWidth = property(_ok.okTDeviceInfo_pipeWidth_get, _ok.okTDeviceInfo_pipeWidth_set)
    registerAddressWidth = property(_ok.okTDeviceInfo_registerAddressWidth_get, _ok.okTDeviceInfo_registerAddressWidth_set)
    registerDataWidth = property(_ok.okTDeviceInfo_registerDataWidth_get, _ok.okTDeviceInfo_registerDataWidth_set)
    flashSystem = property(_ok.okTDeviceInfo_flashSystem_get, _ok.okTDeviceInfo_flashSystem_set)
    flashFPGA = property(_ok.okTDeviceInfo_flashFPGA_get, _ok.okTDeviceInfo_flashFPGA_set)
    hasFMCEEPROM = property(_ok.okTDeviceInfo_hasFMCEEPROM_get, _ok.okTDeviceInfo_hasFMCEEPROM_set)
    hasResetProfiles = property(_ok.okTDeviceInfo_hasResetProfiles_get, _ok.okTDeviceInfo_hasResetProfiles_set)
    fpgaVendor = property(_ok.okTDeviceInfo_fpgaVendor_get, _ok.okTDeviceInfo_fpgaVendor_set)
    interfaceCount = property(_ok.okTDeviceInfo_interfaceCount_get, _ok.okTDeviceInfo_interfaceCount_set)
    interfaceIndex = property(_ok.okTDeviceInfo_interfaceIndex_get, _ok.okTDeviceInfo_interfaceIndex_set)
    configuresFromSystemFlash = property(_ok.okTDeviceInfo_configuresFromSystemFlash_get, _ok.okTDeviceInfo_configuresFromSystemFlash_set)
    hasQuadConfigFlash = property(_ok.okTDeviceInfo_hasQuadConfigFlash_get, _ok.okTDeviceInfo_hasQuadConfigFlash_set)

    def __init__(self):
        _ok.okTDeviceInfo_swiginit(self, _ok.new_okTDeviceInfo())
    __swig_destroy__ = _ok.delete_okTDeviceInfo

# Register okTDeviceInfo in _ok:
_ok.okTDeviceInfo_swigregister(okTDeviceInfo)

class okTDeviceMatchInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    productName = property(_ok.okTDeviceMatchInfo_productName_get, _ok.okTDeviceMatchInfo_productName_set)
    productBaseID = property(_ok.okTDeviceMatchInfo_productBaseID_get, _ok.okTDeviceMatchInfo_productBaseID_set)
    productID = property(_ok.okTDeviceMatchInfo_productID_get, _ok.okTDeviceMatchInfo_productID_set)
    usbVID = property(_ok.okTDeviceMatchInfo_usbVID_get, _ok.okTDeviceMatchInfo_usbVID_set)
    usbPID = property(_ok.okTDeviceMatchInfo_usbPID_get, _ok.okTDeviceMatchInfo_usbPID_set)
    pciDID = property(_ok.okTDeviceMatchInfo_pciDID_get, _ok.okTDeviceMatchInfo_pciDID_set)

    def __init__(self):
        _ok.okTDeviceMatchInfo_swiginit(self, _ok.new_okTDeviceMatchInfo())
    __swig_destroy__ = _ok.delete_okTDeviceMatchInfo

# Register okTDeviceMatchInfo in _ok:
_ok.okTDeviceMatchInfo_swigregister(okTDeviceMatchInfo)

okDEVICESENSOR_INVALID = _ok.okDEVICESENSOR_INVALID
okDEVICESENSOR_BOOL = _ok.okDEVICESENSOR_BOOL
okDEVICESENSOR_INTEGER = _ok.okDEVICESENSOR_INTEGER
okDEVICESENSOR_FLOAT = _ok.okDEVICESENSOR_FLOAT
okDEVICESENSOR_VOLTAGE = _ok.okDEVICESENSOR_VOLTAGE
okDEVICESENSOR_CURRENT = _ok.okDEVICESENSOR_CURRENT
okDEVICESENSOR_TEMPERATURE = _ok.okDEVICESENSOR_TEMPERATURE
okDEVICESENSOR_FAN_RPM = _ok.okDEVICESENSOR_FAN_RPM
OK_MAX_DEVICE_SENSOR_NAME_LENGTH = _ok.OK_MAX_DEVICE_SENSOR_NAME_LENGTH
OK_MAX_DEVICE_SENSOR_DESCRIPTION_LENGTH = _ok.OK_MAX_DEVICE_SENSOR_DESCRIPTION_LENGTH
class okTDeviceSensor(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    id = property(_ok.okTDeviceSensor_id_get, _ok.okTDeviceSensor_id_set)
    type = property(_ok.okTDeviceSensor_type_get, _ok.okTDeviceSensor_type_set)
    name = property(_ok.okTDeviceSensor_name_get, _ok.okTDeviceSensor_name_set)
    description = property(_ok.okTDeviceSensor_description_get, _ok.okTDeviceSensor_description_set)
    min = property(_ok.okTDeviceSensor_min_get, _ok.okTDeviceSensor_min_set)
    max = property(_ok.okTDeviceSensor_max_get, _ok.okTDeviceSensor_max_set)
    step = property(_ok.okTDeviceSensor_step_get, _ok.okTDeviceSensor_step_set)
    value = property(_ok.okTDeviceSensor_value_get, _ok.okTDeviceSensor_value_set)

    def __init__(self):
        _ok.okTDeviceSensor_swiginit(self, _ok.new_okTDeviceSensor())
    __swig_destroy__ = _ok.delete_okTDeviceSensor

# Register okTDeviceSensor in _ok:
_ok.okTDeviceSensor_swigregister(okTDeviceSensor)

class okCPLL22150(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    ClkSrc_Ref = _ok.okCPLL22150_ClkSrc_Ref
    ClkSrc_Div1ByN = _ok.okCPLL22150_ClkSrc_Div1ByN
    ClkSrc_Div1By2 = _ok.okCPLL22150_ClkSrc_Div1By2
    ClkSrc_Div1By3 = _ok.okCPLL22150_ClkSrc_Div1By3
    ClkSrc_Div2ByN = _ok.okCPLL22150_ClkSrc_Div2ByN
    ClkSrc_Div2By2 = _ok.okCPLL22150_ClkSrc_Div2By2
    ClkSrc_Div2By4 = _ok.okCPLL22150_ClkSrc_Div2By4
    DivSrc_Ref = _ok.okCPLL22150_DivSrc_Ref
    DivSrc_VCO = _ok.okCPLL22150_DivSrc_VCO

    def __init__(self):
        _ok.okCPLL22150_swiginit(self, _ok.new_okCPLL22150())
    __swig_destroy__ = _ok.delete_okCPLL22150

    def SetCrystalLoad(self, capload: 'double') -> "void":
        return _ok.okCPLL22150_SetCrystalLoad(self, capload)

    def SetReference(self, freq: 'double', extosc: 'bool') -> "void":
        return _ok.okCPLL22150_SetReference(self, freq, extosc)

    def GetReference(self) -> "double":
        return _ok.okCPLL22150_GetReference(self)

    def SetVCOParameters(self, p: 'int', q: 'int') -> "bool":
        return _ok.okCPLL22150_SetVCOParameters(self, p, q)

    def GetVCOP(self) -> "int":
        return _ok.okCPLL22150_GetVCOP(self)

    def GetVCOQ(self) -> "int":
        return _ok.okCPLL22150_GetVCOQ(self)

    def GetVCOFrequency(self) -> "double":
        return _ok.okCPLL22150_GetVCOFrequency(self)

    def SetDiv1(self, divsrc: 'OpalKellyLegacy::okCPLL22150::DividerSource', n: 'int') -> "void":
        return _ok.okCPLL22150_SetDiv1(self, divsrc, n)

    def SetDiv2(self, divsrc: 'OpalKellyLegacy::okCPLL22150::DividerSource', n: 'int') -> "void":
        return _ok.okCPLL22150_SetDiv2(self, divsrc, n)

    def GetDiv1Source(self) -> "OpalKellyLegacy::okCPLL22150::DividerSource":
        return _ok.okCPLL22150_GetDiv1Source(self)

    def GetDiv2Source(self) -> "OpalKellyLegacy::okCPLL22150::DividerSource":
        return _ok.okCPLL22150_GetDiv2Source(self)

    def GetDiv1Divider(self) -> "int":
        return _ok.okCPLL22150_GetDiv1Divider(self)

    def GetDiv2Divider(self) -> "int":
        return _ok.okCPLL22150_GetDiv2Divider(self)

    def SetOutputSource(self, output: 'int', clksrc: 'OpalKellyLegacy::okCPLL22150::ClockSource') -> "void":
        return _ok.okCPLL22150_SetOutputSource(self, output, clksrc)

    def SetOutputEnable(self, output: 'int', enable: 'bool') -> "void":
        return _ok.okCPLL22150_SetOutputEnable(self, output, enable)

    def GetOutputSource(self, output: 'int') -> "OpalKellyLegacy::okCPLL22150::ClockSource":
        return _ok.okCPLL22150_GetOutputSource(self, output)

    def GetOutputFrequency(self, output: 'int') -> "double":
        return _ok.okCPLL22150_GetOutputFrequency(self, output)

    def IsOutputEnabled(self, output: 'int') -> "bool":
        return _ok.okCPLL22150_IsOutputEnabled(self, output)

# Register okCPLL22150 in _ok:
_ok.okCPLL22150_swigregister(okCPLL22150)

class okCPLL22393(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    ClkSrc_Ref = _ok.okCPLL22393_ClkSrc_Ref
    ClkSrc_PLL0_0 = _ok.okCPLL22393_ClkSrc_PLL0_0
    ClkSrc_PLL0_180 = _ok.okCPLL22393_ClkSrc_PLL0_180
    ClkSrc_PLL1_0 = _ok.okCPLL22393_ClkSrc_PLL1_0
    ClkSrc_PLL1_180 = _ok.okCPLL22393_ClkSrc_PLL1_180
    ClkSrc_PLL2_0 = _ok.okCPLL22393_ClkSrc_PLL2_0
    ClkSrc_PLL2_180 = _ok.okCPLL22393_ClkSrc_PLL2_180

    def __init__(self):
        _ok.okCPLL22393_swiginit(self, _ok.new_okCPLL22393())
    __swig_destroy__ = _ok.delete_okCPLL22393

    def SetCrystalLoad(self, capload: 'double') -> "bool":
        return _ok.okCPLL22393_SetCrystalLoad(self, capload)

    def SetReference(self, freq: 'double') -> "void":
        return _ok.okCPLL22393_SetReference(self, freq)

    def GetReference(self) -> "double":
        return _ok.okCPLL22393_GetReference(self)

    def SetPLLParameters(self, n: 'int', p: 'int', q: 'int', enable: 'bool'=True) -> "bool":
        return _ok.okCPLL22393_SetPLLParameters(self, n, p, q, enable)

    def SetPLLLF(self, n: 'int', lf: 'int') -> "bool":
        return _ok.okCPLL22393_SetPLLLF(self, n, lf)

    def SetOutputDivider(self, n: 'int', div: 'int') -> "bool":
        return _ok.okCPLL22393_SetOutputDivider(self, n, div)

    def SetOutputSource(self, n: 'int', clksrc: 'OpalKellyLegacy::okCPLL22393::ClockSource') -> "bool":
        return _ok.okCPLL22393_SetOutputSource(self, n, clksrc)

    def SetOutputEnable(self, n: 'int', enable: 'bool') -> "void":
        return _ok.okCPLL22393_SetOutputEnable(self, n, enable)

    def GetPLLP(self, n: 'int') -> "int":
        return _ok.okCPLL22393_GetPLLP(self, n)

    def GetPLLQ(self, n: 'int') -> "int":
        return _ok.okCPLL22393_GetPLLQ(self, n)

    def GetPLLFrequency(self, n: 'int') -> "double":
        return _ok.okCPLL22393_GetPLLFrequency(self, n)

    def GetOutputDivider(self, n: 'int') -> "int":
        return _ok.okCPLL22393_GetOutputDivider(self, n)

    def GetOutputSource(self, n: 'int') -> "OpalKellyLegacy::okCPLL22393::ClockSource":
        return _ok.okCPLL22393_GetOutputSource(self, n)

    def GetOutputFrequency(self, n: 'int') -> "double":
        return _ok.okCPLL22393_GetOutputFrequency(self, n)

    def IsOutputEnabled(self, n: 'int') -> "bool":
        return _ok.okCPLL22393_IsOutputEnabled(self, n)

    def IsPLLEnabled(self, n: 'int') -> "bool":
        return _ok.okCPLL22393_IsPLLEnabled(self, n)

# Register okCPLL22393 in _ok:
_ok.okCPLL22393_swigregister(okCPLL22393)

class okCFrontPanel(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    brdUnknown = _ok.okCFrontPanel_brdUnknown
    brdXEM3001v1 = _ok.okCFrontPanel_brdXEM3001v1
    brdXEM3001v2 = _ok.okCFrontPanel_brdXEM3001v2
    brdXEM3010 = _ok.okCFrontPanel_brdXEM3010
    brdXEM3005 = _ok.okCFrontPanel_brdXEM3005
    brdXEM3001CL = _ok.okCFrontPanel_brdXEM3001CL
    brdXEM3020 = _ok.okCFrontPanel_brdXEM3020
    brdXEM3050 = _ok.okCFrontPanel_brdXEM3050
    brdXEM9002 = _ok.okCFrontPanel_brdXEM9002
    brdXEM3001RB = _ok.okCFrontPanel_brdXEM3001RB
    brdXEM5010 = _ok.okCFrontPanel_brdXEM5010
    brdXEM6110LX45 = _ok.okCFrontPanel_brdXEM6110LX45
    brdXEM6001 = _ok.okCFrontPanel_brdXEM6001
    brdXEM6010LX45 = _ok.okCFrontPanel_brdXEM6010LX45
    brdXEM6010LX150 = _ok.okCFrontPanel_brdXEM6010LX150
    brdXEM6110LX150 = _ok.okCFrontPanel_brdXEM6110LX150
    brdXEM6006LX9 = _ok.okCFrontPanel_brdXEM6006LX9
    brdXEM6006LX16 = _ok.okCFrontPanel_brdXEM6006LX16
    brdXEM6006LX25 = _ok.okCFrontPanel_brdXEM6006LX25
    brdXEM5010LX110 = _ok.okCFrontPanel_brdXEM5010LX110
    brdZEM4310 = _ok.okCFrontPanel_brdZEM4310
    brdXEM6310LX45 = _ok.okCFrontPanel_brdXEM6310LX45
    brdXEM6310LX150 = _ok.okCFrontPanel_brdXEM6310LX150
    brdXEM6110v2LX45 = _ok.okCFrontPanel_brdXEM6110v2LX45
    brdXEM6110v2LX150 = _ok.okCFrontPanel_brdXEM6110v2LX150
    brdXEM6002LX9 = _ok.okCFrontPanel_brdXEM6002LX9
    brdXEM6310MTLX45T = _ok.okCFrontPanel_brdXEM6310MTLX45T
    brdXEM6320LX130T = _ok.okCFrontPanel_brdXEM6320LX130T
    brdXEM7350K70T = _ok.okCFrontPanel_brdXEM7350K70T
    brdXEM7350K160T = _ok.okCFrontPanel_brdXEM7350K160T
    brdXEM7350K410T = _ok.okCFrontPanel_brdXEM7350K410T
    brdXEM6310MTLX150T = _ok.okCFrontPanel_brdXEM6310MTLX150T
    brdZEM5305A2 = _ok.okCFrontPanel_brdZEM5305A2
    brdZEM5305A7 = _ok.okCFrontPanel_brdZEM5305A7
    brdXEM7001A15 = _ok.okCFrontPanel_brdXEM7001A15
    brdXEM7001A35 = _ok.okCFrontPanel_brdXEM7001A35
    brdXEM7360K160T = _ok.okCFrontPanel_brdXEM7360K160T
    brdXEM7360K410T = _ok.okCFrontPanel_brdXEM7360K410T
    brdZEM5310A4 = _ok.okCFrontPanel_brdZEM5310A4
    brdZEM5310A7 = _ok.okCFrontPanel_brdZEM5310A7
    brdZEM5370A5 = _ok.okCFrontPanel_brdZEM5370A5
    brdXEM7010A50 = _ok.okCFrontPanel_brdXEM7010A50
    brdXEM7010A200 = _ok.okCFrontPanel_brdXEM7010A200
    brdXEM7310A75 = _ok.okCFrontPanel_brdXEM7310A75
    brdXEM7310A200 = _ok.okCFrontPanel_brdXEM7310A200
    brdXEM7320A75T = _ok.okCFrontPanel_brdXEM7320A75T
    brdXEM7320A200T = _ok.okCFrontPanel_brdXEM7320A200T
    brdXEM7305 = _ok.okCFrontPanel_brdXEM7305
    brdFPX1301 = _ok.okCFrontPanel_brdFPX1301
    brdXEM8350KU060 = _ok.okCFrontPanel_brdXEM8350KU060
    brdXEM8350KU085 = _ok.okCFrontPanel_brdXEM8350KU085
    brdXEM8350KU115 = _ok.okCFrontPanel_brdXEM8350KU115
    brdXEM8350SECONDARY = _ok.okCFrontPanel_brdXEM8350SECONDARY
    brdXEM7310MTA75 = _ok.okCFrontPanel_brdXEM7310MTA75
    brdXEM7310MTA200 = _ok.okCFrontPanel_brdXEM7310MTA200
    brdXEM9025 = _ok.okCFrontPanel_brdXEM9025
    brdXEM8320AU25P = _ok.okCFrontPanel_brdXEM8320AU25P
    brdXEM8310AU25P = _ok.okCFrontPanel_brdXEM8310AU25P
    brdFPX9301 = _ok.okCFrontPanel_brdFPX9301
    NoError = _ok.okCFrontPanel_NoError
    Failed = _ok.okCFrontPanel_Failed
    Timeout = _ok.okCFrontPanel_Timeout
    DoneNotHigh = _ok.okCFrontPanel_DoneNotHigh
    TransferError = _ok.okCFrontPanel_TransferError
    CommunicationError = _ok.okCFrontPanel_CommunicationError
    InvalidBitstream = _ok.okCFrontPanel_InvalidBitstream
    FileError = _ok.okCFrontPanel_FileError
    DeviceNotOpen = _ok.okCFrontPanel_DeviceNotOpen
    InvalidEndpoint = _ok.okCFrontPanel_InvalidEndpoint
    InvalidBlockSize = _ok.okCFrontPanel_InvalidBlockSize
    I2CRestrictedAddress = _ok.okCFrontPanel_I2CRestrictedAddress
    I2CBitError = _ok.okCFrontPanel_I2CBitError
    I2CNack = _ok.okCFrontPanel_I2CNack
    I2CUnknownStatus = _ok.okCFrontPanel_I2CUnknownStatus
    UnsupportedFeature = _ok.okCFrontPanel_UnsupportedFeature
    FIFOUnderflow = _ok.okCFrontPanel_FIFOUnderflow
    FIFOOverflow = _ok.okCFrontPanel_FIFOOverflow
    DataAlignmentError = _ok.okCFrontPanel_DataAlignmentError
    InvalidResetProfile = _ok.okCFrontPanel_InvalidResetProfile
    InvalidParameter = _ok.okCFrontPanel_InvalidParameter

    def __init__(self):
        _ok.okCFrontPanel_swiginit(self, _ok.new_okCFrontPanel())
    __swig_destroy__ = _ok.delete_okCFrontPanel

    @staticmethod
    def GetErrorString(errorCode: 'int') -> "std::string":
        return _ok.okCFrontPanel_GetErrorString(errorCode)

    def GetLastErrorMessage(self) -> "char const *":
        return _ok.okCFrontPanel_GetLastErrorMessage(self)

    @staticmethod
    def AddCustomDevice(matchInfo: 'okTDeviceMatchInfo', devInfo: 'okTDeviceInfo'=None) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_AddCustomDevice(matchInfo, devInfo)

    @staticmethod
    def RemoveCustomDevice(productID: 'int') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_RemoveCustomDevice(productID)

    def GetHostInterfaceWidth(self) -> "int":
        return _ok.okCFrontPanel_GetHostInterfaceWidth(self)

    def GetBoardModel(self) -> "OpalKellyLegacy::okCFrontPanel::BoardModel":
        return _ok.okCFrontPanel_GetBoardModel(self)

    @staticmethod
    def FindUSBDeviceModel(usbVID: 'unsigned int', usbPID: 'unsigned int') -> "OpalKellyLegacy::okCFrontPanel::BoardModel":
        return _ok.okCFrontPanel_FindUSBDeviceModel(usbVID, usbPID)

    @staticmethod
    def GetBoardModelString(m: 'OpalKellyLegacy::okCFrontPanel::BoardModel') -> "std::string":
        return _ok.okCFrontPanel_GetBoardModelString(m)

    def GetDeviceCount(self) -> "int":
        return _ok.okCFrontPanel_GetDeviceCount(self)

    def GetFPGAResetProfile(self, method: 'okEFPGAConfigurationMethod', profile: 'okTFPGAResetProfile') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_GetFPGAResetProfile(self, method, profile)

    def SetFPGAResetProfile(self, method: 'okEFPGAConfigurationMethod', profile: 'okTFPGAResetProfile') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_SetFPGAResetProfile(self, method, profile)

    def FlashEraseSector(self, address: 'UINT32') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_FlashEraseSector(self, address)

    def ReadRegisters(self, regs: 'okTRegisterEntries') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_ReadRegisters(self, regs)

    def WriteRegister(self, addr: 'UINT32', data: 'UINT32') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_WriteRegister(self, addr, data)

    def WriteRegisters(self, regs: 'okTRegisterEntries') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_WriteRegisters(self, regs)

    def GetDeviceListModel(self, num: 'int') -> "OpalKellyLegacy::okCFrontPanel::BoardModel":
        return _ok.okCFrontPanel_GetDeviceListModel(self, num)

    def GetDeviceListSerial(self, num: 'int') -> "std::string":
        return _ok.okCFrontPanel_GetDeviceListSerial(self, num)

    def EnableAsynchronousTransfers(self, enable: 'bool') -> "void":
        return _ok.okCFrontPanel_EnableAsynchronousTransfers(self, enable)

    def OpenBySerial(self, *args) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_OpenBySerial(self, *args)

    def IsOpen(self) -> "bool":
        return _ok.okCFrontPanel_IsOpen(self)

    def IsRemote(self) -> "bool":
        return _ok.okCFrontPanel_IsRemote(self)

    def GetDeviceInfo(self, info: 'okTDeviceInfo') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_GetDeviceInfo(self, info)

    def GetDeviceMajorVersion(self) -> "int":
        return _ok.okCFrontPanel_GetDeviceMajorVersion(self)

    def GetDeviceMinorVersion(self) -> "int":
        return _ok.okCFrontPanel_GetDeviceMinorVersion(self)

    def GetSerialNumber(self) -> "std::string":
        return _ok.okCFrontPanel_GetSerialNumber(self)

    def GetDeviceSettings(self, settings: 'okCDeviceSettings') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_GetDeviceSettings(self, settings)

    def GetDeviceID(self) -> "std::string":
        return _ok.okCFrontPanel_GetDeviceID(self)

    def SetDeviceID(self, str: 'std::string const &') -> "void":
        return _ok.okCFrontPanel_SetDeviceID(self, str)

    def SetBTPipePollingInterval(self, interval: 'int') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_SetBTPipePollingInterval(self, interval)

    def SetTimeout(self, timeout: 'int') -> "void":
        return _ok.okCFrontPanel_SetTimeout(self, timeout)

    def ResetFPGA(self) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_ResetFPGA(self)

    def Close(self) -> "void":
        return _ok.okCFrontPanel_Close(self)

    def ClearFPGAConfiguration(self) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_ClearFPGAConfiguration(self)

    def ConfigureFPGA(self, strFilename: 'std::string const &') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_ConfigureFPGA(self, strFilename)

    def GetPLL22150Configuration(self, pll: 'okCPLL22150') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_GetPLL22150Configuration(self, pll)

    def SetPLL22150Configuration(self, pll: 'okCPLL22150') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_SetPLL22150Configuration(self, pll)

    def GetEepromPLL22150Configuration(self, pll: 'okCPLL22150') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_GetEepromPLL22150Configuration(self, pll)

    def SetEepromPLL22150Configuration(self, pll: 'okCPLL22150') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_SetEepromPLL22150Configuration(self, pll)

    def GetPLL22393Configuration(self, pll: 'okCPLL22393') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_GetPLL22393Configuration(self, pll)

    def SetPLL22393Configuration(self, pll: 'okCPLL22393') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_SetPLL22393Configuration(self, pll)

    def GetEepromPLL22393Configuration(self, pll: 'okCPLL22393') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_GetEepromPLL22393Configuration(self, pll)

    def SetEepromPLL22393Configuration(self, pll: 'okCPLL22393') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_SetEepromPLL22393Configuration(self, pll)

    def LoadDefaultPLLConfiguration(self) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_LoadDefaultPLLConfiguration(self)

    def IsHighSpeed(self) -> "bool":
        return _ok.okCFrontPanel_IsHighSpeed(self)

    def IsFrontPanelEnabled(self) -> "bool":
        return _ok.okCFrontPanel_IsFrontPanelEnabled(self)

    def IsFrontPanel3Supported(self) -> "bool":
        return _ok.okCFrontPanel_IsFrontPanel3Supported(self)

    def UpdateWireIns(self) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_UpdateWireIns(self)

    def GetWireInValue(self, epAddr: 'int') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_GetWireInValue(self, epAddr)

    def SetWireInValue(self, *args) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_SetWireInValue(self, *args)

    def UpdateWireOuts(self) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_UpdateWireOuts(self)

    def GetWireOutValue(self, epAddr: 'int') -> "unsigned long":
        return _ok.okCFrontPanel_GetWireOutValue(self, epAddr)

    def ActivateTriggerIn(self, epAddr: 'int', bit: 'int') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_ActivateTriggerIn(self, epAddr, bit)

    def UpdateTriggerOuts(self) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_UpdateTriggerOuts(self)

    def IsTriggered(self, epAddr: 'int', mask: 'UINT32') -> "bool":
        return _ok.okCFrontPanel_IsTriggered(self, epAddr, mask)

    def GetTriggerOutVector(self, epAddr: 'int') -> "UINT32":
        return _ok.okCFrontPanel_GetTriggerOutVector(self, epAddr)

    def GetLastTransferLength(self) -> "long":
        return _ok.okCFrontPanel_GetLastTransferLength(self)

    @staticmethod
    def GetAPIVersionMajor() -> "int":
        return _ok.okCFrontPanel_GetAPIVersionMajor()

    @staticmethod
    def GetAPIVersionMinor() -> "int":
        return _ok.okCFrontPanel_GetAPIVersionMinor()

    @staticmethod
    def GetAPIVersionMicro() -> "int":
        return _ok.okCFrontPanel_GetAPIVersionMicro()

    @staticmethod
    def GetAPIVersionString() -> "char const *":
        return _ok.okCFrontPanel_GetAPIVersionString()

    @staticmethod
    def CheckAPIVersion(major: 'int', minor: 'int', micro: 'int') -> "bool":
        return _ok.okCFrontPanel_CheckAPIVersion(major, minor, micro)

    def ReadRegister(self, addr: 'UINT32') -> "UINT32":
        return _ok.okCFrontPanel_ReadRegister(self, addr)

    def FlashWrite(self, address: 'UINT32', data: 'char *') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_FlashWrite(self, address, data)

    def FlashRead(self, address: 'UINT32', data: 'char *') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_FlashRead(self, address, data)

    def WriteToPipeIn(self, epAddr: 'int', data: 'char *') -> "long":
        return _ok.okCFrontPanel_WriteToPipeIn(self, epAddr, data)

    def ReadFromPipeOut(self, epAddr: 'int', data: 'char *') -> "long":
        return _ok.okCFrontPanel_ReadFromPipeOut(self, epAddr, data)

    def WriteToBlockPipeIn(self, epAddr: 'int', blockSize: 'int', data: 'char *') -> "long":
        return _ok.okCFrontPanel_WriteToBlockPipeIn(self, epAddr, blockSize, data)

    def ReadFromBlockPipeOut(self, epAddr: 'int', blockSize: 'int', data: 'char *') -> "long":
        return _ok.okCFrontPanel_ReadFromBlockPipeOut(self, epAddr, blockSize, data)

    def WriteToPipeInThr(self, epAddr: 'int', data: 'char *') -> "long":
        return _ok.okCFrontPanel_WriteToPipeInThr(self, epAddr, data)

    def ReadFromPipeOutThr(self, epAddr: 'int', data: 'char *') -> "long":
        return _ok.okCFrontPanel_ReadFromPipeOutThr(self, epAddr, data)

    def WriteToBlockPipeInThr(self, epAddr: 'int', blockSize: 'int', data: 'char *') -> "long":
        return _ok.okCFrontPanel_WriteToBlockPipeInThr(self, epAddr, blockSize, data)

    def ReadFromBlockPipeOutThr(self, epAddr: 'int', blockSize: 'int', data: 'char *') -> "long":
        return _ok.okCFrontPanel_ReadFromBlockPipeOutThr(self, epAddr, blockSize, data)

    def ReadI2C(self, addr: 'int', data: 'char *') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_ReadI2C(self, addr, data)

    def WriteI2C(self, addr: 'int', data: 'char *') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_WriteI2C(self, addr, data)

    def ConfigureFPGAFromMemory(self, data: 'unsigned char *') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
        return _ok.okCFrontPanel_ConfigureFPGAFromMemory(self, data)

    def GetDeviceSensors(self) -> "std::vector< okTDeviceSensor,std::allocator< okTDeviceSensor > >":
        return _ok.okCFrontPanel_GetDeviceSensors(self)

    def CreateLuaScriptEngine(self) -> "okstd::auto_ptr< OpalKelly::ScriptEngine >":
        return _ok.okCFrontPanel_CreateLuaScriptEngine(self)

# Register okCFrontPanel in _ok:
_ok.okCFrontPanel_swigregister(okCFrontPanel)

def okCFrontPanel_GetErrorString(errorCode: 'int') -> "std::string":
    return _ok.okCFrontPanel_GetErrorString(errorCode)

def okCFrontPanel_AddCustomDevice(matchInfo: 'okTDeviceMatchInfo', devInfo: 'okTDeviceInfo'=None) -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
    return _ok.okCFrontPanel_AddCustomDevice(matchInfo, devInfo)

def okCFrontPanel_RemoveCustomDevice(productID: 'int') -> "OpalKellyLegacy::okCFrontPanel::ErrorCode":
    return _ok.okCFrontPanel_RemoveCustomDevice(productID)

def okCFrontPanel_FindUSBDeviceModel(usbVID: 'unsigned int', usbPID: 'unsigned int') -> "OpalKellyLegacy::okCFrontPanel::BoardModel":
    return _ok.okCFrontPanel_FindUSBDeviceModel(usbVID, usbPID)

def okCFrontPanel_GetBoardModelString(m: 'OpalKellyLegacy::okCFrontPanel::BoardModel') -> "std::string":
    return _ok.okCFrontPanel_GetBoardModelString(m)

def okCFrontPanel_GetAPIVersionMajor() -> "int":
    return _ok.okCFrontPanel_GetAPIVersionMajor()

def okCFrontPanel_GetAPIVersionMinor() -> "int":
    return _ok.okCFrontPanel_GetAPIVersionMinor()

def okCFrontPanel_GetAPIVersionMicro() -> "int":
    return _ok.okCFrontPanel_GetAPIVersionMicro()

def okCFrontPanel_GetAPIVersionString() -> "char const *":
    return _ok.okCFrontPanel_GetAPIVersionString()

def okCFrontPanel_CheckAPIVersion(major: 'int', minor: 'int', micro: 'int') -> "bool":
    return _ok.okCFrontPanel_CheckAPIVersion(major, minor, micro)

class okCDeviceSettings(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _ok.okCDeviceSettings_swiginit(self, _ok.new_okCDeviceSettings())
    __swig_destroy__ = _ok.delete_okCDeviceSettings

    def GetString(self, key: 'std::string const &') -> "std::string":
        return _ok.okCDeviceSettings_GetString(self, key)

    def GetInt(self, key: 'std::string const &') -> "UINT32":
        return _ok.okCDeviceSettings_GetInt(self, key)

    def SetString(self, key: 'std::string const &', value: 'std::string const &') -> "void":
        return _ok.okCDeviceSettings_SetString(self, key, value)

    def SetInt(self, key: 'std::string const &', value: 'UINT32') -> "void":
        return _ok.okCDeviceSettings_SetInt(self, key, value)

    def List(self) -> "std::vector< std::string,std::allocator< std::string > >":
        return _ok.okCDeviceSettings_List(self)

    def Delete(self, key: 'std::string const &') -> "void":
        return _ok.okCDeviceSettings_Delete(self, key)

    def Save(self) -> "void":
        return _ok.okCDeviceSettings_Save(self)

# Register okCDeviceSettings in _ok:
_ok.okCDeviceSettings_swigregister(okCDeviceSettings)


def GetAPIVersionMajor() -> "int":
    return _ok.GetAPIVersionMajor()

def GetAPIVersionMinor() -> "int":
    return _ok.GetAPIVersionMinor()

def GetAPIVersionMicro() -> "int":
    return _ok.GetAPIVersionMicro()

def GetAPIVersionString() -> "char const *":
    return _ok.GetAPIVersionString()

def CheckAPIVersion(major: 'int', minor: 'int', micro: 'int') -> "bool":
    return _ok.CheckAPIVersion(major, minor, micro)
class okBuffer(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _ok.okBuffer_swiginit(self, _ok.new_okBuffer(*args))

    def IsEmpty(self) -> "bool":
        return _ok.okBuffer_IsEmpty(self)

    def GetSize(self) -> "size_t":
        return _ok.okBuffer_GetSize(self)
    __swig_destroy__ = _ok.delete_okBuffer

    def __getitem__(self, n: 'size_t') -> "unsigned char":
        return _ok.okBuffer___getitem__(self, n)

    def __setitem__(self, n: 'size_t', val: 'unsigned char') -> "void":
        return _ok.okBuffer___setitem__(self, n, val)

# Register okBuffer in _ok:
_ok.okBuffer_swigregister(okBuffer)

class okCScriptValue(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _ok.okCScriptValue_swiginit(self, _ok.new_okCScriptValue(*args))

    def IsNumber(self) -> "bool":
        return _ok.okCScriptValue_IsNumber(self)

    def GetNumber(self) -> "int":
        return _ok.okCScriptValue_GetNumber(self)

    def IsBool(self) -> "bool":
        return _ok.okCScriptValue_IsBool(self)

    def GetBool(self) -> "bool":
        return _ok.okCScriptValue_GetBool(self)

    def IsString(self) -> "bool":
        return _ok.okCScriptValue_IsString(self)

    def GetString(self) -> "std::string":
        return _ok.okCScriptValue_GetString(self)

    def IsBuffer(self) -> "bool":
        return _ok.okCScriptValue_IsBuffer(self)

    def GetBuffer(self) -> "OpalKelly::Buffer":
        return _ok.okCScriptValue_GetBuffer(self)
    __swig_destroy__ = _ok.delete_okCScriptValue

# Register okCScriptValue in _ok:
_ok.okCScriptValue_swigregister(okCScriptValue)

class okCScriptEngine(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def LoadScript(self, name: 'std::string const &', code: 'std::string const &') -> "void":
        return _ok.okCScriptEngine_LoadScript(self, name, code)

    def LoadFile(self, path: 'std::string const &') -> "void":
        return _ok.okCScriptEngine_LoadFile(self, path)

    def PrependToScriptPath(self, dir: 'std::string const &') -> "void":
        return _ok.okCScriptEngine_PrependToScriptPath(self, dir)
    __swig_destroy__ = _ok.delete_okCScriptEngine

    def RunScriptFunction(self, *args) -> "std::vector< OpalKelly::ScriptValue,std::allocator< OpalKelly::ScriptValue > >":
        return _ok.okCScriptEngine_RunScriptFunction(self, *args)

# Register okCScriptEngine in _ok:
_ok.okCScriptEngine_swigregister(okCScriptEngine)

okREALM_LOCAL = _ok.okREALM_LOCAL
okREALM_TEST = _ok.okREALM_TEST
class FrontPanelManager(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        if self.__class__ == FrontPanelManager:
            _self = None
        else:
            _self = self
        _ok.FrontPanelManager_swiginit(self, _ok.new_FrontPanelManager(_self, *args))
    __swig_destroy__ = _ok.delete_FrontPanelManager

    def StartMonitoring(self, cbInfo: 'CallbackInfo'=None) -> "void":
        return _ok.FrontPanelManager_StartMonitoring(self, cbInfo)

    def StopMonitoring(self) -> "void":
        return _ok.FrontPanelManager_StopMonitoring(self)

    def EnterMonitorLoop(self, cbInfo: 'CallbackInfo'=None, millisecondsTimeout: 'int'=0) -> "int":
        return _ok.FrontPanelManager_EnterMonitorLoop(self, cbInfo, millisecondsTimeout)

    def ExitMonitorLoop(self, exitCode: 'int'=0) -> "void":
        return _ok.FrontPanelManager_ExitMonitorLoop(self, exitCode)

    def OnDeviceAdded(self, serial: 'char const *') -> "void":
        return _ok.FrontPanelManager_OnDeviceAdded(self, serial)

    def OnDeviceRemoved(self, serial: 'char const *') -> "void":
        return _ok.FrontPanelManager_OnDeviceRemoved(self, serial)

    def Open(self, serial: 'char const *') -> "OpalKellyLegacy::okCFrontPanel *":
        return _ok.FrontPanelManager_Open(self, serial)
    def __disown__(self):
        self.this.disown()
        _ok.disown_FrontPanelManager(self)
        return weakref.proxy(self)

# Register FrontPanelManager in _ok:
_ok.FrontPanelManager_swigregister(FrontPanelManager)

class CallbackInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _ok.CallbackInfo_swiginit(self, _ok.new_CallbackInfo())

    def IsUsed(self) -> "bool":
        return _ok.CallbackInfo_IsUsed(self)
    __swig_destroy__ = _ok.delete_CallbackInfo

# Register CallbackInfo in _ok:
_ok.CallbackInfo_swigregister(CallbackInfo)


def FrontPanelEmulateTestDeviceConnection(serial: 'std::string const &', connect: 'bool') -> "OpalKelly::FrontPanel::ErrorCode":
    return _ok.FrontPanelEmulateTestDeviceConnection(serial, connect)
class okCFrontPanelDevices(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _ok.okCFrontPanelDevices_swiginit(self, _ok.new_okCFrontPanelDevices(*args))

    def GetCount(self) -> "int":
        return _ok.okCFrontPanelDevices_GetCount(self)

    def GetSerial(self, num: 'int') -> "std::string":
        return _ok.okCFrontPanelDevices_GetSerial(self, num)

    def Open(self, *args) -> "OpalKelly::FrontPanelPtr":
        return _ok.okCFrontPanelDevices_Open(self, *args)
    __swig_destroy__ = _ok.delete_okCFrontPanelDevices

# Register okCFrontPanelDevices in _ok:
_ok.okCFrontPanelDevices_swigregister(okCFrontPanelDevices)

class FrontPanel(okCFrontPanel):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _ok.FrontPanel_swiginit(self, _ok.new_FrontPanel())
    __swig_destroy__ = _ok.delete_FrontPanel

# Register FrontPanel in _ok:
_ok.FrontPanel_swigregister(FrontPanel)

class PLL22150(okCPLL22150):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _ok.PLL22150_swiginit(self, _ok.new_PLL22150())
    __swig_destroy__ = _ok.delete_PLL22150

# Register PLL22150 in _ok:
_ok.PLL22150_swigregister(PLL22150)

class PLL22393(okCPLL22393):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self):
        _ok.PLL22393_swiginit(self, _ok.new_PLL22393())
    __swig_destroy__ = _ok.delete_PLL22393

# Register PLL22393 in _ok:
_ok.PLL22393_swigregister(PLL22393)

class FrontPanelDevices(okCFrontPanelDevices):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr

    def __init__(self, *args):
        _ok.FrontPanelDevices_swiginit(self, _ok.new_FrontPanelDevices(*args))
    __swig_destroy__ = _ok.delete_FrontPanelDevices

# Register FrontPanelDevices in _ok:
_ok.FrontPanelDevices_swigregister(FrontPanelDevices)



