def _load_scat_ids(self):
        """Load sub-category IDs from dictionary."""
        scat_ids = lib.il_dict_scat_ids_get(self._dict, cstr(self._cat_id))

        self._scat_ids = []
        i = 0
        scat_id = scat_ids[0]
        while scat_id != ffi.NULL:
            self._scat_ids.append(pstr(scat_id))
            i += 1
            scat_id = scat_ids[i]

        lib.il_dict_scat_ids_destroy(scat_ids)
    def _load_reg_ids(self):
        """Load register IDs from dictionary."""
        self._ids = []
        ids = lib.il_dict_reg_ids_get(self._dict, self._subnode)

        i = 0
        _id = ids[0]
        while _id != ffi.NULL:
            self._ids.append(pstr(_id))
            i += 1
            _id = ids[i]

        lib.il_dict_reg_ids_destroy(ids)
    def _load_cat_ids(self):
        """Load category IDs from dictionary."""
        cat_ids = lib.il_dict_cat_ids_get(
            self.__ipb_dictionary._cffi_dictionary)

        self._cat_ids = []
        i = 0
        cat_id = cat_ids[0]
        while cat_id != ffi.NULL:
            self._cat_ids.append(pstr(cat_id))
            i += 1
            cat_id = cat_ids[i]

        lib.il_dict_cat_ids_destroy(cat_ids)
    def __init__(self, dictionary_path, cffi_servo):
        super(IPBDictionary, self).__init__(dictionary_path)
        self._cffi_dictionary = lib.il_servo_dict_get(cffi_servo)

        self.version = pstr(lib.il_dict_version_get(self._cffi_dictionary))
        self.subnodes = SINGLE_AXIS_MINIMUM_SUBNODES
        self.__get_subnode()

        self.__regs = []
        for subnode in range(self.subnodes):
            register = IPBRegistersDictionary(self._cffi_dictionary, subnode)
            self.__regs.append(register)
        self.categories = IPBCategories(self)
        self.errors = IPBErrors(self.path)
        self.__read_device_info()
Example #5
0
    def scan_slaves(self):
        """Obtain a list of network devices.

        Returns:
            list: List of network devices.

        Raises:
            TypeError: If the protocol type is invalid.
        """
        devs = lib.il_net_dev_list_get(NET_PROT.MCB.value)

        found = []
        curr = devs

        while curr:
            found.append(pstr(curr.port))
            curr = curr.next

        lib.il_net_dev_list_destroy(devs)

        return found
Example #6
0
from .canopen.servo import CanopenServo
from .canopen.network import CanopenNetwork, CAN_DEVICE, CAN_DEVICE, \
    CAN_BAUDRATE
from .canopen.poller import CanopenPoller
from .canopen.register import CanopenRegister
from .canopen.dictionary import CanopenDictionary

from ingenialink.utils.errors import err_ipb_last

from ._ingenialink import lib
from ingenialink.utils._utils import pstr

__all__ = [
    'EEPROM_FILE_FORMAT', 'NET_PROT', 'NET_DEV_EVT', 'NET_STATE',
    'NET_TRANS_PROT', 'SERVO_STATE', 'SERVO_FLAGS', 'SERVO_MODE',
    'SERVO_UNITS_TORQUE', 'SERVO_UNITS_POS', 'SERVO_UNITS_VEL',
    'SERVO_UNITS_ACC', 'NetworkMonitor', 'Network', 'Servo', 'IPBDictionary',
    'IPBRegister', 'REG_DTYPE', 'REG_ACCESS', 'REG_PHY', 'Monitor',
    'MONITOR_TRIGGER', 'IPBPoller', 'IPBServo', 'SerialNetwork', 'SerialServo',
    'EthercatNetwork', 'EthercatServo', 'EthernetServo', 'EthernetNetwork',
    'CanopenNetwork', 'CAN_DEVICE', 'CAN_BAUDRATE', 'CanopenServo',
    'CanopenPoller', 'CanopenRegister', 'CanopenDictionary', 'err_ipb_last'
]

__version__ = '6.2.4'

try:
    __ingenialink_C_version__ = pstr(lib.il_version())
except Exception:
    __ingenialink_C_version__ = '-'