Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions nixnet/nx.py
Original file line number Diff line number Diff line change
Expand Up @@ -885,12 +885,6 @@ def convert_signals_to_frames_single_point(
raise NotImplementedError("Placeholder")


def blink(
interface_ref,
modifier):
_funcs.nx_blink(interface_ref, modifier)


def clear(
session_ref):
_funcs.nx_clear(session_ref)
Expand Down Expand Up @@ -927,15 +921,6 @@ def stop(
_funcs.nx_stop(session_ref, scope)


def system_open():
return _funcs.nx_system_open()


def system_close(
system_ref):
_funcs.nx_system_open(system_ref)


def wait(
session_ref,
condition,
Expand Down
12 changes: 12 additions & 0 deletions nixnet/system/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals


from nixnet.system.device import Device
from nixnet.system.interface import Interface
from nixnet.system.system import System


__all__ = ["System", "Device", "Interface"]
63 changes: 63 additions & 0 deletions nixnet/system/device.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

from nixnet import _props
from nixnet import constants


class Device(object):

def __init__(self, handle):
self._handle = handle

def __eq__(self, other):
if isinstance(other, self.__class__):
return self._handle == other._handle
return False

def __ne__(self, other):
return not self.__eq__(other)

def __hash__(self):
return hash(self._handle)

def __repr__(self):
return 'Device(handle={0})'.format(self._handle)

@property
def form_fac(self):
return constants.DevForm(_props.get_device_form_fac(self._handle))

@property
def intf_refs(self):
return _props.get_device_intf_refs(self._handle)

@property
def name(self):
return _props.get_device_name(self._handle)

@property
def num_ports(self):
return _props.get_device_num_ports(self._handle)

@property
def product_num(self):
return _props.get_device_product_num(self._handle)

@property
def ser_num(self):
return _props.get_device_ser_num(self._handle)

@property
def slot_num(self):
return _props.get_device_slot_num(self._handle)

@property
def num_ports_all(self):
return _props.get_device_num_ports_all(self._handle)

@property
def intf_refs_all(self):
return _props.get_device_intf_refs_all(self._handle)
83 changes: 83 additions & 0 deletions nixnet/system/interface.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

from nixnet import _funcs
from nixnet import _props
from nixnet import constants


class Interface(object):

def __init__(self, handle):
self._handle = handle

def __eq__(self, other):
if isinstance(other, self.__class__):
return self._handle == other._handle
return False

def __ne__(self, other):
return not self.__eq__(other)

def __hash__(self):
return hash(self._handle)

def __repr__(self):
return 'Interface(handle={0})'.format(self._handle)

@property
def dev_ref(self):
return _props.get_interface_dev_ref(self._handle)

@property
def name(self):
return _props.get_interface_name(self._handle)

@property
def num(self):
return _props.get_interface_num(self._handle)

@property
def port_num(self):
return _props.get_interface_port_num(self._handle)

@property
def protocol(self):
return constants.Protocol(_props.get_interface_protocol(self._handle))

@property
def can_term_cap(self):
return constants.CanTermCap(_props.get_interface_can_term_cap(self._handle))

@property
def can_tcvr_cap(self):
return constants.CanTcvrCap(_props.get_interface_can_tcvr_cap(self._handle))

@property
def dongle_state(self):
return constants.DongleState(_props.get_interface_dongle_state(self._handle))

@property
def dongle_id(self):
return constants.DongleId(_props.get_interface_dongle_id(self._handle))

@property
def dongle_revision(self):
return _props.get_interface_dongle_revision(self._handle)

@property
def dongle_firmware_version(self):
return _props.get_interface_dongle_firmware_version(self._handle)

@property
def dongle_compatible_revision(self):
return _props.get_interface_dongle_compatible_revision(self._handle)

@property
def dongle_compatible_firmware_version(self):
return _props.get_interface_dongle_compatible_firmware_version(self._handle)

def blink(self, modifier):
_funcs.nx_blink(self._handle, modifier)
107 changes: 107 additions & 0 deletions nixnet/system/system.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

import warnings

from nixnet import _funcs
from nixnet import _props
from nixnet import constants
from nixnet import errors


class System(object):

def __init__(self):
self._handle = _funcs.nx_system_open()

def __del__(self):
if self._handle is not None:
warnings.warn(
'System was not explicitly closed before it was destructed. '
'Resources on the device may still be reserved.',
errors.XnetResourceWarning)

def __enter__(self):
return self

def __exit__(self):
self.close()

def __eq__(self, other):
if isinstance(other, self.__class__):
return self._handle == other._handle
return False

def __ne__(self, other):
return not self.__eq__(other)

def __hash__(self):
return hash(self._handle)

def __repr__(self):
return 'System(handle={0})'.format(self._handle)

def close(self):
if self._handle is None:
warnings.warn(
'Attempting to close NI-XNET system but system was already '
'closed', errors.XnetResourceWarning)
return

_funcs.nx_system_close(self._handle)

self._handle = None

@property
def dev_refs(self):
return _props.get_system_dev_refs(self._handle)

@property
def intf_refs(self):
return _props.get_system_intf_refs(self._handle)

@property
def intf_refs_can(self):
return _props.get_system_intf_refs_can(self._handle)

@property
def intf_refs_flex_ray(self):
return _props.get_system_intf_refs_flex_ray(self._handle)

@property
def intf_refs_lin(self):
return _props.get_system_intf_refs_lin(self._handle)

@property
def ver_build(self):
return _props.get_system_ver_build(self._handle)

@property
def ver_major(self):
return _props.get_system_ver_major(self._handle)

@property
def ver_minor(self):
return _props.get_system_ver_minor(self._handle)

@property
def ver_phase(self):
return constants.Phase(_props.get_system_ver_phase(self._handle))

@property
def ver_update(self):
return _props.get_system_ver_update(self._handle)

@property
def cdaq_pkt_time(self):
return _props.get_system_cdaq_pkt_time(self._handle)

@cdaq_pkt_time.setter
def cdaq_pkt_time(self, value):
_props.set_system_cdaq_pkt_time(self._handle, value)

@property
def intf_refs_all(self):
return _props.get_system_intf_refs_all(self._handle)