libximc  2.10.5
Структуры данных | Макросы | Определения типов
Файл ximc.h

Заголовочный файл для библиотеки libximc. Подробнее...

См. исходные тексты.

Структуры данных

struct  calibration_t
 Структура калибровок Подробнее...
struct  device_network_information_t
 Структура данных с информацией о сетевом устройстве. Подробнее...
struct  feedback_settings_t
 Настройки обратной связи. Подробнее...
struct  home_settings_t
 Настройки калибровки позиции. Подробнее...
struct  home_settings_calb_t
struct  move_settings_t
 Настройки движения. Подробнее...
struct  move_settings_calb_t
struct  engine_settings_t
 Ограничения и настройки движения, связанные с двигателем. Подробнее...
struct  engine_settings_calb_t
struct  entype_settings_t
 Настройки типа мотора и типа силового драйвера. Подробнее...
struct  power_settings_t
 Настройки питания шагового мотора. Подробнее...
struct  secure_settings_t
 Эта структура содержит необработанные данные с АЦП и нормированные значения. Подробнее...
struct  edges_settings_t
 Настройки границ. Подробнее...
struct  edges_settings_calb_t
struct  pid_settings_t
 Настройки ПИД. Подробнее...
struct  sync_in_settings_t
 Настройки входной синхронизации. Подробнее...
struct  sync_in_settings_calb_t
struct  sync_out_settings_t
 Настройки выходной синхронизации. Подробнее...
struct  sync_out_settings_calb_t
struct  extio_settings_t
 Настройки EXTIO. Подробнее...
struct  brake_settings_t
 Настройки тормоза. Подробнее...
struct  control_settings_t
 Настройки управления. Подробнее...
struct  control_settings_calb_t
struct  joystick_settings_t
 Настройки джойстика. Подробнее...
struct  ctp_settings_t
 Настройки контроля позиции(для шагового двигателя). Подробнее...
struct  uart_settings_t
 Настройки UART. Подробнее...
struct  calibration_settings_t
 Калибровочные коэффициенты. Подробнее...
struct  controller_name_t
 Пользовательское имя контроллера и флаги настройки. Подробнее...
struct  nonvolatile_memory_t
 Пользовательские данные для сохранения во FRAM. Подробнее...
struct  command_add_sync_in_action_t
 Это команда добавляет один элемент в буфер FIFO команд. Подробнее...
struct  command_add_sync_in_action_calb_t
struct  get_position_t
 Данные о позиции. Подробнее...
struct  get_position_calb_t
struct  set_position_t
 Данные о позиции. Подробнее...
struct  set_position_calb_t
struct  status_t
 Состояние устройства. Подробнее...
struct  status_calb_t
struct  measurements_t
 Буфер вмещает не более 25и точек. Подробнее...
struct  chart_data_t
 Дополнительное состояние устройства. Подробнее...
struct  device_information_t
 Команда чтения информации о контроллере. Подробнее...
struct  serial_number_t
 Структура с серийным номером и версией железа. Подробнее...
struct  analog_data_t
 Аналоговые данные. Подробнее...
struct  debug_read_t
 Отладочные данные. Подробнее...
struct  debug_write_t
 Отладочные данные. Подробнее...
struct  stage_name_t
 Пользовательское имя подвижки. Подробнее...
struct  stage_information_t
 Информация о позиционере. Подробнее...
struct  stage_settings_t
 Настройки позиционера. Подробнее...
struct  motor_information_t
 Информация о двигателе. Подробнее...
struct  motor_settings_t
 Физический характеристики и ограничения мотора. Подробнее...
struct  encoder_information_t
 Информация об энкодере. Подробнее...
struct  encoder_settings_t
 Настройки энкодера. Подробнее...
struct  hallsensor_information_t
 Информация о датчиках Холла. Подробнее...
struct  hallsensor_settings_t
 Настройки датчиков Холла. Подробнее...
struct  gear_information_t
 Информация о редукторе. Подробнее...
struct  gear_settings_t
 Настройки редуктора. Подробнее...
struct  accessories_settings_t
 Информация о дополнительных аксессуарах. Подробнее...
struct  init_random_t
 Случайный ключ. Подробнее...
struct  globally_unique_identifier_t
 Глобальный уникальный идентификатор. Подробнее...
struct  command_change_motor_t
 Сменить двигатель - команда для переключения выходного реле. Подробнее...

Макросы

#define XIMC_API
 Library import macro Macros allows to automatically import function from shared library.
#define XIMC_CALLCONV
 Library calling convention macros.
#define XIMC_RETTYPE   void*
 Thread return type.
#define device_undefined   -1
 Макрос, означающий неопределенное устройство
Результаты выполнения команд
#define result_ok   0
 выполнено успешно
#define result_error   -1
 общая ошибка
#define result_not_implemented   -2
 функция не определена
#define result_value_error   -3
 ошибка записи значения
#define result_nodevice   -4
 устройство не подключено
Уровень логирования
#define LOGLEVEL_ERROR   0x01
 Уровень логирования - ошибка
#define LOGLEVEL_WARNING   0x02
 Уровень логирования - предупреждение
#define LOGLEVEL_INFO   0x03
 Уровень логирования - информация
#define LOGLEVEL_DEBUG   0x04
 Уровень логирования - отладка
Флаги поиска устройств
#define ENUMERATE_PROBE   0x01
 Проверять, является ли устройство XIMC-совместимым.
#define ENUMERATE_ALL_COM   0x02
 Проверять все COM-устройства
#define ENUMERATE_NETWORK   0x04
 Проверять сетевые устройства
Флаги состояния движения

Возвращаются командой get_status.

См. также
get_status
status_t::move_state
status_t::MoveSts, get_status_impl
#define MOVE_STATE_MOVING   0x01
 Если флаг установлен, то контроллер пытается вращать двигателем.
#define MOVE_STATE_TARGET_SPEED   0x02
 Флаг устанавливается при достижении заданной скорости.
#define MOVE_STATE_ANTIPLAY   0x04
 Выполняется компенсация люфта, если флаг установлен.
Флаги настроек контроллера
#define EEPROM_PRECEDENCE   0x01
 Если флаг установлен, то настройки в EEPROM подвижки имеют приоритет над текущими настройками и заменяют их при обнаружении EEPROM.
Флаги состояния питания шагового мотора

Возвращаются командой get_status.

См. также
status_t::power_state
get_status
status_t::PWRSts, get_status_impl
#define PWR_STATE_UNKNOWN   0x00
 Неизвестное состояние, которое не должно никогда реализовываться.
#define PWR_STATE_OFF   0x01
 Обмотки мотора разомкнуты и не управляются драйвером.
#define PWR_STATE_NORM   0x03
 Обмотки запитаны номинальным током.
#define PWR_STATE_REDUCT   0x04
 Обмотки намеренно запитаны уменьшенным током от рабочего для снижения потребляемой мощности.
#define PWR_STATE_MAX   0x05
 Обмотки запитаны максимально доступным током, который может выдать схема при данном напряжении питания.
Флаги состояния

Содержат бинарные значения состояния контроллера. Могут быть объединены с помощью логического ИЛИ.

См. также
status_t::flags
get_status
status_t::Flags, get_status_impl
#define STATE_CONTR   0x00003F
 Флаги состояния контроллера.
#define STATE_ERRC   0x000001
 Недопустимая команда.
#define STATE_ERRD   0x000002
 Нарушение целостности данных.
#define STATE_ERRV   0x000004
 Недопустимое значение данных.
#define STATE_EEPROM_CONNECTED   0x000010
 Подключена память EEPROM с настройками.
#define STATE_IS_HOMED   0x000020
 Калибровка выполнена
#define STATE_SECUR   0x73FFC0
 Флаги опасности.
#define STATE_ALARM   0x000040
 Контроллер находится в состоянии ALARM, показывая, что случилась какая-то опасная ситуация.
#define STATE_CTP_ERROR   0x000080
 Контроль позиции нарушен(используется только с шаговым двигателем).
#define STATE_POWER_OVERHEAT   0x000100
 Перегрелась силовая часть платы.
#define STATE_CONTROLLER_OVERHEAT   0x000200
 Перегрелась микросхема контроллера.
#define STATE_OVERLOAD_POWER_VOLTAGE   0x000400
 Превышено напряжение на силовой части.
#define STATE_OVERLOAD_POWER_CURRENT   0x000800
 Превышен максимальный ток потребления силовой части.
#define STATE_OVERLOAD_USB_VOLTAGE   0x001000
 Превышено напряжение на USB.
#define STATE_LOW_USB_VOLTAGE   0x002000
 Слишком низкое напряжение на USB.
#define STATE_OVERLOAD_USB_CURRENT   0x004000
 Превышен максимальный ток потребления USB.
#define STATE_BORDERS_SWAP_MISSET   0x008000
 Достижение неверной границы.
#define STATE_LOW_POWER_VOLTAGE   0x010000
 Напряжение на силовой части ниже чем напряжение Low Voltage Protection.
#define STATE_H_BRIDGE_FAULT   0x020000
 Получен сигнал от драйвера о неисправности
#define STATE_CURRENT_MOTOR_BITS   0x0C0000
 Биты, показывающие текущий рабочий мотор на платах с несколькими выходами для двигателей.
#define STATE_CURRENT_MOTOR0   0x000000
 Мотор 0.
#define STATE_CURRENT_MOTOR1   0x040000
 Мотор 1.
#define STATE_CURRENT_MOTOR2   0x080000
 Мотор 2.
#define STATE_CURRENT_MOTOR3   0x0C0000
 Мотор 3.
#define STATE_WINDING_RES_MISMATCH   0x100000
 Сопротивления обмоток отличаются друг от друга слишком сильно
#define STATE_ENCODER_FAULT   0x200000
 Получен сигнал от энкодера о неисправности
#define STATE_MOTOR_CURRENT_LIMIT   0x400000
 Превышен предел по току
Флаги состояния GPIO входов

Содержат бинарные значения состояния контроллера. Могут быть объединены с помощью логического ИЛИ.

См. также
status_t::flags
get_status
status_t::GPIOFlags, get_status_impl
#define STATE_DIG_SIGNAL   0xFFFF
 Флаги цифровых сигналов.
#define STATE_RIGHT_EDGE   0x0001
 Достижение правой границы.
#define STATE_LEFT_EDGE   0x0002
 Достижение левой границы.
#define STATE_BUTTON_RIGHT   0x0004
 Состояние кнопки "вправо" (1, если нажата).
#define STATE_BUTTON_LEFT   0x0008
 Состояние кнопки "влево" (1, если нажата).
#define STATE_GPIO_PINOUT   0x0010
 Если флаг установлен, ввод/вывод общего назначения работает как выход; если флаг сброшен, ввод/вывод работает как вход.
#define STATE_GPIO_LEVEL   0x0020
 Состояние ввода/вывода общего назначения.
#define STATE_BRAKE   0x0200
 Состояние вывода управления тормозом(флаг "1" - если на тормоз подаётся питание, "0" - если тормоз не запитан).
#define STATE_REV_SENSOR   0x0400
 Состояние вывода датчика оборотов(флаг "1", если датчик активен).
#define STATE_SYNC_INPUT   0x0800
 Состояние входа синхронизации(1, если вход синхронизации активен).
#define STATE_SYNC_OUTPUT   0x1000
 Состояние выхода синхронизации(1, если выход синхронизации активен).
#define STATE_ENC_A   0x2000
 Состояние ножки A энкодера(флаг "1", если энкодер активен).
#define STATE_ENC_B   0x4000
 Состояние ножки B энкодера(флаг "1", если энкодер активен).
Состояние энкодера

Состояние энкодера, подключенного к контроллеру.

См. также
status_t::encsts
get_status
status_t::EncSts, get_status_impl
#define ENC_STATE_ABSENT   0x00
 Энкодер не подключен.
#define ENC_STATE_UNKNOWN   0x01
 Cостояние энкодера неизвестно.
#define ENC_STATE_MALFUNC   0x02
 Энкодер подключен и неисправен.
#define ENC_STATE_REVERS   0x03
 Энкодер подключен и исправен, но считает в другую сторону.
#define ENC_STATE_OK   0x04
 Энкодер подключен и работает адекватно.
Состояние обмоток

Состояние обмоток двигателя, подключенного к контроллеру.

См. также
status_t::windsts
get_status
status_t::WindSts, get_status_impl
#define WIND_A_STATE_ABSENT   0x00
 Обмотка A не подключена.
#define WIND_A_STATE_UNKNOWN   0x01
 Cостояние обмотки A неизвестно.
#define WIND_A_STATE_MALFUNC   0x02
 Короткое замыкание на обмотке A.
#define WIND_A_STATE_OK   0x03
 Обмотка A работает адекватно.
#define WIND_B_STATE_ABSENT   0x00
 Обмотка B не подключена.
#define WIND_B_STATE_UNKNOWN   0x10
 Cостояние обмотки B неизвестно.
#define WIND_B_STATE_MALFUNC   0x20
 Короткое замыкание на обмотке B.
#define WIND_B_STATE_OK   0x30
 Обмотка B работает адекватно.
Состояние команды движения

Состояние команды движения (касается command_move, command_movr, command_left, command_right, command_stop, command_home, command_loft, command_sstp) и статуса её выполнения (выполяется, завершено, ошибка)

См. также
status_t::mvcmdsts
get_status
status_t::MvCmdSts, get_status_impl
#define MVCMD_NAME_BITS   0x3F
 Битовая маска активной команды.
#define MVCMD_UKNWN   0x00
 Неизвестная команда.
#define MVCMD_MOVE   0x01
 Команда move.
#define MVCMD_MOVR   0x02
 Команда movr.
#define MVCMD_LEFT   0x03
 Команда left.
#define MVCMD_RIGHT   0x04
 Команда rigt.
#define MVCMD_STOP   0x05
 Команда stop.
#define MVCMD_HOME   0x06
 Команда home.
#define MVCMD_LOFT   0x07
 Команда loft.
#define MVCMD_SSTP   0x08
 Команда плавной остановки(SSTP).
#define MVCMD_ERROR   0x40
 Состояние завершения движения (1 - команда движения выполнена с ошибкой, 0 - команда движения выполнена корректно).
#define MVCMD_RUNNING   0x80
 Состояние команды движения (0 - команда движения выполнена, 1 - команда движения сейчас выполняется).
Флаги параметров мотора

Определяют настройки движения и работу ограничителей. Возращаются командой get_engine_settings. Могут быть объединены с помощью логического ИЛИ.

См. также
engine_settings_t::flags
set_engine_settings
get_engine_settings
engine_settings_t::EngineFlags, get_engine_settings, set_engine_settings
#define ENGINE_REVERSE   0x01
 Флаг реверса.
#define ENGINE_CURRENT_AS_RMS   0x02
 Флаг интерпретации значения тока.
#define ENGINE_MAX_SPEED   0x04
 Флаг максимальной скорости.
#define ENGINE_ANTIPLAY   0x08
 Компенсация люфта.
#define ENGINE_ACCEL_ON   0x10
 Ускорение.
#define ENGINE_LIMIT_VOLT   0x20
 Номинальное напряжение мотора.
#define ENGINE_LIMIT_CURR   0x40
 Номинальный ток мотора.
#define ENGINE_LIMIT_RPM   0x80
 Номинальная частота вращения мотора.
Флаги параметров микрошагового режима

Определяют деление шага в микрошаговом режиме. Используются с шаговыми моторами. Возращаются командой get_engine_settings. Могут быть объединены с помощью логического ИЛИ.

См. также
engine_settings_t::flags
set_engine_settings
get_engine_settings
engine_settings_t::MicrostepMode, get_engine_settings, set_engine_settings
#define MICROSTEP_MODE_FULL   0x01
 Полношаговый режим.
#define MICROSTEP_MODE_FRAC_2   0x02
 Деление шага 1/2.
#define MICROSTEP_MODE_FRAC_4   0x03
 Деление шага 1/4.
#define MICROSTEP_MODE_FRAC_8   0x04
 Деление шага 1/8.
#define MICROSTEP_MODE_FRAC_16   0x05
 Деление шага 1/16.
#define MICROSTEP_MODE_FRAC_32   0x06
 Деление шага 1/32.
#define MICROSTEP_MODE_FRAC_64   0x07
 Деление шага 1/64.
#define MICROSTEP_MODE_FRAC_128   0x08
 Деление шага 1/128.
#define MICROSTEP_MODE_FRAC_256   0x09
 Деление шага 1/256.
Флаги, определяющие тип мотора

Определяют тип мотора. Возращаются командой get_entype_settings.

См. также
engine_settings_t::flags
set_entype_settings
get_entype_settings
entype_settings_t::EngineType, get_entype_settings, set_entype_settings
#define ENGINE_TYPE_NONE   0x00
 Это значение не нужно использовать.
#define ENGINE_TYPE_DC   0x01
 Мотор постоянного тока.
#define ENGINE_TYPE_2DC   0x02
 Два мотора постоянного тока, что приводит к эмуляции двух контроллеров.
#define ENGINE_TYPE_STEP   0x03
 Шаговый мотор.
#define ENGINE_TYPE_TEST   0x04
 Скважность в обмотках фиксирована.
#define ENGINE_TYPE_BRUSHLESS   0x05
 Безщеточный мотор.
Флаги, определяющие тип силового драйвера

Определяют тип силового драйвера. Возращаются командой get_entype_settings.

См. также
engine_settings_t::flags
set_entype_settings
get_entype_settings
entype_settings_t::DriverType, get_entype_settings, set_entype_settings
#define DRIVER_TYPE_DISCRETE_FET   0x01
 Силовой драйвер на дискретных мосфет-ключах.
#define DRIVER_TYPE_INTEGRATE   0x02
 Силовой драйвер с использованием ключей, интегрированных в микросхему.
#define DRIVER_TYPE_EXTERNAL   0x03
 Внешний силовой драйвер.
Флаги параметров питания шагового мотора

Возвращаются командой get_power_settings.

См. также
power_settings_t::flags
get_power_settings
set_power_settings
power_settings_t::PowerFlags, get_power_settings, set_power_settings
#define POWER_REDUCT_ENABLED   0x01
 Если флаг установлен, уменьшить ток по прошествии CurrReductDelay.
#define POWER_OFF_ENABLED   0x02
 Если флаг установлен, снять напряжение с обмоток по прошествии PowerOffDelay.
#define POWER_SMOOTH_CURRENT   0x04
 Если установлен, то запитывание обмоток, снятие питания или снижение/повышение тока происходят плавно со скоростью CurrentSetTime, а только потом выполняется та задача, которая вызвала это плавное изменение.
Флаги критических параметров.

Возвращаются командой get_secure_settings.

См. также
secure_settings_t::flags
get_secure_settings
set_secure_settings
secure_settings_t::Flags, get_secure_settings, set_secure_settings
#define ALARM_ON_DRIVER_OVERHEATING   0x01
 Если флаг установлен, то войти в состояние Alarm при получении сигнала подступающего перегрева с драйвера.
#define LOW_UPWR_PROTECTION   0x02
 Если установлен, то выключать силовую часть при напряжении меньшем LowUpwrOff.
#define H_BRIDGE_ALERT   0x04
 Если установлен, то выключать силовую часть при сигнале неполадки в одном из транзисторных мостов.
#define ALARM_ON_BORDERS_SWAP_MISSET   0x08
 Если флаг установлен, то войти в состояние Alarm при получении сигнала c противоположного концевика.
#define ALARM_FLAGS_STICKING   0x10
 Если флаг установлен, то только по команде STOP возможен сброс всех флагов ALARM.
#define USB_BREAK_RECONNECT   0x20
 Если флаг установлен, то будет включен блок перезагрузки USB при поломке связи.
Флаги установки положения

Возвращаются командой get_position.

См. также
get_position
set_position
set_position_t::PosFlags, set_position
#define SETPOS_IGNORE_POSITION   0x01
 Если установлен, то позиция в шагах и микрошагах не обновляется.
#define SETPOS_IGNORE_ENCODER   0x02
 Если установлен, то счётчик энкодера не обновляется.
Тип обратной связи.
#define FEEDBACK_ENCODER   0x01
 Обратная связь с помощью энкодера.
#define FEEDBACK_EMF   0x04
 Обратная связь по ЭДС.
#define FEEDBACK_NONE   0x05
 Обратная связь отсутствует.
Флаги обратной связи.
#define FEEDBACK_ENC_REVERSE   0x01
 Обратный счет у энкодера.
#define FEEDBACK_ENC_TYPE_BITS   0xC0
 Биты, отвечающие за тип энкодера.
#define FEEDBACK_ENC_TYPE_AUTO   0x00
 Определять тип энкодера автоматически.
#define FEEDBACK_ENC_TYPE_SINGLE_ENDED   0x40
 Недифференциальный энкодер.
#define FEEDBACK_ENC_TYPE_DIFFERENTIAL   0x80
 Дифференциальный энкодер.
Флаги настроек синхронизации входа

См. также
sync_settings_t::syncin_flags
get_sync_settings
set_sync_settings
sync_in_settings_t::SyncInFlags, get_sync_in_settings, set_sync_in_settings
#define SYNCIN_ENABLED   0x01
 Включение необходимости импульса синхронизации для начала движения.
#define SYNCIN_INVERT   0x02
 Если установлен - срабатывает по переходу из 1 в 0.
#define SYNCIN_GOTOPOSITION   0x04
 Если флаг установлен, то двигатель смещается к позиции, установленной в Position и uPosition, иначе двигатель смещается на Position и uPosition.
Флаги настроек синхронизации выхода

См. также
sync_settings_t::syncout_flags
get_sync_settings
set_sync_settings
sync_out_settings_t::SyncOutFlags, get_sync_out_settings, set_sync_out_settings
#define SYNCOUT_ENABLED   0x01
 Синхронизация выхода работает согласно настройкам, если флаг установлен.
#define SYNCOUT_STATE   0x02
 Когда значение выхода управляется напрямую (см.
#define SYNCOUT_INVERT   0x04
 Нулевой логический уровень является активным, если флаг установлен, а единичный - если флаг сброшен.
#define SYNCOUT_IN_STEPS   0x08
 Если флаг установлен использовать шаги/импульсы энкодера для выходных импульсов синхронизации вместо миллисекунд.
#define SYNCOUT_ONSTART   0x10
 Генерация синхронизирующего импульса при начале движения.
#define SYNCOUT_ONSTOP   0x20
 Генерация синхронизирующего импульса при остановке.
#define SYNCOUT_ONPERIOD   0x40
 Выдать импульс синхронизации после прохождения SyncOutPeriod отсчётов.
Флаги настройки работы внешнего ввода/вывода
#define EXTIO_SETUP_OUTPUT   0x01
 Если флаг установлен, то ножка в состоянии вывода, иначе - ввода.
#define EXTIO_SETUP_INVERT   0x02
 Eсли флаг установлен, то нули считаются активным состоянием выхода, а спадающие фронты как момент подачи входного сигнала.
Флаги настройки режимов внешнего ввода/вывода
#define EXTIO_SETUP_MODE_IN_BITS   0x0F
 Биты, отвечающие за поведение при переходе сигнала в активное состояние.
#define EXTIO_SETUP_MODE_IN_NOP   0x00
 Ничего не делать.
#define EXTIO_SETUP_MODE_IN_STOP   0x01
 По переднему фронту входного сигнала делается остановка двигателя (эквивалент команды STOP).
#define EXTIO_SETUP_MODE_IN_PWOF   0x02
 Выполняет команду PWOF, обесточивая обмотки двигателя.
#define EXTIO_SETUP_MODE_IN_MOVR   0x03
 Выполняется команда MOVR с последними настройками.
#define EXTIO_SETUP_MODE_IN_HOME   0x04
 Выполняется команда HOME.
#define EXTIO_SETUP_MODE_IN_ALARM   0x05
 Войти в состояние ALARM при переходе сигнала в активное состояние.
#define EXTIO_SETUP_MODE_OUT_BITS   0xF0
 Биты выбора поведения на выходе.
#define EXTIO_SETUP_MODE_OUT_OFF   0x00
 Ножка всегда в неактивном состоянии.
#define EXTIO_SETUP_MODE_OUT_ON   0x10
 Ножка всегда в активном состоянии.
#define EXTIO_SETUP_MODE_OUT_MOVING   0x20
 Ножка находится в активном состоянии при движении.
#define EXTIO_SETUP_MODE_OUT_ALARM   0x30
 Ножка находится в активном состоянии при нахождении в состоянии ALARM.
#define EXTIO_SETUP_MODE_OUT_MOTOR_ON   0x40
 Ножка находится в активном состоянии при подаче питания на обмотки.
#define EXTIO_SETUP_MODE_OUT_MOTOR_FOUND   0x50
 Ножка находится в активном состоянии при обнаружении подключенного двигателя (первой обмотки).
Флаги границ

Типы границ и поведение позиционера на границах. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_edges_settings
set_edges_settings
edges_settings_t::BorderFlags, get_edges_settings, set_edges_settings
#define BORDER_IS_ENCODER   0x01
 Если флаг установлен, границы определяются предустановленными точками на шкале позиции.
#define BORDER_STOP_LEFT   0x02
 Если флаг установлен, мотор останавливается при достижении левой границы.
#define BORDER_STOP_RIGHT   0x04
 Если флаг установлен, мотор останавливается при достижении правой границы.
#define BORDERS_SWAP_MISSET_DETECTION   0x08
 Если флаг установлен, мотор останавливается при достижении обоих границ.
Флаги концевых выключателей

Определяют направление и состояние границ. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_edges_settings
set_edges_settings
edges_settings_t::EnderFlags, get_edges_settings, set_edges_settings
#define ENDER_SWAP   0x01
 Если флаг установлен, первый концевой выключатель находится справа; иначе - слева.
#define ENDER_SW1_ACTIVE_LOW   0x02
 1 - Концевик, подключенный к ножке SW1, считается сработавшим по низкому уровню на контакте.
#define ENDER_SW2_ACTIVE_LOW   0x04
 1 - Концевик, подключенный к ножке SW2, считается сработавшим по низкому уровню на контакте.
Флаги настроек тормоза

Определяют поведение тормоза. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_brake_settings
set_brake_settings
brake_settings_t::BrakeFlags, get_brake_settings, set_brake_settings
#define BRAKE_ENABLED   0x01
 Управление тормозом включено, если флаг установлен.
#define BRAKE_ENG_PWROFF   0x02
 Тормоз отключает питание шагового мотора, если флаг установлен.
Флаги управления

Определяют параметры управления мотором с помощью джойстика или кнопок. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_control_settings
set_control_settings
control_settings_t::Flags, get_control_settings, set_control_settings
#define CONTROL_MODE_BITS   0x03
 Биты управления мотором с помощью джойстика или кнопок влево/вправо.
#define CONTROL_MODE_OFF   0x00
 Управление отключено.
#define CONTROL_MODE_JOY   0x01
 Управление с помощью джойстика.
#define CONTROL_MODE_LR   0x02
 Управление с помощью кнопок left/right.
#define CONTROL_BTN_LEFT_PUSHED_OPEN   0x04
 Левая кнопка нормально разомкнутая, если флаг установлен.
#define CONTROL_BTN_RIGHT_PUSHED_OPEN   0x08
 Правая кнопка нормально разомкнутая, если флаг установлен.
Флаги джойстика

Управляют состояниями джойстика.

См. также
set_joystick_settings
get_joystick_settings
joystick_settings_t::JoyFlags, get_joystick_settings, set_joystick_settings
#define JOY_REVERSE   0x01
 Реверс воздействия джойстика.
Флаги контроля позиции

Определяют настройки контроля позиции. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_ctp_settings
set_ctp_settings
ctp_settings_t::CTPFlags, get_ctp_settings, set_ctp_settings
#define CTP_ENABLED   0x01
 Контроль позиции включен, если флаг установлен.
#define CTP_BASE   0x02
 Опорой является датчик оборотов, если флаг установлен; иначе - энкодер.
#define CTP_ALARM_ON_ERROR   0x04
 Войти в состояние ALARM при расхождении позиции, если флаг установлен.
#define REV_SENS_INV   0x08
 Сенсор считается активным, когда на нём 0, а инвертирование делает активным уровнем 1.
#define CTP_ERROR_CORRECTION   0x10
 Корректировать ошибки, возникающие при проскальзывании, если флаг установлен.
Флаги настроек команды home

Определяют поведение для команды home. Могут быть объединены с помощью побитового ИЛИ.

См. также
get_home_setting s
set_home_settings
command_home
home_settings_t::HomeFlags, get_home_settings, set_home_settings
#define HOME_DIR_FIRST   0x001
 Определяет направление первоначального движения мотора после поступления команды HOME.
#define HOME_DIR_SECOND   0x002
 Определяет направление второго движения мотора.
#define HOME_MV_SEC_EN   0x004
 Если флаг установлен, реализуется второй этап доводки в домашнюю позицию; иначе - этап пропускается.
#define HOME_HALF_MV   0x008
 Если флаг установлен, в начале второго движения первые пол оборота сигналы завершения движения игнорируются.
#define HOME_STOP_FIRST_BITS   0x030
 Биты, отвечающие за выбор сигнала завершения первого движения.
#define HOME_STOP_FIRST_REV   0x010
 Первое движение завершается по сигналу с Revolution sensor.
#define HOME_STOP_FIRST_SYN   0x020
 Первое движение завершается по сигналу со входа синхронизации.
#define HOME_STOP_FIRST_LIM   0x030
 Первое движение завершается по сигналу с концевика.
#define HOME_STOP_SECOND_BITS   0x0C0
 Биты, отвечающие за выбор сигнала завершения второго движения.
#define HOME_STOP_SECOND_REV   0x040
 Второе движение завершается по сигналу с Revolution sensor.
#define HOME_STOP_SECOND_SYN   0x080
 Второе движение завершается по сигналу со входа синхронизации.
#define HOME_STOP_SECOND_LIM   0x0C0
 Второе движение завершается по сигналу с концевика.
#define HOME_USE_FAST   0x100
 Если флаг установлен, используется быстрый поиск домашней позиции; иначе - традиционный.
Флаги настроек четности команды uart
#define UART_PARITY_BITS   0x03
 Биты, отвечающие за выбор четности.
#define UART_PARITY_BIT_EVEN   0x00
 Бит 1, если чет
#define UART_PARITY_BIT_ODD   0x01
 Бит 1, если нечет
#define UART_PARITY_BIT_SPACE   0x02
 Бит четности всегда 0.
#define UART_PARITY_BIT_MARK   0x03
 Бит четности всегда 1.
#define UART_PARITY_BIT_USE   0x04
 Бит чётности не используется, если "0"; бит четности используется, если "1".
#define UART_STOP_BIT   0x08
 Если установлен, один стоповый бит; иначе - 2 стоповых бита
Флаг типа двигателя
#define MOTOR_TYPE_UNKNOWN   0x00
 Неизвестный двигатель
#define MOTOR_TYPE_STEP   0x01
 Шаговый двигатель
#define MOTOR_TYPE_DC   0x02
 DC двигатель
#define MOTOR_TYPE_BLDC   0x03
 BLDC двигатель
Флаги настроек энкодера
#define ENCSET_DIFFERENTIAL_OUTPUT   0x001
 Если флаг установлен, то энкодер имеет дифференциальный выход, иначе - несимметричный выход
#define ENCSET_PUSHPULL_OUTPUT   0x004
 Если флаг установлен, то энкодер имеет двухтактный выход, иначе - выход с открытым коллектором
#define ENCSET_INDEXCHANNEL_PRESENT   0x010
 Если флаг установлен, то энкодер имеет дополнительный индексный канал, иначе - он отсутствует
#define ENCSET_REVOLUTIONSENSOR_PRESENT   0x040
 Если флаг установлен, то энкодер имеет датчик оборотов, иначе - он отсутствует
#define ENCSET_REVOLUTIONSENSOR_ACTIVE_HIGH   0x100
 Если флаг установлен, то активное состояние датчика оборотов соответствует логической 1, иначе - логическому 0.
#define MB_AVAILABLE   0x01
 Если флаг установлен, то магнитный тормоз доступен
#define MB_POWERED_HOLD   0x02
 Если флаг установлен, то магнитный тормоз находится в режиме удержания (активен) при подаче питания
Флаги настроек температурного датчика
#define TS_TYPE_BITS   0x07
 Биты, отвечающие за тип температурного датчика.
#define TS_TYPE_UNKNOWN   0x00
 Неизвестный сенсор
#define TS_TYPE_THERMOCOUPLE   0x01
 Термопара
#define TS_TYPE_SEMICONDUCTOR   0x02
 Полупроводниковый температурный датчик
#define TS_AVAILABLE   0x08
 Если флаг установлен, то датчик температуры доступен
#define LS_ON_SW1_AVAILABLE   0x01
 Если флаг установлен, то концевик, подключенный к ножке SW1, доступен
#define LS_ON_SW2_AVAILABLE   0x02
 Если флаг установлен, то концевик, подключенный к ножке SW2, доступен
#define LS_SW1_ACTIVE_LOW   0x04
 Если флаг установлен, то концевик, подключенный к ножке SW1, считается сработавшим по низкому уровню на контакте
#define LS_SW2_ACTIVE_LOW   0x08
 Если флаг установлен, то концевик, подключенный к ножке SW2, считается сработавшим по низкому уровню на контакте
#define LS_SHORTED   0x10
 Если флаг установлен, то концевики закорочены.

Определения типов

typedef unsigned long long ulong_t
typedef long long long_t
typedef int device_t
 Тип идентификатора устройства
typedef int result_t
 Тип, определяющий результат выполнения команды.
typedef uint32_t device_enumeration_t
 Тип, определяющий структуру данных о всех контроллерах, обнаруженных при опросе устройств.
typedef struct calibration_t calibration_t
 Структура калибровок
typedef struct
device_network_information_t 
device_network_information_t
 Структура данных с информацией о сетевом устройстве.

Функции

Группа команд настройки контроллера

Функции для чтения/записи большинства настроек контроллера.

result_t XIMC_API set_feedback_settings (device_t id, const feedback_settings_t *feedback_settings)
 Запись настроек обратной связи.
result_t XIMC_API get_feedback_settings (device_t id, feedback_settings_t *feedback_settings)
 Чтение настроек обратной связи
result_t XIMC_API set_home_settings (device_t id, const home_settings_t *home_settings)
 Команда записи настроек для подхода в home position.
result_t XIMC_API set_home_settings_calb (device_t id, const home_settings_calb_t *home_settings_calb, const calibration_t *calibration)
result_t XIMC_API get_home_settings (device_t id, home_settings_t *home_settings)
 Команда чтения настроек для подхода в home position.
result_t XIMC_API get_home_settings_calb (device_t id, home_settings_calb_t *home_settings_calb, const calibration_t *calibration)
result_t XIMC_API set_move_settings (device_t id, const move_settings_t *move_settings)
 Команда записи настроек перемещения (скорость, ускорение, threshold и скорость в режиме антилюфта).
result_t XIMC_API set_move_settings_calb (device_t id, const move_settings_calb_t *move_settings_calb, const calibration_t *calibration)
result_t XIMC_API get_move_settings (device_t id, move_settings_t *move_settings)
 Команда чтения настроек перемещения (скорость, ускорение, threshold и скорость в режиме антилюфта).
result_t XIMC_API get_move_settings_calb (device_t id, move_settings_calb_t *move_settings_calb, const calibration_t *calibration)
result_t XIMC_API set_engine_settings (device_t id, const engine_settings_t *engine_settings)
 Запись настроек мотора.
result_t XIMC_API set_engine_settings_calb (device_t id, const engine_settings_calb_t *engine_settings_calb, const calibration_t *calibration)
result_t XIMC_API get_engine_settings (device_t id, engine_settings_t *engine_settings)
 Чтение настроек мотора.
result_t XIMC_API get_engine_settings_calb (device_t id, engine_settings_calb_t *engine_settings_calb, const calibration_t *calibration)
result_t XIMC_API set_entype_settings (device_t id, const entype_settings_t *entype_settings)
 Запись информации о типе мотора и типе силового драйвера.
result_t XIMC_API get_entype_settings (device_t id, entype_settings_t *entype_settings)
 Возвращает информацию о типе мотора и силового драйвера.
result_t XIMC_API set_power_settings (device_t id, const power_settings_t *power_settings)
 Команда записи параметров питания мотора.
result_t XIMC_API get_power_settings (device_t id, power_settings_t *power_settings)
 Команда чтения параметров питания мотора.
result_t XIMC_API set_secure_settings (device_t id, const secure_settings_t *secure_settings)
 Команда записи установок защит.
result_t XIMC_API get_secure_settings (device_t id, secure_settings_t *secure_settings)
 Команда записи установок защит.
result_t XIMC_API set_edges_settings (device_t id, const edges_settings_t *edges_settings)
 Запись настроек границ и концевых выключателей.
result_t XIMC_API set_edges_settings_calb (device_t id, const edges_settings_calb_t *edges_settings_calb, const calibration_t *calibration)
result_t XIMC_API get_edges_settings (device_t id, edges_settings_t *edges_settings)
 Чтение настроек границ и концевых выключателей.
result_t XIMC_API get_edges_settings_calb (device_t id, edges_settings_calb_t *edges_settings_calb, const calibration_t *calibration)
result_t XIMC_API set_pid_settings (device_t id, const pid_settings_t *pid_settings)
 Запись ПИД коэффициентов.
result_t XIMC_API get_pid_settings (device_t id, pid_settings_t *pid_settings)
 Чтение ПИД коэффициентов.
result_t XIMC_API set_sync_in_settings (device_t id, const sync_in_settings_t *sync_in_settings)
 Запись настроек для входного импульса синхронизации.
result_t XIMC_API set_sync_in_settings_calb (device_t id, const sync_in_settings_calb_t *sync_in_settings_calb, const calibration_t *calibration)
result_t XIMC_API get_sync_in_settings (device_t id, sync_in_settings_t *sync_in_settings)
 Чтение настроек для входного импульса синхронизации.
result_t XIMC_API get_sync_in_settings_calb (device_t id, sync_in_settings_calb_t *sync_in_settings_calb, const calibration_t *calibration)
result_t XIMC_API set_sync_out_settings (device_t id, const sync_out_settings_t *sync_out_settings)
 Запись настроек для выходного импульса синхронизации.
result_t XIMC_API set_sync_out_settings_calb (device_t id, const sync_out_settings_calb_t *sync_out_settings_calb, const calibration_t *calibration)
result_t XIMC_API get_sync_out_settings (device_t id, sync_out_settings_t *sync_out_settings)
 Чтение настроек для выходного импульса синхронизации.
result_t XIMC_API get_sync_out_settings_calb (device_t id, sync_out_settings_calb_t *sync_out_settings_calb, const calibration_t *calibration)
result_t XIMC_API set_extio_settings (device_t id, const extio_settings_t *extio_settings)
 Команда записи параметров настройки режимов внешнего ввода/вывода.
result_t XIMC_API get_extio_settings (device_t id, extio_settings_t *extio_settings)
 Команда чтения параметров настройки режимов внешнего ввода/вывода.
result_t XIMC_API set_brake_settings (device_t id, const brake_settings_t *brake_settings)
 Запись настроек управления тормозом.
result_t XIMC_API get_brake_settings (device_t id, brake_settings_t *brake_settings)
 Чтение настроек управления тормозом.
result_t XIMC_API set_control_settings (device_t id, const control_settings_t *control_settings)
 Запись настроек управления мотором.
result_t XIMC_API set_control_settings_calb (device_t id, const control_settings_calb_t *control_settings_calb, const calibration_t *calibration)
result_t XIMC_API get_control_settings (device_t id, control_settings_t *control_settings)
 Чтение настроек управления мотором.
result_t XIMC_API get_control_settings_calb (device_t id, control_settings_calb_t *control_settings_calb, const calibration_t *calibration)
result_t XIMC_API set_joystick_settings (device_t id, const joystick_settings_t *joystick_settings)
 Запись настроек джойстика.
result_t XIMC_API get_joystick_settings (device_t id, joystick_settings_t *joystick_settings)
 Чтение настроек джойстика.
result_t XIMC_API set_ctp_settings (device_t id, const ctp_settings_t *ctp_settings)
 Запись настроек контроля позиции(для шагового двигателя).
result_t XIMC_API get_ctp_settings (device_t id, ctp_settings_t *ctp_settings)
 Чтение настроек контроля позиции(для шагового двигателя).
result_t XIMC_API set_uart_settings (device_t id, const uart_settings_t *uart_settings)
 Команда записи настроек UART.
result_t XIMC_API get_uart_settings (device_t id, uart_settings_t *uart_settings)
 Команда чтения настроек UART.
result_t XIMC_API set_calibration_settings (device_t id, const calibration_settings_t *calibration_settings)
 Команда записи калибровочных коэффициентов.
result_t XIMC_API get_calibration_settings (device_t id, calibration_settings_t *calibration_settings)
 Команда чтения калибровочных коэффициентов.
result_t XIMC_API set_controller_name (device_t id, const controller_name_t *controller_name)
 Запись пользовательского имени контроллера и настроек в FRAM.
result_t XIMC_API get_controller_name (device_t id, controller_name_t *controller_name)
 Чтение пользовательского имени контроллера и настроек из FRAM.
result_t XIMC_API set_nonvolatile_memory (device_t id, const nonvolatile_memory_t *nonvolatile_memory)
 Запись пользовательских данных во FRAM.
result_t XIMC_API get_nonvolatile_memory (device_t id, nonvolatile_memory_t *nonvolatile_memory)
 Чтение пользовательских данных из FRAM.
Группа команд управления движением
result_t XIMC_API command_stop (device_t id)
 Немедленная остановка двигателя, переход в состояние STOP, ключи в режиме BREAK (обмотки накоротко замкнуты), режим "удержания" дезактивируется для DC двигателей, удержание тока в обмотках для шаговых двигателей (с учётом Power management настроек).
result_t XIMC_API command_add_sync_in_action (device_t id, const command_add_sync_in_action_t *the_command_add_sync_in_action)
 Это команда добавляет один элемент в буфер FIFO команд, выполняемых при получении входного импульса синхронизации.
result_t XIMC_API command_add_sync_in_action_calb (device_t id, const command_add_sync_in_action_calb_t *the_command_add_sync_in_action_calb, const calibration_t *calibration)
result_t XIMC_API command_power_off (device_t id)
 Немедленное отключение питания двигателя вне зависимости от его состояния.
result_t XIMC_API command_move (device_t id, int Position, int uPosition)
 При получении команды "move" двигатель начинает перемещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), к точке указанной в полях Position, uPosition.
result_t XIMC_API command_move_calb (device_t id, float Position, const calibration_t *calibration)
result_t XIMC_API command_movr (device_t id, int DeltaPosition, int uDeltaPosition)
 При получении команды "movr" двигатель начинает смещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), влево или вправо (зависит от знака DeltaPosition) на количество импульсов указанное в полях DeltaPosition, uDeltaPosition.
result_t XIMC_API command_movr_calb (device_t id, float DeltaPosition, const calibration_t *calibration)
result_t XIMC_API command_home (device_t id)
 Поля скоростей знаковые.
result_t XIMC_API command_left (device_t id)
 При получении команды "left" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), влево.
result_t XIMC_API command_right (device_t id)
 При получении команды "rigt" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), вправо.
result_t XIMC_API command_loft (device_t id)
 При получении команды "loft" двигатель смещается из текущей точки на расстояние GENG::Antiplay, затем двигается в ту же точку.
result_t XIMC_API command_sstp (device_t id)
 Плавная остановка.
result_t XIMC_API get_position (device_t id, get_position_t *the_get_position)
 Считывает значение положения в шагах и микрошагах для шагового двигателя и в шагах энкодера всех двигателей.
result_t XIMC_API get_position_calb (device_t id, get_position_calb_t *the_get_position_calb, const calibration_t *calibration)
result_t XIMC_API set_position (device_t id, const set_position_t *the_set_position)
 Устанавливает произвольное значение положения в шагах и микрошагах для шагового двигателя и в шагах энкодера всех двигателей.
result_t XIMC_API set_position_calb (device_t id, const set_position_calb_t *the_set_position_calb, const calibration_t *calibration)
result_t XIMC_API command_zero (device_t id)
 Устанавливает текущую позицию и позицию в которую осуществляется движение по командам move и movr равными нулю для всех случаев, кроме движения к позиции назначения.
Группа команд сохранения и загрузки настроек
result_t XIMC_API command_save_settings (device_t id)
 При получении команды контроллер выполняет операцию сохранения текущих настроек во встроенную энергонезависимую память контроллера.
result_t XIMC_API command_read_settings (device_t id)
 Чтение всех настроек контроллера из flash памяти в оперативную, заменяя текущие настройки.
