Данный сайт является проектом ООО "Амакс". Сегодня: Понедельник, 30.12.2024, 21:05

Приветствую Вас Гость

Поиск по сайтам
[ Новые сообщения · Участники · Правила форума · RSS · ?
Установка оборудования видеонаблюдения в Москве и Московской области
Поиск по форумам
  • Страница 2 из 2
  • «
  • 1
  • 2
SDK и все что связанно с программированием
iTuneDVRДата: Воскресенье, 07.05.2017, 21:55 | Сообщение # 41
Группа: Проверенные
Сообщений: 3922
Репутация: 141
Статус: Offline
Так библиотека должна быть соответствующей!

Мотивация, направление, посыл ;)
"Вспоминание" паролей Dahua SmartPSS, Hikvision iVMS4200, генерация временного для Uniview. Исследования IT.
www.iTuneDVR.ru
 
jtagДата: Воскресенье, 07.05.2017, 22:58 | Сообщение # 42
Группа: Проверенные
Сообщений: 8
Репутация: 0
Статус: Offline
Цитата P7 ()
Под Ubuntu x64 всё работает.
Вы наверно туже библиотеку 64 бита толкаете в armv7 32 битный. Скачайте 32 битный sdk.

Добавлено (07.05.2017, 22:58)
---------------------------------------------
Доброй ночи всем, подскажите пожалуйста, подключился к nvr, залогинился, считываю параметры серийник, статус камер и т.д., однако не получается считать файлы записей в нвр на hdd, измучился уже неделю, функция возвращает значение -1,. Незнаю к кому обратится. Сделал все как в примере Qt. Функция NET_DVR_FindFile_V30(LONG lUserID, LPNET_DVR_FILECOND pFindCond);

   
Код
LPNET_DVR_FILECOND struFileCond = {0};
    struFileCond = (LPNET_DVR_FILECOND)malloc(sizeof(NET_DVR_FILECOND));
    memset(struFileCond,0x0,sizeof(NET_DVR_FILECOND));
    struFileCond->dwFileType = 0xFF;
    struFileCond->lChannel = 1;
    struFileCond->dwIsLocked  =0xFF;
    struFileCond->dwUseCardNo = 0;
    struFileCond->struStartTime.dwYear = 2017;
    struFileCond->struStartTime.dwMonth  = 5;
    struFileCond->struStartTime.dwDay    = 2;
    struFileCond->struStartTime.dwHour   = 2;
    struFileCond->struStartTime.dwMinute = 0;
    struFileCond->struStartTime.dwSecond = 0;
    struFileCond->struStopTime.dwYear    = 2017;
    struFileCond->struStopTime.dwMonth   = 5;
    struFileCond->struStopTime.dwDay     = 2;
    struFileCond->struStopTime.dwHour    = 11;
    struFileCond->struStopTime.dwMinute  = 7;
    struFileCond->struStopTime.dwSecond  = 0;

    LONG lFindHandle = NET_DVR_FindFile_V30(lUserID, struFileCond);

    if(lFindHandle < 0)
    {
        printf("find file fail ,last error %d\n", NET_DVR_GetLastError());

    }
    else
    {
    printf("Success!!!\n");
    }


Сообщение отредактировал jtag - Воскресенье, 07.05.2017, 23:21
 
P7Дата: Понедельник, 08.05.2017, 00:16 | Сообщение # 43
Группа: Проверенные
Сообщений: 12
Репутация: 0
Статус: Offline
Цитата jtag ()
Цитата P7 ()Под Ubuntu x64 всё работает.
Вы наверно туже библиотеку 64 бита толкаете в armv7 32 битный. Скачайте 32 битный sdk.

Изначально пробывал 32 бит, просто Ubuntu у меня 64. В целом пробывал обе библиотеки
 
iTuneDVRДата: Понедельник, 08.05.2017, 01:43 | Сообщение # 44
Группа: Проверенные
Сообщений: 3922
Репутация: 141
Статус: Offline
Так речь же велась про ведроид ведь!!!

