Как открыть последовательный порт на устройстве Zaber?

У меня есть линейная стадия Zaber, для которой я разрабатываю серверную часть C++, чтобы интегрировать ее в свою структуру.

Я установил Zaber API, следуя инструкциям с веб-страницы Zaber. Установщик фактически генерирует dll, библиотеку и заголовки, необходимые для моего бэкенда, и я уверен, что моя конфигурация CMake верна, потому что я могу создавать экземпляры объектов из Zaber API.

Итак, теперь я пытаюсь в своем фреймворке пройти их первый пример кода:

// I commented out the following block:
//     - enableDeviceDbStore() is supposed to allow the library to cache
//       information from the online database
//     - I don't need the online db
//     - when I call it, it throws a "string too long" exception.
// try
// {
//     zaber::motion::Library::enableDeviceDbStore(".");
// }
// catch (std::exception& e)
// {
//     LogError << e.what();
// }

try
{
    _connection = zaber::motion::ascii::Connection::openSerialPort("COM6");
    // this also throws a "string too long" exception
}
catch (std::exception& e)
{
    std::cout << e.what() << std::endl;
}

std::vector<zaber::motion::ascii::Device> deviceList;
try
{
    deviceList = _connection.detectDevices(false);
    // this throws a "Connection has been closed" exception
}
catch (std::exception& e)
{
    std::count << e.what() << std::endl;
}
std::count << "Found " << deviceList.size() << " devices." << std::endl;

Проблема в том, что когда я использую Zaber Launcher (их пользовательский интерфейс, который позволяет управлять подключенным этапом), порт «COM6», и я обязательно закрыл соединение в Zaber Launcher, прежде чем пытаться подключиться к моей структуре.

Я также пытался запустить их предварительно настроенный пример кода C++ (решение VS17), с теми же проблемами (за исключением того, что их пример не перехватывает исключения, поэтому он просто падает).

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

Я не знаю, как действовать дальше или как интерпретировать сообщение об ошибке «Слишком длинная строка», учитывая, что я уверен в своем порте подключения.

Не могли бы вы указать, какую IDE вы используете и какую версию? И какая версия Windows? Если вы можете прикрепить ZIP-файл со всеми файлами проекта, это также может помочь воспроизвести и решить проблему.

ZaberCS 17.02.2023 18:00

Я подготовлю это и соответствующим образом обновлю свой вопрос!

MacroController 20.02.2023 10:10

Спасибо @ZaberCS, на самом деле попытка создать работающий минимальный пример помогла мне решить мою собственную проблему. Я пропускал шаги, пытаясь интегрировать свою сцену.

MacroController 21.02.2023 15:15

Рад слышать! Не стесняйтесь связаться с нами по электронной почте нашей службы поддержки клиентов; мы рады помочь с устранением неполадок и стремимся быть очень отзывчивыми (также всегда рады помочь на Stack Exchange).

ZaberCS 21.02.2023 17:36
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие...
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
О тренинге HTML JavaScript :HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей) - две основные технологии для создания веб-страниц....
Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
Запуск PHP на IIS без использования программы установки веб-платформы
Запуск PHP на IIS без использования программы установки веб-платформы
Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем...
Оптимизация React Context шаг за шагом в 4 примерах
Оптимизация React Context шаг за шагом в 4 примерах
При использовании компонентов React в сочетании с Context вы можете оптимизировать рендеринг, обернув ваш компонент React в React.memo сразу после...
0
4
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Исправление моих CMakeLists и использование правильной dll для правильных целевых типов решили мою проблему (я могу контролировать свою сцену).

Другие вопросы по теме