result_t XIMC_API command_save_robust_settings (device_t id)
 При получении команды контроллер выполняет операцию сохранения важных настроек (калибровочные коэффициенты и т.
result_t XIMC_API command_read_robust_settings (device_t id)
 Чтение важных настроек (калибровочные коэффициенты и т.
result_t XIMC_API command_eesave_settings (device_t id)
 Запись настроек контроллера в EEPROM память позиционера, которые непосредственно связаны с позиционером и не меняются без его механической переделки.
result_t XIMC_API command_eeread_settings (device_t id)
 Чтение настроек контроллера из EEPROM памяти позиционера, которые непосредственно связаны с позиционером и не меняются без его механической переделки.
result_t XIMC_API command_start_measurements (device_t id)
 Начать измерения и буферизацию скорости, ошибки следования.
result_t XIMC_API get_measurements (device_t id, measurements_t *measurements)
 Команда чтения буфера данных для построения графиков скорости и ошибки следования.
result_t XIMC_API get_chart_data (device_t id, chart_data_t *chart_data)
 Команда чтения состояния обмоток и других не часто используемых данных.
result_t XIMC_API get_serial_number (device_t id, unsigned int *SerialNumber)
 Чтение серийного номера контроллера.
result_t XIMC_API get_firmware_version (device_t id, unsigned int *Major, unsigned int *Minor, unsigned int *Release)
 Чтение номера версии прошивки контроллера.
result_t XIMC_API service_command_updf (device_t id)
 Команда переводит контроллер в режим обновления прошивки.
Группа сервисных команд
result_t XIMC_API set_serial_number (device_t id, const serial_number_t *serial_number)
 Запись серийного номера и версии железа во flash память контроллера.
result_t XIMC_API get_analog_data (device_t id, analog_data_t *analog_data)
 Чтение аналоговых данных, содержащих данные с АЦП и нормированные значения величин.
result_t XIMC_API get_debug_read (device_t id, debug_read_t *debug_read)
 Чтение данных из прошивки для отладки и поиска неисправностей.
result_t XIMC_API set_debug_write (device_t id, const debug_write_t *debug_write)
 Запись данных в прошивку для отладки и поиска неисправностей.
Группа команд работы с EEPROM подвижки
result_t XIMC_API set_stage_name (device_t id, const stage_name_t *stage_name)
 Запись пользовательского имени подвижки в EEPROM.
result_t XIMC_API get_stage_name (device_t id, stage_name_t *stage_name)
 Чтение пользовательского имени подвижки из EEPROM.
result_t XIMC_API set_stage_information (device_t id, const stage_information_t *stage_information)
 Запись информации о позиционере в EEPROM.
result_t XIMC_API get_stage_information (device_t id, stage_information_t *stage_information)
 Чтение информации о позиционере из EEPROM.
result_t XIMC_API set_stage_settings (device_t id, const stage_settings_t *stage_settings)
 Запись настроек позиционера в EEPROM.
result_t XIMC_API get_stage_settings (device_t id, stage_settings_t *stage_settings)
 Чтение настроек позиционера из EEPROM.
result_t XIMC_API set_motor_information (device_t id, const motor_information_t *motor_information)
 Запись информации о двигателе в EEPROM.
result_t XIMC_API get_motor_information (device_t id, motor_information_t *motor_information)
 Чтение информации о двигателе из EEPROM.
result_t XIMC_API set_motor_settings (device_t id, const motor_settings_t *motor_settings)
 Запись настроек двигателя в EEPROM.
result_t XIMC_API get_motor_settings (device_t id, motor_settings_t *motor_settings)
 Чтение настроек двигателя из EEPROM.
result_t XIMC_API set_encoder_information (device_t id, const encoder_information_t *encoder_information)
 Запись информации об энкодере в EEPROM.
result_t XIMC_API get_encoder_information (device_t id, encoder_information_t *encoder_information)
 Чтение информации об энкодере из EEPROM.
result_t XIMC_API set_encoder_settings (device_t id, const encoder_settings_t *encoder_settings)
 Запись настроек энкодера в EEPROM.
result_t XIMC_API get_encoder_settings (device_t id, encoder_settings_t *encoder_settings)
 Чтение настроек энкодера из EEPROM.
result_t XIMC_API set_hallsensor_information (device_t id, const hallsensor_information_t *hallsensor_information)
 Запись информации о датчиках Холла в EEPROM.
result_t XIMC_API get_hallsensor_information (device_t id, hallsensor_information_t *hallsensor_information)
 Чтение информации о датчиках Холла из EEPROM.
result_t XIMC_API set_hallsensor_settings (device_t id, const hallsensor_settings_t *hallsensor_settings)
 Запись настроек датчиков Холла в EEPROM.
result_t XIMC_API get_hallsensor_settings (device_t id, hallsensor_settings_t *hallsensor_settings)
 Чтение настроек датчиков Холла из EEPROM.
result_t XIMC_API set_gear_information (device_t id, const gear_information_t *gear_information)
 Запись информации о редукторе в EEPROM.
result_t XIMC_API get_gear_information (device_t id, gear_information_t *gear_information)
 Чтение информации о редукторе из EEPROM.
result_t XIMC_API set_gear_settings (device_t id, const gear_settings_t *gear_settings)
 Запись настроек редуктора в EEPROM.
result_t XIMC_API get_gear_settings (device_t id, gear_settings_t *gear_settings)
 Чтение настроек редуктора из EEPROM.
result_t XIMC_API set_accessories_settings (device_t id, const accessories_settings_t *accessories_settings)
 Запись информации о дополнительных аксессуарах в EEPROM.
result_t XIMC_API get_accessories_settings (device_t id, accessories_settings_t *accessories_settings)
 Чтение информации о дополнительных аксессуарах из EEPROM.
result_t XIMC_API get_bootloader_version (device_t id, unsigned int *Major, unsigned int *Minor, unsigned int *Release)
 Чтение номера версии прошивки контроллера.
result_t XIMC_API get_init_random (device_t id, init_random_t *init_random)
 Чтение случайного числа из контроллера.
result_t XIMC_API get_globally_unique_identifier (device_t id, globally_unique_identifier_t *globally_unique_identifier)
 Считывает уникальный идентификатор каждого чипа, это значение не является случайным.
result_t XIMC_API command_change_motor (device_t id, const command_change_motor_t *the_command_change_motor)
 Сменить двигатель - команда для переключения выходного реле.
result_t XIMC_API goto_firmware (device_t id, uint8_t *ret)
 Перезагрузка в прошивку в контроллере
result_t XIMC_API has_firmware (const char *uri, uint8_t *ret)
 Проверка наличия прошивки в контроллере
result_t XIMC_API command_update_firmware (const char *uri, const uint8_t *data, uint32_t data_size)
 Обновление прошивки
result_t XIMC_API write_key (const char *uri, uint8_t *key)
 Запись ключа защиты Функция используется только производителем.
result_t XIMC_API command_reset (device_t id)
 Перезагрузка контроллера.
result_t XIMC_API command_clear_fram (device_t id)
 Очистка FRAM памяти контроллера.

Управление устройством

Функции поиска и открытия/закрытия устройств

typedef char * pchar
 Не обращайте на меня внимание
typedef void(XIMC_CALLCONVlogging_callback_t )(int loglevel, const wchar_t *message, void *user_data)
 Прототип функции обратного вызова для логирования
device_t XIMC_API open_device (const char *uri)
 Открывает устройство по имени uri и возвращает идентификатор, который будет использоваться для обращения к устройству.
result_t XIMC_API close_device (device_t *id)
 Закрывает устройство
result_t XIMC_API probe_device (const char *uri)
 Проверяет, является ли устройство с уникальным идентификатором uri XIMC-совместимым.
result_t XIMC_API set_bindy_key (const char *keyfilepath)
 Устанавливливает ключ шифрования сетевой подсистемы (bindy).
device_enumeration_t XIMC_API enumerate_devices (int enumerate_flags, const char *hints)
 Перечисляет все XIMC-совместимые устройства.
result_t XIMC_API free_enumerate_devices (device_enumeration_t device_enumeration)
 Освобождает память, выделенную enumerate_devices.
int XIMC_API get_device_count (device_enumeration_t device_enumeration)
 Возвращает количество подключенных устройств.
pchar XIMC_API get_device_name (device_enumeration_t device_enumeration, int device_index)
 Возвращает имя подключенного устройства из перечисления устройств.
result_t XIMC_API get_enumerate_device_serial (device_enumeration_t device_enumeration, int device_index, uint32_t *serial)
 Возвращает серийный номер подключенного устройства из перечисления устройств.
result_t XIMC_API get_enumerate_device_information (device_enumeration_t device_enumeration, int device_index, device_information_t *device_information)
 Возвращает информацию о подключенном устройстве из перечисления устройств.
result_t XIMC_API get_enumerate_device_controller_name (device_enumeration_t device_enumeration, int device_index, controller_name_t *controller_name)
 Возвращает имя подключенного устройства из перечисления устройств.
result_t XIMC_API get_enumerate_device_stage_name (device_enumeration_t device_enumeration, int device_index, stage_name_t *stage_name)
 Возвращает имя подвижки для подключенного устройства из перечисления устройств.
result_t XIMC_API get_enumerate_device_network_information (device_enumeration_t device_enumeration, int device_index, device_network_information_t *device_network_information)
 Возвращает сетевую информацию о подключенном устройстве из перечисления устройств.
result_t XIMC_API reset_locks ()
 Снимает блокировку библиотеки в экстренном случае.
result_t XIMC_API ximc_fix_usbser_sys (const char *device_uri)
 Исправление ошибки драйвера USB в Windows.
void XIMC_API msec_sleep (unsigned int msec)
 Приостанавливает работу на указанное время
void XIMC_API ximc_version (char *version)
 Возвращает версию библиотеки
void XIMC_API logging_callback_stderr_wide (int loglevel, const wchar_t *message, void *user_data)
 Простая функция логирования на stderr в широких символах
void XIMC_API logging_callback_stderr_narrow (int loglevel, const wchar_t *message, void *user_data)
 Простая функция логирования на stderr в узких (однобайтных) символах
void XIMC_API set_logging_callback (logging_callback_t logging_callback, void *user_data)
 Устанавливает функцию обратного вызова для логирования.
result_t XIMC_API get_status (device_t id, status_t *status)
 Возвращает информацию о текущем состоянии устройства.
result_t XIMC_API get_status_calb (device_t id, status_calb_t *status, const calibration_t *calibration)
 Состояние устройства в калиброванных единицах.
result_t XIMC_API get_device_information (device_t id, device_information_t *device_information)
 Возвращает информацию об устройстве.
result_t XIMC_API command_wait_for_stop (device_t id, uint32_t refresh_interval_ms)
 Ожидание остановки контроллера
result_t XIMC_API command_homezero (device_t id)
 Запустить процедуру поиска домашней позиции, подождать её завершения и обнулить позицию в конце.

Подробное описание

Заголовочный файл для библиотеки libximc.

Макросы

#define ALARM_ON_DRIVER_OVERHEATING   0x01

Если флаг установлен, то войти в состояние Alarm при получении сигнала подступающего перегрева с драйвера.

Иначе - игнорировать подступающий перегрев с драйвера.

#define BORDER_IS_ENCODER   0x01

Если флаг установлен, границы определяются предустановленными точками на шкале позиции.

Если флаг сброшен, границы определяются концевыми выключателями.

#define BORDER_STOP_LEFT   0x02

Если флаг установлен, мотор останавливается при достижении левой границы.

#define BORDER_STOP_RIGHT   0x04

Если флаг установлен, мотор останавливается при достижении правой границы.

#define BORDERS_SWAP_MISSET_DETECTION   0x08

Если флаг установлен, мотор останавливается при достижении обоих границ.

Нужен для предотвращения поломки двигателя при неправильных настройках концевиков

#define BRAKE_ENABLED   0x01

Управление тормозом включено, если флаг установлен.

#define BRAKE_ENG_PWROFF   0x02

Тормоз отключает питание шагового мотора, если флаг установлен.

#define CONTROL_BTN_LEFT_PUSHED_OPEN   0x04

Левая кнопка нормально разомкнутая, если флаг установлен.

#define CONTROL_BTN_RIGHT_PUSHED_OPEN   0x08

Правая кнопка нормально разомкнутая, если флаг установлен.

#define CONTROL_MODE_BITS   0x03

Биты управления мотором с помощью джойстика или кнопок влево/вправо.

#define CONTROL_MODE_JOY   0x01

Управление с помощью джойстика.

#define CONTROL_MODE_LR   0x02

Управление с помощью кнопок left/right.

#define CONTROL_MODE_OFF   0x00

Управление отключено.

#define CTP_ALARM_ON_ERROR   0x04

Войти в состояние ALARM при расхождении позиции, если флаг установлен.

#define CTP_BASE   0x02

Опорой является датчик оборотов, если флаг установлен; иначе - энкодер.

#define CTP_ENABLED   0x01

Контроль позиции включен, если флаг установлен.

#define CTP_ERROR_CORRECTION   0x10

Корректировать ошибки, возникающие при проскальзывании, если флаг установлен.

Работает только с энкодером. Несовместимо с флагом CTP_ALARM_ON_ERROR.

#define DRIVER_TYPE_DISCRETE_FET   0x01

Силовой драйвер на дискретных мосфет-ключах.

Используется по умолчанию.

#define DRIVER_TYPE_EXTERNAL   0x03

Внешний силовой драйвер.

#define DRIVER_TYPE_INTEGRATE   0x02

Силовой драйвер с использованием ключей, интегрированных в микросхему.

#define EEPROM_PRECEDENCE   0x01

Если флаг установлен, то настройки в EEPROM подвижки имеют приоритет над текущими настройками и заменяют их при обнаружении EEPROM.

#define ENC_STATE_ABSENT   0x00

Энкодер не подключен.

#define ENC_STATE_MALFUNC   0x02

Энкодер подключен и неисправен.

#define ENC_STATE_OK   0x04

Энкодер подключен и работает адекватно.

#define ENC_STATE_REVERS   0x03

Энкодер подключен и исправен, но считает в другую сторону.

#define ENC_STATE_UNKNOWN   0x01

Cостояние энкодера неизвестно.

#define ENDER_SW1_ACTIVE_LOW   0x02

1 - Концевик, подключенный к ножке SW1, считается сработавшим по низкому уровню на контакте.

#define ENDER_SW2_ACTIVE_LOW   0x04

1 - Концевик, подключенный к ножке SW2, считается сработавшим по низкому уровню на контакте.

#define ENDER_SWAP   0x01

Если флаг установлен, первый концевой выключатель находится справа; иначе - слева.

#define ENGINE_ACCEL_ON   0x10

Ускорение.

Если флаг установлен, движение происходит с ускорением.

#define ENGINE_ANTIPLAY   0x08

Компенсация люфта.

Если флаг установлен, позиционер будет подходить к заданной точке всегда с одной стороны. Например, при подходе слева никаких дополнительных действий не совершается, а при подходе справа позиционер проходит целевую позицию на заданное расстояния и возвращается к ней опять же справа.

#define ENGINE_CURRENT_AS_RMS   0x02

Флаг интерпретации значения тока.

Если флаг снят, то задаваемое значение тока интерпретируется как максимальная амплитуда тока. Если флаг установлен, то задаваемое значение тока интерпретируется как среднеквадратичное значение тока (для шагового) или как значение тока, посчитанное из максимального тепловыделения (bldc).

#define ENGINE_LIMIT_CURR   0x40

Номинальный ток мотора.

Если флаг установлен, ток через мотор ограничивается заданным номинальным значением(используется только с DC двигателем).

#define ENGINE_LIMIT_RPM   0x80

Номинальная частота вращения мотора.

Если флаг установлен, частота вращения ограничивается заданным номинальным значением.

#define ENGINE_LIMIT_VOLT   0x20

Номинальное напряжение мотора.

Если флаг установлен, напряжение на моторе ограничивается заданным номинальным значением(используется только с DC двигателем).

#define ENGINE_MAX_SPEED   0x04

Флаг максимальной скорости.

Если флаг установлен, движение происходит на максимальной скорости.

#define ENGINE_REVERSE   0x01

Флаг реверса.

Связывает направление вращения мотора с направлением счета текущей позиции. При сброшенном флаге (по умолчанию) прикладываемое к мотору положительное напряжение увеличивает счетчик позиции. И наоборот, при установленном флаге счетчик позиции увеличивается, когда к мотору приложено отрицательное напряжение. Измените состояние флага, если положительное вращение мотора уменьшает счетчик позиции.

#define ENGINE_TYPE_2DC   0x02

Два мотора постоянного тока, что приводит к эмуляции двух контроллеров.

#define ENGINE_TYPE_BRUSHLESS   0x05

Безщеточный мотор.

#define ENGINE_TYPE_DC   0x01

Мотор постоянного тока.

#define ENGINE_TYPE_NONE   0x00

Это значение не нужно использовать.

#define ENGINE_TYPE_STEP   0x03

Шаговый мотор.

#define ENGINE_TYPE_TEST   0x04

Скважность в обмотках фиксирована.

Используется только производителем.

#define ENUMERATE_PROBE   0x01

Проверять, является ли устройство XIMC-совместимым.

Будте осторожны с этим флагом, т.к. он отправляет данные в устройство.

#define EXTIO_SETUP_INVERT   0x02

Eсли флаг установлен, то нули считаются активным состоянием выхода, а спадающие фронты как момент подачи входного сигнала.

#define EXTIO_SETUP_MODE_IN_ALARM   0x05

Войти в состояние ALARM при переходе сигнала в активное состояние.

#define EXTIO_SETUP_MODE_IN_BITS   0x0F

Биты, отвечающие за поведение при переходе сигнала в активное состояние.

#define EXTIO_SETUP_MODE_IN_HOME   0x04

Выполняется команда HOME.

#define EXTIO_SETUP_MODE_IN_MOVR   0x03

Выполняется команда MOVR с последними настройками.

#define EXTIO_SETUP_MODE_IN_NOP   0x00

Ничего не делать.

#define EXTIO_SETUP_MODE_IN_PWOF   0x02

Выполняет команду PWOF, обесточивая обмотки двигателя.

#define EXTIO_SETUP_MODE_IN_STOP   0x01

По переднему фронту входного сигнала делается остановка двигателя (эквивалент команды STOP).

#define EXTIO_SETUP_MODE_OUT_ALARM   0x30

Ножка находится в активном состоянии при нахождении в состоянии ALARM.

#define EXTIO_SETUP_MODE_OUT_BITS   0xF0

Биты выбора поведения на выходе.

#define EXTIO_SETUP_MODE_OUT_MOTOR_FOUND   0x50

Ножка находится в активном состоянии при обнаружении подключенного двигателя (первой обмотки).

#define EXTIO_SETUP_MODE_OUT_MOTOR_ON   0x40

Ножка находится в активном состоянии при подаче питания на обмотки.

#define EXTIO_SETUP_MODE_OUT_MOVING   0x20

Ножка находится в активном состоянии при движении.

#define EXTIO_SETUP_MODE_OUT_OFF   0x00

Ножка всегда в неактивном состоянии.

#define EXTIO_SETUP_MODE_OUT_ON   0x10

Ножка всегда в активном состоянии.

#define EXTIO_SETUP_OUTPUT   0x01

Если флаг установлен, то ножка в состоянии вывода, иначе - ввода.

#define FEEDBACK_EMF   0x04

Обратная связь по ЭДС.

#define FEEDBACK_ENC_REVERSE   0x01

Обратный счет у энкодера.

#define FEEDBACK_ENC_TYPE_AUTO   0x00

Определять тип энкодера автоматически.

#define FEEDBACK_ENC_TYPE_BITS   0xC0

Биты, отвечающие за тип энкодера.

#define FEEDBACK_ENC_TYPE_DIFFERENTIAL   0x80

Дифференциальный энкодер.

#define FEEDBACK_ENC_TYPE_SINGLE_ENDED   0x40

Недифференциальный энкодер.

#define FEEDBACK_ENCODER   0x01

Обратная связь с помощью энкодера.

#define FEEDBACK_NONE   0x05

Обратная связь отсутствует.

#define HOME_DIR_FIRST   0x001

Определяет направление первоначального движения мотора после поступления команды HOME.

Если флаг установлен - вправо; иначе - влево.

#define HOME_DIR_SECOND   0x002

Определяет направление второго движения мотора.

Если флаг установлен - вправо; иначе - влево.

#define HOME_HALF_MV   0x008

Если флаг установлен, в начале второго движения первые пол оборота сигналы завершения движения игнорируются.

#define HOME_MV_SEC_EN   0x004

Если флаг установлен, реализуется второй этап доводки в домашнюю позицию; иначе - этап пропускается.

#define HOME_STOP_FIRST_BITS   0x030

Биты, отвечающие за выбор сигнала завершения первого движения.

#define HOME_STOP_FIRST_LIM   0x030

Первое движение завершается по сигналу с концевика.

#define HOME_STOP_FIRST_REV   0x010

Первое движение завершается по сигналу с Revolution sensor.

#define HOME_STOP_FIRST_SYN   0x020

Первое движение завершается по сигналу со входа синхронизации.

#define HOME_STOP_SECOND_BITS   0x0C0

Биты, отвечающие за выбор сигнала завершения второго движения.

#define HOME_STOP_SECOND_LIM   0x0C0

Второе движение завершается по сигналу с концевика.

#define HOME_STOP_SECOND_REV   0x040

Второе движение завершается по сигналу с Revolution sensor.

#define HOME_STOP_SECOND_SYN   0x080

Второе движение завершается по сигналу со входа синхронизации.

#define HOME_USE_FAST   0x100

Если флаг установлен, используется быстрый поиск домашней позиции; иначе - традиционный.

#define JOY_REVERSE   0x01

Реверс воздействия джойстика.

Отклонение джойстика к большим значениям приводит к отрицательной скорости и наоборот.

#define LOW_UPWR_PROTECTION   0x02

Если установлен, то выключать силовую часть при напряжении меньшем LowUpwrOff.

#define LS_SHORTED   0x10

Если флаг установлен, то концевики закорочены.

#define MICROSTEP_MODE_FRAC_128   0x08

Деление шага 1/128.

#define MICROSTEP_MODE_FRAC_16   0x05

Деление шага 1/16.

#define MICROSTEP_MODE_FRAC_2   0x02

Деление шага 1/2.

#define MICROSTEP_MODE_FRAC_256   0x09

Деление шага 1/256.

#define MICROSTEP_MODE_FRAC_32   0x06

Деление шага 1/32.

#define MICROSTEP_MODE_FRAC_4   0x03

Деление шага 1/4.

#define MICROSTEP_MODE_FRAC_64   0x07

Деление шага 1/64.

#define MICROSTEP_MODE_FRAC_8   0x04

Деление шага 1/8.

#define MICROSTEP_MODE_FULL   0x01

Полношаговый режим.

#define MOVE_STATE_ANTIPLAY   0x04

Выполняется компенсация люфта, если флаг установлен.

#define MOVE_STATE_MOVING   0x01

Если флаг установлен, то контроллер пытается вращать двигателем.

Не используйте этот флаг для ожидания завершения команды движения. Вместо него используйте MVCMD_RUNNING из поля MvCmdSts.

#define MOVE_STATE_TARGET_SPEED   0x02

Флаг устанавливается при достижении заданной скорости.

#define MVCMD_ERROR   0x40

Состояние завершения движения (1 - команда движения выполнена с ошибкой, 0 - команда движения выполнена корректно).

Имеет смысл если MVCMD_RUNNING указывает на завершение движения.

#define MVCMD_HOME   0x06

Команда home.

#define MVCMD_LEFT   0x03

Команда left.

#define MVCMD_LOFT   0x07

Команда loft.

#define MVCMD_MOVE   0x01

Команда move.

#define MVCMD_MOVR   0x02

Команда movr.

#define MVCMD_NAME_BITS   0x3F

Битовая маска активной команды.

#define MVCMD_RIGHT   0x04

Команда rigt.

#define MVCMD_RUNNING   0x80

Состояние команды движения (0 - команда движения выполнена, 1 - команда движения сейчас выполняется).

#define MVCMD_SSTP   0x08

Команда плавной остановки(SSTP).

#define MVCMD_STOP   0x05

Команда stop.

#define MVCMD_UKNWN   0x00

Неизвестная команда.

#define POWER_OFF_ENABLED   0x02

Если флаг установлен, снять напряжение с обмоток по прошествии PowerOffDelay.

Иначе - не снимать.

#define POWER_REDUCT_ENABLED   0x01

Если флаг установлен, уменьшить ток по прошествии CurrReductDelay.

Иначе - не уменьшать.

#define POWER_SMOOTH_CURRENT   0x04

Если установлен, то запитывание обмоток, снятие питания или снижение/повышение тока происходят плавно со скоростью CurrentSetTime, а только потом выполняется та задача, которая вызвала это плавное изменение.

#define PWR_STATE_MAX   0x05

Обмотки запитаны максимально доступным током, который может выдать схема при данном напряжении питания.

#define PWR_STATE_NORM   0x03

Обмотки запитаны номинальным током.

#define PWR_STATE_OFF   0x01

Обмотки мотора разомкнуты и не управляются драйвером.

#define PWR_STATE_REDUCT   0x04

Обмотки намеренно запитаны уменьшенным током от рабочего для снижения потребляемой мощности.

#define PWR_STATE_UNKNOWN   0x00

Неизвестное состояние, которое не должно никогда реализовываться.

#define REV_SENS_INV   0x08

Сенсор считается активным, когда на нём 0, а инвертирование делает активным уровнем 1.

То есть если не инвертировать, то действует обычная логика - 0 это срабатывание/активация/активное состояние.

#define SETPOS_IGNORE_ENCODER   0x02

Если установлен, то счётчик энкодера не обновляется.

#define SETPOS_IGNORE_POSITION   0x01

Если установлен, то позиция в шагах и микрошагах не обновляется.

#define STATE_ALARM   0x000040

Контроллер находится в состоянии ALARM, показывая, что случилась какая-то опасная ситуация.

В состоянии ALARM все команды игнорируются пока не будет послана команда STOP и состояние ALARM деактивируется.

#define STATE_BORDERS_SWAP_MISSET   0x008000

Достижение неверной границы.

#define STATE_BRAKE   0x0200

Состояние вывода управления тормозом(флаг "1" - если на тормоз подаётся питание, "0" - если тормоз не запитан).

#define STATE_BUTTON_LEFT   0x0008

Состояние кнопки "влево" (1, если нажата).

#define STATE_BUTTON_RIGHT   0x0004

Состояние кнопки "вправо" (1, если нажата).

#define STATE_CONTR   0x00003F

Флаги состояния контроллера.

#define STATE_CONTROLLER_OVERHEAT   0x000200

Перегрелась микросхема контроллера.

#define STATE_CTP_ERROR   0x000080

Контроль позиции нарушен(используется только с шаговым двигателем).

#define STATE_CURRENT_MOTOR0   0x000000

Мотор 0.

#define STATE_CURRENT_MOTOR1   0x040000

Мотор 1.

#define STATE_CURRENT_MOTOR2   0x080000

Мотор 2.

#define STATE_CURRENT_MOTOR3   0x0C0000

Мотор 3.

#define STATE_CURRENT_MOTOR_BITS   0x0C0000

Биты, показывающие текущий рабочий мотор на платах с несколькими выходами для двигателей.

#define STATE_DIG_SIGNAL   0xFFFF

Флаги цифровых сигналов.

#define STATE_EEPROM_CONNECTED   0x000010

Подключена память EEPROM с настройками.

#define STATE_ENC_A   0x2000

Состояние ножки A энкодера(флаг "1", если энкодер активен).

#define STATE_ENC_B   0x4000

Состояние ножки B энкодера(флаг "1", если энкодер активен).

#define STATE_ERRC   0x000001

Недопустимая команда.

#define STATE_ERRD   0x000002

Нарушение целостности данных.

#define STATE_ERRV   0x000004

Недопустимое значение данных.

#define STATE_GPIO_LEVEL   0x0020

Состояние ввода/вывода общего назначения.

#define STATE_GPIO_PINOUT   0x0010

Если флаг установлен, ввод/вывод общего назначения работает как выход; если флаг сброшен, ввод/вывод работает как вход.

#define STATE_LEFT_EDGE   0x0002

Достижение левой границы.

#define STATE_LOW_USB_VOLTAGE   0x002000

Слишком низкое напряжение на USB.

#define STATE_OVERLOAD_POWER_CURRENT   0x000800

Превышен максимальный ток потребления силовой части.

#define STATE_OVERLOAD_POWER_VOLTAGE   0x000400

Превышено напряжение на силовой части.

#define STATE_OVERLOAD_USB_CURRENT   0x004000

Превышен максимальный ток потребления USB.

#define STATE_OVERLOAD_USB_VOLTAGE   0x001000

Превышено напряжение на USB.

#define STATE_POWER_OVERHEAT   0x000100

Перегрелась силовая часть платы.

#define STATE_REV_SENSOR   0x0400

Состояние вывода датчика оборотов(флаг "1", если датчик активен).

#define STATE_RIGHT_EDGE   0x0001

Достижение правой границы.

#define STATE_SECUR   0x73FFC0

Флаги опасности.

#define STATE_SYNC_INPUT   0x0800

Состояние входа синхронизации(1, если вход синхронизации активен).

#define STATE_SYNC_OUTPUT   0x1000

Состояние выхода синхронизации(1, если выход синхронизации активен).

#define SYNCIN_ENABLED   0x01

Включение необходимости импульса синхронизации для начала движения.

#define SYNCIN_INVERT   0x02

Если установлен - срабатывает по переходу из 1 в 0.

Иначе - из 0 в 1.

#define SYNCOUT_ENABLED   0x01

Синхронизация выхода работает согласно настройкам, если флаг установлен.

В ином случае значение выхода фиксировано и подчиняется SYNCOUT_STATE.

#define SYNCOUT_IN_STEPS   0x08

Если флаг установлен использовать шаги/импульсы энкодера для выходных импульсов синхронизации вместо миллисекунд.

#define SYNCOUT_INVERT   0x04

Нулевой логический уровень является активным, если флаг установлен, а единичный - если флаг сброшен.

#define SYNCOUT_ONPERIOD   0x40

Выдать импульс синхронизации после прохождения SyncOutPeriod отсчётов.

#define SYNCOUT_ONSTART   0x10

Генерация синхронизирующего импульса при начале движения.

#define SYNCOUT_ONSTOP   0x20

Генерация синхронизирующего импульса при остановке.

#define SYNCOUT_STATE   0x02

Когда значение выхода управляется напрямую (см.

флаг SYNCOUT_ENABLED), значение на выходе соответствует значению этого флага.

#define TS_TYPE_BITS   0x07

Биты, отвечающие за тип температурного датчика.

#define UART_PARITY_BITS   0x03

Биты, отвечающие за выбор четности.

#define WIND_A_STATE_ABSENT   0x00

Обмотка A не подключена.

#define WIND_A_STATE_MALFUNC   0x02

Короткое замыкание на обмотке A.

#define WIND_A_STATE_OK   0x03

Обмотка A работает адекватно.

#define WIND_A_STATE_UNKNOWN   0x01

Cостояние обмотки A неизвестно.

#define WIND_B_STATE_ABSENT   0x00

Обмотка B не подключена.

#define WIND_B_STATE_MALFUNC   0x20

Короткое замыкание на обмотке B.

#define WIND_B_STATE_OK   0x30

Обмотка B работает адекватно.

#define WIND_B_STATE_UNKNOWN   0x10

Cостояние обмотки B неизвестно.

#define XIMC_API

Library import macro Macros allows to automatically import function from shared library.

It automatically expands to dllimport on msvc when including header file

Типы

typedef void(XIMC_CALLCONV * logging_callback_t)(int loglevel, const wchar_t *message, void *user_data)

Прототип функции обратного вызова для логирования

Аргументы
loglevelуровень логирования
messageсообщение

Функции

result_t XIMC_API close_device ( device_t id)

Закрывает устройство

Аргументы
id- идентификатор устройства
result_t XIMC_API command_add_sync_in_action ( device_t  id,
const command_add_sync_in_action_t the_command_add_sync_in_action 
)

Это команда добавляет один элемент в буфер FIFO команд, выполняемых при получении входного импульса синхронизации.

Каждый импульс синхронизации либо выполнится то действие, которое описано в SSNI, если буфер пуст, либо самое старое из загруженных в буфер действий временно подменяет скорость и координату в SSNI. В последнем случае это действие стирается из буфера. Количество оставшихся пустыми элементов буфера можно узнать в структуре GETS.

Аргументы
idидентификатор устройства
result_t XIMC_API command_change_motor ( device_t  id,
const command_change_motor_t the_command_change_motor 
)

Сменить двигатель - команда для переключения выходного реле.

Аргументы
idидентификатор устройства
result_t XIMC_API command_clear_fram ( device_t  id)

Очистка FRAM памяти контроллера.

Функция используется только производителем.

Аргументы
idидентификатор устройства
result_t XIMC_API command_eeread_settings ( device_t  id)

Чтение настроек контроллера из EEPROM памяти позиционера, которые непосредственно связаны с позиционером и не меняются без его механической переделки.

Эта операция также автоматически выполняется при подключении позиционера с EEPROM памятью. Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
result_t XIMC_API command_eesave_settings ( device_t  id)

Запись настроек контроллера в EEPROM память позиционера, которые непосредственно связаны с позиционером и не меняются без его механической переделки.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
result_t XIMC_API command_home ( device_t  id)

Поля скоростей знаковые.

Положительное направление это вправо. Нулевое значение флага направления инвертирует направление, заданное скоростью. Ограничение, накладываемые концевиками, действуют так же, за исключением того, что касание концевика не приводит к остановке. Ограничения максимальной скорости, ускорения и замедления действуют. 1) Двигает мотор согласно скоростям FastHome, uFastHome и флагу HOME_DIR_FAST до достижения концевика, если флаг HOME_STOP_ENDS установлен, до достижения сигнала с входа синхронизации, если установлен флаг HOME_STOP_SYNC (важно как можно точнее поймать момент срабатывания концевика) или до поступления сигнала с датчика оборотов, если установлен флаг HOME_STOP_REV_SN 2) далее двигает согласно скоростям SlowHome, uSlowHome и флагу HOME_DIR_SLOW до достижения сигнала с входа синхронизации, если установлен флаг HOME_MV_SEC. Если флаг HOME_MV_SEC сброшен, пропускаем этот пункт. 3) далее двигает мотор согласно скоростям FastHome, uFastHome и флагу HOME_DIR_SLOW на расстояние HomeDelta, uHomeDelta. Описание флагов и переменных см. описание команд GHOM/SHOM

Аргументы
idидентификатор устройства
См. также
home_settings_t
get_home_settings
set_home_settings
result_t XIMC_API command_homezero ( device_t  id)

Запустить процедуру поиска домашней позиции, подождать её завершения и обнулить позицию в конце.

Это удобный путь для калибровки нулевой позиции.

Аргументы
idидентификатор устройства
[out]retRESULT_OK, если контроллер завершил выполнение home и zero корректно или результат первого запроса к контроллеру со статусом отличным от RESULT_OK.
result_t XIMC_API command_left ( device_t  id)

При получении команды "left" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), влево.

Аргументы
idидентификатор устройства
result_t XIMC_API command_loft ( device_t  id)

При получении команды "loft" двигатель смещается из текущей точки на расстояние GENG::Antiplay, затем двигается в ту же точку.

Аргументы
idидентификатор устройства
result_t XIMC_API command_move ( device_t  id,
int  Position,
int  uPosition 
)

При получении команды "move" двигатель начинает перемещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), к точке указанной в полях Position, uPosition.

Для шагового мотора uPosition задает значение микрошага, для DC мотора это поле не используется.

Аргументы
Positionзаданная позиция.
uPositionчасть позиции в микрошагах. Диапазон: -255..255.
idидентификатор устройства
result_t XIMC_API command_movr ( device_t  id,
int  DeltaPosition,
int  uDeltaPosition 
)

При получении команды "movr" двигатель начинает смещаться (если не используется режим "ТТЛСинхроВхода"), с заранее установленными параметрами (скорость, ускорение, удержание), влево или вправо (зависит от знака DeltaPosition) на количество импульсов указанное в полях DeltaPosition, uDeltaPosition.

Для шагового мотора uDeltaPosition задает значение микрошага, для DC мотора это поле не используется.

Аргументы
DeltaPositionсмещение.
uDeltaPositionчасть смещения в микрошагах. Диапазон: -255..255.
idидентификатор устройства
result_t XIMC_API command_power_off ( device_t  id)

Немедленное отключение питания двигателя вне зависимости от его состояния.

Команда предначена для ручного управления питанием двигателя. Не следует использовать эту команду для отключения двигателя во время движения, так как питание может снова включиться для завершения движения. Для автоматического управления питанием двигателя и его отключении после остановки следует использовать систему управления электропитанием.

Аргументы
idидентификатор устройства
См. также
get_power_settings
set_power_settings
result_t XIMC_API command_read_robust_settings ( device_t  id)

Чтение важных настроек (калибровочные коэффициенты и т.

п.) контроллера из flash памяти в оперативную, заменяя текущие настройки.

Аргументы
idидентификатор устройства
result_t XIMC_API command_read_settings ( device_t  id)

Чтение всех настроек контроллера из flash памяти в оперативную, заменяя текущие настройки.

Аргументы
idидентификатор устройства
result_t XIMC_API command_reset ( device_t  id)

Перезагрузка контроллера.

Функция используется только производителем.

Аргументы
idидентификатор устройства
result_t XIMC_API command_right ( device_t  id)

При получении команды "rigt" двигатель начинает смещаться, с заранее установленными параметрами (скорость, ускорение), вправо.

Аргументы
idидентификатор устройства
result_t XIMC_API command_save_robust_settings ( device_t  id)

При получении команды контроллер выполняет операцию сохранения важных настроек (калибровочные коэффициенты и т.

п.) во встроенную энергонезависимую память контроллера.

Аргументы
idидентификатор устройства
result_t XIMC_API command_save_settings ( device_t  id)

При получении команды контроллер выполняет операцию сохранения текущих настроек во встроенную энергонезависимую память контроллера.

Аргументы
idидентификатор устройства
result_t XIMC_API command_sstp ( device_t  id)

Плавная остановка.

Двигатель останавливается с ускорением замедления.

Аргументы
idидентификатор устройства
result_t XIMC_API command_start_measurements ( device_t  id)

Начать измерения и буферизацию скорости, ошибки следования.

Аргументы
idидентификатор устройства
result_t XIMC_API command_stop ( device_t  id)

Немедленная остановка двигателя, переход в состояние STOP, ключи в режиме BREAK (обмотки накоротко замкнуты), режим "удержания" дезактивируется для DC двигателей, удержание тока в обмотках для шаговых двигателей (с учётом Power management настроек).

Аргументы
idидентификатор устройства
result_t XIMC_API command_update_firmware ( const char *  uri,
const uint8_t *  data,
uint32_t  data_size 
)

Обновление прошивки

Аргументы
uriидентификатор устройства
dataуказатель на массив байтов прошивки
data_sizeразмер массива в байтах
result_t XIMC_API command_wait_for_stop ( device_t  id,
uint32_t  refresh_interval_ms 
)

Ожидание остановки контроллера

Аргументы
idидентификатор устройства
refresh_interval_msИнтервал обновления. Функция ждет столько миллисекунд между отправками контроллеру запроса get_status для проверки статуса остановки. Рекомендуемое значение интервала обновления - 10 мс. Используйте значения меньше 3 мс только если это необходимо - малые значения интервала обновления незначительно ускоряют обнаружение остановки, но создают существенно больший поток данных в канале связи контроллер-компьютер.
[out]retRESULT_OK, если контроллер остановился, в противном случае первый результат выполнения команды get_status со статусом отличным от RESULT_OK.
result_t XIMC_API command_zero ( device_t  id)

Устанавливает текущую позицию и позицию в которую осуществляется движение по командам move и movr равными нулю для всех случаев, кроме движения к позиции назначения.

В последнем случае установить нулём текущую позицию, а позицию назначения пересчитать так, что в абсолютном положении точка назначения не меняется. То есть если мы находились в точке 400 и двигались к 500, то команда Zero делает текущую позицию 0, а позицию назначения - 100. Не изменяет режим движения т.е. если движение осуществлялось, то оно продолжается; если мотор находился в режиме "удержания", то тип удержания сохраняется.

Аргументы
idидентификатор устройства
device_enumeration_t XIMC_API enumerate_devices ( int  enumerate_flags,
const char *  hints 
)

Перечисляет все XIMC-совместимые устройства.

Аргументы
[in]enumerate_flagsфлаги поиска устройств
[in]hintsдополнительная информация для поиска hints это строка вида "ключ1=значение1\nключ2=значение2". Неизвестные пары ключ-значение игнорируются. Список ключей: addr - используется вместе с флагом ENUMERATE_NETWORK. Ненулевое значение это адрес или список адресов с перечислением через запятую удаленных хостов на которых происходит поиск устройств, отсутствующее значение это подключение посредством широковещательного запроса. adapter_addr - используется вместе с флагом ENUMERATE_NETWORK. Ненулевое значение это IP адрес сетевого адаптера. Сетевое устройство ximc должно быть в локальной сети, к которой подключён этот адаптер. Для перечисления сетевых устройств обязательно нужно сначала вызвать функцию установки сетевого ключа set_bindy_key.
result_t XIMC_API free_enumerate_devices ( device_enumeration_t  device_enumeration)

Освобождает память, выделенную enumerate_devices.

Аргументы
[in]device_enumerationзакрытый указатель на данные о перечисленных устойствах
result_t XIMC_API get_accessories_settings ( device_t  id,
accessories_settings_t accessories_settings 
)

Чтение информации о дополнительных аксессуарах из EEPROM.

Аргументы
idидентификатор устройства
[out]accessories_settingsструктура, содержащая информацию о дополнительных аксессуарах
result_t XIMC_API get_analog_data ( device_t  id,
analog_data_t analog_data 
)

Чтение аналоговых данных, содержащих данные с АЦП и нормированные значения величин.

Эта функция используется для тестирования и калибровки устройства.

Аргументы
idидентификатор устройства
[out]analog_dataаналоговые данные
result_t XIMC_API get_bootloader_version ( device_t  id,
unsigned int *  Major,
unsigned int *  Minor,
unsigned int *  Release 
)

Чтение номера версии прошивки контроллера.

Аргументы
idидентификатор устройства
[out]Majorномер основной версии
[out]Minorномер дополнительной версии
[out]Releaseномер релиза
result_t XIMC_API get_brake_settings ( device_t  id,
brake_settings_t brake_settings 
)

Чтение настроек управления тормозом.

Аргументы
idидентификатор устройства
[out]brake_settingsструктура, содержащая настройки управления тормозом
result_t XIMC_API get_calibration_settings ( device_t  id,
calibration_settings_t calibration_settings 
)

Команда чтения калибровочных коэффициентов.

Эта функция заполняет структуру калибровочных коэффициентов.

См. также
calibration_settings_t
Аргументы
idидентификатор устройства
[out]calibration_settingsкалибровочные коэффициенты
result_t XIMC_API get_chart_data ( device_t  id,
chart_data_t chart_data 
)

Команда чтения состояния обмоток и других не часто используемых данных.

Предназначена в первую очередь для получения данных для построения графиков в паре с командой GETS.

См. также
chart_data_t
Аргументы
idидентификатор устройства
[out]chart_dataструктура chart_data.
result_t XIMC_API get_control_settings ( device_t  id,
control_settings_t control_settings 
)

Чтение настроек управления мотором.

При выборе CTL_MODE=1 включается управление мотором с помощью джойстика. В этом режиме при отклонении джойстика на максимум двигатель стремится двигаться со скоростью MaxSpeed [i], где i=0, если предыдущим использованием этого режима не было выбрано другое i. Кнопки переключают номер скорости i. При выборе CTL_MODE=2 включается управление мотором с помощью кнопок left/right. При нажатии на кнопки двигатель начинает двигаться в соответствующую сторону со скоростью MaxSpeed [0], по истечении времени Timeout[i] мотор двигается со скоростью MaxSpeed [i+1]. При переходе от MaxSpeed [i] на MaxSpeed [i+1] действует ускорение, как обычно.

Аргументы
idидентификатор устройства
[out]control_settingsструктура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо.
result_t XIMC_API get_controller_name ( device_t  id,
controller_name_t controller_name 
)

Чтение пользовательского имени контроллера и настроек из FRAM.

Аргументы
idидентификатор устройства
[out]controller_nameструктура, содержащая установленное пользовательское имя контроллера и флаги настроек
result_t XIMC_API get_ctp_settings ( device_t  id,
ctp_settings_t ctp_settings 
)

Чтение настроек контроля позиции(для шагового двигателя).

При управлении ШД с энкодером (CTP_BASE 0) появляется возможность обнаруживать потерю шагов. Контроллер знает кол-во шагов на оборот (GENG::StepsPerRev) и разрешение энкодера (GFBS::IPT). При включении контроля (флаг CTP_ENABLED), контроллер запоминает текущую позицию в шагах ШД и текущую позицию энкодера. Далее, на каждом шаге позиция энкодера преобразовывается в шаги и если разница оказывается больше CTPMinError, устанавливается флаг STATE_CTP_ERROR. При управлении ШД с датчиком оборотов (CTP_BASE 1), позиция контролируется по нему. По активному фронту на входе синхронизации контроллер запоминает текущее значение шагов. Далее, при каждом обороте проверяет, на сколько шагов сместились. При рассогласовании более CTPMinError устанавливается флаг STATE_CTP_ERROR.

Аргументы
idидентификатор устройства
[out]ctp_settingsструктура, содержащая настройки контроля позиции
result_t XIMC_API get_debug_read ( device_t  id,
debug_read_t debug_read 
)

Чтение данных из прошивки для отладки и поиска неисправностей.

Получаемые данные зависят от версии прошивки, истории и контекста использования.

Аргументы
idидентификатор устройства
[out]debug_readДанные для отладки.
int XIMC_API get_device_count ( device_enumeration_t  device_enumeration)

Возвращает количество подключенных устройств.

Аргументы
[in]device_enumerationзакрытый указатель на данные о перечисленных устойствах
result_t XIMC_API get_device_information ( device_t  id,
device_information_t device_information 
)

Возвращает информацию об устройстве.

Все входные параметры должны быть указателями на выделенные области памяти длиной не менее 10 байт. Команда доступна как из инициализированного состояния, так и из исходного.

Аргументы
idидентификатор устройства.
[out]device_informationинформация об устройстве Информация об устройстве.
См. также
get_device_information
pchar XIMC_API get_device_name ( device_enumeration_t  device_enumeration,
int  device_index 
)

Возвращает имя подключенного устройства из перечисления устройств.

Возвращает имя устройства с номером device_index.

Аргументы
[in]device_enumerationзакрытый указатель на данные о перечисленных устойствах
[in]device_indexномер устройства
result_t XIMC_API get_edges_settings ( device_t  id,
edges_settings_t edges_settings 
)

Чтение настроек границ и концевых выключателей.

См. также
set_edges_settings
Аргументы
idидентификатор устройства
[out]edges_settingsнастройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей
result_t XIMC_API get_encoder_information ( device_t  id,
encoder_information_t encoder_information 
)

Чтение информации об энкодере из EEPROM.

Аргументы
idидентификатор устройства
[out]encoder_informationструктура, содержащая информацию об энкодере
result_t XIMC_API get_encoder_settings ( device_t  id,
encoder_settings_t encoder_settings 
)

Чтение настроек энкодера из EEPROM.

Аргументы
idидентификатор устройства
[out]encoder_settingsструктура, содержащая настройки энкодера
result_t XIMC_API get_engine_settings ( device_t  id,
engine_settings_t engine_settings 
)

Чтение настроек мотора.

Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.

См. также
set_engine_settings
Аргументы
idидентификатор устройства
[out]engine_settingsструктура с настройками мотора
result_t XIMC_API get_entype_settings ( device_t  id,
entype_settings_t entype_settings 
)

Возвращает информацию о типе мотора и силового драйвера.

Аргументы
idидентификатор устройства
[out]EngineTypeтип мотора
[out]DriverTypeтип силового драйвера
result_t XIMC_API get_enumerate_device_controller_name ( device_enumeration_t  device_enumeration,
int  device_index,
controller_name_t controller_name 
)

Возвращает имя подключенного устройства из перечисления устройств.

Возвращает имя устройства с номером device_index.

Аргументы
[in]device_enumerationзакрытый указатель на данные о перечисленных устойствах
[in]device_indexномер устройства
[out]controllername имя устройства
result_t XIMC_API get_enumerate_device_information ( device_enumeration_t  device_enumeration,
int  device_index,
device_information_t device_information 
)

Возвращает информацию о подключенном устройстве из перечисления устройств.

Возвращает информацию о устройстве с номером device_index.

Аргументы
[in]device_enumerationзакрытый указатель на данные о перечисленных устойствах
[in]device_indexномер устройства
[out]device_informationинформация об устройстве
result_t XIMC_API get_enumerate_device_network_information ( device_enumeration_t  device_enumeration,
int  device_index,
device_network_information_t device_network_information 
)

Возвращает сетевую информацию о подключенном устройстве из перечисления устройств.

Возвращает сетевую информацию о устройстве с номером device_index.

Аргументы
[in]device_enumerationзакрытый указатель на данные о перечисленных устойствах
[in]device_indexномер устройства
[out]device_network_informationсетевая информация об устройстве
result_t XIMC_API get_enumerate_device_serial ( device_enumeration_t  device_enumeration,
int  device_index,
uint32_t *  serial 
)

Возвращает серийный номер подключенного устройства из перечисления устройств.

Возвращает серийный номер устройства с номером device_index.

Аргументы
[in]device_enumerationзакрытый указатель на данные о перечисленных устойствах
[in]device_indexномер устройства
[in]serialсерийный номер устройства
result_t XIMC_API get_enumerate_device_stage_name ( device_enumeration_t  device_enumeration,
int  device_index,
stage_name_t stage_name 
)

Возвращает имя подвижки для подключенного устройства из перечисления устройств.

Возвращает имя подвижки устройства с номером device_index.

Аргументы
[in]device_enumerationзакрытый указатель на данные о перечисленных устойствах
[in]device_indexномер устройства
[out]stagename имя подвижки
result_t XIMC_API get_extio_settings ( device_t  id,
extio_settings_t extio_settings 
)

Команда чтения параметров настройки режимов внешнего ввода/вывода.

См. также
set_extio_settings
Аргументы
idидентификатор устройства
[out]extio_settingsнастройки EXTIO
result_t XIMC_API get_feedback_settings ( device_t  id,
feedback_settings_t feedback_settings 
)

Чтение настроек обратной связи

Аргументы
idидентификатор устройства
[out]IPSколичество отсчётов энкодера на оборот вала. Диапазон: 1..65535. Поле устарело, рекомендуется записывать 0 в IPS и использовать расширенное поле CountsPerTurn. Может потребоваться обновление микропрограммы контроллера до последней версии.
[out]FeedbackTypeтип обратной связи
[out]FeedbackFlagsфлаги обратной связи
[out]CountsPerTurnколичество отсчётов энкодера на оборот вала. Диапазон: 1..4294967295. Для использования поля CountsPerTurn нужно записать 0 в поле IPS, иначе будет использоваться значение из поля IPS.
result_t XIMC_API get_firmware_version ( device_t  id,
unsigned int *  Major,
unsigned int *  Minor,
unsigned int *  Release 
)

Чтение номера версии прошивки контроллера.

Аргументы
idидентификатор устройства
[out]Majorномер основной версии
[out]Minorномер дополнительной версии
[out]Releaseномер релиза
result_t XIMC_API get_gear_information ( device_t  id,
gear_information_t gear_information 
)

Чтение информации о редукторе из EEPROM.

Аргументы
idидентификатор устройства
[out]gear_informationструктура, содержащая информацию о редукторе
result_t XIMC_API get_gear_settings ( device_t  id,
gear_settings_t gear_settings 
)

Чтение настроек редуктора из EEPROM.

Аргументы
idидентификатор устройства
[out]gear_settingsструктура, содержащая настройки редуктора
result_t XIMC_API get_globally_unique_identifier ( device_t  id,
globally_unique_identifier_t globally_unique_identifier 
)

Считывает уникальный идентификатор каждого чипа, это значение не является случайным.

Уникальный идентификатор может быть использован в качестве инициализационного вектора для операций шифрования бутлоадера или в качестве серийного номера для USB и других применений.

Аргументы
idидентификатор устройства
[out]результатполей 0-3 определяет уникальный 128-битный идентификатор.
result_t XIMC_API get_hallsensor_information ( device_t  id,
hallsensor_information_t hallsensor_information 
)

Чтение информации о датчиках Холла из EEPROM.

Аргументы
idидентификатор устройства
[out]hallsensor_informationструктура, содержащая информацию о датчиках Холла
result_t XIMC_API get_hallsensor_settings ( device_t  id,
hallsensor_settings_t hallsensor_settings 
)

Чтение настроек датчиков Холла из EEPROM.

Аргументы
idидентификатор устройства
[out]hallsensor_settingsструктура, содержащая настройки датчиков Холла
result_t XIMC_API get_home_settings ( device_t  id,
home_settings_t home_settings 
)

Команда чтения настроек для подхода в home position.

Эта функция заполняет структуру настроек, использующихся для калибровки позиции, в память контроллера.

См. также
home_settings_t
Аргументы
idидентификатор устройства
[out]home_settingsнастройки калибровки позиции
result_t XIMC_API get_init_random ( device_t  id,
init_random_t init_random 
)

Чтение случайного числа из контроллера.

Аргументы
idидентификатор устройства
[out]случайнаяпоследовательность, сгенерированная контроллером
result_t XIMC_API get_joystick_settings ( device_t  id,
joystick_settings_t joystick_settings 
)

Чтение настроек джойстика.

При отклонении джойстика более чем на DeadZone от центрального положения начинается движение со скоростью, определяемой отклонением джойстика от DeadZone до 100% отклонения, причем отклонению DeadZone соответствует нулевая скорость, а 100% отклонения соответствует MaxSpeed i, где i=0, если предыдущим использованием этого режима не было выбрано другое i. Если следующая скорость в таблице скоростей нулевая (целая и микрошаговая части), то перехода на неё не происходит. DeadZone вычисляется в десятых долях процента отклонения от центра (JoyCenter) до правого или левого максимума. Расчёт DeadZone проиллюстрирован на графике: !/attachments/download/5563/range25p.png! Зависимость между отклонением и скоростью экспоненциальная, что позволяет без переключения режимов скорости сочетать высокую подвижность и точность. На графике ниже показан пример экспоненциальной зависимости скорости и работы мертвой зоны. !/attachments/download/3092/ExpJoystick.png! Параметр нелинейнойсти можно менять. Нулевой параметр нелинейности соответствует линейной зависимости.

Аргументы
idидентификатор устройства
[out]joystick_settingsструктура, содержащая настройки джойстика
result_t XIMC_API get_measurements ( device_t  id,
measurements_t measurements 
)

Команда чтения буфера данных для построения графиков скорости и ошибки следования.

Заполнение буфера начинается по команде "start_measurements". Буффер вмещает 25 точек, точки снимаются с периодом 1 мс. Для создания устойчивой системы следует считывать данные каждые 20 мс, если буффер полностью заполнен, то рекомендуется повторять считывания каждые 5 мс до момента пока буффер вновь не станет заполнен 20-ю точками.

См. также
get_measurements_t
Аргументы
idидентификатор устройства
[out]get_measurementsструктура с буфером и его длинной.
result_t XIMC_API get_motor_information ( device_t  id,
motor_information_t motor_information 
)

Чтение информации о двигателе из EEPROM.

Аргументы
idидентификатор устройства
[out]motor_informationструктура, содержащая информацию о двигателе
result_t XIMC_API get_motor_settings ( device_t  id,
motor_settings_t motor_settings 
)

Чтение настроек двигателя из EEPROM.

Аргументы
idидентификатор устройства
[out]motor_settingsструктура, содержащая настройки двигателя
result_t XIMC_API get_move_settings ( device_t  id,
move_settings_t move_settings 
)

Команда чтения настроек перемещения (скорость, ускорение, threshold и скорость в режиме антилюфта).

Аргументы
idидентификатор устройства
[out]move_settingsструктура, содержащая настройки движения: скорость, ускорение, и т.д.
result_t XIMC_API get_nonvolatile_memory ( device_t  id,
nonvolatile_memory_t nonvolatile_memory 
)

Чтение пользовательских данных из FRAM.

Аргументы
idидентификатор устройства
[out]nonvolatile_memoryструктура, содержащая установленные пользовательские данные
result_t XIMC_API get_pid_settings ( device_t  id,
pid_settings_t pid_settings 
)

Чтение ПИД коэффициентов.

Эти коэффициенты определяют поведение позиционера. Коэффициенты различны для разных позиционеров.

См. также
set_pid_settings
Аргументы
idидентификатор устройства
[out]pid_settingsнастройки ПИД
result_t XIMC_API get_position ( device_t  id,
get_position_t the_get_position 
)

Считывает значение положения в шагах и микрошагах для шагового двигателя и в шагах энкодера всех двигателей.

Аргументы
idидентификатор устройства
[out]positionструктура, содержащая настройки движения: скорость, ускорение, и т.д.
result_t XIMC_API get_power_settings ( device_t  id,
power_settings_t power_settings 
)

Команда чтения параметров питания мотора.

Используется только с шаговым двигателем. Используется только с шаговым двигателем.

Аргументы
idидентификатор устройства
[out]power_settingsструктура, содержащая настройки питания шагового мотора
result_t XIMC_API get_secure_settings ( device_t  id,
secure_settings_t secure_settings 
)

Команда записи установок защит.

Аргументы
idидентификатор устройства
[out]secure_settingsнастройки, определяющие максимально допустимые параметры, для защиты оборудования
См. также
status_t::flags
result_t XIMC_API get_serial_number ( device_t  id,
unsigned int *  SerialNumber 
)

Чтение серийного номера контроллера.

Аргументы
idидентификатор устройства
[out]SerialNumberсерийный номер контроллера
result_t XIMC_API get_stage_information ( device_t  id,
stage_information_t stage_information 
)

Чтение информации о позиционере из EEPROM.

Аргументы
idидентификатор устройства
[out]stage_informationструктура, содержащая информацию о позиционере
result_t XIMC_API get_stage_name ( device_t  id,
stage_name_t stage_name 
)

Чтение пользовательского имени подвижки из EEPROM.

Аргументы
idидентификатор устройства
[out]stage_nameструктура, содержащая установленное пользовательское имя позиционера
result_t XIMC_API get_stage_settings ( device_t  id,
stage_settings_t stage_settings 
)

Чтение настроек позиционера из EEPROM.

Аргументы
idидентификатор устройства
[out]stage_settingsструктура, содержащая настройки позиционера
result_t XIMC_API get_status ( device_t  id,
status_t status 
)

Возвращает информацию о текущем состоянии устройства.

Аргументы
idидентификатор устройства
[out]statusструктура с информацией о текущем состоянии устройства Состояние устройства. Эта структура содержит основные параметры текущего состояния контроллера, такие как скорость, позиция и флаги состояния.
См. также
get_status
result_t XIMC_API get_status_calb ( device_t  id,
status_calb_t status,
const calibration_t calibration 
)

Состояние устройства в калиброванных единицах.

Эта структура содержит основные параметры текущего состояния контроллера, такие как скорость, позиция и флаги состояния, размерные величины выводятся в калиброванных единицах.

См. также
get_status
result_t XIMC_API get_sync_in_settings ( device_t  id,
sync_in_settings_t sync_in_settings 
)

Чтение настроек для входного импульса синхронизации.

Эта функция считывает структуру с настройками синхронизации, определяющими поведение входа синхронизации, в память контроллера.

См. также
set_sync_in_settings
Аргументы
idидентификатор устройства
[out]sync_in_settingsнастройки синхронизации
result_t XIMC_API get_sync_out_settings ( device_t  id,
sync_out_settings_t sync_out_settings 
)

Чтение настроек для выходного импульса синхронизации.

Эта функция считывает структуру с настройками синхронизации, определяющими поведение выхода синхронизации, в память контроллера.

result_t XIMC_API get_uart_settings ( device_t  id,
uart_settings_t uart_settings 
)

Команда чтения настроек UART.

Эта функция заполняет структуру настроек UART.

См. также
uart_settings_t
Аргументы
SpeedCкорость UART
[out]uart_settingsнастройки UART
result_t XIMC_API goto_firmware ( device_t  id,
uint8_t *  ret 
)

Перезагрузка в прошивку в контроллере

Аргументы
idидентификатор устройства
[out]retRESULT_OK, если переход из загрузчика в прошивку возможен. После ответа на эту команду выполняется переход. RESULT_NO_FIRMWARE, если прошивка не найдена. RESULT_ALREADY_IN_FIRMWARE, если эта команда была вызвана из прошивки.
result_t XIMC_API has_firmware ( const char *  uri,
uint8_t *  ret 
)

Проверка наличия прошивки в контроллере

Аргументы
uriуникальный идентификатор ресурса устройства
[out]retноль, если прошивка присутствует
void XIMC_API logging_callback_stderr_narrow ( int  loglevel,
const wchar_t *  message,
void *  user_data 
)

Простая функция логирования на stderr в узких (однобайтных) символах

Аргументы
loglevelуровень логирования
messageсообщение
void XIMC_API logging_callback_stderr_wide ( int  loglevel,
const wchar_t *  message,
void *  user_data 
)

Простая функция логирования на stderr в широких символах

Аргументы
loglevelуровень логирования
messageсообщение
void XIMC_API msec_sleep ( unsigned int  msec)

Приостанавливает работу на указанное время

Аргументы
msecвремя в миллисекундах
device_t XIMC_API open_device ( const char *  uri)

Открывает устройство по имени uri и возвращает идентификатор, который будет использоваться для обращения к устройству.

Аргументы
[in]uri- уникальный идентификатор устройства uri устройства имеет вид "xi-com:port" или "xi-net://host/serial" или "xi-emu:///file". Для USB-COM устройства "port" это uri устройства в ОС. Например "xi-com:\\.\COM3" в Windows или "xi-com:/dev/tty.s123" в Linux/Mac. Для сетевого устройства "host" это IPv4 адрес или полностью определённое имя домена, "serial" это серийный номер устройства в шестнадцатеричной системе. Например "xi-net://192.168.0.1/00001234" или "xi-net://hostname.com/89ABCDEF". Замечание: для открытия сетевого устройства обязательно нужно сначала вызвать функцию установки сетевого ключа set_bindy_key. Для виртуального устройства "file" это путь к файлу с сохраненным состоянием устройства. Если файл не существует, он будет создан и инициализирован значениями по умолчанию. Например "xi-emu:///C:/dir/file.bin" в Windows или "xi-emu:///home/user/file.bin" в Linux/Mac.
result_t XIMC_API probe_device ( const char *  uri)

Проверяет, является ли устройство с уникальным идентификатором uri XIMC-совместимым.

Будьте осторожны с вызовом этой функции для неизвестных устройств, т.к. она отправляет данные.

Аргументы
[in]uri- уникальный идентификатор устройства
result_t XIMC_API service_command_updf ( device_t  id)

Команда переводит контроллер в режим обновления прошивки.

Получив такую команду, прошивка платы устанавливает флаг (для загрузчика), отправляет эхо-ответ и перезагружает контроллер.

result_t XIMC_API set_accessories_settings ( device_t  id,
const accessories_settings_t accessories_settings 
)

Запись информации о дополнительных аксессуарах в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]accessories_settingsструктура, содержащая информацию о дополнительных аксессуарах
result_t XIMC_API set_bindy_key ( const char *  keyfilepath)

Устанавливливает ключ шифрования сетевой подсистемы (bindy).

Аргументы
[in]keyfilepathполный путь к файлу ключа В случае использования сетевых устройств эта функция должна быть вызвана до функций enumerate_devices и open_device.
result_t XIMC_API set_brake_settings ( device_t  id,
const brake_settings_t brake_settings 
)

Запись настроек управления тормозом.

Аргументы
idидентификатор устройства
[in]brake_settingsструктура, содержащая настройки управления тормозом
result_t XIMC_API set_calibration_settings ( device_t  id,
const calibration_settings_t calibration_settings 
)

Команда записи калибровочных коэффициентов.

Эта функция записывает структуру калибровочных коэффициентов в память контроллера.

См. также
calibration_settings_t
Аргументы
idидентификатор устройства
[in]calibration_settingsкалибровочные коэффициенты
result_t XIMC_API set_control_settings ( device_t  id,
const control_settings_t control_settings 
)

Запись настроек управления мотором.

При выборе CTL_MODE=1 включается управление мотором с помощью джойстика. В этом режиме при отклонении джойстика на максимум двигатель стремится двигаться со скоростью MaxSpeed [i], где i=0, если предыдущим использованием этого режима не было выбрано другое i. Кнопки переключают номер скорости i. При выборе CTL_MODE=2 включается управление мотором с помощью кнопок left/right. При нажатии на кнопки двигатель начинает двигаться в соответствующую сторону со скоростью MaxSpeed [0], по истечении времени Timeout[i] мотор двигается со скоростью MaxSpeed [i+1]. При переходе от MaxSpeed [i] на MaxSpeed [i+1] действует ускорение, как обычно.

Аргументы
idидентификатор устройства
[in]control_settingsструктура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо.
result_t XIMC_API set_controller_name ( device_t  id,
const controller_name_t controller_name 
)

Запись пользовательского имени контроллера и настроек в FRAM.

Аргументы
idидентификатор устройства
[in]controller_informationструктура, содержащая информацию о контроллере
result_t XIMC_API set_ctp_settings ( device_t  id,
const ctp_settings_t ctp_settings 
)

Запись настроек контроля позиции(для шагового двигателя).

При управлении ШД с энкодером (CTP_BASE 0) появляется возможность обнаруживать потерю шагов. Контроллер знает кол-во шагов на оборот (GENG::StepsPerRev) и разрешение энкодера (GFBS::IPT). При включении контроля (флаг CTP_ENABLED), контроллер запоминает текущую позицию в шагах ШД и текущую позицию энкодера. Далее, на каждом шаге позиция энкодера преобразовывается в шаги и если разница оказывается больше CTPMinError, устанавливается флаг STATE_CTP_ERROR. При управлении ШД с датчиком оборотов (CTP_BASE 1), позиция контролируется по нему. По активному фронту на входе синхронизации контроллер запоминает текущее значение шагов. Далее, при каждом обороте проверяет, на сколько шагов сместились. При рассогласовании более CTPMinError устанавливается флаг STATE_CTP_ERROR.

Аргументы
idидентификатор устройства
[in]ctp_settingsструктура, содержащая настройки контроля позиции
result_t XIMC_API set_debug_write ( device_t  id,
const debug_write_t debug_write 
)

Запись данных в прошивку для отладки и поиска неисправностей.

Аргументы
idидентификатор устройства
[in]debug_writeДанные для отладки.
result_t XIMC_API set_edges_settings ( device_t  id,
const edges_settings_t edges_settings 
)

Запись настроек границ и концевых выключателей.

См. также
get_edges_settings
Аргументы
idидентификатор устройства
[in]edges_settingsнастройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей
result_t XIMC_API set_encoder_information ( device_t  id,
const encoder_information_t encoder_information 
)

Запись информации об энкодере в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]encoder_informationструктура, содержащая информацию об энкодере
result_t XIMC_API set_encoder_settings ( device_t  id,
const encoder_settings_t encoder_settings 
)

Запись настроек энкодера в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]encoder_settingsструктура, содержащая настройки энкодера
result_t XIMC_API set_engine_settings ( device_t  id,
const engine_settings_t engine_settings 
)

Запись настроек мотора.

Настройки определяют номинальные значения напряжения, тока, скорости мотора, характер движения и тип мотора. Пожалуйста, загружайте новые настройки когда вы меняете мотор, энкодер или позиционер. Помните, что неправильные настройки мотора могут повредить оборудование.

См. также
get_engine_settings
Аргументы
idидентификатор устройства
[in]engine_settingsструктура с настройками мотора
result_t XIMC_API set_entype_settings ( device_t  id,
const entype_settings_t entype_settings 
)

Запись информации о типе мотора и типе силового драйвера.

Аргументы
idидентификатор устройства
[in]EngineTypeтип мотора
[in]DriverTypeтип силового драйвера
result_t XIMC_API set_extio_settings ( device_t  id,
const extio_settings_t extio_settings 
)

Команда записи параметров настройки режимов внешнего ввода/вывода.

Входные события обрабатываются по фронту. Выходные состояния сигнализируются логическим состоянием. По умолчанию нарастающий фронт считается моментом подачи входного сигнала, а единичное состояние считается активным выходом.

См. также
get_extio_settings
Аргументы
idидентификатор устройства
[in]extio_settingsнастройки EXTIO
result_t XIMC_API set_feedback_settings ( device_t  id,
const feedback_settings_t feedback_settings 
)

Запись настроек обратной связи.

Аргументы
idидентификатор устройства
[in]IPSколичество отсчётов энкодера на оборот вала. Диапазон: 1..65535. Поле устарело, рекомендуется записывать 0 в IPS и использовать расширенное поле CountsPerTurn. Может потребоваться обновление микропрограммы контроллера до последней версии.
[in]FeedbackTypeтип обратной связи
[in]FeedbackFlagsфлаги обратной связи
[in]CountsPerTurnколичество отсчётов энкодера на оборот вала. Диапазон: 1..4294967295. Для использования поля CountsPerTurn нужно записать 0 в поле IPS, иначе будет использоваться значение из поля IPS.
result_t XIMC_API set_gear_information ( device_t  id,
const gear_information_t gear_information 
)

Запись информации о редукторе в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]gear_informationструктура, содержащая информацию о редукторе
result_t XIMC_API set_gear_settings ( device_t  id,
const gear_settings_t gear_settings 
)

Запись настроек редуктора в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]gear_settingsструктура, содержащая настройки редуктора
result_t XIMC_API set_hallsensor_information ( device_t  id,
const hallsensor_information_t hallsensor_information 
)

Запись информации о датчиках Холла в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]hallsensor_informationструктура, содержащая информацию о датчиках Холла
result_t XIMC_API set_hallsensor_settings ( device_t  id,
const hallsensor_settings_t hallsensor_settings 
)

Запись настроек датчиков Холла в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]hallsensor_settingsструктура, содержащая настройки датчиков Холла
result_t XIMC_API set_home_settings ( device_t  id,
const home_settings_t home_settings 
)

Команда записи настроек для подхода в home position.

Эта функция записывает структуру настроек, использующихся для калибровки позиции, в память контроллера.

См. также
home_settings_t
Аргументы
idидентификатор устройства
[out]home_settingsнастройки калибровки позиции
result_t XIMC_API set_joystick_settings ( device_t  id,
const joystick_settings_t joystick_settings 
)

Запись настроек джойстика.

При отклонении джойстика более чем на DeadZone от центрального положения начинается движение со скоростью, определяемой отклонением джойстика от DeadZone до 100% отклонения, причем отклонению DeadZone соответствует нулевая скорость, а 100% отклонения соответствует MaxSpeed i, где i=0, если предыдущим использованием этого режима не было выбрано другое i. Если следующая скорость в таблице скоростей нулевая (целая и микрошаговая части), то перехода на неё не происходит. DeadZone вычисляется в десятых долях процента отклонения от центра (JoyCenter) до правого или левого максимума. Расчёт DeadZone проиллюстрирован на графике: !/attachments/download/5563/range25p.png! Зависимость между отклонением и скоростью экспоненциальная, что позволяет без переключения режимов скорости сочетать высокую подвижность и точность. На графике ниже показан пример экспоненциальной зависимости скорости и работы мертвой зоны. !/attachments/download/3092/ExpJoystick.png! Параметр нелинейнойсти можно менять. Нулевой параметр нелинейности соответствует линейной зависимости.

Аргументы
idидентификатор устройства
[in]joystick_settingsструктура, содержащая настройки джойстика
void XIMC_API set_logging_callback ( logging_callback_t  logging_callback,
void *  user_data 
)

Устанавливает функцию обратного вызова для логирования.

Вызов назначает стандартный логгер (stderr, syslog), если передан NULL

Аргументы
logging_callbackуказатель на функцию обратного вызова
result_t XIMC_API set_motor_information ( device_t  id,
const motor_information_t motor_information 
)

Запись информации о двигателе в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]motor_informationструктура, содержащая информацию о двигателе
result_t XIMC_API set_motor_settings ( device_t  id,
const motor_settings_t motor_settings 
)

Запись настроек двигателя в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]motor_settingsструктура, содержащая настройки двигателя
result_t XIMC_API set_move_settings ( device_t  id,
const move_settings_t move_settings 
)

Команда записи настроек перемещения (скорость, ускорение, threshold и скорость в режиме антилюфта).

Аргументы
idидентификатор устройства
[in]move_settingsструктура, содержащая настройки движения: скорость, ускорение, и т.д.
result_t XIMC_API set_nonvolatile_memory ( device_t  id,
const nonvolatile_memory_t nonvolatile_memory 
)

Запись пользовательских данных во FRAM.

Аргументы
idидентификатор устройства
[in]nonvolatile_memoryструктура, содержащая установленные пользовательские данные
result_t XIMC_API set_pid_settings ( device_t  id,
const pid_settings_t pid_settings 
)

Запись ПИД коэффициентов.

Эти коэффициенты определяют поведение позиционера. Коэффициенты различны для разных позиционеров. Пожалуйста, загружайте новые настройки, когда вы меняете мотор или позиционер.

См. также
get_pid_settings
Аргументы
idидентификатор устройства
[in]pid_settingsнастройки ПИД
result_t XIMC_API set_position ( device_t  id,
const set_position_t the_set_position 
)

Устанавливает произвольное значение положения в шагах и микрошагах для шагового двигателя и в шагах энкодера всех двигателей.

То есть меняется основной показатель положения.

Аргументы
idидентификатор устройства
[out]positionструктура, содержащая настройки движения: скорость, ускорение, и т.д.
result_t XIMC_API set_power_settings ( device_t  id,
const power_settings_t power_settings 
)

Команда записи параметров питания мотора.

Используется только с шаговым двигателем.

Аргументы
idидентификатор устройства
[in]power_settingsструктура, содержащая настройки питания шагового мотора
result_t XIMC_API set_secure_settings ( device_t  id,
const secure_settings_t secure_settings 
)

Команда записи установок защит.

Аргументы
idидентификатор устройства
secure_settingsструктура с настройками критических значений
См. также
status_t::flags
result_t XIMC_API set_serial_number ( device_t  id,
const serial_number_t serial_number 
)

Запись серийного номера и версии железа во flash память контроллера.

Вместе с новым серийным номером и версией железа передаётся "Ключ", только при совпадении которого происходит изменение и сохранение. Функция используется только производителем.

Аргументы
idидентификатор устройства
[in]serialnumber структура, содержащая серийный номер, версию железа и ключ.
result_t XIMC_API set_stage_information ( device_t  id,
const stage_information_t stage_information 
)

Запись информации о позиционере в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]stage_informationструктура, содержащая информацию о позиционере
result_t XIMC_API set_stage_name ( device_t  id,
const stage_name_t stage_name 
)

Запись пользовательского имени подвижки в EEPROM.

Аргументы
idидентификатор устройства
[in]stage_nameструктура, содержащая установленное пользовательское имя позиционера
result_t XIMC_API set_stage_settings ( device_t  id,
const stage_settings_t stage_settings 
)

Запись настроек позиционера в EEPROM.

Функция должна использоваться только производителем.

Аргументы
idидентификатор устройства
[in]stage_settingsструктура, содержащая настройки позиционера
result_t XIMC_API set_sync_in_settings ( device_t  id,
const sync_in_settings_t sync_in_settings 
)

Запись настроек для входного импульса синхронизации.

Эта функция записывает структуру с настройками входного импульса синхронизации, определяющими поведение входа синхронизации, в память контроллера.

См. также
get_sync_in_settings
Аргументы
idидентификатор устройства
[in]sync_in_settingsнастройки синхронизации
result_t XIMC_API set_sync_out_settings ( device_t  id,
const sync_out_settings_t sync_out_settings 
)

Запись настроек для выходного импульса синхронизации.

Эта функция записывает структуру с настройками выходного импульса синхронизации, определяющими поведение вывода синхронизации, в память контроллера.

См. также
get_sync_in_settings
Аргументы
idидентификатор устройства
[in]sync_in_settingsнастройки синхронизации
result_t XIMC_API set_uart_settings ( device_t  id,
const uart_settings_t uart_settings 
)

Команда записи настроек UART.

Эта функция записывает структуру настроек UART в память контроллера.

См. также
uart_settings_t
Аргументы
SpeedCкорость UART
[in]uart_settingsнастройки UART
result_t XIMC_API write_key ( const char *  uri,
uint8_t *  key 
)

Запись ключа защиты Функция используется только производителем.

Аргументы
uriидентификатор устройства
[in]keyключ защиты. Диапазон: 0..4294967295
result_t XIMC_API ximc_fix_usbser_sys ( const char *  device_uri)

Исправление ошибки драйвера USB в Windows.

Подсистема USB-COM на Windows не всегда работает корректно. При работе возможны следующие неисправности: все попытки открыть устройство заканчиваются неудачно, или устройство можно открыть и писать в него данные, но в ответ данные не приходят. Эти проблемы лечатся переподключением устройства или удалением и повторным поиском устройства в диспетчере устройств. Функция ximc_fix_usbser_sys() автоматизирует процесс удаления-обнаружения. Имеет смысл вызывать эту функцию, если библиотека не может открыть устройство, при том что оно физически не было удалено из системы, или если устройство не отвечает.

void XIMC_API ximc_version ( char *  version)

Возвращает версию библиотеки

Аргументы
versionбуфер для строки с версией, 32 байт достаточно