Мотивация, направление, посыл ;)
"Вспоминание" паролей Dahua SmartPSS, Hikvision iVMS4200, генерация временного для Uniview. Исследования IT.
www.iTuneDVR.ru
 
jtagДата: Понедельник, 08.05.2017, 11:45 | Сообщение # 45
Группа: Проверенные
Сообщений: 8
Репутация: 0
Статус: Offline
ldd вывод что пишет?
 
Установка оборудования видеонаблюдения в Москве и Московской области
P7Дата: Понедельник, 08.05.2017, 12:57 | Сообщение # 46
Группа: Проверенные
Сообщений: 12
Репутация: 0
Статус: Offline
Цитата iTuneDVR ()
Так речь же велась про ведроид ведь!!!

Raspberry pi3 CPU 32 bit ARMv7 - это где нужно скомпелировать сдк. Ubuntu 64 другой пк, который использовал для проверки. Естесвенно что пробывал на raspberry sdk32 bit, а на ubuntu 64bit sdk.

Цитата jtag ()
ldd вывод что пишет?

По отношению к библиотеке ?
ldd libchnetsdk.so
not a dynamic executable


Сообщение отредактировал P7 - Понедельник, 08.05.2017, 12:59
 
jtagДата: Среда, 10.05.2017, 14:55 | Сообщение # 47
Группа: Проверенные
Сообщений: 8
Репутация: 0
Статус: Offline
Цитата P7 ()
Raspberry pi3 CPU 32 bit ARMv7
https://raspberrypi.stackexchange.com/questions/9441/how-to-known-if-an-arm-library-so-is-compatible-with-the-raspberry-pi

Добавлено (10.05.2017, 14:55)
---------------------------------------------
Сегодня установил клиентскую прогу ivms - 4200. В директории находятся дополнительные библиотеки одна из них PlaybackLogical.dll. С помощью которой скорее всего осуществляется просмотр записей удаленно. И которая отсутствует в SDK (((
Буду пробывать через javascript, web sdk. устал уже извращаться.


Сообщение отредактировал jtag - Среда, 10.05.2017, 15:34
 
P7Дата: Среда, 10.05.2017, 16:59 | Сообщение # 48
Группа: Проверенные
Сообщений: 12
Репутация: 0
Статус: Offline
Цитата jtag ()
Цитата P7 ()Raspberry pi3 CPU 32 bit ARMv7
https://raspberrypi.stackexchange.com/questio....erry-pi
Спасибо, тут отлично описана эта проблема. Вывод - не подходят библиотеки для арм архитектуры. Только что в поиске наткнулся на объявление для фрилансера, написать сдк для арм  biggrin

https://www.freelancer.com.au/project....ary-For
 
iTuneDVRДата: Среда, 10.05.2017, 19:46 | Сообщение # 49
Группа: Проверенные
Сообщений: 3922
Репутация: 141
Статус: Offline
Цитата P7 ()
Спасибо, тут отлично описана эта проблема. Вывод - не подходят библиотеки для арм архитектуры.
Так об этом было выше сказано wink


Мотивация, направление, посыл ;)
"Вспоминание" паролей Dahua SmartPSS, Hikvision iVMS4200, генерация временного для Uniview. Исследования IT.
www.iTuneDVR.ru
 
jtagДата: Четверг, 11.05.2017, 11:03 | Сообщение # 50
Группа: Проверенные
Сообщений: 8
Репутация: 0
Статус: Offline
Цитата iTuneDVR ()
Вывод - не подходят библиотеки для арм архитектуры.
Попробуйте web sdk для браузеров. web sdk хоть и основан на тех же библиотеках, но мне кажется должно заработать. У меня кстати получилось запустить за небольшое время. И работают сразу все интерфейсы, которые не получалось настроить несколько недель на сях. К сожалению заработало только в internet explorer через activex на винде.


Сообщение отредактировал jtag - Четверг, 11.05.2017, 11:09
 
iTuneDVRДата: Четверг, 11.05.2017, 11:09 | Сообщение # 51
Группа: Проверенные
Сообщений: 3922
Репутация: 141
Статус: Offline
Цитата jtag ()
Попробуйте web sdk для браузеров. web sdk хоть и основан на тех же библиотеках, но мне кажется должно заработать.
;)


Мотивация, направление, посыл ;)
"Вспоминание" паролей Dahua SmartPSS, Hikvision iVMS4200, генерация временного для Uniview. Исследования IT.
www.iTuneDVR.ru
 
l_vvДата: Понедельник, 15.01.2018, 23:25 | Сообщение # 52
Группа: Проверенные
Сообщений: 1
Репутация: 0
Статус: Offline
Добрый день!
Есть камеры DS-2CD264FWD-IS, используя SDK: NET_DVR_Init -> NET_DVR_Login_V30 -> NET_DVR_RealPlay_V40 без проблем получаю поток непосредственно с камер.
Далее для проверки функциональных возможностей настроил нескольких клиентов iVMS-4200 к одной камере, указав в настройках получать данные от Сервера потоковой передачи мультимедиа в составе ПО iVMS-4200. Убедился, по счетчикам Incoming/Outgoing Stream в Stream Media Server, что поток идет через медиасервер (Incoming=1, Outgoing=2). Т.е. родные клиенты iVMS-4200 могут получать данные от потокового сервера.
Как программно сделать то же самое в моем клиенте? Какую функцию SDK использовать, чтобы указать, что медиапоток забирать не напрямую от камеры, а используя медиасервер?

Пробовал после NET_DVR_Login_V30 вызывать NET_DVR_SetDVRConfig c разными параметрами, но получаю "Device does not support this function" sad
 
AlisukovДата: Воскресенье, 18.02.2018, 05:08 | Сообщение # 53
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
Добрый день, подскажите как открыть (расшифровать) файл конфигурации камеры Hikvision DS-2CD2032-I прошивка V5.1.2. Спасибо.

Сообщение отредактировал Alisukov - Воскресенье, 18.02.2018, 05:08
 
AlexandrДата: Среда, 21.03.2018, 19:30 | Сообщение # 54
Группа: Администраторы
Сообщений: 5345
Репутация: 113
Статус: Offline
Hikvision packer/unpacker for 5.3.x and newer firmware
 
Virus_vДата: Среда, 22.05.2019, 02:23 | Сообщение # 55
Группа: Проверенные
Сообщений: 1
Репутация: 0
Статус: Offline
Всем добрый день

