libximc: Файл ximc.h

libximc 3.0.2

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

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

## Структуры данных
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 | network_settings_t
| Настройки сети. Подробнее...
struct | password_settings_t
| Пароль. Подробнее...
struct | calibration_settings_t
| Калибровочные коэффициенты. Подробнее...
struct | controller_name_t
| Пользовательское имя контроллера и флаги настройки. Подробнее...
struct | nonvolatile_memory_t
| Пользовательские данные для сохранения во FRAM. Подробнее...
struct | emf_settings_t
| Настройки EMF. Подробнее...
struct | engine_advanced_setup_t
| Настройки EAS. Подробнее...
struct | extended_settings_t
| Настройки EST. Подробнее...
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
| Структура содержит последовательность измеренных параметров движения оси – скоростей и ошибок по позиции. Подробнее...
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
| Глобальный уникальный идентификатор. Подробнее...

## Макросы
#define | XIMC_API
#define | XIMC_CALLCONV
#define | XIMC_RETTYPE void*
#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 | ENUMERATE_PROBE 0x01
| Проверять, является ли устройство XIMC-совместимым.
#define | ENUMERATE_ALL_COM 0x02
| Проверять все COM-устройства
#define | ENUMERATE_NETWORK 0x04
| Проверять сетевые устройства
Флаги состояния движения
Это битовая маска для побитовых операций. Возвращаются командой get_status. См. также get_status status_t::MoveSts, get_status_impl
#define | MOVE_STATE_MOVING 0x01
| Если флаг установлен, то контроллер пытается вращать двигателем.
#define | MOVE_STATE_TARGET_SPEED 0x02
| Флаг устанавливается при достижении заданной скорости.
#define | MOVE_STATE_ANTIPLAY 0x04
| Выполняется компенсация люфта, если флаг установлен.
Флаги настроек контроллера
Это битовая маска для побитовых операций. См. также set_controller_name get_controller_name controller_name_t::CtrlFlags, get_controller_name, set_controller_name
#define | EEPROM_PRECEDENCE 0x01
| Если флаг установлен, то настройки в EEPROM подвижки имеют приоритет над текущими настройками и заменяют их при обнаружении EEPROM.
Флаги состояния питания шагового мотора
Это битовая маска для побитовых операций. Возвращаются командой get_status. См. также 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
| Обмотки двигателя питаются от максимального тока, который драйвер может обеспечить при этом напряжении.
Флаги состояния
Это битовая маска для побитовых операций. Содержат бинарные значения состояния контроллера. Могут быть объединены с помощью логического ИЛИ. См. также get_status status_t::Flags, get_status_impl
#define | STATE_CONTR 0x000003F
| Флаги состояния контроллера.
#define | STATE_ERRC 0x0000001
| Недопустимая команда.
#define | STATE_ERRD 0x0000002
| Обнаружена ошибка целостности данных.
#define | STATE_ERRV 0x0000004
| Недопустимое значение данных.
#define | STATE_EEPROM_CONNECTED 0x0000010
| Подключена память EEPROM с настройками.
#define | STATE_IS_HOMED 0x0000020
| Калибровка выполнена.
#define | STATE_SECUR 0x1B3FFC0
| Флаги опасности.
#define | STATE_ALARM 0x0000040
| Контроллер находится в состоянии ALARM, показывая, что случилась какая-то опасная ситуация.
#define | STATE_CTP_ERROR 0x0000080
| Контроль позиции нарушен(используется только с шаговым двигателем).
#define | STATE_POWER_OVERHEAT 0x0000100
| Перегрев силового драйвера.
#define | STATE_CONTROLLER_OVERHEAT 0x0000200
| Перегрелась микросхема контроллера.
#define | STATE_OVERLOAD_POWER_VOLTAGE 0x0000400
| Превышено напряжение на силовой части.
#define | STATE_OVERLOAD_POWER_CURRENT 0x0000800
| Превышен максимальный ток потребления силовой части.
#define | STATE_OVERLOAD_USB_VOLTAGE 0x0001000
| Устарело.
#define | STATE_LOW_USB_VOLTAGE 0x0002000
| Устарело.
#define | STATE_OVERLOAD_USB_CURRENT 0x0004000
| Устарело.
#define | STATE_BORDERS_SWAP_MISSET 0x0008000
| Достижение неверной границы.
#define | STATE_LOW_POWER_VOLTAGE 0x0010000
| Напряжение на силовой части ниже чем напряжение Low Voltage Protection
#define | STATE_H_BRIDGE_FAULT 0x0020000
| Получен сигнал от драйвера о неисправности
#define | STATE_WINDING_RES_MISMATCH 0x0100000
| Сопротивления обмоток слишком сильно отличаются друг от друга.
#define | STATE_ENCODER_FAULT 0x0200000
| Получен сигнал от энкодера о неисправности
#define | STATE_ENGINE_RESPONSE_ERROR 0x0800000
| Ошибка реакции двигателя на управляющее воздействие.
#define | STATE_EXTIO_ALARM 0x1000000
| Ошибка вызвана внешним входным сигналом EXTIO.
Флаги состояния GPIO входов
Это битовая маска для побитовых операций. Содержат бинарные значения состояния контроллера. Могут быть объединены с помощью логического ИЛИ. См. также 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
| Состояние вывода управления тормозом.
#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", если энкодер активен).
Состояние энкодера
Это битовая маска для побитовых операций. Состояние энкодера, подключенного к контроллеру. Заметки Флаг ENCD работает только в режимах None и EMF. В других режимах, таких как Encoder и Encoder Mediated, он не используется, потому что эти режимы невозможно использовать без энкодера. Сразу после включения контроллера флаг будет в состоянии unknown — чтобы определить положение, нужно совершить движение. По мере движения значение флага может меняться. См. также get_status status_t::EncSts, get_status_impl
#define | ENC_STATE_ABSENT 0x00
| Энкодер не подключен.
#define | ENC_STATE_UNKNOWN 0x01
| Состояние энкодера неизвестно.
#define | ENC_STATE_MALFUNC 0x02
| Энкодер подключен и неисправен.
#define | ENC_STATE_REVERS 0x03
| Энкодер подключен и исправен, но считает в другую сторону.
#define | ENC_STATE_OK 0x04
| Энкодер подключен и работает должным образом.
Состояние обмоток
Это битовая маска для побитовых операций. Состояние обмоток двигателя, подключенного к контроллеру. См. также get_status status_t::WindSts, get_status_impl
#define | WIND_A_STATE_ABSENT 0x00
| Обмотка A не подключена.
#define | WIND_A_STATE_UNKNOWN 0x01
| Состояние обмотки 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
| Состояние обмотки 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) и статуса её выполнения (выполняется, завершено, ошибка) См. также 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_move_settings. См. также set_move_settings get_move_settings move_settings_t::MoveFlags, get_move_settings, set_move_settings
#define | RPM_DIV_1000 0x01
| Флаг указывает на то что рабочая скорость указанная в команде задана в милли rpm.
Флаги параметров мотора
Это битовая маска для побитовых операций. Определяют настройки движения и работу ограничителей. Возвращаются командой get_engine_settings. Могут быть объединены с помощью логического ИЛИ. См. также 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_INTEGRATE 0x02
| Силовой драйвер с использованием ключей, интегрированных в микросхему.
#define | DRIVER_TYPE_EXTERNAL 0x03
| Внешний силовой драйвер.
Флаги параметров питания шагового мотора
Это битовая маска для побитовых операций. Возвращаются командой get_power_settings. См. также 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. См. также 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 | BRAKING_OVERVOLTAGE_PROTECTION 0x20
| Если флаг установлен, то микропрограмма контроллера будет замыкать нижние ключи H-моста, отсоединяя мотор от цепи питания, при перенапряжении.
#define | ALARM_WINDING_MISMATCH 0x40
| Если флаг установлен, то войти в состояние Alarm при получении сигнала рассогласования обмоток
#define | ALARM_ENGINE_RESPONSE 0x80
| Если флаг установлен, то войти в состояние Alarm при получении сигнала ошибки реакции двигателя на управляющее воздействие
Флаги установки положения
Это битовая маска для побитовых операций. Возвращаются командой get_position. См. также get_position set_position set_position_t::PosFlags, set_position
#define | SETPOS_IGNORE_POSITION 0x01
| Если установлен, то позиция в шагах и микрошагах не обновляется.
#define | SETPOS_IGNORE_ENCODER 0x02
| Если установлен, то счётчик энкодера не обновляется.
Тип обратной связи.
Это битовая маска для побитовых операций. См. также set_feedback_settings get_feedback_settings feedback_settings_t::FeedbackType, get_feedback_settings, set_feedback_settings
#define | FEEDBACK_ENCODER 0x01
| Обратная связь с помощью энкодера.
#define | FEEDBACK_EMF 0x04
| Обратная связь по ЭДС.
#define | FEEDBACK_NONE 0x05
| Обратная связь отсутствует.
#define | FEEDBACK_ENCODER_MEDIATED 0x06
| Обратная связь по энкодеру, опосредованному относительно двигателя механической передачей (например, винтовой передачей).
Флаги обратной связи.
Это битовая маска для побитовых операций. См. также set_feedback_settings get_feedback_settings feedback_settings_t::FeedbackFlags, get_feedback_settings, set_feedback_settings
#define | FEEDBACK_ENC_REVERSE 0x01
| Обратный счет у энкодера.
#define | FEEDBACK_ENC_ADAPTIVE_HOLDING 0x02
| Включает алгоритм адаптивного удержания.
#define | FEEDBACK_ENC_FILTER_NONE 0x00
| Выключает внутренний фильтр сигнала энкодера.
#define | FEEDBACK_ENC_FILTER_WEAK 0x10
| Слабая фильтрация шумов: максимальная частота сигнала энкодера 3 МГц.
#define | FEEDBACK_ENC_FILTER_MEDIUM 0x20
| Средняя фильтрация шумов: максимальная частота сигнала энкодера 1 МГц.
#define | FEEDBACK_ENC_FILTER_STRONG 0x30
| Сильная фильтрация шумов: максимальная частота сигнала энкодера 300 кГц.
#define | FEEDBACK_ENC_FILTER_BITS 0x30
| Биты, отвечающие за настройку внутреннего фильтра энкодерного сигнала.
#define | FEEDBACK_ENC_TYPE_AUTO 0x00
| Определяет тип энкодера автоматически.
#define | FEEDBACK_ENC_TYPE_SINGLE_ENDED 0x40
| Недифференциальный энкодер.
#define | FEEDBACK_ENC_TYPE_DIFFERENTIAL 0x80
| Дифференциальный энкодер.
#define | FEEDBACK_ENC_TYPE_BITS 0xC0
| Биты, отвечающие за тип энкодера.
Флаги настроек синхронизации входа
Это битовая маска для побитовых операций. См. также 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_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 отсчётов.
Флаги настройки работы внешнего ввода/вывода
Это битовая маска для побитовых операций. См. также get_extio_settings set_extio_settings extio_settings_t::EXTIOSetupFlags, get_extio_settings, set_extio_settings
#define | EXTIO_SETUP_OUTPUT 0x01
| Если флаг установлен, то ножка в состоянии вывода, иначе - ввода.
#define | EXTIO_SETUP_INVERT 0x02
| Если флаг установлен, то нули считаются активным состоянием выхода, а спадающие фронты как момент подачи входного сигнала.
Флаги настройки режимов внешнего ввода/вывода
Это битовая маска для побитовых операций. См. также extio_settings_t::extio_mode_flags get_extio_settings set_extio_settings extio_settings_t::EXTIOModeFlags, get_extio_settings, set_extio_settings
#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
| Ножка находится в активном состоянии при подаче питания на обмотки.
Флаги границ
Это битовая маска для побитовых операций. Типы границ и поведение позиционера на границах. Могут быть объединены с помощью побитового ИЛИ. См. также 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
| Управление с помощью кнопок влево/вправо.
#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_settings 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
Это битовая маска для побитовых операций. См. также uart_settings_t::UARTSetupFlags, get_uart_settings, set_uart_settings
#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 стоповых бита
Флаги типа двигателя
Это битовая маска для побитовых операций. См. также motor_settings_t::MotorType, get_motor_settings, set_motor_settings
#define | MOTOR_TYPE_UNKNOWN 0x00
| Неизвестный двигатель
#define | MOTOR_TYPE_STEP 0x01
| Шаговый двигатель
#define | MOTOR_TYPE_DC 0x02
| DC двигатель
#define | MOTOR_TYPE_BLDC 0x03
| BLDC двигатель
Флаги настроек энкодера
Это битовая маска для побитовых операций. См. также accessories_settings_t::MBSettings, get_accessories_settings, set_accessories_settings
#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
| Если флаг установлен, то магнитный тормоз находится в режиме удержания (активен) при подаче питания
Флаги настроек температурного датчика
Это битовая маска для побитовых операций. См. также accessories_settings_t::LimitSwitchesSettings, get_accessories_settings, set_accessories_settings
#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
| Если флаг установлен, то концевые переключатели замкнуты.
Флаги автоопределения характеристик обмоток двигателя.
Это битовая маска для побитовых операций. См. также set_emf_settings get_emf_settings emf_settings_t::BackEMFFlags, get_emf_settings, set_emf_settings
#define | BACK_EMF_INDUCTANCE_AUTO 0x01
| Флаг автоопределения индуктивности обмоток двигателя.
#define | BACK_EMF_RESISTANCE_AUTO 0x02
| Флаг автоопределения сопротивления обмоток двигателя.
#define | BACK_EMF_KM_AUTO 0x04
| Флаг автоопределения электромеханического коэффициента двигателя.

## Определения типов
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
| Тип, определяющий структуру данных о всех контроллерах, обнаруженных при опросе устройств.

## Функции
Группа команд настройки контроллера
Функции для чтения/записи большинства настроек контроллера.
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)
| Команда записи настроек для подхода в home position с использованием пользовательских единиц.
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)
| Команда чтения настроек для подхода в home position с использованием пользовательских единиц.
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)
| Команда записи настроек перемещения, с использованием пользовательских единиц (скорость, ускорение, threshold и скорость в режиме антилюфта).
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)
| Команда чтения настроек перемещения с использованием пользовательских единиц(скорость, ускорение, threshold и скорость в режиме антилюфта).
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_network_settings (device_t id, const network_settings_t *network_settings)
| Команда записи сететвых настроек.
result_t XIMC_API | get_network_settings (device_t id, network_settings_t *network_settings)
| Команда чтения сететвых настроек.
result_t XIMC_API | set_password_settings (device_t id, const password_settings_t *password_settings)
| Команда записи пароля к веб-странице.
result_t XIMC_API | get_password_settings (device_t id, password_settings_t *password_settings)
| Команда чтения пароля к веб-странице.
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 | set_emf_settings (device_t id, const emf_settings_t *emf_settings)
| Запись электромеханических настроек шагового двигателя.
result_t XIMC_API | get_emf_settings (device_t id, emf_settings_t *emf_settings)
| Чтение электромеханических настроек шагового двигателя.
result_t XIMC_API | set_engine_advanced_setup (device_t id, const engine_advanced_setup_t *engine_advanced_setup)
| Запись расширенных настроек.
result_t XIMC_API | get_engine_advanced_setup (device_t id, engine_advanced_setup_t *engine_advanced_setup)
| Чтение расширенных настроек.
result_t XIMC_API | set_extended_settings (device_t id, const extended_settings_t *extended_settings)
| Запись расширенных настроек.
result_t XIMC_API | get_extended_settings (device_t id, extended_settings_t *extended_settings)
| Чтение расширенных настроек.
Группа команд управления движением
result_t XIMC_API | command_stop (device_t id)
| Немедленная остановка двигателя, переход в состояние STOP, ключи в режиме BREAK (обмотки накоротко замкнуты), режим "удержания" дезактивируется для DC двигателей, удержание тока в обмотках для шаговых двигателей (с учётом Power management настроек).
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)
| Перемещение на заданное смещение.
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" двигатель смещается из текущей точки на расстояние Antiplay, заданное в настройках мотора (engine_settings), затем двигается в ту же точку.
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)
| Устанавливает текущую позицию равной 0.
Группа команд сохранения и загрузки настроек
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 | 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 памяти контроллера.

## Уровень логирования
#define | LOGLEVEL_ERROR 0x01
| Уровень логирования - ошибка
#define | LOGLEVEL_WARNING 0x02
| Уровень логирования - предупреждение
#define | LOGLEVEL_INFO 0x03
| Уровень логирования - информация
#define | LOGLEVEL_DEBUG 0x04
| Уровень логирования - отладка
typedef struct calibration_t | calibration_t
| Структура калибровок
typedef struct device_network_information_t | device_network_information_t
| Структура данных с информацией о сетевом устройстве.

## Управление устройством
Функции поиска и открытия/закрытия устройств
typedef char * | pchar
| Не обращайте на меня внимание
typedef void(XIMC_CALLCONV * | logging_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 | set_correction_table (device_t id, const char *namefile)
| Команда загрузки корректирующей таблицы из текстового файла.
result_t XIMC_API | probe_device (const char *uri)
| Проверяет, является ли устройство с уникальным идентификатором uri XIMC-совместимым.
device_enumeration_t XIMC_API | enumerate_devices (int enumerate_flags, const char *hints)
| Поиск и составление списка доступных устройств.
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 ()
| Сбрасывает ошибку неправильной передачи данных.
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

## Макросы

## ◆ ALARM_FLAGS_STICKING

#define ALARM_FLAGS_STICKING 0x10

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

## ◆ ALARM_ON_BORDERS_SWAP_MISSET

#define ALARM_ON_BORDERS_SWAP_MISSET 0x08

Если флаг установлен, то войти в состояние Alarm при получении сигнала c противоположного концевого выключателя.

## ◆ ALARM_ON_DRIVER_OVERHEATING

#define ALARM_ON_DRIVER_OVERHEATING 0x01

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

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

## ◆ BACK_EMF_INDUCTANCE_AUTO

#define BACK_EMF_INDUCTANCE_AUTO 0x01

Флаг автоопределения индуктивности обмоток двигателя.

## ◆ BACK_EMF_KM_AUTO

#define BACK_EMF_KM_AUTO 0x04

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

## ◆ BACK_EMF_RESISTANCE_AUTO

#define BACK_EMF_RESISTANCE_AUTO 0x02

Флаг автоопределения сопротивления обмоток двигателя.

## ◆ BORDER_IS_ENCODER

#define BORDER_IS_ENCODER 0x01

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

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

## ◆ BORDER_STOP_LEFT

#define BORDER_STOP_LEFT 0x02

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

## ◆ BORDER_STOP_RIGHT

#define BORDER_STOP_RIGHT 0x04

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

## ◆ BORDERS_SWAP_MISSET_DETECTION

#define BORDERS_SWAP_MISSET_DETECTION 0x08

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

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

## ◆ BRAKE_ENABLED

#define BRAKE_ENABLED 0x01

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

## ◆ BRAKE_ENG_PWROFF

#define BRAKE_ENG_PWROFF 0x02

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

## ◆ BRAKING_OVERVOLTAGE_PROTECTION

#define BRAKING_OVERVOLTAGE_PROTECTION 0x20

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

## ◆ CONTROL_BTN_LEFT_PUSHED_OPEN

#define CONTROL_BTN_LEFT_PUSHED_OPEN 0x04

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

## ◆ CONTROL_BTN_RIGHT_PUSHED_OPEN

#define CONTROL_BTN_RIGHT_PUSHED_OPEN 0x08

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

## ◆ CONTROL_MODE_BITS

#define CONTROL_MODE_BITS 0x03

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

## ◆ CONTROL_MODE_JOY

#define CONTROL_MODE_JOY 0x01

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

## ◆ CONTROL_MODE_LR

#define CONTROL_MODE_LR 0x02

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

## ◆ CONTROL_MODE_OFF

#define CONTROL_MODE_OFF 0x00

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

## ◆ CTP_ALARM_ON_ERROR

#define CTP_ALARM_ON_ERROR 0x04

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

## ◆ CTP_BASE

#define CTP_BASE 0x02

Управление положением основано на датчике вращения, если установлен этот флаг; в противном случае - на энкодере.

## ◆ CTP_ENABLED

#define CTP_ENABLED 0x01

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

## ◆ CTP_ERROR_CORRECTION

#define CTP_ERROR_CORRECTION 0x10

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

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

## ◆ DRIVER_TYPE_EXTERNAL

#define DRIVER_TYPE_EXTERNAL 0x03

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

## ◆ DRIVER_TYPE_INTEGRATE

#define DRIVER_TYPE_INTEGRATE 0x02

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

## ◆ EEPROM_PRECEDENCE

#define EEPROM_PRECEDENCE 0x01

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

## ◆ ENC_STATE_ABSENT

#define ENC_STATE_ABSENT 0x00

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

## ◆ ENC_STATE_MALFUNC

#define ENC_STATE_MALFUNC 0x02

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

## ◆ ENC_STATE_OK

#define ENC_STATE_OK 0x04

Энкодер подключен и работает должным образом.

## ◆ ENC_STATE_REVERS

#define ENC_STATE_REVERS 0x03

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

## ◆ ENC_STATE_UNKNOWN

#define ENC_STATE_UNKNOWN 0x01

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

## ◆ ENDER_SW1_ACTIVE_LOW

#define ENDER_SW1_ACTIVE_LOW 0x02

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

## ◆ ENDER_SW2_ACTIVE_LOW

#define ENDER_SW2_ACTIVE_LOW 0x04

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

## ◆ ENDER_SWAP

#define ENDER_SWAP 0x01

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

## ◆ ENGINE_ACCEL_ON

#define ENGINE_ACCEL_ON 0x10

Ускорение.

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

## ◆ ENGINE_ANTIPLAY

#define ENGINE_ANTIPLAY 0x08

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

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

## ◆ ENGINE_CURRENT_AS_RMS

#define ENGINE_CURRENT_AS_RMS 0x02

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

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

## ◆ ENGINE_LIMIT_CURR

#define ENGINE_LIMIT_CURR 0x40

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

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

## ◆ ENGINE_LIMIT_RPM

#define ENGINE_LIMIT_RPM 0x80

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

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

## ◆ ENGINE_LIMIT_VOLT

#define ENGINE_LIMIT_VOLT 0x20

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

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

## ◆ ENGINE_MAX_SPEED

#define ENGINE_MAX_SPEED 0x04

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

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

## ◆ ENGINE_REVERSE

#define ENGINE_REVERSE 0x01

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

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

## ◆ ENGINE_TYPE_2DC

#define ENGINE_TYPE_2DC 0x02

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

## ◆ ENGINE_TYPE_BRUSHLESS

#define ENGINE_TYPE_BRUSHLESS 0x05

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

## ◆ ENGINE_TYPE_DC

#define ENGINE_TYPE_DC 0x01

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

## ◆ ENGINE_TYPE_NONE

#define ENGINE_TYPE_NONE 0x00

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

## ◆ ENGINE_TYPE_STEP

#define ENGINE_TYPE_STEP 0x03

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

## ◆ ENGINE_TYPE_TEST

#define ENGINE_TYPE_TEST 0x04

Продолжительность включения фиксирована.

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

## ◆ ENUMERATE_PROBE

#define ENUMERATE_PROBE 0x01

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

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

## ◆ EXTIO_SETUP_INVERT

#define EXTIO_SETUP_INVERT 0x02

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

## ◆ EXTIO_SETUP_MODE_IN_ALARM

#define EXTIO_SETUP_MODE_IN_ALARM 0x05

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

## ◆ EXTIO_SETUP_MODE_IN_BITS

#define EXTIO_SETUP_MODE_IN_BITS 0x0F

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

## ◆ EXTIO_SETUP_MODE_IN_HOME

#define EXTIO_SETUP_MODE_IN_HOME 0x04

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

## ◆ EXTIO_SETUP_MODE_IN_MOVR

#define EXTIO_SETUP_MODE_IN_MOVR 0x03

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

## ◆ EXTIO_SETUP_MODE_IN_NOP

#define EXTIO_SETUP_MODE_IN_NOP 0x00

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

## ◆ EXTIO_SETUP_MODE_IN_PWOF

#define EXTIO_SETUP_MODE_IN_PWOF 0x02

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

## ◆ EXTIO_SETUP_MODE_IN_STOP

#define EXTIO_SETUP_MODE_IN_STOP 0x01

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

## ◆ EXTIO_SETUP_MODE_OUT_ALARM

#define EXTIO_SETUP_MODE_OUT_ALARM 0x30

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

## ◆ EXTIO_SETUP_MODE_OUT_BITS

#define EXTIO_SETUP_MODE_OUT_BITS 0xF0

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

## ◆ EXTIO_SETUP_MODE_OUT_MOTOR_ON

#define EXTIO_SETUP_MODE_OUT_MOTOR_ON 0x40

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

## ◆ EXTIO_SETUP_MODE_OUT_MOVING

#define EXTIO_SETUP_MODE_OUT_MOVING 0x20

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

## ◆ EXTIO_SETUP_MODE_OUT_OFF

#define EXTIO_SETUP_MODE_OUT_OFF 0x00

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

## ◆ EXTIO_SETUP_MODE_OUT_ON

#define EXTIO_SETUP_MODE_OUT_ON 0x10

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

## ◆ EXTIO_SETUP_OUTPUT

#define EXTIO_SETUP_OUTPUT 0x01

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

## ◆ FEEDBACK_EMF

#define FEEDBACK_EMF 0x04

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

## ◆ FEEDBACK_ENC_ADAPTIVE_HOLDING

#define FEEDBACK_ENC_ADAPTIVE_HOLDING 0x02

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

## ◆ FEEDBACK_ENC_FILTER_BITS

#define FEEDBACK_ENC_FILTER_BITS 0x30

Биты, отвечающие за настройку внутреннего фильтра энкодерного сигнала.

## ◆ FEEDBACK_ENC_FILTER_MEDIUM

#define FEEDBACK_ENC_FILTER_MEDIUM 0x20

Средняя фильтрация шумов: максимальная частота сигнала энкодера 1 МГц.

## ◆ FEEDBACK_ENC_FILTER_NONE

#define FEEDBACK_ENC_FILTER_NONE 0x00

Выключает внутренний фильтр сигнала энкодера.

## ◆ FEEDBACK_ENC_FILTER_STRONG

#define FEEDBACK_ENC_FILTER_STRONG 0x30

Сильная фильтрация шумов: максимальная частота сигнала энкодера 300 кГц.

## ◆ FEEDBACK_ENC_FILTER_WEAK

#define FEEDBACK_ENC_FILTER_WEAK 0x10

Слабая фильтрация шумов: максимальная частота сигнала энкодера 3 МГц.

## ◆ FEEDBACK_ENC_REVERSE

#define FEEDBACK_ENC_REVERSE 0x01

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

## ◆ FEEDBACK_ENC_TYPE_AUTO

#define FEEDBACK_ENC_TYPE_AUTO 0x00

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

## ◆ FEEDBACK_ENC_TYPE_BITS

#define FEEDBACK_ENC_TYPE_BITS 0xC0

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

## ◆ FEEDBACK_ENC_TYPE_DIFFERENTIAL

#define FEEDBACK_ENC_TYPE_DIFFERENTIAL 0x80

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

## ◆ FEEDBACK_ENC_TYPE_SINGLE_ENDED

#define FEEDBACK_ENC_TYPE_SINGLE_ENDED 0x40

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

## ◆ FEEDBACK_ENCODER

#define FEEDBACK_ENCODER 0x01

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

## ◆ FEEDBACK_ENCODER_MEDIATED

#define FEEDBACK_ENCODER_MEDIATED 0x06

Обратная связь по энкодеру, опосредованному относительно двигателя механической передачей (например, винтовой передачей).

## ◆ FEEDBACK_NONE

#define FEEDBACK_NONE 0x05

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

## ◆ H_BRIDGE_ALERT

#define H_BRIDGE_ALERT 0x04

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

## ◆ HOME_DIR_FIRST

#define HOME_DIR_FIRST 0x001

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

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

## ◆ HOME_DIR_SECOND

#define HOME_DIR_SECOND 0x002

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

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

## ◆ HOME_HALF_MV

#define HOME_HALF_MV 0x008

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

## ◆ HOME_MV_SEC_EN

#define HOME_MV_SEC_EN 0x004

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

## ◆ HOME_STOP_FIRST_BITS

#define HOME_STOP_FIRST_BITS 0x030

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

## ◆ HOME_STOP_FIRST_LIM

#define HOME_STOP_FIRST_LIM 0x030

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

## ◆ HOME_STOP_FIRST_REV

#define HOME_STOP_FIRST_REV 0x010

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

## ◆ HOME_STOP_FIRST_SYN

#define HOME_STOP_FIRST_SYN 0x020

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

## ◆ HOME_STOP_SECOND_BITS

#define HOME_STOP_SECOND_BITS 0x0C0

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

## ◆ HOME_STOP_SECOND_LIM

#define HOME_STOP_SECOND_LIM 0x0C0

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

## ◆ HOME_STOP_SECOND_REV

#define HOME_STOP_SECOND_REV 0x040

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

## ◆ HOME_STOP_SECOND_SYN

#define HOME_STOP_SECOND_SYN 0x080

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

## ◆ HOME_USE_FAST

#define HOME_USE_FAST 0x100

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

## ◆ JOY_REVERSE

#define JOY_REVERSE 0x01

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

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

## ◆ LOW_UPWR_PROTECTION

#define LOW_UPWR_PROTECTION 0x02

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

## ◆ LS_SHORTED

#define LS_SHORTED 0x10

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

## ◆ MICROSTEP_MODE_FRAC_128

#define MICROSTEP_MODE_FRAC_128 0x08

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

## ◆ MICROSTEP_MODE_FRAC_16

#define MICROSTEP_MODE_FRAC_16 0x05

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

## ◆ MICROSTEP_MODE_FRAC_2

#define MICROSTEP_MODE_FRAC_2 0x02

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

## ◆ MICROSTEP_MODE_FRAC_256

#define MICROSTEP_MODE_FRAC_256 0x09

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

## ◆ MICROSTEP_MODE_FRAC_32

#define MICROSTEP_MODE_FRAC_32 0x06

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

## ◆ MICROSTEP_MODE_FRAC_4

#define MICROSTEP_MODE_FRAC_4 0x03

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

## ◆ MICROSTEP_MODE_FRAC_64

#define MICROSTEP_MODE_FRAC_64 0x07

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

## ◆ MICROSTEP_MODE_FRAC_8

#define MICROSTEP_MODE_FRAC_8 0x04

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

## ◆ MICROSTEP_MODE_FULL

#define MICROSTEP_MODE_FULL 0x01

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

## ◆ MOVE_STATE_ANTIPLAY

#define MOVE_STATE_ANTIPLAY 0x04

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

## ◆ MOVE_STATE_MOVING

#define MOVE_STATE_MOVING 0x01

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

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

## ◆ MOVE_STATE_TARGET_SPEED

#define MOVE_STATE_TARGET_SPEED 0x02

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

## ◆ MVCMD_ERROR

#define MVCMD_ERROR 0x40

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

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

## ◆ MVCMD_HOME

#define MVCMD_HOME 0x06

Команда home.

## ◆ MVCMD_LEFT

#define MVCMD_LEFT 0x03

Команда left.

## ◆ MVCMD_LOFT

#define MVCMD_LOFT 0x07

Команда loft.

## ◆ MVCMD_MOVE

#define MVCMD_MOVE 0x01

Команда move.

## ◆ MVCMD_MOVR

#define MVCMD_MOVR 0x02

Команда movr.

## ◆ MVCMD_NAME_BITS

#define MVCMD_NAME_BITS 0x3F

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

## ◆ MVCMD_RIGHT

#define MVCMD_RIGHT 0x04

Команда rigt.

## ◆ MVCMD_RUNNING

#define MVCMD_RUNNING 0x80

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

## ◆ MVCMD_SSTP

#define MVCMD_SSTP 0x08

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

## ◆ MVCMD_STOP

#define MVCMD_STOP 0x05

Команда stop.

## ◆ MVCMD_UKNWN

#define MVCMD_UKNWN 0x00

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

## ◆ POWER_OFF_ENABLED

#define POWER_OFF_ENABLED 0x02

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

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

## ◆ POWER_REDUCT_ENABLED

#define POWER_REDUCT_ENABLED 0x01

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

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

## ◆ POWER_SMOOTH_CURRENT

#define POWER_SMOOTH_CURRENT 0x04

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

## ◆ PWR_STATE_MAX

#define PWR_STATE_MAX 0x05

Обмотки двигателя питаются от максимального тока, который драйвер может обеспечить при этом напряжении.

## ◆ PWR_STATE_NORM

#define PWR_STATE_NORM 0x03

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

## ◆ PWR_STATE_OFF

#define PWR_STATE_OFF 0x01

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

## ◆ PWR_STATE_REDUCT

#define PWR_STATE_REDUCT 0x04

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

## ◆ PWR_STATE_UNKNOWN

#define PWR_STATE_UNKNOWN 0x00

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

## ◆ REV_SENS_INV

#define REV_SENS_INV 0x08

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

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

## ◆ RPM_DIV_1000

#define RPM_DIV_1000 0x01

Флаг указывает на то что рабочая скорость указанная в команде задана в милли rpm.

Применим только для режима обратной связи ENCODER и только для BLDC моторов.

## ◆ SETPOS_IGNORE_ENCODER

#define SETPOS_IGNORE_ENCODER 0x02

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

## ◆ SETPOS_IGNORE_POSITION

#define SETPOS_IGNORE_POSITION 0x01

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

## ◆ STATE_ALARM

#define STATE_ALARM 0x0000040

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

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

## ◆ STATE_BORDERS_SWAP_MISSET

#define STATE_BORDERS_SWAP_MISSET 0x0008000

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

## ◆ STATE_BRAKE

#define STATE_BRAKE 0x0200

Состояние вывода управления тормозом.

Флаг "1" - если тормоз не запитан(зажат), "0" - если на тормоз подаётся питание(разжат).

## ◆ STATE_BUTTON_LEFT

#define STATE_BUTTON_LEFT 0x0008

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

## ◆ STATE_BUTTON_RIGHT

#define STATE_BUTTON_RIGHT 0x0004

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

## ◆ STATE_CONTR

#define STATE_CONTR 0x000003F

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

## ◆ STATE_CONTROLLER_OVERHEAT

#define STATE_CONTROLLER_OVERHEAT 0x0000200

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

## ◆ STATE_CTP_ERROR

#define STATE_CTP_ERROR 0x0000080

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

Флаг устанавливается, когда положение энкодера и положение шага слишком далеки друг от друга.

## ◆ STATE_DIG_SIGNAL

#define STATE_DIG_SIGNAL 0xFFFF

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

## ◆ STATE_EEPROM_CONNECTED

#define STATE_EEPROM_CONNECTED 0x0000010

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

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

## ◆ STATE_ENC_A

#define STATE_ENC_A 0x2000

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

## ◆ STATE_ENC_B

#define STATE_ENC_B 0x4000

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

## ◆ STATE_ENGINE_RESPONSE_ERROR

#define STATE_ENGINE_RESPONSE_ERROR 0x0800000

Ошибка реакции двигателя на управляющее воздействие.

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

## ◆ STATE_ERRC

#define STATE_ERRC 0x0000001

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

Полученная команда отсутствует в списке известных команд контроллера. Наиболее вероятной причиной является устаревшая прошивка.

## ◆ STATE_ERRD

#define STATE_ERRD 0x0000002

Обнаружена ошибка целостности данных.

Данные внутри команды и ее CRC-код не соответствуют, поэтому данные не могут считаться действительными. Эта ошибка может быть вызвана электромагнитными помехами в интерфейсе UART/RS232.

## ◆ STATE_ERRV

#define STATE_ERRV 0x0000004

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

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

## ◆ STATE_EXTIO_ALARM

#define STATE_EXTIO_ALARM 0x1000000

Ошибка вызвана внешним входным сигналом EXTIO.

## ◆ STATE_GPIO_LEVEL

#define STATE_GPIO_LEVEL 0x0020

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

## ◆ STATE_GPIO_PINOUT

#define STATE_GPIO_PINOUT 0x0010

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

## ◆ STATE_IS_HOMED

#define STATE_IS_HOMED 0x0000020

Калибровка выполнена.

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

## ◆ STATE_LEFT_EDGE

#define STATE_LEFT_EDGE 0x0002

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

## ◆ STATE_LOW_USB_VOLTAGE

#define STATE_LOW_USB_VOLTAGE 0x0002000

Устарело.

Слишком низкое напряжение на USB. Это поле оставлено для совместимости. Программное обеспечение не должно полагаться на значение этого поля.

## ◆ STATE_OVERLOAD_POWER_CURRENT

#define STATE_OVERLOAD_POWER_CURRENT 0x0000800

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

## ◆ STATE_OVERLOAD_POWER_VOLTAGE

#define STATE_OVERLOAD_POWER_VOLTAGE 0x0000400

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

## ◆ STATE_OVERLOAD_USB_CURRENT

#define STATE_OVERLOAD_USB_CURRENT 0x0004000

Устарело.

Превышен максимальный ток потребления USB. Это поле оставлено для совместимости. Программное обеспечение не должно полагаться на значение этого поля.

## ◆ STATE_OVERLOAD_USB_VOLTAGE

#define STATE_OVERLOAD_USB_VOLTAGE 0x0001000

Устарело.

Превышено напряжение на USB. Это поле оставлено для совместимости. Программное обеспечение не должно полагаться на значение этого поля.

## ◆ STATE_POWER_OVERHEAT

#define STATE_POWER_OVERHEAT 0x0000100

Перегрев силового драйвера.

Управление двигателем отключено до восстановления рабочей температуры драйвера. Этого не должно происходить в коробочных версиях контроллера. Это может произойти в версии контроллера с «голой» платой и с пользовательским радиатором. Решение: используйте другой радиатор.

## ◆ STATE_REV_SENSOR

#define STATE_REV_SENSOR 0x0400

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

## ◆ STATE_RIGHT_EDGE

#define STATE_RIGHT_EDGE 0x0001

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

## ◆ STATE_SECUR

#define STATE_SECUR 0x1B3FFC0

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

## ◆ STATE_SYNC_INPUT

#define STATE_SYNC_INPUT 0x0800

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

## ◆ STATE_SYNC_OUTPUT

#define STATE_SYNC_OUTPUT 0x1000

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

## ◆ STATE_WINDING_RES_MISMATCH

#define STATE_WINDING_RES_MISMATCH 0x0100000

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

Обычно это происходит с поврежденным шаговым двигателем у которого полностью или частично закорочены обмотки.

## ◆ SYNCIN_ENABLED

#define SYNCIN_ENABLED 0x01

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

## ◆ SYNCIN_INVERT

#define SYNCIN_INVERT 0x02

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

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

## ◆ SYNCOUT_ENABLED

#define SYNCOUT_ENABLED 0x01

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

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

## ◆ SYNCOUT_IN_STEPS

#define SYNCOUT_IN_STEPS 0x08

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

## ◆ SYNCOUT_INVERT

#define SYNCOUT_INVERT 0x04

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

## ◆ SYNCOUT_ONPERIOD

#define SYNCOUT_ONPERIOD 0x40

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

## ◆ SYNCOUT_ONSTART

#define SYNCOUT_ONSTART 0x10

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

## ◆ SYNCOUT_ONSTOP

#define SYNCOUT_ONSTOP 0x20

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

## ◆ SYNCOUT_STATE

#define SYNCOUT_STATE 0x02

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

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

## ◆ TS_TYPE_BITS

#define TS_TYPE_BITS 0x07

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

## ◆ UART_PARITY_BITS

#define UART_PARITY_BITS 0x03

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

## ◆ WIND_A_STATE_ABSENT

#define WIND_A_STATE_ABSENT 0x00

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

## ◆ WIND_A_STATE_MALFUNC

#define WIND_A_STATE_MALFUNC 0x02

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

## ◆ WIND_A_STATE_OK

#define WIND_A_STATE_OK 0x03

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

## ◆ WIND_A_STATE_UNKNOWN

#define WIND_A_STATE_UNKNOWN 0x01

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

## ◆ WIND_B_STATE_ABSENT

#define WIND_B_STATE_ABSENT 0x00

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

## ◆ WIND_B_STATE_MALFUNC

#define WIND_B_STATE_MALFUNC 0x20

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

## ◆ WIND_B_STATE_OK

#define WIND_B_STATE_OK 0x30

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

## ◆ WIND_B_STATE_UNKNOWN

#define WIND_B_STATE_UNKNOWN 0x10

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

## ◆ XIMC_API

#define XIMC_API

Макрос импорта библиотеки. Макросы позволяют автоматически импортировать функцию из общей библиотеки. Он автоматически расширяется до dllimport на msvc при включении файла заголовка.

## ◆ XIMC_CALLCONV

#define XIMC_CALLCONV

Библиотека вызывающая условные макросы.

## ◆ XIMC_RETTYPE

#define XIMC_RETTYPE void*

Возвращаеемый тип потока.

## Типы

## ◆ calibration_t

typedef struct calibration_t calibration_t

Структура калибровок

Где найти все значения для расчета?

- XILab (не забудьте загрузить профиль для вашего позиционера. Профиль должен соответствовать полному названию вашего позиционера. Например: 8MT173-25-MEn1.cfg):
  - В настройках XILab перейдите во вкладку user units. Разделите второе число на первое — это и будет коэффициент A
  - В настройках XILab, перейдите во вкладку DC motor/BLDC motor/Stepper motor (зависит от используемого типа двигателя). Подставьте значение из поля Encoder counts per turn в формулу подсчета B коэффициента
- Профиль (откройте профиль любым текстовым редактором. Профиль должен соответствовать полному названию вашего позиционера. Например: 8MT173-25-MEn1.cfg):
  - Найдите в файле профиля поля Step_multiplier= и Unit_multiplier=. Разделите второе число на первое — это и будет коэффициент A
  - Найдите в файле профиля поле Encoder_CPT=. Подставьте значение из этого поля в формулу подсчета B коэффициента вместо ENCODER_COUNTS_PER_TURN

Как посчитать Speed, Accel, Decel и AntiplaySpeed в пользовательских единицах при использовании шагового двигателя с энкодером или DC/BLDC двигателей?

1. Используя XILab, загрузите профиль для вашего позиционера. Профиль должен соответствовать полному названию вашего позиционера. Например: 8MT173-25-MEn1.cfg
2. Включите режим Feedback encoder, если он не был включен ранее
3. Вводите скорость в пользовательских единицах в поле Working speed
4. Во вкладке User units выключите флаг User units. Это позволит видеть значение в поле Working speed в RPM
5. Умножьте значение из поля Working speed (в RPM) на коэффициент B. Например: 480 * 0.0000009375 = 0.00045. Значение 0.00045 для позиционера 8MT173-25-MEn1 в режиме Encoder будет равно скорости 2 мм/сек

Ускорение, замедление и скорость в режиме антилюфта считаются аналогично

## ◆ device_enumeration_t

typedef uint32_t device_enumeration_t

Тип, определяющий структуру данных о всех контроллерах, обнаруженных при опросе устройств.

## ◆ device_network_information_t

typedef struct device_network_information_t device_network_information_t

Структура данных с информацией о сетевом устройстве.

## ◆ logging_callback_t

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

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

Аргументы

  loglevel | уровень логирования
  message | сообщение

## ◆ result_t

typedef int result_t

Тип, определяющий результат выполнения команды.

## Функции

## ◆ close_device()

result_t XIMC_API close_device | ( | device_t * | id | ) |

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

Аргументы

  id | - идентификатор устройства

Заметки
  Параметр id в данной функции является Си указателем, в отличие от большинства функций библиотеки использующих данный параметр

## ◆ command_clear_fram()

result_t XIMC_API command_clear_fram | ( | device_t | id | ) |

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

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

Аргументы

  id | идентификатор устройства

## ◆ command_eeread_settings()

result_t XIMC_API command_eeread_settings | ( | device_t | id | ) |

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

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

Аргументы

  id | идентификатор устройства

## ◆ command_eesave_settings()

result_t XIMC_API command_eesave_settings | ( | device_t | id | ) |

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

Аргументы

  id | идентификатор устройства

## ◆ command_home()

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

## ◆ command_homezero()

result_t XIMC_API command_homezero | ( | device_t | id | ) |

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

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

Аргументы

  | id | идентификатор устройства
  [out] | ret | RESULT_OK, если контроллер завершил выполнение home и zero корректно или результат первого запроса к контроллеру со статусом отличным от RESULT_OK.

## ◆ command_left()

result_t XIMC_API command_left | ( | device_t | id | ) |

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

Аргументы

  id | идентификатор устройства

## ◆ command_loft()

result_t XIMC_API command_loft | ( | device_t | id | ) |

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

Аргументы

  id | идентификатор устройства

## ◆ command_move()

result_t XIMC_API command_move | ( | device_t | id,
|  | int | Position,
|  | int | uPosition )

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

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

Аргументы

  id | идентификатор устройства
  Position | заданная позиция.
  uPosition | часть позиции в микрошагах. Величина микрошага и диапазон допустимых значений для данного поля зависят от выбранного режима деления шага (см. поле MicrostepMode в engine_settings).

## ◆ command_move_calb()

result_t XIMC_API command_move_calb | ( | device_t | id,
|  | float | Position,
|  | const calibration_t * | calibration )

Перемещение в позицию с использованием пользовательских единиц.

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

Аргументы

  id | идентификатор устройства
  Position | позиция для перемещения
  calibration | настройки пользовательских единиц

Заметки
  Параметр Position корректируется таблицей коррекции.

## ◆ command_movr()

result_t XIMC_API command_movr | ( | device_t | id,
|  | int | DeltaPosition,
|  | int | uDeltaPosition )

Перемещение на заданное смещение.

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

Аргументы

  DeltaPosition | смещение.
  uDeltaPosition | часть смещения в микрошагах. Величина микрошага и диапазон допустимых значений для данного поля зависят от выбранного режима деления шага (см. поле MicrostepMode в engine_settings).
  id | идентификатор устройства

## ◆ command_movr_calb()

result_t XIMC_API command_movr_calb | ( | device_t | id,
|  | float | DeltaPosition,
|  | const calibration_t * | calibration )

Перемещение на заданное смещение с использованием пользовательских единиц.

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

Аргументы

  DeltaPosition | смещение.
  id | идентификатор устройства
  calibration | настройки пользовательских единиц

Заметки
  Конечная координата вычисляемая с помощью DeltaPosition, корректируется таблицей коррекции. Однако корректировка не может быть применена в случае поступления команды movr во время движения. Команда movr устанавливает целевую позицию равной текущей целевой плюс дельта. Но точно определить текущую целевую координату во время движения библиотека не может. Поэтому она не может рассчитать конечную позицию и соответсвующую ей коррекцию.

## ◆ command_power_off()

result_t XIMC_API command_power_off | ( | device_t | id | ) |

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

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

Аргументы

  id | идентификатор устройства

См. также
  get_power_settings
  set_power_settings

## ◆ command_read_robust_settings()

result_t XIMC_API command_read_robust_settings | ( | device_t | id | ) |

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

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

Аргументы

  id | идентификатор устройства

## ◆ command_read_settings()

result_t XIMC_API command_read_settings | ( | device_t | id | ) |

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

Аргументы

  id | идентификатор устройства

## ◆ command_reset()

result_t XIMC_API command_reset | ( | device_t | id | ) |

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

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

Аргументы

  id | идентификатор устройства

## ◆ command_right()

result_t XIMC_API command_right | ( | device_t | id | ) |

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

Аргументы

  id | идентификатор устройства

## ◆ command_save_robust_settings()

result_t XIMC_API command_save_robust_settings | ( | device_t | id | ) |

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

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

Аргументы

  id | идентификатор устройства

## ◆ command_save_settings()

result_t XIMC_API command_save_settings | ( | device_t | id | ) |

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

Аргументы

  id | идентификатор устройства

## ◆ command_sstp()

result_t XIMC_API command_sstp | ( | device_t | id | ) |

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

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

Аргументы

  id | идентификатор устройства

## ◆ command_start_measurements()

result_t XIMC_API command_start_measurements | ( | device_t | id | ) |

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

Аргументы

  id | идентификатор устройства

## ◆ command_stop()

result_t XIMC_API command_stop | ( | device_t | id | ) |

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

При вызове этой команды сбрасывается флаг ALARM.

Аргументы

  id | идентификатор устройства

## ◆ command_update_firmware()

result_t XIMC_API command_update_firmware | ( | const char * | uri,
|  | const uint8_t * | data,
|  | uint32_t | data_size )

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

Команда только для производителя.

Аргументы

  uri | идентификатор устройства
  data | указатель на массив байтов прошивки
  data_size | размер массива в байтах

## ◆ command_wait_for_stop()

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] | ret | RESULT_OK, если контроллер остановился, в противном случае первый результат выполнения команды get_status со статусом отличным от RESULT_OK.

## ◆ command_zero()

result_t XIMC_API command_zero | ( | device_t | id | ) |

Устанавливает текущую позицию равной 0.

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

Аргументы

  id | идентификатор устройства

## ◆ enumerate_devices()

device_enumeration_t XIMC_API enumerate_devices | ( | int | enumerate_flags,
|  | const char * | hints )

Поиск и составление списка доступных устройств.

По умолчанию формирует список устройств, подключенных к данному компьютеру и представленных в виде COM-портов. Дополнительно можно включить поиск сетевых устройств. Найденные в локальной сети устройства попадут в тот же список.
Для получения информации из собранного списка воспользуйтесь соответствующими функциями с префиксом `get_enumerate_` и полученным идентификатором `device_enumeration`.
После завершения работы со списком найденных устройств следует освободить память с помощью функции `free_enumerate_devices()`.

Аргументы

  [in] | enumerate_flags | набор флагов, задающих режимы поиска. Флаги могут применяться совместно через побитовое "ИЛИ". `ENUMERATE_NETWORK` - включает поиск сетевых устройств. Если флаг установлен, сетевые устройства будут добавлены в общий список. Если флаг не установлен, в списке будут только устройства, подключенные к данному компьютеру. `ENUMERATE_ALL_COM` - при включенной опции опрашивает все устройства типа COM-порт в системе. При отключенной опции опрашивает только устройства, имена которых соответствуют маске устройств XIMC ("XIMC Motor Controller" в Windows, `/dev/ximc/` и `/dev/ttyACM/` на Linux/Mac). `ENUMERATE_PROBE` - включает проверку устройств и сбор дополнительной информации (серийный номер, версию, модель, имя...). Если данный флаг установлен, в список будут добавлены только устройства, которые гарантированно можно открыть, но могут не попадать устройства, подключенные через RS232-преобразователи. Если флаг не установлен, то в списке будет больше устройств (в частности, попадут устройства, явным образом перечисленные в `hints`), но доступность и совместимость с данной библиотекой не гарантируется.
  [in] | hints | дополнительная информация для повышения эффективности поиска. Имеет смысл использовать в случае сложной сетевой конфигурации, когда автоматический поиск может находить не всё. Формат - строка `"ключ1=значение1\nключ2=значение2"`. Неизвестные ключи игнорируются. Один ключ может иметь несколько значений, которые перечисляются через запятую: `ключ=значение1,значение2,значение3`. Допустимые ключи: `addr` - список URLов сетевых контроллеров или серверов с подключенными контроллерами. Поле применяется совместно с флагом `ENUMERATE_NETWORK`. Протоколы и форматы адресов: `xi-tcp://<ip-адрес>` - сетевые контроллеры и контроллеры, подключенные через Ethernet-RS232 преобразователи. Если флаг `ENUMERATE_PROBE` не установлен, все перечисленные устройства попадут в список. `xi-net://<ip-адрес>` - сетевые многоосевые системы, xi-net сервера. Запрос информации о наличии контроллеров по этим адресам будет сделан независимо от результатов автоматической процедуры сетевого поиска. `adapter_addr` - список IP-адресов локальных сетевых адаптеров, через который должен осуществляться поиск. Если ключ отсутствует или ни одного адаптера не указано, то поиск производится на всех адаптерах.

Возвращает
  `device_enumeration` - идентификатор списка устройств. Используется для получения информации об устройствах с помощью функций с префиксами `get_enumerate_`.

Примеры использования:

      // Поиск локальных устройств без проверки
      device_enumeration_t device_enumeration = enumerate_devices(0, "");
      // Поиск локальных устройств c проверкой
      device_enumeration_t device_enumeration = enumerate_devices(ENUMERATE_PROBE, "");
      // Полностью автоматический поиск локальных и сетевых устройств
      device_enumeration_t device_enumeration = enumerate_devices(ENUMERATE_NETWORK, "");
      // Поиск локальных и сетевых устройств
      // с использованием адаптера локального компьютера с адресом 192.168.0.100
      // и явным обращениям к сетевому контроллеру с адресом 192.168.0.11
      // и xi-net серверу с адресом  192.168.0.10
      device_enumeration_t device_enumeration = enumerate_devices(
      ENUMERATE_NETWORK,
      "addr=192.168.0.10,xi-tcp://192.168.0.11\nadapter_addr=192.168.0.100"
      );

## ◆ free_enumerate_devices()

result_t XIMC_API free_enumerate_devices | ( | device_enumeration_t | device_enumeration | ) |

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

Аргументы

  [in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах

## ◆ get_accessories_settings()

result_t XIMC_API get_accessories_settings | ( | device_t | id,
|  | accessories_settings_t * | accessories_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | accessories_settings | структура, содержащая информацию о дополнительных аксессуарах

## ◆ get_analog_data()

result_t XIMC_API get_analog_data | ( | device_t | id,
|  | analog_data_t * | analog_data )

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

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

Аргументы

  | id | идентификатор устройства
  [out] | analog_data | аналоговые данные

## ◆ get_bootloader_version()

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 | номер релиза

## ◆ get_brake_settings()

result_t XIMC_API get_brake_settings | ( | device_t | id,
|  | brake_settings_t * | brake_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | brake_settings | структура, содержащая настройки управления тормозом

## ◆ get_calibration_settings()

result_t XIMC_API get_calibration_settings | ( | device_t | id,
|  | calibration_settings_t * | calibration_settings )

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

Команда только для производителя. Эта функция заполняет структуру калибровочных коэффициентов. Эти коэффициенты используются для пересчёта кодов АЦП в токи обмоток и полный ток потребления. Коэффициенты сгруппированы в пары, XXX_A и XXX_B; пары представляют собой коэффициенты линейного уравнения. Первый коэффициент - тангенс угла наклона, второй - постоянное смещение. Таким образом, XXX_Current[mA] = XXX_A[mA/ADC]*XXX_ADC_CODE[ADC] + XXX_B[mA].

См. также
  calibration_settings_t

Аргументы

  | id | идентификатор устройства
  [out] | calibration_settings | калибровочные коэффициенты

## ◆ get_chart_data()

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.

## ◆ get_control_settings()

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 | структура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо.

## ◆ get_control_settings_calb()

result_t XIMC_API get_control_settings_calb | ( | device_t | id,
|  | control_settings_calb_t * | control_settings_calb,
|  | const calibration_t * | calibration )

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

При выборе 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_calb | структура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо.
  | calibration | настройки пользовательских единиц

## ◆ get_controller_name()

result_t XIMC_API get_controller_name | ( | device_t | id,
|  | controller_name_t * | controller_name )

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

Аргументы

  | id | идентификатор устройства
  [out] | controller_name | структура, содержащая установленное пользовательское имя контроллера и флаги настроек

## ◆ get_ctp_settings()

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 | структура, содержащая настройки контроля позиции

## ◆ get_debug_read()

result_t XIMC_API get_debug_read | ( | device_t | id,
|  | debug_read_t * | debug_read )

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

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

Аргументы

  | id | идентификатор устройства
  [out] | debug_read | Данные для отладки.

## ◆ get_device_count()

int XIMC_API get_device_count | ( | device_enumeration_t | device_enumeration | ) |

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

Аргументы

  [in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах

## ◆ get_device_information()

result_t XIMC_API get_device_information | ( | device_t | id,
|  | device_information_t * | device_information )

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

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

Аргументы

  | id | идентификатор устройства.
  [out] | device_information | информация об устройстве Информация об устройстве.

См. также
  get_device_information

## ◆ get_device_name()

pchar XIMC_API get_device_name | ( | device_enumeration_t | device_enumeration,
|  | int | device_index )

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

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

Аргументы

  [in] | device_enumeration | закрытый указатель на данные о перечисленных устойствах
  [in] | device_index | номер устройства

## ◆ get_edges_settings()

result_t XIMC_API get_edges_settings | ( | device_t | id,
|  | edges_settings_t * | edges_settings )

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

См. также
  set_edges_settings

Аргументы

  | id | идентификатор устройства
  [out] | edges_settings | настройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей

## ◆ get_edges_settings_calb()

result_t XIMC_API get_edges_settings_calb | ( | device_t | id,
|  | edges_settings_calb_t * | edges_settings_calb,
|  | const calibration_t * | calibration )

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

См. также
  set_edges_settings_calb

Аргументы

  | id | идентификатор устройства
  [out] | edges_settings_calb | настройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей
  | calibration | настройки пользовательских единиц

Заметки
  Внимание! Некоторые параметры структуры edges_settings_calb корректируются таблицей коррекции координат.

## ◆ get_emf_settings()

result_t XIMC_API get_emf_settings | ( | device_t | id,
|  | emf_settings_t * | emf_settings )

Чтение электромеханических настроек шагового двигателя.

Настройки различны для разных двигателей.

См. также
  set_emf_settings

Аргументы

  | id | идентификатор устройства
  [out] | emf_settings | настройки EMF

## ◆ get_encoder_information()

result_t XIMC_API get_encoder_information | ( | device_t | id,
|  | encoder_information_t * | encoder_information )

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

Аргументы

  | id | идентификатор устройства
  [out] | encoder_information | структура, содержащая информацию об энкодере

## ◆ get_encoder_settings()

result_t XIMC_API get_encoder_settings | ( | device_t | id,
|  | encoder_settings_t * | encoder_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | encoder_settings | структура, содержащая настройки энкодера

## ◆ get_engine_advanced_setup()

result_t XIMC_API get_engine_advanced_setup | ( | device_t | id,
|  | engine_advanced_setup_t * | engine_advanced_setup )

Чтение расширенных настроек.

Только для производителя.

См. также
  set_engine_advanced_setup

Аргументы

  | id | идентификатор устройства
  [out] | engine_advanced_setup | настройки EAS

## ◆ get_engine_settings()

result_t XIMC_API get_engine_settings | ( | device_t | id,
|  | engine_settings_t * | engine_settings )

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

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

См. также
  set_engine_settings

Аргументы

  | id | идентификатор устройства
  [out] | engine_settings | структура с настройками мотора

## ◆ get_engine_settings_calb()

result_t XIMC_API get_engine_settings_calb | ( | device_t | id,
|  | engine_settings_calb_t * | engine_settings_calb,
|  | const calibration_t * | calibration )

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

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

См. также
  set_engine_settings

Аргументы

  | id | идентификатор устройства
  [out] | engine_settings_calb | структура с настройками мотора
  | calibration | настройки пользовательских единиц

## ◆ get_entype_settings()

result_t XIMC_API get_entype_settings | ( | device_t | id,
|  | entype_settings_t * | entype_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | entype_settings | структура, содержащая настройки типа мотора и типа силового драйвера

## ◆ get_enumerate_device_controller_name()

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] | controller | name имя устройства

## ◆ get_enumerate_device_information()

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 | информация об устройстве

## ◆ get_enumerate_device_network_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 | сетевая информация об устройстве

## ◆ get_enumerate_device_serial()

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 | серийный номер устройства

## ◆ get_enumerate_device_stage_name()

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] | stage | name имя подвижки

## ◆ get_extended_settings()

result_t XIMC_API get_extended_settings | ( | device_t | id,
|  | extended_settings_t * | extended_settings )

Чтение расширенных настроек.

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

См. также
  set_extended_settings

Аргументы

  | id | идентификатор устройства
  [out] | extended_settings | настройки EST

## ◆ get_extio_settings()

result_t XIMC_API get_extio_settings | ( | device_t | id,
|  | extio_settings_t * | extio_settings )

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

См. также
  set_extio_settings

Аргументы

  | id | идентификатор устройства
  [out] | extio_settings | настройки EXTIO

## ◆ get_feedback_settings()

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.

## ◆ get_firmware_version()

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 | номер релиза

## ◆ get_gear_information()

result_t XIMC_API get_gear_information | ( | device_t | id,
|  | gear_information_t * | gear_information )

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

Аргументы

  | id | идентификатор устройства
  [out] | gear_information | структура, содержащая информацию о редукторе

## ◆ get_gear_settings()

result_t XIMC_API get_gear_settings | ( | device_t | id,
|  | gear_settings_t * | gear_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | gear_settings | структура, содержащая настройки редуктора

## ◆ get_globally_unique_identifier()

result_t XIMC_API get_globally_unique_identifier | ( | device_t | id,
|  | globally_unique_identifier_t * | globally_unique_identifier )

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

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

Аргументы

  | id | идентификатор устройства
  [out] | globally_unique_identifier | результат полей 0-3 определяет уникальный 128-битный идентификатор.

## ◆ get_hallsensor_information()

result_t XIMC_API get_hallsensor_information | ( | device_t | id,
|  | hallsensor_information_t * | hallsensor_information )

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

Аргументы

  | id | идентификатор устройства
  [out] | hallsensor_information | структура, содержащая информацию о датчиках Холла

## ◆ get_hallsensor_settings()

result_t XIMC_API get_hallsensor_settings | ( | device_t | id,
|  | hallsensor_settings_t * | hallsensor_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | hallsensor_settings | структура, содержащая настройки датчиков Холла

## ◆ get_home_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 | настройки калибровки позиции

## ◆ get_home_settings_calb()

result_t XIMC_API get_home_settings_calb | ( | device_t | id,
|  | home_settings_calb_t * | home_settings_calb,
|  | const calibration_t * | calibration )

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

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

См. также
  home_settings_calb_t

Аргументы

  | id | идентификатор устройства
  [out] | home_settings_calb | настройки калибровки позиции
  | calibration | настройки пользовательских единиц

## ◆ get_init_random()

result_t XIMC_API get_init_random | ( | device_t | id,
|  | init_random_t * | init_random )

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

Только для производителя.

Аргументы

  | id | идентификатор устройства
  [out] | init_random | случайная последовательность, сгенерированная контроллером

## ◆ get_joystick_settings()

result_t XIMC_API get_joystick_settings | ( | device_t | id,
|  | joystick_settings_t * | joystick_settings )

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

При отклонении джойстика более чем на DeadZone от центрального положения начинается движение со скоростью, определяемой отклонением джойстика от DeadZone до 100% отклонения, причем отклонению DeadZone соответствует нулевая скорость (при этом постоянно выполняется команда "soft stop"), а 100% отклонения соответствует MaxSpeed [i] (см. команду SCTL), где i=0, если предыдущим использованием этого режима не было выбрано другое i. Если следующая скорость в таблице скоростей нулевая (целая и микрошаговая части), то перехода на неё не происходит. Первая скорость в списке не должна быть нулевой. DeadZone вычисляется в десятых долях процента отклонения от центра (JoyCenter) до правого или левого максимума. Подробнее см. раздел "Управление с помощью джойстика" на сайте https://doc.xisupport.com/ru/8smc5-usb/8SMCn-USB/Technical_specification/Additional_features/Joystick_control.html.

Аргументы

  | id | идентификатор устройства
  [out] | joystick_settings | структура, содержащая настройки джойстика

## ◆ get_measurements()

result_t XIMC_API get_measurements | ( | device_t | id,
|  | measurements_t * | measurements )

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

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

См. также
  measurements_t

Аргументы

  | id | идентификатор устройства
  [out] | measurements | структура с буфером и его длинной.

## ◆ get_motor_information()

result_t XIMC_API get_motor_information | ( | device_t | id,
|  | motor_information_t * | motor_information )

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

Аргументы

  | id | идентификатор устройства
  [out] | motor_information | структура, содержащая информацию о двигателе

## ◆ get_motor_settings()

result_t XIMC_API get_motor_settings | ( | device_t | id,
|  | motor_settings_t * | motor_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | motor_settings | структура, содержащая настройки двигателя

## ◆ get_move_settings()

result_t XIMC_API get_move_settings | ( | device_t | id,
|  | move_settings_t * | move_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | move_settings | структура, содержащая настройки движения: скорость, ускорение, и т.д.

## ◆ get_move_settings_calb()

result_t XIMC_API get_move_settings_calb | ( | device_t | id,
|  | move_settings_calb_t * | move_settings_calb,
|  | const calibration_t * | calibration )

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

Аргументы

  | id | идентификатор устройства
  [out] | move_settings_calb | структура, содержащая настройки движения: скорость, ускорение, и т.д.
  | calibration | настройки пользовательских единиц

## ◆ get_network_settings()

result_t XIMC_API get_network_settings | ( | device_t | id,
|  | network_settings_t * | network_settings )

Команда чтения сететвых настроек.

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

Аргументы

  DHCPEnabled | DHCP включен (1) или нет (0)
  IPv4Address[4] | Массив[4] с IP-адресом
  SubnetMask[4] | Массив[4] с маской подсети
  DefaultGateway[4] | Массив[4] со шлюзом сети

## ◆ get_nonvolatile_memory()

result_t XIMC_API get_nonvolatile_memory | ( | device_t | id,
|  | nonvolatile_memory_t * | nonvolatile_memory )

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

Аргументы

  | id | идентификатор устройства
  [out] | nonvolatile_memory | структура, содержащая установленные пользовательские данные

## ◆ get_password_settings()

result_t XIMC_API get_password_settings | ( | device_t | id,
|  | password_settings_t * | password_settings )

Команда чтения пароля к веб-странице.

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

Аргументы

  UserPassword[20] | Строчка-пароль для доступа к веб-странице

## ◆ get_pid_settings()

result_t XIMC_API get_pid_settings | ( | device_t | id,
|  | pid_settings_t * | pid_settings )

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

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

См. также
  set_pid_settings

Аргументы

  | id | идентификатор устройства
  [out] | pid_settings | настройки ПИД

## ◆ get_position()

result_t XIMC_API get_position | ( | device_t | id,
|  | get_position_t * | the_get_position )

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

Аргументы

  | id | идентификатор устройства
  [out] | the_get_position | структура, содержащая позицию мотора.

## ◆ get_position_calb()

result_t XIMC_API get_position_calb | ( | device_t | id,
|  | get_position_calb_t * | the_get_position_calb,
|  | const calibration_t * | calibration )

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

Аргументы

  | id | идентификатор устройства
  [out] | the_get_position_calb | структура, содержащая позицию мотора.
  | calibration | настройки пользовательских единиц

Заметки
  Внимание! Некоторые параметры структуры get_position_calb корректируются таблицей коррекции координат.

## ◆ get_power_settings()

result_t XIMC_API get_power_settings | ( | device_t | id,
|  | power_settings_t * | power_settings )

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

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

Аргументы

  | id | идентификатор устройства
  [out] | power_settings | структура, содержащая настройки питания шагового мотора

## ◆ get_secure_settings()

result_t XIMC_API get_secure_settings | ( | device_t | id,
|  | secure_settings_t * | secure_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | secure_settings | настройки, определяющие максимально допустимые параметры, для защиты оборудования

См. также
  status_t::flags

## ◆ get_serial_number()

result_t XIMC_API get_serial_number | ( | device_t | id,
|  | unsigned int * | SerialNumber )

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

Аргументы

  | id | идентификатор устройства
  [out] | SerialNumber | серийный номер контроллера

## ◆ get_stage_information()

result_t XIMC_API get_stage_information | ( | device_t | id,
|  | stage_information_t * | stage_information )

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

Не поддерживается.

Аргументы

  | id | идентификатор устройства
  [out] | stage_information | структура, содержащая информацию о позиционере

## ◆ get_stage_name()

result_t XIMC_API get_stage_name | ( | device_t | id,
|  | stage_name_t * | stage_name )

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

Аргументы

  | id | идентификатор устройства
  [out] | stage_name | структура, содержащая установленное пользовательское имя позиционера

## ◆ get_stage_settings()

result_t XIMC_API get_stage_settings | ( | device_t | id,
|  | stage_settings_t * | stage_settings )

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

Аргументы

  | id | идентификатор устройства
  [out] | stage_settings | структура, содержащая настройки позиционера

## ◆ get_status()

result_t XIMC_API get_status | ( | device_t | id,
|  | status_t * | status )

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

Аргументы

  | id | идентификатор устройства
  [out] | status | структура с информацией о текущем состоянии устройства Состояние устройства. Эта структура содержит основные параметры текущего состояния контроллера, такие как скорость, позиция и флаги состояния.

См. также
  get_status

## ◆ get_status_calb()

result_t XIMC_API get_status_calb | ( | device_t | id,
|  | status_calb_t * | status,
|  | const calibration_t * | calibration )

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

Аргументы

  | id | идентификатор устройства
  [out] | status | структура с информацией о текущем состоянии устройства
  | calibration | настройки пользовательских единиц Состояние устройства в калиброванных единицах. Эта структура содержит основные параметры текущего состояния контроллера, такие как скорость, позиция и флаги состояния, размерные величины выводятся в калиброванных единицах.

См. также
  get_status

## ◆ get_sync_in_settings()

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 | настройки синхронизации

## ◆ get_sync_in_settings_calb()

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 )

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

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

См. также
  set_sync_in_settings_calb

Аргументы

  | id | идентификатор устройства
  [out] | sync_in_settings_calb | настройки синхронизации
  | calibration | настройки пользовательских единиц

## ◆ get_sync_out_settings()

result_t XIMC_API get_sync_out_settings | ( | device_t | id,
|  | sync_out_settings_t * | sync_out_settings )

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

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

## ◆ get_sync_out_settings_calb()

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 )

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

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

См. также
  set_sync_in_settings_calb

Аргументы

  | id | идентификатор устройства
  [in] | sync_out_settings_calb | настройки синхронизации
  | calibration | настройки пользовательских единиц

## ◆ get_uart_settings()

result_t XIMC_API get_uart_settings | ( | device_t | id,
|  | uart_settings_t * | uart_settings )

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

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

См. также
  uart_settings_t

Аргументы

  | Speed | Cкорость UART
  [out] | uart_settings | настройки UART

## ◆ goto_firmware()

result_t XIMC_API goto_firmware | ( | device_t | id,
|  | uint8_t * | ret )

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

Аргументы

  | id | идентификатор устройства
  [out] | ret | RESULT_OK, если переход из загрузчика в прошивку возможен. После ответа на эту команду выполняется переход. RESULT_NO_FIRMWARE, если прошивка не найдена. RESULT_ALREADY_IN_FIRMWARE, если эта команда была вызвана из прошивки.

## ◆ has_firmware()

result_t XIMC_API has_firmware | ( | const char * | uri,
|  | uint8_t * | ret )

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

Аргументы

  | uri | уникальный идентификатор ресурса устройства
  [out] | ret | ноль, если прошивка присутствует

## ◆ logging_callback_stderr_narrow()

void XIMC_API logging_callback_stderr_narrow | ( | int | loglevel,
|  | const wchar_t * | message,
|  | void * | user_data )

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

Аргументы

  loglevel | уровень логирования
  message | сообщение

## ◆ logging_callback_stderr_wide()

void XIMC_API logging_callback_stderr_wide | ( | int | loglevel,
|  | const wchar_t * | message,
|  | void * | user_data )

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

Аргументы

  loglevel | уровень логирования
  message | сообщение

## ◆ msec_sleep()

void XIMC_API msec_sleep | ( | unsigned int | msec | ) |

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

Аргументы

  msec | время в миллисекундах

## ◆ open_device()

device_t XIMC_API open_device | ( | const char * | uri | ) |

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

Аргументы

  [in] | uri | - уникальный идентификатор устройства. URI устройства имеет вид "xi-com:port" или "xi-net://host/serial" или "xi-emu:///abs_path_to_file". На POSIX системах допускается пропуск "рутовского" слэша; например, "xi-emu:///home/user/virt_controller.bin". Для USB-COM устройства "port" это URI устройства в ОС. Например, "xi-com:\\\\\.\\COM3" в Windows (с учётом экранирования двойные обратные слэши преобразуются в одинарные) или "xi-com:///dev/ttyACM0" в Linux/Mac. Для сетевого устройства "host" это IPv4 адрес или полностью определённое имя домена, "serial" это серийный номер устройства в шестнадцатеричной системе. Например, "xi-net://192.168.0.1/00001234" или "xi-net://hostname.com/89ABCDEF". Для работы по TCP протоколу используйте "xi-tcp://<ip/host>:<port>. Например, "xi-tcp://192.168.0.1:1818". Для виртуального устройства "abs_file_to_file" это путь к файлу с сохраненным состоянием устройства. Если файл не существует, он будет создан и инициализирован значениями по умолчанию. Например, "xi-emu:///C:/dir/file.bin" в Windows или "xi-emu:///home/user/file.bin" в Linux/Mac.

## ◆ probe_device()

result_t XIMC_API probe_device | ( | const char * | uri | ) |

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

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

Аргументы

  [in] | uri | - уникальный идентификатор устройства

## ◆ reset_locks()

result_t XIMC_API reset_locks | ( |  | ) |

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

## ◆ service_command_updf()

result_t XIMC_API service_command_updf | ( | device_t | id | ) |

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

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

## ◆ set_accessories_settings()

result_t XIMC_API set_accessories_settings | ( | device_t | id,
|  | const accessories_settings_t * | accessories_settings )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | accessories_settings | структура, содержащая информацию о дополнительных аксессуарах

## ◆ set_brake_settings()

result_t XIMC_API set_brake_settings | ( | device_t | id,
|  | const brake_settings_t * | brake_settings )

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

Аргументы

  | id | идентификатор устройства
  [in] | brake_settings | структура, содержащая настройки управления тормозом

## ◆ set_calibration_settings()

result_t XIMC_API set_calibration_settings | ( | device_t | id,
|  | const calibration_settings_t * | calibration_settings )

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

Команда только для производителя. Эта функция записывает структуру калибровочных коэффициентов в память контроллера. Эти коэффициенты используются для пересчёта кодов АЦП в токи обмоток и полный ток потребления. Коэффициенты сгруппированы в пары, XXX_A и XXX_B; пары представляют собой коэффициенты линейного уравнения. Первый коэффициент - тангенс угла наклона, второй - постоянное смещение. Таким образом, XXX_Current[mA] = XXX_A[mA/ADC]*XXX_ADC_CODE[ADC] + XXX_B[mA].

См. также
  calibration_settings_t

Аргументы

  | id | идентификатор устройства
  [in] | calibration_settings | калибровочные коэффициенты

## ◆ set_control_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 | структура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо.

## ◆ set_control_settings_calb()

result_t XIMC_API set_control_settings_calb | ( | device_t | id,
|  | const control_settings_calb_t * | control_settings_calb,
|  | const calibration_t * | calibration )

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

При выборе 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_calb | структура, содержащая настройки управления мотором с помощью джойстика или кнопок влево/вправо.
  | calibration | настройки пользовательских единиц

## ◆ set_controller_name()

result_t XIMC_API set_controller_name | ( | device_t | id,
|  | const controller_name_t * | controller_name )

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

Аргументы

  | id | идентификатор устройства
  [in] | controller_information | структура, содержащая информацию о контроллере

## ◆ set_correction_table()

result_t XIMC_API set_correction_table | ( | device_t | id,
|  | const char * | namefile )

Команда загрузки корректирующей таблицы из текстового файла.

Таблица используется для коррекции положения в случае механических неточностей. Работает для некоторых параметров в _calb командах.

Аргументы

  | id | - идентификатор устройства
  [in] | namefile | - путь до файла должен быть полным или относительным. Если параметр равен NULL, таблица коррекции будет очищена. Формат файла: два столбца, разделенных табуляцией. Заголовки столбцов строковые. Данные действительные, разделитель точка. Первый столбец - координата. Второй - отклонение, вызванное ошибкой механики. Максимальная длина таблицы 100 строк. Координаты должны быть отсортированы по возрастанию.

См. также
  command_move
  command_movr
  get_position_calb
  get_position_calb_t
  get_status_calb
  status_calb_t
  get_edges_settings_calb
  set_edges_settings_calb
  edges_settings_calb_t

## ◆ set_ctp_settings()

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 | структура, содержащая настройки контроля позиции

## ◆ set_debug_write()

result_t XIMC_API set_debug_write | ( | device_t | id,
|  | const debug_write_t * | debug_write )

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

Команда только для производителя.

Аргументы

  | id | идентификатор устройства
  [in] | debug_write | Данные для отладки.

## ◆ set_edges_settings()

result_t XIMC_API set_edges_settings | ( | device_t | id,
|  | const edges_settings_t * | edges_settings )

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

См. также
  get_edges_settings

Аргументы

  | id | идентификатор устройства
  [in] | edges_settings | настройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей

## ◆ set_edges_settings_calb()

result_t XIMC_API set_edges_settings_calb | ( | device_t | id,
|  | const edges_settings_calb_t * | edges_settings_calb,
|  | const calibration_t * | calibration )

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

См. также
  get_edges_settings_calb

Аргументы

  | id | идентификатор устройства
  [in] | edges_settings_calb | настройки, определяющие тип границ, поведение мотора при их достижении и параметры концевых выключателей
  | calibration | настройки пользовательских единиц

Заметки
  Внимание! Некоторые параметры структуры edges_settings_calb корректируются таблицей коррекции координат.

## ◆ set_emf_settings()

result_t XIMC_API set_emf_settings | ( | device_t | id,
|  | const emf_settings_t * | emf_settings )

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

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

См. также
  get_emf_settings

Аргументы

  | id | идентификатор устройства
  [in] | emf_settings | настройки EMF

## ◆ set_encoder_information()

result_t XIMC_API set_encoder_information | ( | device_t | id,
|  | const encoder_information_t * | encoder_information )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | encoder_information | структура, содержащая информацию об энкодере

## ◆ set_encoder_settings()

result_t XIMC_API set_encoder_settings | ( | device_t | id,
|  | const encoder_settings_t * | encoder_settings )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | encoder_settings | структура, содержащая настройки энкодера

## ◆ set_engine_advanced_setup()

result_t XIMC_API set_engine_advanced_setup | ( | device_t | id,
|  | const engine_advanced_setup_t * | engine_advanced_setup )

Запись расширенных настроек.

Только для производителя.

См. также
  get_engine_advanced_setup

Аргументы

  | id | идентификатор устройства
  [in] | engine_advanced_setup | настройки EAS

## ◆ set_engine_settings()

result_t XIMC_API set_engine_settings | ( | device_t | id,
|  | const engine_settings_t * | engine_settings )

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

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

См. также
  get_engine_settings

Аргументы

  | id | идентификатор устройства
  [in] | engine_settings | структура с настройками мотора

## ◆ set_engine_settings_calb()

result_t XIMC_API set_engine_settings_calb | ( | device_t | id,
|  | const engine_settings_calb_t * | engine_settings_calb,
|  | const calibration_t * | calibration )

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

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

См. также
  get_engine_settings

Аргументы

  | id | идентификатор устройства
  [in] | engine_settings_calb | структура с настройками мотора
  | calibration | настройки пользовательских единиц

## ◆ set_entype_settings()

result_t XIMC_API set_entype_settings | ( | device_t | id,
|  | const entype_settings_t * | entype_settings )

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

Аргументы

  | id | идентификатор устройства
  [in] | entype_settings | структура, содержащая настройки типа мотора и типа силового драйвера

## ◆ set_extended_settings()

result_t XIMC_API set_extended_settings | ( | device_t | id,
|  | const extended_settings_t * | extended_settings )

Запись расширенных настроек.

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

См. также
  get_extended_settings

Аргументы

  | id | идентификатор устройства
  [in] | extended_settings | настройки EST

## ◆ set_extio_settings()

result_t XIMC_API set_extio_settings | ( | device_t | id,
|  | const extio_settings_t * | extio_settings )

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

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

См. также
  get_extio_settings

Аргументы

  | id | идентификатор устройства
  [in] | extio_settings | настройки EXTIO

## ◆ set_feedback_settings()

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.

## ◆ set_gear_information()

result_t XIMC_API set_gear_information | ( | device_t | id,
|  | const gear_information_t * | gear_information )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | gear_information | структура, содержащая информацию о редукторе

## ◆ set_gear_settings()

result_t XIMC_API set_gear_settings | ( | device_t | id,
|  | const gear_settings_t * | gear_settings )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | gear_settings | структура, содержащая настройки редуктора

## ◆ set_hallsensor_information()

result_t XIMC_API set_hallsensor_information | ( | device_t | id,
|  | const hallsensor_information_t * | hallsensor_information )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | hallsensor_information | структура, содержащая информацию о датчиках Холла

## ◆ set_hallsensor_settings()

result_t XIMC_API set_hallsensor_settings | ( | device_t | id,
|  | const hallsensor_settings_t * | hallsensor_settings )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | hallsensor_settings | структура, содержащая настройки датчиков Холла

## ◆ set_home_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 | настройки калибровки позиции

## ◆ set_home_settings_calb()

result_t XIMC_API set_home_settings_calb | ( | device_t | id,
|  | const home_settings_calb_t * | home_settings_calb,
|  | const calibration_t * | calibration )

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

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

См. также
  home_settings_calb_t

Аргументы

  | id | идентификатор устройства
  [in] | home_settings_calb | настройки калибровки позиции
  | calibration | настройки пользовательских единиц

## ◆ set_joystick_settings()

result_t XIMC_API set_joystick_settings | ( | device_t | id,
|  | const joystick_settings_t * | joystick_settings )

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

При отклонении джойстика более чем на DeadZone от центрального положения начинается движение со скоростью, определяемой отклонением джойстика от DeadZone до 100% отклонения, причем отклонению DeadZone соответствует нулевая скорость (при этом постоянно выполняется команда "soft stop"), а 100% отклонения соответствует MaxSpeed [i] (см. команду SCTL), где i=0, если предыдущим использованием этого режима не было выбрано другое i. Если следующая скорость в таблице скоростей нулевая (целая и микрошаговая части), то перехода на неё не происходит. Первая скорость в списке не должна быть нулевой. DeadZone вычисляется в десятых долях процента отклонения от центра (JoyCenter) до правого или левого максимума. Подробнее см. раздел "Управление с помощью джойстика" на сайте https://doc.xisupport.com/ru/8smc5-usb/8SMCn-USB/Technical_specification/Additional_features/Joystick_control.html.

Аргументы

  | id | идентификатор устройства
  [in] | joystick_settings | структура, содержащая настройки джойстика

## ◆ set_logging_callback()

void XIMC_API set_logging_callback | ( | logging_callback_t | logging_callback,
|  | void * | user_data )

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

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

Аргументы

  logging_callback | указатель на функцию обратного вызова

## ◆ set_motor_information()

result_t XIMC_API set_motor_information | ( | device_t | id,
|  | const motor_information_t * | motor_information )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | motor_information | структура, содержащая информацию о двигателе

## ◆ set_motor_settings()

result_t XIMC_API set_motor_settings | ( | device_t | id,
|  | const motor_settings_t * | motor_settings )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | motor_settings | структура, содержащая настройки двигателя

## ◆ set_move_settings()

result_t XIMC_API set_move_settings | ( | device_t | id,
|  | const move_settings_t * | move_settings )

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

Аргументы

  | id | идентификатор устройства
  [in] | move_settings | структура, содержащая настройки движения: скорость, ускорение, и т.д.

## ◆ set_move_settings_calb()

result_t XIMC_API set_move_settings_calb | ( | device_t | id,
|  | const move_settings_calb_t * | move_settings_calb,
|  | const calibration_t * | calibration )

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

Аргументы

  | id | идентификатор устройства
  [in] | move_settings_calb | структура, содержащая настройки движения: скорость, ускорение, и т.д.
  | calibration | настройки пользовательских единиц

## ◆ set_network_settings()

result_t XIMC_API set_network_settings | ( | device_t | id,
|  | const network_settings_t * | network_settings )

Команда записи сететвых настроек.

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

Аргументы

  DHCPEnabled | DHCP включен (1) или нет (0)
  IPv4Address[4] | Массив[4] с IP-адресом
  SubnetMask[4] | Массив[4] с маской подсети
  DefaultGateway[4] | Массив[4] со шлюзом сети

## ◆ set_nonvolatile_memory()

result_t XIMC_API set_nonvolatile_memory | ( | device_t | id,
|  | const nonvolatile_memory_t * | nonvolatile_memory )

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

Аргументы

  | id | идентификатор устройства
  [in] | nonvolatile_memory | структура, содержащая установленные пользовательские данные

## ◆ set_password_settings()

result_t XIMC_API set_password_settings | ( | device_t | id,
|  | const password_settings_t * | password_settings )

Команда записи пароля к веб-странице.

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

Аргументы

  UserPassword[20] | Строчка-пароль для доступа к веб-странице

## ◆ set_pid_settings()

result_t XIMC_API set_pid_settings | ( | device_t | id,
|  | const pid_settings_t * | pid_settings )

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

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

См. также
  get_pid_settings

Аргументы

  | id | идентификатор устройства
  [in] | pid_settings | настройки ПИД

## ◆ set_position()

result_t XIMC_API set_position | ( | device_t | id,
|  | const set_position_t * | the_set_position )

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

Аргументы

  | id | идентификатор устройства
  [out] | the_set_position | структура, содержащая позицию мотора.

## ◆ set_position_calb()

result_t XIMC_API set_position_calb | ( | device_t | id,
|  | const set_position_calb_t * | the_set_position_calb,
|  | const calibration_t * | calibration )

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

Аргументы

  | id | идентификатор устройства
  [out] | the_set_position_calb | структура, содержащая позицию мотора.
  | calibration | настройки пользовательских единиц

## ◆ set_power_settings()

result_t XIMC_API set_power_settings | ( | device_t | id,
|  | const power_settings_t * | power_settings )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | power_settings | структура, содержащая настройки питания шагового мотора

## ◆ set_secure_settings()

result_t XIMC_API set_secure_settings | ( | device_t | id,
|  | const secure_settings_t * | secure_settings )

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

Аргументы

  id | идентификатор устройства
  secure_settings | структура с настройками критических значений

См. также
  status_t::flags

## ◆ set_serial_number()

result_t XIMC_API set_serial_number | ( | device_t | id,
|  | const serial_number_t * | serial_number )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | serial_number | структура, содержащая серийный номер, версию железа и ключ.

## ◆ set_stage_information()

result_t XIMC_API set_stage_information | ( | device_t | id,
|  | const stage_information_t * | stage_information )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | stage_information | структура, содержащая информацию о позиционере

## ◆ set_stage_name()

result_t XIMC_API set_stage_name | ( | device_t | id,
|  | const stage_name_t * | stage_name )

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

Аргументы

  | id | идентификатор устройства
  [in] | stage_name | структура, содержащая установленное пользовательское имя позиционера

## ◆ set_stage_settings()

result_t XIMC_API set_stage_settings | ( | device_t | id,
|  | const stage_settings_t * | stage_settings )

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

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

Аргументы

  | id | идентификатор устройства
  [in] | stage_settings | структура, содержащая настройки позиционера

## ◆ set_sync_in_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 | настройки синхронизации

## ◆ set_sync_in_settings_calb()

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 )

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

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

См. также
  get_sync_in_settings_calb

Аргументы

  | id | идентификатор устройства
  [in] | sync_in_settings_calb | настройки синхронизации
  | calibration | настройки пользовательских единиц

## ◆ set_sync_out_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_out_settings | настройки синхронизации

## ◆ set_sync_out_settings_calb()

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 )

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

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

См. также
  get_sync_in_settings_calb

Аргументы

  | id | идентификатор устройства
  [in] | sync_out_settings_calb | настройки синхронизации
  | calibration | настройки пользовательских единиц

## ◆ set_uart_settings()

result_t XIMC_API set_uart_settings | ( | device_t | id,
|  | const uart_settings_t * | uart_settings )

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

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

См. также
  uart_settings_t

Аргументы

  | Speed | Cкорость UART
  [in] | uart_settings | настройки UART

## ◆ write_key()

result_t XIMC_API write_key | ( | const char * | uri,
|  | uint8_t * | key )

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

Аргументы

  | uri | идентификатор устройства
  [in] | key | ключ защиты. Диапазон: 0..4294967295

## ◆ ximc_version()

void XIMC_API ximc_version | ( | char * | version | ) |

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

Аргументы

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