Структуры данных | Макросы | Определения типов | Перечисления

Файл include/xidcusb.h

Header file for XIDCUSB library. Подробнее...

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

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

struct  state_t
 Состояние устройства. Подробнее...
struct  chart_data_t
 Дополнительное состояние устройства. Подробнее...
struct  calibration_settings_t
 Калибровочные коэффициенты. Подробнее...
struct  engine_settings_t
 Настройки мотора. Подробнее...
struct  pid_settings_t
 Настройки ПИД. Подробнее...
struct  sync_settings_t
 Настройки синхронизации. Подробнее...
struct  home_settings_t
 Настройки калибровки позиции. Подробнее...
struct  analog_data_t
 Аналоговые данные. Подробнее...

Макросы

#define DCCONTROL_API   __attribute__((visibility("default")))
 Library import macros.
#define device_undefined   -1
 Макрос, означающий неопределенное устройство.
Результаты выполнения команд

#define result_ok   0
 выполнено успешно.
#define result_error   -1
 общая ошибка.
#define result_not_implemented   -2
 функция не определена.
#define result_dataerror   -3
 ошибка в запросе или в ответе.
#define result_nodevice   -4
 устройство не подключено.
Флаги состояния

Содержат бинарные значения состояния контроллера.

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

См. также:
state_t::flags
get_status
#define STATE_RIGHT_EDGE   0x0001
 Достижение правой границы.
#define STATE_LEFT_EDGE   0x0002
 Достижение левой границы.
#define STATE_EXT_POWER   0x0004
 Используется внешнее питание.
#define STATE_ERRC   0x0008
 Недопустимая команда.
#define STATE_ERRD   0x0010
 Недопустимые данные.
#define STATE_POWER_DISABLE   0x0020
 Получено сообщение от FTDI об отключении USB-питания.
#define STATE_TTLIO_PINOUT   0x0040
 Если флаг установлен, вывод синхронизации работает как выход; если флаг сброшен, вывод работает как вход.
#define STATE_TTLIO_LEVEL   0x0080
 Лог.
#define STATE_BUTTON_RIGHT   0x0100
 Состояние кнопки "вправо" (1, если нажата).
#define STATE_BUTTON_LEFT   0x0200
 Состояние кнопки "влево" (1, если нажата).
#define STATE_OVERHEAT   0x2000
 Температура превысила допустимую вличину.
#define STATE_OVERLOAD_VOLTAGE   0x4000
 Перегрузка по напряжению.
#define STATE_OVERLOAD_CURRENT   0x8000
 Перегрузка по току.
Флаги параметров мотора

Определяют настройки движения и работу ограничителей.

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

См. также:
engine_settings_t::flags
set_engine_settings
get_engine_settings
#define ENGINE_REVERSE   0x0001
 Флаг реверса.
#define ENGINE_FINISHING   0x0002
 Флаг точной доводки.
#define ENGINE_MAX_SPEED   0x0004
 Флаг максимальной скорости.
#define ENGINE_ANTIPLAY   0x0008
 Компенсация люфта.
#define ENGINE_ACCEL_ON   0x0010
 Ускорение.
#define ENGINE_LIMIT_VOLT   0x0020
 Номинальное напряжение мотора.
#define ENGINE_LIMIT_CURR   0x0040
 Номинальный ток мотора.
#define ENGINE_LIMIT_RPM   0x0080
 Номинальная частота вращения мотора.
#define ENGINE_HOLD   0x0100
 Режим удержания.
#define ENGINE_DYNAMIC_HOLD   0x0200
 Динамическое удержание.
#define ENGINE_ONLY_FINISHING   0x0400
 Если флаг установлен, движение к точке начинается сразу в состоянии Tune.
Флаги параметров микрошагового режима

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

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

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

Определяют тип мотора.

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

См. также:
engine_settings_t::flags
set_engine_settings
get_engine_settings
#define ENGINE_TYPE_DC   0x01
 Мотор постоянного тока.
#define ENGINE_TYPE_STEP   0x02
 Шаговый мотор.
#define ENGINE_TYPE_BRUSHLESS   0x04
 Безщеточный мотор.

#define FEEDBACK_POTENTIOMETER   0x00
 Тип обратной связи.
#define FEEDBACK_ENCODER   0x01
 обратная связь с помощью энкодера.
#define FEEDBACK_ENCODERDIFF   0x02
 обратная связь с помощью энкодера с дифференциальным входом.
#define FEEDBACK_ENCODERHALL   0x04
 обратная связь с помощью датчика Холла.
#define FEEDBACK_EMF   0x08
 обратная связь по ЭДС.
#define FEEDBACK_NONE   0x10
 обратная связь отсутствует.
Флаги настроек синхронизации входа/выхода
#define TTL_SETUP_DIROUT   0x0001
 Если флаг установлен, вывод синхронизации работает как выход; если флаг сброшен, вывод синхронизации работает как вход.
#define TTL_SETUP_OUTSET   0x0002
 Флаг определяет логический уровень на выводе синхронизации, установленном как выход.
#define TTL_SETUP_FRONT   0x0010
 Настройка синхронизации в режиме входа.
Флаги настроек синхронизации входа
#define TTL_SYNCIN_ONMOVE   0x0001
 Бесконечное вращение в направлении TTL_SYNCIN_DIRRIGHT, если флаг установлен; иначе - смещение на заданную позицию.
#define TTL_SYNCIN_MULTI_SHIFT   0x0004
 Если флаг установлен, происходит многократное срабатывание по команде SHIFT; если сброшен - однократное срабатывание по команде MOVE.
#define TTL_SYNCIN_DIRRIGHT   0x0008
 Направление вращения при синхронизации.
Флаги настроек синхронизации выхода
#define TTL_SYNCOUT_ONSTART   0x0001
 Генерация синхронизирующего импульса при начале движения.
#define TTL_SYNCOUT_ONSTOP   0x0002
 Генерация синхронизирующего импульса при остановке.
#define TTL_SYNCOUT_ONPERIOD   0x0004
 Генерация синхронизирующего импульса при каждом импульсе энкодера.
Флаги границ

Типы границ и поведение позиционера на границах.

Могут быть объединены с помощью побитового ИЛИ.

См. также:
get_edges_settings
set_edges_settings
#define BORDER_IS_ENCODER   0x0001
 Если флаг установлен, границы определяются предустановленными точками на шкале позиции.
#define BORDER_STOP_LEFT   0x0002
 Если флаг установлен, мотор останавливается при достижении левой границы.
#define BORDER_STOP_RIGHT   0x0004
 Если флаг установлен, мотор останавливается при достижении правой границы.
Флаги концевых выключателей

Определяют направление и состояние границ.

Могут быть объединены с помощью побитового ИЛИ.

См. также:
get_edges_settings
set_edges_settings
#define ENDER_DIRECT   0x0001
 Если флаг установлен, первый концевой выключатель находится справа; иначе - слева.
#define ENDER_ON1   0x0002
 Если флаг установлен, первый концевой выключатель является нормально замкнутым; иначе - нормально разомкнутым.
#define ENDER_ON2   0x0004
 Если флаг установлен, второй концевой выключатель является нормально замкнутым; иначе - нормально разомкнутым.
Флаги настроек команды home

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

См. также:
get_home_settings
set_home_settings
command_home
#define HOME_DIR_FAST   0x01
 Определяет направление первоначального движения мотора после поступления команды HOME.
#define HOME_STOP_FAST   0x02
 Если флаг установлен, то первоначальное движение завершается по сигналу со входа синхронизации; иначе - по сигналу с концевого выключателя.
#define HOME_DIR_SLOW   0x04
 Определяет направление второго движения мотора.
#define HOME_REV_EN   0x08
 Если флаг установлен, используется Revolution sensor; иначе - этап пропускается.

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

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

Перечисления

enum  DevState {
  DevStateOff, DevStateStop, DevStateMoving, DevStateTune,
  DevStateHoming, DevStateCalibr = 0x0C, DevStateAlarm = 0x0A
}
 

Состояние мотора.

Подробнее...
enum  PwmState {
  PwmStateOff, PwmStateBrak, PwmStateRunfwd, PwmStateRunbck,
  PwmStateInvbrak
}
 

Состояние ШИМ.

Подробнее...
enum  SyncPinMode { PinGPIO = 0x00, PinSyncIn = 0x01, PinSyncOut = 0x02 }
 

Тип вывода синхронизации.

Подробнее...

Функции

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

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

device_t DCCONTROL_API open_device (const char *name)
 Открывает устройство по имени name и возвращает идентификатор, который будет использоваться для обращения к устройству.
result_t DCCONTROL_API close_device (device_t id)
 Закрывает устройство.
result_t DCCONTROL_API probe_device (const char *name)
 Проверяет, является ли устройство с именем name XIMC-совместимым.
result_t DCCONTROL_API enumerate_devices (int *name_count, char ***names, int probe_devices)
 Перечисляет все XIMC-совместимые устройства.
result_t DCCONTROL_API free_enumerate_devices (int name_count, char **names)
 Освобождает память, выделенную enumerate_devices.
result_t DCCONTROL_API init_device (device_t id)
 Инициализация устройства.
result_t DCCONTROL_API deinit_device (device_t id)
 Деинициализация устройства.
result_t DCCONTROL_API get_device_information (device_t id, char *manufacturer, char *manufacturer_id, char *product_description)
 Возвращает информацию об устройстве.
result_t DCCONTROL_API reset_locks ()
 Снимает блокировку библиотеки в экстренном случае.
Управление мотором

Основные функции для управления движением мотора.

result_t DCCONTROL_API command_move (device_t id, unsigned int pos)
 Движение в заданную позицию pos.
result_t DCCONTROL_API command_movr (device_t id, int offset)
 Смещение на заданную позицию относительно текущей, или заданной последней командой command_move.
result_t DCCONTROL_API command_left (device_t id)
 Движение влево.
result_t DCCONTROL_API command_right (device_t id)
 Движение вправо.
result_t DCCONTROL_API command_stop (device_t id)
 Остановка.
result_t DCCONTROL_API command_zero (device_t id)
 Установка текущей позиции в 0.
result_t DCCONTROL_API command_home (device_t id)
 Калибровка позиции.
result_t DCCONTROL_API get_status (device_t id, state_t *state)
 Возвращает информацию о текущем состоянии устройства.
Настройки привода

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

result_t DCCONTROL_API get_pwm_freq (device_t id, unsigned int *freq)
 Чтение частоты ШИМ.
result_t DCCONTROL_API set_pwm_freq (device_t id, unsigned int freq)
 Запись частоты ШИМ.
result_t DCCONTROL_API get_feedback_settings (device_t id, unsigned int *ips, unsigned int *feedback_flags)
 Чтение настроек обратной связи.
result_t DCCONTROL_API set_feedback_settings (device_t id, unsigned int ips, unsigned int feedback_flags)
 Запись настроек обратной связи.
result_t DCCONTROL_API get_move_settings (device_t id, unsigned int *rpm, unsigned int *accel, unsigned int *tuneup_threshold)
 Чтение настроек движения.
result_t DCCONTROL_API set_move_settings (device_t id, unsigned int rpm, unsigned int accel, unsigned int tuneup_threshold)
 Запись настроек движения.
result_t DCCONTROL_API get_engine_settings (device_t id, engine_settings_t *engine_settings)
 Чтение настроек мотора.
result_t DCCONTROL_API set_engine_settings (device_t id, const engine_settings_t *engine_settings)
 Запись настроек мотора.
result_t DCCONTROL_API get_secure_settings (device_t id, unsigned int *critical_curr, unsigned int *critical_voltage, unsigned int *critical_temp)
 Чтение критических значений напряжения, тока и температуры.
result_t DCCONTROL_API set_secure_settings (device_t id, unsigned int critical_curr, unsigned int critical_voltage, unsigned int critical_temp)
 Запись критических значений напряжения, тока и температуры.
result_t DCCONTROL_API get_edges_settings (device_t id, int *border_flags, int *enders_flags, int *left, int *right)
 Чтение настроек границ и концевых выключателей.
result_t DCCONTROL_API set_edges_settings (device_t id, int border_flags, int enders_flags, int left, int right)
 Запись настроек границ и концевых выключателей.
result_t DCCONTROL_API get_pid_settings (device_t id, pid_settings_t *pid_settings)
 Чтение настроек ПИД контуров.
result_t DCCONTROL_API set_pid_settings (device_t id, const pid_settings_t *pid_settings)
 Запись настроек ПИД контуров.
result_t DCCONTROL_API get_sync_settings (device_t id, sync_settings_t *sync_settings)
 Чтение настроек синхронизации.
result_t DCCONTROL_API set_sync_settings (device_t id, const sync_settings_t *sync_settings)
 Запись настроек синхронизации.
result_t DCCONTROL_API get_home_settings (device_t id, home_settings_t *home_settings)
 Чтение настроек калибровки позиции.
result_t DCCONTROL_API set_home_settings (device_t id, const home_settings_t home_settings)
 Запись настроек калибровки позиции.
result_t DCCONTROL_API command_read_settings (device_t id)
 Чтение всех настроек контроллера из flash памяти в оперативную, заменяя текущие настройки.
result_t DCCONTROL_API command_save_settings (device_t id)
 Запись всех текущих настроек во flash память контроллера.
result_t DCCONTROL_API get_serial_number (device_t id, uint32_t *serial)
 Чтение серийного номера контроллера.
result_t DCCONTROL_API get_firmware_version (device_t id, unsigned int *major, unsigned int *minor, unsigned int *release)
 Чтение номера версии прошивки контроллера.
result_t DCCONTROL_API get_analog_data (device_t id, analog_data_t *ad)
 Чтение аналоговых данных, содержащих данные с АЦП и нормированные значения величин.
result_t DCCONTROL_API get_chart_data (device_t id, chart_data_t *chart_data)
 Возвращает информацию с электрическими параметрами, удобную для построения графиков.
Сервисные функции

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

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

result_t DCCONTROL_API get_calibration_coeffs (device_t id, calibration_settings_t *cs)
 Чтение калибровочных коэффициентов.
result_t DCCONTROL_API set_calibration_coeffs (device_t id, const calibration_settings_t *cs)
 Запись калибровочных коэффициентов.
device_t DCCONTROL_API open_raw_device (const char *name)
 Открывает устройство по имени name и возвращает идентификатор, который будет использоваться для обращения к устройству.
result_t DCCONTROL_API set_serial_number (device_t id, uint32_t serial, uint32_t key)
 Запись серийного номера во flash память контроллера.
result_t DCCONTROL_API has_firmware (device_t id, uint8_t *ret)
 Проверка наличия прошивки в контроллере.
result_t DCCONTROL_API write_key (device_t id, uint32_t key)
 Запись ключа защиты Функция используется только производителем.
result_t DCCONTROL_API command_calibrate (device_t id)
 Перевод контроллера в состояние калибровки.
result_t DCCONTROL_API command_reset (device_t id)
 Перезагрузка контроллера.
result_t DCCONTROL_API command_update_firmware (device_t id, const uint8_t *data, uint32_t data_size)
 Обновление прошивки.

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

Header file for XIDCUSB library.


Макросы

#define BORDER_IS_ENCODER   0x0001

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

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

#define DCCONTROL_API   __attribute__((visibility("default")))

Library import macros.

Macros allows to automatically import function from shared library. It automatically expands to dllimport on msvc when including header file

#define ENGINE_ACCEL_ON   0x0010

Ускорение.

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

#define ENGINE_ANTIPLAY   0x0008

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

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

#define ENGINE_DYNAMIC_HOLD   0x0200

Динамическое удержание.

Если флаг установлен, воздействие мотора не прекращается при достижении заданной позиции, контроллер остается в состоянии Tune. Если флаг сброшен, при достижении заданной позиции контроллер переходит в состояние Stop,Brake.

#define ENGINE_FINISHING   0x0002

Флаг точной доводки.

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

#define ENGINE_HOLD   0x0100

Режим удержания.

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

#define ENGINE_LIMIT_CURR   0x0040

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

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

#define ENGINE_LIMIT_RPM   0x0080

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

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

#define ENGINE_LIMIT_VOLT   0x0020

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

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

#define ENGINE_MAX_SPEED   0x0004

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

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

#define ENGINE_ONLY_FINISHING   0x0400

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

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

#define ENGINE_REVERSE   0x0001

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

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

#define FEEDBACK_POTENTIOMETER   0x00

Тип обратной связи.

См. также:
set_feedback_settings
get_feedback_settings обратная связь с помощью потенциометра.
#define HOME_DIR_FAST   0x01

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

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

#define HOME_DIR_SLOW   0x04

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

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

#define STATE_OVERHEAT   0x2000

Температура превысила допустимую вличину.

Время реакции меньше 1 мс.

#define STATE_OVERLOAD_CURRENT   0x8000

Перегрузка по току.

Время реакции меньше 1 мс.

#define STATE_OVERLOAD_VOLTAGE   0x4000

Перегрузка по напряжению.

Время реакции меньше 1 мс.

#define STATE_TTLIO_LEVEL   0x0080

Лог.

уровень на выводе синхронизации

#define TTL_SETUP_FRONT   0x0010

Настройка синхронизации в режиме входа.

Если флаг установлен, срабатывание происходит по фронту импульса. Если флаг сброшен, срабатывание происходит по спаду импульса.

#define TTL_SYNCIN_DIRRIGHT   0x0008

Направление вращения при синхронизации.

Если флаг установлен, вращение вправо. Если флаг сброшен - влево. Используется, когда установлен флаг TTL_SYNCIN_ONMOVE.


Перечисления

enum DevState

Состояние мотора.

Элементы перечислений:
DevStateOff 

мотор отключен от контроллера.

DevStateStop 

мотор остановлен.

DevStateMoving 

мотор работает.

DevStateTune 

мотор находится в состоянии точной доводки.

DevStateHoming 

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

DevStateCalibr 

мотор находится в состоянии калибровки.

DevStateAlarm 

контроллер находится в аварийном состоянии, мотор отключен от контроллера.

enum PwmState

Состояние ШИМ.

Модуль ШИМ (широтно-импульсная модуляция) управляет силовыми MOSFET ключами, регулируя ток через мотор.

Элементы перечислений:
PwmStateOff 

ШИМ выключен, мотор отключен от контроллера.

PwmStateBrak 

режим блокировки, выводы мотора закорочены.

PwmStateRunfwd 

мотор вращается вправо.

PwmStateRunbck 

мотор вращается влево.

PwmStateInvbrak 

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

Тип вывода синхронизации.

Элементы перечислений:
PinGPIO 

GPIO.

PinSyncIn 

вход синхронизации.

PinSyncOut 

выход синхронизации.


Функции

result_t DCCONTROL_API close_device ( device_t  id  ) 

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

Аргументы:
id - идентификатор устройства
result_t DCCONTROL_API command_calibrate ( device_t  id  ) 

Перевод контроллера в состояние калибровки.

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

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

Калибровка позиции.

Вращает мотор в сторону, заданную HOME_DIR_FAST (если установлен - вправо; иначе - влево) со скоростью home_settings_t::fast_home. Если HOME_STOP_FAST установлен, мотор останавливается при поступлении сигнала со входа синхронизации; иначе - при достижении концевого выключателя. Вращает мотор в обратную сторону на расстояние home_settings_t::home_delta со скоростью home_settings_t::slow_home. Вращает мотор в сторону, заданную HOME_DIR_SLOW (если установлен - вправо; иначе - влево) со скоростью home_settings_t::slow_home. Если HOME_STOP_SLOW установлен, мотор останавливается при достижении концевого выключателя; иначе - при поступлении сигнала со входа синхронизации.

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

Движение влево.

Аргументы:
id идентификатор устройства
result_t DCCONTROL_API command_move ( device_t  id,
unsigned int  pos 
)

Движение в заданную позицию pos.

Аргументы:
pos заданная позиция. Диапазон: 0..4294967295
id идентификатор устройства
result_t DCCONTROL_API command_movr ( device_t  id,
int  offset 
)

Смещение на заданную позицию относительно текущей, или заданной последней командой command_move.

Аргументы:
offset смещение. Диапазон: -2147483647..2147483647
id идентификатор устройства
result_t DCCONTROL_API command_read_settings ( device_t  id  ) 

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

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

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

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

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

Движение вправо.

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

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

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

Остановка.

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

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

Аргументы:
id идентификатор устройства
data указатель на массив байтов прошивки
data_size размер массива в байтах
result_t DCCONTROL_API command_zero ( device_t  id  ) 

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

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

Деинициализация устройства.

Чтобы начать работать с устройством необходимо вызвать init_device

Аргументы:
id идентификатор устройства
result_t DCCONTROL_API enumerate_devices ( int *  name_count,
char ***  names,
int  probe_devices 
)

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

Значение name_count определяет количество найденных устройств, их имена хранятся в массиве names. Память, выделенная этой функцией для массива имен names должна быть освобождена с помощью free_enumerate_devices.

Аргументы:
[in,out] name_count количество найденных устройств
[out] names указатель на массив имен
[in] probe_devices если не равно 0, проверяет устройства на совместимость. Диапазон: 0..INT_MAX
result_t DCCONTROL_API free_enumerate_devices ( int  name_count,
char **  names 
)

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

Значение name_count определяет размер массива имен names.

Аргументы:
[in] name_count количество элементов в names
[in] names динамический массив имен
result_t DCCONTROL_API get_analog_data ( device_t  id,
analog_data_t ad 
)

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

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

Аргументы:
id идентификатор устройства
[out] ad аналоговые данные
result_t DCCONTROL_API get_calibration_coeffs ( device_t  id,
calibration_settings_t cs 
)

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

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

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

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

См. также:
chart_data_t
Аргументы:
id идентификатор устройства
[out] chart_data structure with snapshot of controller parameters.
result_t DCCONTROL_API get_device_information ( device_t  id,
char *  manufacturer,
char *  manufacturer_id,
char *  product_description 
)

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

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

Аргументы:
id идентификатор устройства.
[out] manufacturer имя производителя
[out] manufacturer_id идентификатор производителя
[out] product_description описание устройства
result_t DCCONTROL_API get_edges_settings ( device_t  id,
int *  border_flags,
int *  enders_flags,
int *  left,
int *  right 
)

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

См. также:
set_edges_settings
Аргументы:
id идентификатор устройства
[out] border_flags флаги, определяющие тип границ и поведение мотора при их достижении
[out] enders_flags флаги, определяющие настройки концевых выключателей
[out] left позиция левой границы, используется если установлен флаг BORDER_IS_ENCODER
[out] right позиция правой границы, используется если установлен флаг BORDER_IS_ENCODER
result_t DCCONTROL_API get_engine_settings ( device_t  id,
engine_settings_t engine_settings 
)

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

См. также:
set_engine_settings
Аргументы:
id идентификатор устройства
[out] engine_settings структура с настройками мотора
result_t DCCONTROL_API get_feedback_settings ( device_t  id,
unsigned int *  ips,
unsigned int *  feedback_flags 
)

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

Аргументы:
id идентификатор устройства
[out] ips разрешение энкодера (импульсов на оборот)
[out] feedback_flags флаги обратной связи
result_t DCCONTROL_API get_firmware_version ( device_t  id,
unsigned int *  major,
unsigned int *  minor,
unsigned int *  release 
)

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

Аргументы:
id идентификатор устройства
[out] major номер основной версии
[out] minor номер дополнительной версии
[out] release номер релиза
result_t DCCONTROL_API get_home_settings ( device_t  id,
home_settings_t home_settings 
)

Чтение настроек калибровки позиции.

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

См. также:
home_settings_t
Аргументы:
id идентификатор устройства
[out] home_settings настройки калибровки позиции
result_t DCCONTROL_API get_move_settings ( device_t  id,
unsigned int *  rpm,
unsigned int *  accel,
unsigned int *  tuneup_threshold 
)

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

Аргументы:
id идентификатор устройства
[out] rpm скорость, RPM
[out] accel ускорение, RPM/с
[out] tuneup_threshold расстояние от заданной позиции, на котором включается режим tuneup
result_t DCCONTROL_API get_pid_settings ( device_t  id,
pid_settings_t pid_settings 
)

Чтение настроек ПИД контуров.

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

См. также:
set_pid_settings
Аргументы:
id идентификатор устройства
[out] pid_settings настройки ПИД
result_t DCCONTROL_API get_pwm_freq ( device_t  id,
unsigned int *  freq 
)

Чтение частоты ШИМ.

Аргументы:
id идентификатор устройства
[out] freq частота
result_t DCCONTROL_API get_secure_settings ( device_t  id,
unsigned int *  critical_curr,
unsigned int *  critical_voltage,
unsigned int *  critical_temp 
)

Чтение критических значений напряжения, тока и температуры.

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

См. также:
state_t::flags
Аргументы:
id идентификатор устройства
[out] critical_curr критический ток, при превышении устанавливается флан STATE_OVERLOAD_CURRENT структуры state_t
[out] critical_voltage критическое напряжение, при превышении устанавливается флаг STATE_OVERLOAD_VOLTAGE структуры state_t
[out] critical_temp критическая температура, при превышении устанавливается флаг STATE_OVERHEAT структуры state_t
result_t DCCONTROL_API get_serial_number ( device_t  id,
uint32_t *  serial 
)

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

Аргументы:
id идентификатор устройства
[out] serial serial number
result_t DCCONTROL_API get_status ( device_t  id,
state_t state 
)

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

Аргументы:
id идентификатор устройства
[out] state структура с информацией о текущем состоянии устройства
result_t DCCONTROL_API get_sync_settings ( device_t  id,
sync_settings_t sync_settings 
)

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

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

См. также:
set_sync_settings
Аргументы:
id идентификатор устройства
[out] sync_settings настройки синхронизации
result_t DCCONTROL_API has_firmware ( device_t  id,
uint8_t *  ret 
)

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

Аргументы:
id идентификатор устройства
[out] ret не ноль, если прошивка присутствует
result_t DCCONTROL_API init_device ( device_t  id  ) 

Инициализация устройства.

Аргументы:
id идентификатор устройства
device_t DCCONTROL_API open_device ( const char *  name  ) 

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

Аргументы:
[in] name - имя устройства, например COM3 или /dev/tty.s123
device_t DCCONTROL_API open_raw_device ( const char *  name  ) 

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

Устройство может быть чистым, без прошивки.

Аргументы:
[in] name - имя устройства, например COM3 или /dev/tty.s123
result_t DCCONTROL_API probe_device ( const char *  name  ) 

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

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

Аргументы:
[in] name - имя устройства
result_t DCCONTROL_API set_calibration_coeffs ( device_t  id,
const calibration_settings_t cs 
)

Запись калибровочных коэффициентов.

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

См. также:
get_calibration_coeffs
Аргументы:
id идентификатор устройства
[in] cs калибровочные коэффициенты
result_t DCCONTROL_API set_edges_settings ( device_t  id,
int  border_flags,
int  enders_flags,
int  left,
int  right 
)

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

Аргументы:
id идентификатор устройства
[in] border_flags флаги, определяющие тип границ и поведение мотора при их достижении
[in] enders_flags флаги, определяющие настройки концевых выключателей
[in] left позиция левой границы, используется если установлен флаг BORDER_IS_ENCODER. Диапазон: -2147483647..2147483647
[in] right позиция правой границы, используется если установлен флаг BORDER_IS_ENCODER. Диапазон: -2147483647..2147483647
result_t DCCONTROL_API set_engine_settings ( device_t  id,
const engine_settings_t engine_settings 
)

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

См. также:
get_engine_settings
Аргументы:
id идентификатор устройства
[in] engine_settings структура с настройками мотора
result_t DCCONTROL_API set_feedback_settings ( device_t  id,
unsigned int  ips,
unsigned int  feedback_flags 
)

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

Аргументы:
id идентификатор устройства
[in] ips разрешение энкодера (импульсов на оборот). Диапазон: 1..65535
[in] feedback_flags флаги обратной связи
result_t DCCONTROL_API set_home_settings ( device_t  id,
const home_settings_t  home_settings 
)

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

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

См. также:
home_settings_t
Аргументы:
id идентификатор устройства
[out] home_settings настройки калибровки позиции
result_t DCCONTROL_API set_move_settings ( device_t  id,
unsigned int  rpm,
unsigned int  accel,
unsigned int  tuneup_threshold 
)

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

Аргументы:
id идентификатор устройства
[in] rpm скорость, RPM. Диапазон: 1..65535
[in] accel ускорение, RPM/с. Диапазон: 1..65535
[in] tuneup_threshold расстояние от заданной позиции, на котором включается режим tuneup. Диапазон: 1..65535
result_t DCCONTROL_API set_pid_settings ( device_t  id,
const pid_settings_t pid_settings 
)

Запись настроек ПИД контуров.

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

См. также:
get_pid_settings
Аргументы:
id идентификатор устройства
[in] pid_settings настройки ПИД
result_t DCCONTROL_API set_pwm_freq ( device_t  id,
unsigned int  freq 
)

Запись частоты ШИМ.

Аргументы:
id идентификатор устройства
[in] freq частота. Диапазон: 1000..65535
result_t DCCONTROL_API set_secure_settings ( device_t  id,
unsigned int  critical_curr,
unsigned int  critical_voltage,
unsigned int  critical_temp 
)

Запись критических значений напряжения, тока и температуры.

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

См. также:
state_t::flags
Аргументы:
id идентификатор устройства
[in] critical_curr критический ток, при превышении устанавливается флан STATE_OVERLOAD_CURRENT структуры state_t. Диапазон: 1..65535
[in] critical_voltage критическое напряжение, при превышении устанавливается флаг STATE_OVERLOAD_VOLTAGE структуры state_t. Диапазон: 1..65535
[in] critical_temp критическая температура, при превышении устанавливается флаг STATE_OVERHEAT структуры state_t. Диапазон: 0..65535
result_t DCCONTROL_API set_serial_number ( device_t  id,
uint32_t  serial,
uint32_t  key 
)

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

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

Аргументы:
id идентификатор устройства
[in] serial серийный номер. Диапазон: 0..4294967295
[in] key ключ защиты. Диапазон: 0..4294967295
result_t DCCONTROL_API set_sync_settings ( device_t  id,
const sync_settings_t sync_settings 
)

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

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

См. также:
get_sync_settings
Аргументы:
id идентификатор устройства
[in] sync_settings настройки синхронизации
result_t DCCONTROL_API write_key ( device_t  id,
uint32_t  key 
)

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

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