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

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

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

Мотивация - воздействие, направленное на чувства, побуждающее к формированию намерений, при этом оставляет выбор действий, в отличии от принуждения ;)
 
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
Группа: Проверенные
Сообщений: 3121
Репутация: 105
Статус: Offline
Так речь же велась про ведроид ведь!!!

Мотивация - воздействие, направленное на чувства, побуждающее к формированию намерений, при этом оставляет выбор действий, в отличии от принуждения ;)
 
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
Группа: Проверенные
Сообщений: 3121
Репутация: 105
Статус: Offline
Цитата P7 ()
Спасибо, тут отлично описана эта проблема. Вывод - не подходят библиотеки для арм архитектуры.
Так об этом было выше сказано wink


Мотивация - воздействие, направленное на чувства, побуждающее к формированию намерений, при этом оставляет выбор действий, в отличии от принуждения ;)
 
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
Группа: Проверенные
Сообщений: 3121
Репутация: 105
Статус: Offline
Цитата jtag ()
Попробуйте web sdk для браузеров. web sdk хоть и основан на тех же библиотеках, но мне кажется должно заработать.
;)


Мотивация - воздействие, направленное на чувства, побуждающее к формированию намерений, при этом оставляет выбор действий, в отличии от принуждения ;)
 
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
Группа: Администраторы
Сообщений: 5360
Репутация: 112
Статус: 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, простите, разметка съехала...

 
Неофициальный форум технической поддержки Hikvision » Оборудование и программное обеспечение Hikvision » Разное » SDK и все что связанно с программированием
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: