6.3. Совместимость с ПО для 8SMC1-USBhF¶
Новые контроллеры можно использовать с программами, написанными для контроллеров 8SMC1-USBhF. Для этого есть две возможности:
1. Рекомендуемая. Использование версии ПО MicroSMC, которая поддерживает как 8SMC1-USBhF так и новые контроллеры. В этом случае ПО MicroSMC открывает все найденные новые контроллеры в режиме эксклюзивного доступа для обеспечения разделения доступа и взаимодействие с ними возможно только с помощью функций API контроллеров 8SMC1-USBhF через библиотеку USMCDLL, использующую MicroSMC.
Скачать версию MicroSMC с поддержкой новых контроллеров можно на странице Программное обеспечение.
2. Управление только новыми контроллерами без ПО MicroSMC с помощью переходной библиотеки USMCDLL/libximc. Используйте эту возможность, если вам требуется одновременная работа ПО MicroSMC (для управления контроллерами 8SMC1-USBhF) и работа с контроллерами новыми с помощью библиотеки libximc.
Скачать переходную библиотеку USMCDLL/libximc можно по этой ссылке.
Ниже в таблице описано соответствие функций API контроллеров 8SMC1-USBhF и новых контроллеров: в первом столбце указана функция библиотеки USMCDLL, во втором - соответствующий параграф в описании контроллера 8SMC1-USBhF, в третьем - особенности этой функции в переходной библиотеке при использовании с новыми контроллерами.
Функция | 8SMC1-USBhF | Новый контроллер |
---|---|---|
USMC_Init | 7.5.3 | Использует функцию libximc enumerate_devices, которая опрашивает все COM-порты в системе, а также функции get_enumerate_device_information, get_enumerate_device_serial, get_device_count, get_device_name, open_device. |
USMC_GetState | 7.5.4 | Использует функции libximc get_status и get_engine_settings. Флаги AReset, EMReset, RotTrErr возвращаемой структуры USMC_State всегда принимают значение false. |
USMC_SaveParametersToFlash | 7.5.5 | Использует функцию libximc command_save_settings. |
USMC_GetMode | 7.5.6 | Использует функции libximc get_edges_settings, get_power_settings, get_control_settings, get_ctp_settings, get_sync_out_settings. В возвращаемой структуре USMC_Mode флаги EMReset, ResetRT, SyncOUTR, EncoderEn, EncoderInv, ResBEnc, ResEnc всегда принимают значение false, флаг SyncINOp всегда равен true. |
USMC_SetMode | 7.5.7 | Использует те же функции, что и USMC_GetMode, а также их "set_" аналоги, игнорирует флаги RotTeEn, RotTrOp, ResetRT, SyncOUTR, SyncINOp, EncoderEn. |
USMC_GetParameters | 7.5.8 | Использует функции libximc get_secure_settings, get_engine_settings, get_move_settings, get_feedback_settings, get_power_settings, get_control_settings, get_ctp_settings, get_home_settings, get_sync_out_settings. Возвращает нулевые значения параметров BTimeoutR, BTimeoutD, MinP, MaxLoft, StartPos. |
USMC_SetParameters | 7.5.9 | Использует те же функции, что и USMC_GetParameters, а также их "set_" аналоги, игнорирует параметры BTimeoutR, BTimeoutD, MinP, MaxLoft, StartPos. |
USMC_GetStartParameters | 7.5.10 | Использует функции libximc get_move_settings, get_engine_settings. Флаги WSyncIN, SyncOUTR, ForceLoft возвращаемой структуры USMC_StartParameters всегда принимают значение false. |
USMC_Start | 7.5.11 | Использует функции libximc get_move_settings, get_engine_settings, а также их "set_" аналоги и функцию command_move. |
USMC_Stop | 7.5.12 | Использует функцию libximc command_stop. |
USMC_SetCurrentPosition | 7.5.13 | Использует функцию libximc set_position. |
USMC_GetEncoderState | 7.5.14 | Использует функцию libximc get_status. |
USMC_GetLastErr | 7.5.15 | Не модифицирует передаваемый ей параметр. Ошибку выполнения функций USMC_ можно отследить по ненулевому коду возврата. |
USMC_Close | 7.5.16 | Использует функцию libximc close_device. |
Переходная библиотека USMCDLL не требует для своей работы запущенного в фоне приложения MicroSMC.exe и использует библиотеку libximc.dll для взаимодействия с новыми контроллерами.
Все функции USMC_, включающие в себя несколько вызовов функций libximc, прерывают своё выполнение, если одна из составляющих их функций libximc возвращает ошибку. В этом случае возможна неполная запись настроек в контроллер. Ненулевой код возврата функции USMC_ равен коду возврата выполненной с ошибкой функции libximc.
Пример приложения: usmcdll_libximc_test.zip