Пытаюсь написать .Net (c#) обёртку библиотеки для работы с камерами Hikvision. Использую HCNetSDK.dll. При вызове метода из библиотеки выпадает необработанное исключение

Цитата
System.AccessViolationException: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."


Вот моя обёртка

Код
public class HCNetSDK
{
      private const string origDllName = @"C:\docs\HCNetSDK.dll";

      #region structs
  [StructLayout(LayoutKind.Sequential)]
      public struct NET_DVR_DEVICEINFO_V30
      {
            public Byte[]   sSerialNumber;//[48];
    public Byte     byAlarmInPortNum;
    public Byte     byAlarmOutPortNum;
    public Byte     byDiskNum;
    public Byte     byDVRType;
    public Byte     byChanNum;
    public Byte     byStartChan;
    public Byte     byAudioChanNum;
    public Byte     byIPChanNum;
    public Byte     byZeroChanNum;
    public Byte     byMainProto;
    public Byte     bySubProto;
    public Byte     bySupport;
    public Byte     bySupport1;
    public Byte     bySupport2;
    public UInt16   wDevType;
    public Byte     bySupport3;
    public Byte     byMultiStreamProto;
    public Byte     byStartDChan;
    public Byte     byStartDTalkChan;
    public Byte     byHighDChanNum;
    public Byte     bySupport4;
    public Byte     byVoiceInChanNum;
    public Byte     byStartVoiceInChanNo;
    public Byte     bySupport5;
    public Byte     bySupport6;
    public Byte     byMirrorChanNum;
    public UInt16   wStartMirrorChanNo;
    public Byte     bySupport7;
    public Byte     byRes2;
      }
      #endregion

      [DllImport(origDllName)]
      public static extern Boolean NET_DVR_Init();

      [DllImport(origDllName)]
      public static extern Boolean NET_DVR_SetConnectTime(UInt32 dwWaitTime, UInt32 dwTryTimes);

      [DllImport(origDllName)]
      public static extern Boolean NET_DVR_SetReconnect(UInt32 dwInterval, Boolean bEnableRecon);

      [DllImport(origDllName)]
      public static extern Int32 NET_DVR_Login_V30(string sDVRIP, UInt16 wDVRPort, string sUserName, string sPassword, ref NET_DVR_DEVICEINFO_V30 DeviceInfo);    

  [DllImport(origDllName)]
      public static extern UInt32 NET_DVR_GetLastError();    [DllImport(origDllName)]    public static extern Boolean NET_DVR_Cleanup();
}


И использование:


Код
static void Main(string[] args)    {
          Camera.HCNetSDK.NET_DVR_Init();
  Camera.HCNetSDK.NET_DVR_SetConnectTime(2000, 1);
  Camera.HCNetSDK.NET_DVR_SetReconnect(10000, true);

  Int32 lUserID;
  Camera.HCNetSDK.NET_DVR_DEVICEINFO_V30 struDeviceInfoV30 = new Camera.HCNetSDK.NET_DVR_DEVICEINFO_V30();
          lUserID = Camera.HCNetSDK.NET_DVR_Login_V30("ip", 8000, "login", "pass", ref struDeviceInfoV30);

  if (lUserID < 0)
  {
    Console.WriteLine("Login failed, error code: {0}\n", Camera.HCNetSDK.NET_DVR_GetLastError());
    Camera.HCNetSDK.NET_DVR_Cleanup();
    Console.ReadKey();
    return;
  }
          
  Console.WriteLine("The max number of analog channels: {0}\n", struDeviceInfoV30.byChanNum);
          Console.WriteLine("The max number of IP channels: {0}\n", struDeviceInfoV30.byIPChanNum + struDeviceInfoV30.byHighDChanNum * 256); 
  Console.WriteLine("Done!");
          Console.ReadKey();
    }


Вместо NET_DVR_DEVICEINFO_V40 я пока использую NET_DVR_DEVICEINFO_V30, потому что в V40 использована дополнительная структура, с call-back методами и эта функция возвращала ошибку о неправильных типах данных. Я решил сначала попробовать на более простом примере, а потом уже усложняться.

Исключение возникает именно при попытке вызвать NET_DVR_Login_V30. Если я, например, изменю ip адрес, чтобы вызвать другую ошибку, то этот метод вернёт -1 и NET_DVR_GetLastError() любезно расскажет, что у меня ошибка номер 7, Failed to connect to the device. The device is off-line, or connection timeout caused by network.
Но если всё, вроде хорошо, то программа вылетает с необработанным исключением System.AccessViolationException: "Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Гуглинг показал, что возможно дело в том, что либо основная dll (что вряд ли, потому что если так даже первая строчка бы не выполнилась), либо dll, на которую она ссылается скомпилирована под другой архитектурой. Я компилирую под x64. Попытался собрать под x86: при вызове первого же метода выбрасывает с исключением
System.BadImageFormatException: "Была сделана попытка загрузить программу, имеющую неверный формат. (Exception from HRESULT: 0x8007000B)"
О чем гугл говорит так же: попытка собрать программу не в той разрядности, что и используемая dll.

Если переделать строки в Unicode 

Код
[DllImport(origDllName, CharSet = CharSet.Unicode)]
        public static extern Int32 NET_DVR_Login_V30(string sDVRIP, UInt16 wDVRPort, string sUserName, string sPassword, ref NET_DVR_DEVICEINFO_V30 DeviceInfo);

То исключение перестаёт вываливаться, но сама функция возвращает ошибку

Цитата
Failed to connect to the device. The device is off-line, or connection timeout caused by network.


Хотя доступ к камере есть.

А если поставить Ansi, но вместо строк взять массив символов

Код
[DllImport(origDllName, CharSet = CharSet.Ansi)]
        public static extern Int32 NET_DVR_Login_V30(char[] sDVRIP, UInt16 wDVRPort, char[] sUserName, char[] sPassword, ref NET_DVR_DEVICEINFO_V30 DeviceInfo);

то происходит что-то совсем странное. Метод раз через раз возвращает то ошибку 1

Цитата
User name or password error.

То ошибку 7
Цитата
Failed to connect to the device. The device is off-line, or connection timeout caused by network


ОТ чего это зависит - я вообще не понимаю.

Что я делаю не так и как мне всё-таки законнектиться к камере?

Добавлено (22.05.2019, 02:24)
---------------------------------------------
Virus_v, простите, разметка съехала...

 
Установка оборудования видеонаблюдения в Москве и Московской области
Kenesg12Дата: Четверг, 03.10.2019, 07:41 | Сообщение # 56
Группа: Проверенные
Сообщений: 1
Репутация: 0
Статус: Offline
Добрый день всем! Тоже использую библиотеку HCNetSDK.dll для видеокамеры с ANPR. Подскажите как можно вытащить с камеры историю распознанных номеров. Какую команду нужно применять?
За ранее спасибо.
 
iTuneDVRДата: Пятница, 04.10.2019, 23:58 | Сообщение # 57
Группа: Проверенные
Сообщений: 3922
Репутация: 141
Статус: Offline
Цитата Kenesg12 ()
Добрый день всем! Тоже использую библиотеку HCNetSDK.dll для видеокамеры с ANPR. Подскажите как можно вытащить с камеры историю распознанных номеров. Какую команду нужно применять?За ранее спасибо.

А какой софт делает это?

Добавлено (04.10.2019, 23:59)
---------------------------------------------

Цитата Virus_v ()
---------------------------------------------Virus_v, простите, разметка съехала...

Вот не видел этой темы.
Чем закончилось?


Мотивация, направление, посыл ;)
"Вспоминание" паролей Dahua SmartPSS, Hikvision iVMS4200, генерация временного для Uniview. Исследования IT.
www.iTuneDVR.ru
 
GhostIIДата: Суббота, 08.01.2022, 01:05 | Сообщение # 58
Группа: Проверенные
Сообщений: 5
Репутация: 0
Статус: Offline
Вопрос по SDK. Есть поворотная камера DS-2DF7232IX-AELW, у нее 3 канала. Есть и обычные "пули", старые и новые.
Для подключения использую функции NET_DVR_Login_V30 и NET_DVR_Login_V40. Забегая вперед - результат одинаков для них.
Использую SDK 5.1.6.2. Все камеры работают, была проблема получить с поворотки 3-ий канал.
Поэтому попробовал скачать новый SDK.
SDK 6.1.6.45. Тут очень интересно. Поворотка не работает, выдает ошибку 29 (Device operation failed) при подключении, а часть пуль работает, часть - нет (с той же ошибкой). Что интересно - работают только "старые" пули, у которых еще пароль 12345, а новые, у которых пароль 1234567a, уже нет. Аналогично с повороткой - она новая, пароль 12345 на ней уже не сделать.
С версией SDK 6.0.2.2 еще интереснее. Логин без ошибок на всех камерах, NET_DVR_RealPlay_V40 тоже проходит без ошибок, но CALLBACK функция не вызывается - то есть, данные не идут.
Вот что я делаю не так? В итоге решил проблему с 3-им каналом на старом SDK, но вот понять, почему новый SDK не работает, так и не смог.
P.S. Да, использую версию под Linux_64.


Сообщение отредактировал GhostII - Суббота, 08.01.2022, 01:33
 
iTuneDVRДата: Суббота, 08.01.2022, 16:19 | Сообщение # 59
Группа: Проверенные
Сообщений: 3922
Репутация: 141
Статус: Offline
Цитата GhostII ()
Вопрос по SDK. Есть поворотная камера DS-2DF7232IX-AELW, у нее 3 канала. Есть и обычные "пули", старые и новые.Для подключения использую функции NET_DVR_Login_V30 и NET_DVR_Login_V40. Забегая вперед - результат одинаков для них.
Использую SDK 5.1.6.2. Все камеры работают, была проблема получить с поворотки 3-ий канал.
Поэтому попробовал скачать новый SDK.
SDK 6.1.6.45. Тут очень интересно. Поворотка не работает, выдает ошибку 29 (Device operation failed) при подключении, а часть пуль работает, часть - нет (с той же ошибкой). Что интересно - работают только "старые" пули, у которых еще пароль 12345, а новые, у которых пароль 1234567a, уже нет. Аналогично с повороткой - она новая, пароль 12345 на ней уже не сделать.
С версией SDK 6.0.2.2 еще интереснее. Логин без ошибок на всех камерах, NET_DVR_RealPlay_V40 тоже проходит без ошибок, но CALLBACK функция не вызывается - то есть, данные не идут.
Вот что я делаю не так? В итоге решил проблему с 3-им каналом на старом SDK, но вот понять, почему новый SDK не работает, так и не смог.
P.S. Да, использую версию под Linux_64.
Возможно, что все так, но для ответа на вопрос, мало самого вопроса.
Какой-то софт вообще работает с третьим потоком? Старый, новый?
Если это ivms, то может быть там есть лог некий и можно немного подглядеть, как это делается правильно.
Есть так же вариант с clientDemo посмотреть, как свежим, так и старым.

Если немного порассуждать, то метод авторизации как с коротким, так и с длинным вопросом это лишь метод авторизации и влиять на дальнейший функционал это не должно. Все там работает на том, есть права, доступен тот или иной функционал и не должно быть преград. Как там сделано на самом деле, тут гадать не надо, а разматывать код с любой камеры и вникать в суть работы их движка, чтобы пытаться понимать их логику.
Возможно, что можно установить пароль менее 8-ми символов.
Раз проблема решена на старом SDK, то это или баг или фича нового или ...
Тут целое исследование нужно проводить.

Без дизассемблера не разобраться вообщем.


Мотивация, направление, посыл ;)
"Вспоминание" паролей Dahua SmartPSS, Hikvision iVMS4200, генерация временного для Uniview. Исследования IT.
www.iTuneDVR.ru
 
GhostIIДата: Суббота, 08.01.2022, 17:33 | Сообщение # 60
Группа: Проверенные
Сообщений: 5
Репутация: 0
Статус: Offline
Спасибо за ответ!
Я разобрался, хоть и не сразу. Но может кому будет интересно/полезно, напишу, в чем причина была.
Чтобы работать с 3-им каналом, надо использовать NET_DVR_RealPlay_V40 с соответствующей структурой, там можно выбрать и 3-ий канал, и больше. NET_DVR_RealPlay_V30 максимум 2 канала.
Дальше, почему не работало SDK версии 6. Начиная с этой версии, в отличие от 5.1.6.2, используются дополнительные библиотеки libcrypto, libz и другие. Я по началу, по аналогии с SDK 5-ой версии, их не копировал в системный каталог, а использовал свои, какие у меня были. Так вот, не работает. Как скопировал вообще все, что шло с SDK, так и "процесс пошел". Наверное, со стороны SDK надо было "предупредить" об этом, но вот нет.
Короче, все заработало. Но, повторюсь, пришлось повозиться.


Сообщение отредактировал GhostII - Суббота, 08.01.2022, 17:33
 
iTuneDVRДата: Воскресенье, 09.01.2022, 15:58 | Сообщение # 61
Группа: Проверенные
Сообщений: 3922
Репутация: 141
Статус: Offline
Контроль библиотек это конечно важно и нужно, ну все же все что идет с новыми версиями с ними и работает...
Главное, разобрался.


Мотивация, направление, посыл ;)
"Вспоминание" паролей Dahua SmartPSS, Hikvision iVMS4200, генерация временного для Uniview. Исследования IT.
www.iTuneDVR.ru
 
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: