> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mrdvs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Camera SDK

> Camera SDK позволяет подключать камеры MRDVS к приложению, настраивать параметры и получать данные.

> **[CameraSDK на GitHub](https://github.com/Lanxin-MRDVS/CameraSDK#english)**
>
> Библиотеки, документация на английском языке, примеры и примечания к выпускам.

## Скачать SDK

| Операционная система | Версия | Скачать |
| - | - | - |
| Windows | V2.4.70 | [Скачать EXE · 42.5 MB](https://mrdvs.oss-cn-hangzhou.aliyuncs.com/%E8%BF%88%E5%B0%94%E5%BE%AE%E8%A7%86%28MRDVS%29-Windows%E4%B8%8A%E4%BD%8D%E6%9C%BA/MRDVS-2.4.70.260911.exe) |
| Linux x64 / ARM64 / ARM32 | V2.4.70 | [Скачать TAR.GZ · 33.6 MB](https://mrdvs.oss-cn-hangzhou.aliyuncs.com/%E8%BF%88%E5%B0%94%E5%BE%AE%E8%A7%86%28MRDVS%29-Windows%E4%B8%8A%E4%BD%8D%E6%9C%BA/MRDVS-2.4.70.20260911.tar.gz) |

## Выбор инструмента

| Задача | Инструмент |
| - | - |
| Подключение камер, проверка изображений и облаков точек, настройка параметров | [LxCameraViewer](/ru/developers/software/lxcameraviewer.md) |
| Получение данных и управление камерой из приложения | Camera SDK |
| Развёртывание прикладных алгоритмов | [Руководства по развёртыванию алгоритмов](/ru/solutions/index.md) |

## Порядок разработки

**1. Проверить подключение**

Проверьте подключение, изображения и облака точек в LxCameraViewer.

**2. Выбрать пакет SDK**

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

**3. Запустить пример и выполнить интеграцию**

Сначала запустите пример, затем интегрируйте приложение. Зафиксируйте версии SDK и прошивки камеры, используемые при развёртывании.

## Быстрый старт с GitHub

Примеры используют структуру репозитория GitHub. Каталоги установленных пакетов могут отличаться; скорректируйте пути для своей установки.

### Поддерживаемые платформы

| OS | Архитектура | Библиотеки среды выполнения | Примеры |
| - | - | - | - |
| Linux | x64 / ARM64 / ARM32 | `libLxCameraApi.so`, `libLxDataProcess.so` | C/C++, Python, ROS, ROS 2 |
| Windows | x64 / x86 | `LxCameraApi.dll`, `LxDataProcess.dll` | C/C++, Python, C# |

### Получить исходный код

```bash theme={null}
git clone https://github.com/Lanxin-MRDVS/CameraSDK.git
```

Скрипт установки Linux требует прав администратора и размещает библиотеки в `/opt/MRDVS`.

### Запустить пример C/C++

**Linux**

```bash theme={null}
cd CameraSDK/linux
source install.sh
cd Sample/C
cmake -S . -B build
cmake --build build
./build/bin/demo_single_camera2
```

**Windows**

```powershell theme={null}
cd CameraSDK/windows/Sample/C
cmake -S . -B build
cmake --build build --config Release
```

> **Примеры Python и C#**
>
> Задайте путь к библиотеке и IP камеры в примерах Python. Приложение Windows должно иметь доступ к DLL нужной архитектуры.
>
> | Примеры | GitHub |
> | - | - |
> | Python · Linux | [Sample/python](https://github.com/Lanxin-MRDVS/CameraSDK/tree/master/linux/Sample/python) |
> | Python · Windows | [Sample/python](https://github.com/Lanxin-MRDVS/CameraSDK/tree/master/windows/Sample/python) |
> | C# · Windows | [Sample/C#](https://github.com/Lanxin-MRDVS/CameraSDK/tree/master/windows/Sample/C%23) |

> **Порядок вызовов API**
>
> ```text theme={null}
> DcGetDeviceList
> DcOpenDevice
> DcSetBoolValue / DcSetIntValue / DcSetFloatValue / DcSetStringValue
> DcStartStream
> DcSetCmd(LX_CMD_GET_NEW_FRAME) or DcRegisterFrameCallback
> DcGetPtrValue
> DcStopStream
> DcCloseDevice
> ```

### Интеграция с ROS

| ROS | GitHub |
| - | - |
| ROS 1 | [lx\_camera\_node\_ws](https://github.com/Lanxin-MRDVS/CameraSDK/tree/master/linux/Sample/ROS/lx_camera_node_ws) |
| ROS 2 | [lx\_camera\_node\_ws](https://github.com/Lanxin-MRDVS/CameraSDK/tree/master/linux/Sample/ROS2/lx_camera_node_ws) |

## Документация для разработчиков

| Документация для разработчиков | Версия | Скачать |
| - | - | - |
| Руководство разработчика C/C++ | V2.0 · Английский | [Скачать PDF](https://raw.githubusercontent.com/Lanxin-MRDVS/CameraSDK/master/Document_EN/MRDVS_LxCameraSDK_C-Cpp_DeveloperGuide_V2.0_20260604.pdf) |
| Руководство разработчика Python | V2.0 · Английский | [Скачать PDF](https://raw.githubusercontent.com/Lanxin-MRDVS/CameraSDK/master/Document_EN/MRDVS_LxCameraSDK_Python_DeveloperGuide_V2.0_20260604.pdf) |
| Руководство по примерам для Linux | V2.0 · Английский | [Скачать PDF](https://raw.githubusercontent.com/Lanxin-MRDVS/CameraSDK/master/Document_EN/MRDVS_LxCameraSDK_Linux_SampleGuide_V2.0_20260727.pdf) |

> **Справочные материалы по API и интеграции**
>
> Здесь сохранены подробные сведения об API, примерах и протоколах. Пути установки и доступные функции сверяйте с используемыми версиями SDK и прошивки.
>
> * [Руководство пользователя Camera SDK](/ru/developers/camera-sdk/user-guide.md)
> * [Примеры Linux SDK](/ru/developers/camera-sdk/linux-examples.md)
> * [Протокол обмена данными JSON](/ru/developers/camera-sdk/json-protocol.md)

## Коды ошибок и устранение неполадок

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

> [!WARNING]
>
> Не устраняйте проблему, изменяя только версию SDK. Также проверьте совместимость прошивки камеры, библиотеки обработки данных и среды разработки.

> **Коды ошибок SDK (от −1 до −29)**
>
> | Код | Коды ошибок и устранение неполадок |
> | - | - |
> | `LX_ERROR = -1` | **Возможная причина** Неизвестная ошибка. **Решение** Экспортируйте журнал устройства и отправьте его в службу технической поддержки MRDVS. |
> | `LX_E_NOT_SUPPORT = -2` | **Возможная причина** Функция не поддерживается. **Решение** Текущее устройство не поддерживает эту функцию. |
> | `LX_E_NETWORK_ERROR = -3` | **Возможная причина** Ошибка сетевой связи. **Решение** Проверьте IP-конфигурацию, сетевые кабели, коммутатор и потерю пакетов. |
> | `LX_E_INPUT_ILLEGAL = -4` | **Возможная причина** Недопустимый входной параметр. **Решение** Проверьте параметры, передаваемые интерфейсу. |
> | `LX_E_RECONNECTING = -5` | **Возможная причина** Устройство подключается повторно. **Решение** 1. Немного подождите и повторяйте попытку до восстановления подключения. 2. Убедитесь, что камера включена и сетевое соединение работает нормально. |
> | `LX_E_DEVICE_ERROR = -6` | **Возможная причина** Устройство неисправно или не отвечает. **Решение** Перезапустите приложение или камеру и повторите попытку. |
> | `LX_E_DEVICE_NEED_UPDATE = -7` | **Возможная причина** Версия устройства слишком старая. **Решение** Обновите прошивку. |
> | `LX_E_API_NEED_UPDATE = -8` | **Возможная причина** Версия API слишком старая. **Решение** Обновите SDK. |
> | `LX_E_CTRL_PERMISS_ERROR = -9` | **Возможная причина** Не удалось получить разрешение на эксклюзивное управление. **Решение** Камерой может управлять только один основной клиент. Если камера не была корректно выключена, подождите `3–5 s`, пока разрешение не освободится. |
> | `LX_E_GET_DEVICEINFO_ERROR = -10` | **Возможная причина** Не удалось прочитать сведения об устройстве. **Решение** Проверьте версию прошивки устройства или обратитесь в службу поддержки MRDVS. |
> | `LX_E_IMAGE_SIZE_ERROR = -11` | **Возможная причина** Запрошенный размер изображения не соответствует потоку. **Решение** Закройте устройство и откройте его снова. |
> | `LX_E_IMAGE_PARTITION_ERROR = -12` | **Возможная причина** Не удалось разобрать изображение, часто из-за неправильного формата пикселей. **Решение** Снова откройте устройство. |
> | `LX_E_DEVICE_NOT_CONNECTED = -13` | **Возможная причина** Камера не подключена. **Решение** Приложение попыталось использовать неоткрытую камеру. Проверьте порядок вызовов и убедитесь, что камера успешно открылась. |
> | `LX_E_DEVICE_INIT_FAILED = -14` | **Возможная причина** Не удалось инициализировать камеру. **Решение** Снова откройте камеру. |
> | `LX_E_DEVICE_NOT_FOUND = -15` | **Возможная причина** Камера или подходящая камера не найдена. **Решение** Убедитесь, что дескриптор камеры, переданный интерфейсу, действителен. |
> | `LX_E_FILE_INVALID = -16` | **Возможная причина** Имя, тип, формат или путь к файлу недопустимы либо файл не удалось открыть. **Решение** Проверьте правильность пути и возможность открыть файл вручную. |
> | `LX_E_CRC_CHECK_FAILED = -17` | **Возможная причина** При загрузке или скачивании не прошла проверка CRC или MD5. **Решение** Повторите передачу. |
> | `LX_E_TIME_OUT = -18` | **Возможная причина** Время ожидания запроса истекло. **Решение** Повторите попытку. Причиной могут быть потеря пакетов или низкая частота кадров камеры. |
> | `LX_E_FRAME_LOSS = -19` | **Возможная причина** Кадры потеряны, часто в режиме обратного вызова. **Решение** Единичные потери могут не требовать действий. При частых потерях проверьте пропускную способность сети и буферизацию. |
> | `LX_E_ENABLE_ANYSTREAM_FAILED = -20` | **Возможная причина** Не удалось включить запрошенную конфигурацию потока. **Решение** Версии до `2.4.9` не позволяли отключать все потоки. В более поздних версиях этот код ошибки устарел. |
> | `LX_E_NOT_RECEIVE_STREAM = -21` | **Возможная причина** Данные потока не получены. **Решение** Используйте шаги диагностики открытия камеры при отсутствии потока данных. |
> | `LX_E_PARSE_STREAM_FAILED = -22` | **Возможная причина** Поток запустился, но его не удалось разобрать. **Решение** Проверьте версию прошивки или обратитесь в службу поддержки MRDVS. |
> | `LX_E_PROCESS_IMAGE_FAILED = -23` | **Возможная причина** Не удалось обработать изображение. **Решение** Убедитесь, что версия библиотеки обработки изображений `Dataprocess` совместима. |
> | `LX_E_SETTING_NOT_ALLOWED = -24` | **Возможная причина** Запрошенная настройка недопустима в непрерывном режиме. **Решение** В непрерывном режиме остановите поток перед изменением ROI, режима нескольких камер, выравнивания или других параметров потока. Сначала задайте режим камеры, затем примените настройку. |
> | `LX_E_LOAD_DATAPROCESSLIB_ERROR = -25` | **Возможная причина** Не удалось загрузить библиотеку обработки изображений. **Решение** Убедитесь, что динамическая библиотека/общий объект `Dataprocess` существует и включён в путь к библиотекам. Выполните `source install.sh`. |
> | `LX_E_FUNCTION_CALL_LOGIC_ERROR = -26` | **Возможная причина** Недопустимы порядок вызовов функции или логика предварительных условий. **Решение** Проверьте журнал SDK и скорректируйте последовательность вызовов. Типичные случаи: 1. Остановите поток перед изменением настройки, меняющей размер изображения. 2. Не изменяйте размер изображения в непрерывном режиме. 3. Загрузка алгоритма и встроенные прикладные алгоритмы взаимоисключающие. 4. Не включайте автоэкспозицию при включённом HDR. 5. Параметры автоэкспозиции зависят от её состояния. 6. Параметры триггера зависят от режима триггера. |
> | `LX_E_IPAPPDR_UNREACHABLE_ERROR = -27` | **Возможная причина** IP-адрес недоступен или сеть настроена неправильно. **Решение** Убедитесь, что хост SDK может отправить ping камере. |
> | `LX_E_FRAME_ID_NOT_MATCH = -28` | **Возможная причина** Кадры RGB и ToF не были синхронизированы в течение времени ожидания. **Решение** При включённой синхронизации RGB-D выберите удаление кадра или игнорирование предупреждения в зависимости от того, что важнее для приложения: синхронизация или данные в реальном времени. |
> | `LX_E_FRAME_MULTI_MACHINE = -29` | **Возможная причина** Кадр содержит сигнал помехи от другой камеры. **Решение** В зависимости от приложения удалите кадр или проигнорируйте предупреждение. |

> **Ошибка `-25` или ошибка загрузки `LxDataProcess`**
>
> **Возможная причина** В Linux библиотека не включена в путь среды. **Решение** Выполните `source install.sh`.

> **Полученное изображение разделено на три части**
>
> **Возможная причина** Неправильно задано соотношение сторон отображаемого изображения.

> **ROS 2 конфликтует с библиотекой SDK**
>
> **Решение** Используйте обёртку в каталоге `util`. Она косвенно подключает Camera SDK и предотвращает прямой конфликт библиотек.

> **Как отличить камеру Lite от стандартной камеры с RGB?**
>
> **Решение** Вызовите `DcGetBoolValue(handle, LX_BOOL_ENABLE_2D_STREAM, &test_rgb)`. Камера Lite вернёт сообщение о том, что функция не поддерживается.

> **Как выполняется синхронизация времени?**
>
> **Решение** SDK автоматически синхронизируется с PTP при каждом вызове интерфейса. Дополнительный триггер не требуется.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.