Skip to content

Low Level C++ API for Devices Using Gyrovert Protocol

Notifications You must be signed in to change notification settings

lmprepo/gyrovert_cpp_api

Repository files navigation

Gyrovert C++ API (Low Level)

Image Image

Данный репозиторий включает библиотеку для приема данных и настройки параметров инерциальных модулей серий ГКВ и МГ производства ООО "Лаборатория Микроприборов", а также четыре консольных примера для Windows и Linux:

  • прием любых данных с инерциального модуля и вывод значений в консоль
  • прием данных с инерциального модуля в формате калиброванных данных с датчиков и вывод значений в консоль
  • выбор алгоритма работы инерциального модуля, прием данных и вывод значений в консоль
  • запись бинарного файла LogData_{дата-время} с данными принятыми от инерциального модуля в директорию сборки (включает пример наследования LMP_Device пользовательским классом GKV_FileWriter)

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

  • методы настройки основных параметров инерциального модуля.
  • методы настройки callback-функций для всех типов данных выдаваемых устройством.
  • структуры всех используемых инерциальным модулем пакетов.
  • парсер принимаемых пакетов.

Библиотека НЕ работает напрямую с serial-портом. В примерах для работы с serial-портом использованы стандартная библиотека Win32, а также библиотека termios для Linux. Аналогично может быть использована любая удобная пользователю библиотека serial-порта для используемой платформы. Обработка принятых пакетов данных и отправка запросов осуществляется с помощью пользовательских callback-функций для каждого из возможных типов принимаемых пакетов, которые могут быть назначены для конкретного устройства, как показано в примерах.

Примечание: класс GKV_FileWriter, используемый в примере 4, не является оптимизированным, в высоконагруженных проектах рекомендуется создавать пользовательский класс (наследующий LMP_Device), использующий библиотеку работы с serial-портом, оптимизированную для вашей платформы (или кроссплатформенную библиотеку, например, ASIO или Qt5)

Примечание 2: Для корректной интерпретации параметров наборного пакета при работе с вашим устройством необходимо задать семейство устройств в файле GKV_CustomPacket. По умолчанию установлена интерпретация для семейства устройств ГКВ-1 (в него входят ГКВ-1 ОЕМ, ГКВ-1, ГКВ-2 и ГКВ-3). Задано это с помощью #define DEVICE_FAMILY_IS_GKV_1. Если у вас другое устройство, данное объявление необходимо заменить на одно из представленных в списке в том же файле.

Подробное описание структур данных и методов класса LMP_Device представлено в прилагаемом pdf-документе Gyrovert C++ API (Low Level)

Примечание 3: Для того, чтобы устройство корректно обрабатывало команды и запросы из разделов 3.2 и 3.3 руководства, необходимо, чтобы между отправкой команд была задержка как минимум в 3,5 символа соответственно текущей скорости последовательного интерфейса.

Подробную информацию об инерциальных модулях можно найти на сайте https://mp-lab.ru/

About

Low Level C++ API for Devices Using Gyrovert Protocol

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •