Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

NET_CONFIG_SET_FAILED (36) IP-Телефония и СКУД

Dahua NetSDK Ошибка 36: NET_CONFIG_SET_FAILED — ошибка записи конфигурации

Обновлено: 24.08.2026 · Официальная документация ↗
  • Вызов CLIENT_SetNewDevConfig или CLIENT_SetConfig завершается с возвратом FALSE (код 36).
  • Параметры детекции движения, видеокодека, сетевых настроек или расписания СКУД не применяются на камере.
  • Устройство возвращает ошибки синтаксического анализа буфера конфигурации.

1. Проверка соответствия размера структуры (dwSize)

Наиболее частая причина ошибки — неинициализированное поле dwSize в структурах Dahua C-Style SDK:

CFG_ENCODE_INFO stEncode = { sizeof(CFG_ENCODE_INFO) };
// Обязательно заполните размер вложенных структур
stEncode.dwSize = sizeof(CFG_ENCODE_INFO);

char szBuffer[1024 * 64] = { 0 };
int nError = 0;
BOOL bRet = CLIENT_ParseData(CFG_CMD_ENCODE, &stEncode, szBuffer, sizeof(szBuffer), &nError);
if (!bRet) {
    printf("ParseData failed with code: %d\n", nError);
}

2. Использование универсального интерфейса JSON конфигураций

В современных прошивках бинарные структуры устарели. Используйте прямую отправку JSON строк через CLIENT_SetNewDevConfig:

char szOutBuffer[1024] = { 0 };
int nError = 0, nRestart = 0;
BOOL bSuccess = CLIENT_SetNewDevConfig(
    lLoginHandle,
    CFG_CMD_MOTIONDETECT, // Команда
    0,                    // Индекс канала (nChannelID)
    szJsonConfigBuffer,   // Валидный JSON буфер
    strlen(szJsonConfigBuffer),
    &nError,
    &nRestart,
    5000                  // Таймаут в мс
);

3. Валидация JSON через RPC API камеры

Проверьте допустимость параметров и структуру конфигурации напрямую через HTTP-запрос:

curl -k --digest -u admin:Password123! -X POST -d '{"method":"configManager.getConfig","params":{"name":"MotionDetect"},"id":1}' "http://192.168.1.108/cgi-bin/configManager.cgi"

4. Проверка прав пользователя на изменение системных настроек

Убедитесь, что учетная запись, под которой выполнен CLIENT_Login, входит в группу admin и имеет флаг SystemConfig.

💡 Практика специалистов: Dahua NetSDK имеет ограничение на максимальный размер буфера конфигурации (обычно 64KB или 128KB). При конфигурировании матриц видеоаналитики AI (Smart Motion / Face Recognition) с большим числом полигонов выделяйте буфер не менее 256KB.

Частые вопросы (FAQ)

Почему конфигурация с одинаковым кодом работает на NVR серии 4xxx, но падает на серии 5xxx?

Разные поколения устройств используют разные схемы структур конфигурации (Legacy Binary vs JSON API). Для кроссплатформенности используйте вызовы CLIENT_GetNewDevConfig/CLIENT_SetNewDevConfig с командами JSONRPC.

Что означает параметр nRestart, возвращаемый в CLIENT_SetNewDevConfig?

Если nRestart равен 1, то для вступления примененных параметров в силу требуется полная перезагрузка аппаратного устройства (CLIENT_RebootDev).

Как узнать точное поле JSON, вызвавшее ошибку валидации?

Анализируйте выходной параметр nError. Если он указывает на синтаксический сбой, включите SDK лог через CLIENT_LogOpen, где будет зафиксировано отброшенное поле схемы.

Нужно ли вызывать CLIENT_GetNewDevConfig перед CLIENT_SetNewDevConfig?

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

Полезные материалы
Рекомендуем