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()
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
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__ = '-'