0 / 0 / 0
Регистрация: 12.09.2024
Сообщений: 2
|
||||||||||||||||
1 | ||||||||||||||||
.NET 8 Помощь по работе с SDK для считывателя от HIKVISION12.09.2024, 15:27. Показов 541. Ответов 7
Доброго времени суток, ув. форумчане! Прошу помочь разобраться в моей проблеме. У меня считыватель от HIKVISION, а именно DS-K1F100-D8E. По-дефолту он умеет работать только с официальной программой от производителя - IVMS-400, либо же с программой для его прошивки - ClientDemo. Моя хотелка -- научить его работать в режиме эмуляции клавиатуры, чтобы после запуска программы он всегда находится в режиме считывания карты, а после считывания вставлял ее номер в текстовое поле, где сейчас установлен фокус курсора.
Вместе с программой ClientDemo (для прошивки) лежало много исходников на Си и Си++, если я правильно понял, а также сам SDK -- HCUsbSDK.dll. К SDK также идет документация, но она полностью на китайском языке. Что удалось реализовать: 1. Инициализация SDK 2. Обновление и поиск устройств (enum) 3. Вход в устройство(login) А вот с активацией (считыванием) считыванием карты проблема. Некоторую часть кода я приложил внизу, а также полный вывод программы. Основная проблема в классе CardReader - ошибка 0xC0000005. Уже все перепробовал, может есть знатоки подобных вещей? З.Ы. ниже еще прикладываю саму программу ClientDemo и все, что там в комплекте с ней шло(SDK, документация, исходники) Заранее благодарен любой помощи! Кликните здесь для просмотра всего текста
>dotnet run
Попытка инициализации SDK... SDK успешно инициализирован. Попытка перечисления устройств... Устройство найдено: HIDI2C Device, Серийный номер: 9999 Устройство найдено: DS-K1F100-D8E, Серийный номер: FB2734385 Устройство найдено: HIDI2C Device, Серийный номер: 9999 Устройство найдено: HIDI2C Device, Серийный номер: 9999 Устройство найдено: USB Optical Mouse, Серийный номер: Устройство найдено: HIDI2C Device, Серийный номер: 9999 Устройство найдено: HIDI2C Device, Серийный номер: 9999 Устройства успешно перечислены. Попытка подключения к устройству... Успешно подключено. UserID = 633054866347917313 Имя устройства: DS-K1F100-D8E Серийный номер устройства: FB2734385 Версия ПО: 2010002 dwCondBufferSize: 32, dwInBufferSize: 32 dwOutBufferSize: 32 Содержимое входного буфера (Wait Info): 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 Содержимое выходного буфера (Activate Res) до вызова: 00-00-00-00-00-00-00-00-00-00 Fatal error. 0xC0000005 at CardReader.USB_SDK_GetDeviceConfig(Int64, UInt32, USB_CONFIG_INPUT_INFO ByRef, USB_CONFIG_OUTPUT_INFO ByRef) at CardReader.ActivateCard(Int64) at Program.Main(System.String[]) Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
Кликните здесь для просмотра всего текста
0
|
12.09.2024, 15:27 | |
Ответы с готовыми решениями:
7
Работа с SDK от Hikvision Hikvision SDK c++, опрос ip камер Помощь SDK Tablet PC Софт для считывателя ACR1281U-C1 |
12.09.2024, 15:40 | 2 |
SelUV98, эмм... дело в том, что приведенные коды и проект особого смысла не имеют для тех, у кого нет такого считывателя. А его нет ни у кого из здешних, скорее всего.
Поэтому, ближайший путь - это выяснить что за ошибка "0xC0000005" у самого производителя (из мануалов, и т.п.)..
0
|
0 / 0 / 0
Регистрация: 12.09.2024
Сообщений: 2
|
||||||
12.09.2024, 15:47 [ТС] | 3 | |||||
Если верить интернету , то ошибка 0xC0000005 -- это ошибка при работе с памятью. У в коде есть вывод ошибок от SDK через:
Кликните здесь для просмотра всего текста
Но, такой ошибки нет в документации. Когда была ошибка связанная с userID, оно конкретно мне выводило - ошибка 38. Вот кстати список всех ошибок из китайском документации: Очень много текста! Кликните здесь для просмотра всего текста
5.1 错误码
#define USB_ERROR_BASE 0 #define USB_SUCCESS (USB_ERROR_BASE+0) // Success (no error) //SDK内部错误码 #define USB_ERROR_INIT_SDK (USB_ERROR_BASE+1) //SDK Init Failed #define USB_ERROR_SDK_NOT_INIT (USB_ERROR_BASE+2) //SDK Not Initialization #define USB_ERROR_NO_DEVICE (USB_ERROR_BASE+3) //No such device (it may have been disconnected) #define USB_ERROR_ACCESS (USB_ERROR_BASE+4) //Access denied (insufficient permissions) #define USB_ERROR_OPEN (USB_ERROR_BASE+5) //Open Device failed #define USB_ERROR_DEV_NOT_READY (USB_ERROR_BASE+6) //Device is Not Ready #define USB_ERROR_IO (USB_ERROR_BASE+7) //Input/output error #define USB_ERROR_WRITE (USB_ERROR_BASE+8) //Write Data to Device Failed #define USB_ERROR_READ (USB_ERROR_BASE+9) //Read Data from device Failed #define USB_ERROR_TIMEOUT (USB_ERROR_BASE+10) //Operation timed out #define USB_ERROR_WRITE_TIMEOUT (USB_ERROR_BASE+11) //Write Data Timeout #define USB_ERROR_READ_TIMEOUT (USB_ERROR_BASE+12) //Read Data Timeout #define USB_ERROR_BUSY (USB_ERROR_BASE+13) //Resource busy #define USB_ERROR_WRITE_BUSY (USB_ERROR_BASE+14) //Device is Busy for Write Data #define USB_ERROR_READ_BUSY (USB_ERROR_BASE+15) //Device is Busy for Read Data #define USB_ERROR_CLOSE (USB_ERROR_BASE+16) //Close Device Error #define USB_ERROR_OVERFLOW (USB_ERROR_BASE+17) //Overflow #define USB_ERROR_NO_MEM (USB_ERROR_BASE+18) //Insufficient memory #define USB_ERROR_PIPE (USB_ERROR_BASE+19) //Pipe error #define USB_ERROR_INTERRUPTED (USB_ERROR_BASE+20) //System call interrupted (perhaps due to signal) #define USB_ERROR_NOT_SUPPORTED (USB_ERROR_BASE+21) //Operation not supported or unimplemented on this platform #define USB_ERROR_WAIT_OBJ (USB_ERROR_BASE+22) //Wait obj Error #define USB_ERROR_CREATE_OVERLAPPED (USB_ERROR_BASE+23) //Create IO Overlapped failed #define USB_ERROR_OVERLAPPED (USB_ERROR_BASE+24) //IO Overlapped Event Invalid #define USB_ERROR_RESET_EVENT (USB_ERROR_BASE+25) //Reset Overlapped Event Failed #define USB_ERROR_SET_OUT_REPORT (USB_ERROR_BASE+26) //Set OutReport Error #define USB_ERROR_RECV_PACK_TIMEOUT (USB_ERROR_BASE+27) //Timeout when Receive Package from Device #define USB_ERROR_RECV_DATA_LEN (USB_ERROR_BASE+28) //The Length of the Data(form the Device) is Unexpect #define USB_ERROR_PARAM_INVALID (USB_ERROR_BASE+29) //Param Invalid #define USB_ERROR_PARAM_1_INVALID (USB_ERROR_BASE+30) //Param 1 Invalid #define USB_ERROR_PARAM_2_INVALID (USB_ERROR_BASE+31) //Param 2 Invalid #define USB_ERROR_PARAM_3_INVALID (USB_ERROR_BASE+32) //Param 3 Invalid #define USB_ERROR_PARAM_4_INVALID (USB_ERROR_BASE+33) //Param 4 Invalid #define USB_ERROR_PARAM_5_INVALID (USB_ERROR_BASE+34) //Param 5 Invalid #define USB_ERROR_PARAM_6_INVALID (USB_ERROR_BASE+35) //Param 6 Invalid #define USB_ERROR_PARAM_7_INVALID (USB_ERROR_BASE+36) //Param 7 Invalid #define USB_ERROR_PARAM_8_INVALID (USB_ERROR_BASE+37) //Param 8 Invalid #define USB_ERROR_INVALID_HANDLE (USB_ERROR_BASE+38) //Handle Invalid #define USB_ERROR_INVALID_USER_ID (USB_ERROR_BASE+39) //Invalid User ID #define USB_ERROR_INVALID_DEVICE_ID (USB_ERROR_BASE+40) //Device ID is Invalid #define USB_ERROR_INVALID_SEESSION_ID (USB_ERROR_BASE+41) //Session ID is Invalid #define USB_ERROR_CHECKSUM_FAILED (USB_ERROR_BASE+42) //Checksum Failed #define USB_ERROR_INTER_STRUCT_SIZE (USB_ERROR_BASE+43) //Size of Inter Struct Error #define USB_ERROR_EXTER_STRUCT_SIZE (USB_ERROR_BASE+44) //Size of Exter Struct Error #define USB_ERROR_STRUCT_HEAD_VER (USB_ERROR_BASE+45) //Version of Struct Head is not Define #define USB_ERROR_REG_SEESION (USB_ERROR_BASE+46) //Register Session Error #define USB_ERROR_CONVERT_PARAM (USB_ERROR_BASE+47) //Convert Param Error #define USB_ERROR_INTER_CMD_NOT_DEF (USB_ERROR_BASE+48) //Inter Command Not Define #define USB_ERROR_EXTERNAL_CMD_NOT_DEF (USB_ERROR_BASE+49) //External Command Not Define #define USB_ERROR_GET_DEV_ENCRY (USB_ERROR_BASE+50) //Get Device Encrypt Error #define USB_ERROR_GET_DEV_AES (USB_ERROR_BASE+51) //Get AES from Device Error #define USB_ERROR_DEV_NOT_SUPPOTR_AES (USB_ERROR_BASE+52) //Device do not support AES #define USB_ERROR_DEV_NOT_SUPPOTR_CRC (USB_ERROR_BASE+53) //Device do not support CRC #define USB_ERROR_SDK_AES_MOD (USB_ERROR_BASE+54) //SDK Set AES Mod Error #define USB_ERROR_SDK_AES_KEY (USB_ERROR_BASE+55) //SDK Set AES Key Error #define USB_ERROR_SDK_AES_KEY_LEN (USB_ERROR_BASE+56) //The Length of AES Key is Not Math with the Type #define USB_ERROR_SDK_AES_KEY_TYPE (USB_ERROR_BASE+57) //Wrong AES Type #define USB_ERROR_SDK_AES_PROCESS (USB_ERROR_BASE+58) //SDK AES Process Error #define USB_ERROR_AES_INPUT_DATA_LEN (USB_ERROR_BASE+59) //AES Input Data Length Error #define USB_ERROR_GET_DEV_AES_KEY (USB_ERROR_BASE+60) //Get Device AES Key Error #define USB_ERROR_DEV_REG (USB_ERROR_BASE+61) //Register Device Error #define USB_ERROR_LOGIN (USB_ERROR_BASE+62) //Login Error #define USB_ERROR_RELOGIN (USB_ERROR_BASE+63) //ReLogin Error #define USB_ERROR_LOGOUT (USB_ERROR_BASE+64) //Logout Error #define USB_ERROR_RET_HEAD_LENGTH (USB_ERROR_BASE+65) //The Length of Ret Head is Error #define USB_ERROR_RET_HEAD_VERSION (USB_ERROR_BASE+66) //The Version of Ret Head is not Support #define USB_ERROR_RET_HEAD (USB_ERROR_BASE+67) //Ret Head Error #define USB_ERROR_RET_DATA_LEN (USB_ERROR_BASE+68) //The Data Length in RetHead is Error //设备相关错误码 #define USB_ERROR_DEV_OPER_FAILED (USB_ERROR_BASE+257) //Device say : Operator Failed #define USB_ERROR_DEV_OPER_NOT_SUPPORT (USB_ERROR_BASE+258) //Device say : The Operator is Not Support in This Device #define USB_ERROR_DEV_CHECK_SUM (USB_ERROR_BASE+259) //Dervice say : Device Checksum Failed #define USB_ERROR_DEV_USER_ID (USB_ERROR_BASE+260) //Device say : Invalid UserID #define USB_ERROR_DEV_SESSION_ID (USB_ERROR_BASE+261) //Device say : Invalid Session ID #define USB_ERROR_DEV_OPER_TIMEOUT (USB_ERROR_BASE+262) //Device say : Operation Timeout #define USB_ERROR_DEV_UNKNOW_OPER_RES (USB_ERROR_BASE+512) //Drvice Return Unknow Opreator Result #define USB_ERROR_NOT_DEFINED (USB_ERROR_BASE+0x02FE) //Error code is not defined #define USB_ERROR_OTHER (USB_ERROR_BASE+0x02FF) //Other error 5.2 操作提示码 #define USB_RET_SUCCESS 0x00 //操作成功 #define USB_RET_FAILED 0x01 //操作失败 #define USB_RET_OPER_NOT_SUPPORT 0x02 //设备不支持该操作 #define USB_RET_CHECK_SUM_ERROR 0x03 //校验和错误 #define USB_RET_INVALID_USER_ID 0x04 //非法的UserID #define USB_RET_INVALID_SESSION_ID 0x05 //非法的SessionID #define USB_RET_OPER_TIMEOUT 0x06 //设备操作超时
0
|
John Prick
|
12.09.2024, 15:58
#4
|
0
|
12.09.2024, 16:00 | 5 | |||||
Судя по стеку, исключение выбрасывается уже на этой строке:
CardReader.ActivateCard(Int64) и соответственно, до "вывод ошибок от SDK" дело не доходит. Добавлено через 49 секунд John Prick, ну наверное, всех их не упомнишь)
0
|
2328 / 1817 / 751
Регистрация: 27.07.2012
Сообщений: 5,366
|
||||||
12.09.2024, 16:03 | 6 | |||||
wizard41, картинку удалили, которую я приложил.
Верный путь к этой ошибке:
0
|
L0ck4r
|
13.09.2024, 13:48
.NET 8 Помощь по работе с SDK для считывателя от HIKVISION
#8
|
Не по теме: Из личного опыта: лучше перевести доки от SDK. Как-то досталось мне что-то похожее, считыватель Regula 7024M. Пока не прошерстил доки к SDK, до сих пор бы с бубном танцевал. Так там один мануал был на русском языке, а второй, который описывал COM, был на инглише. С инглишом проблем нету, но все равно перевел, и мучения прекратились. Что и рекомендую 8-)
0
|
13.09.2024, 13:48 | |
13.09.2024, 13:48 | |
Помогаю со студенческими работами здесь
8
Софт для Rfid считывателя Виртульный COM порт для usb считывателя карт PhoneGap. Как его использовать? В чем его недостатки по сравнению с Android SDK, Windows Phone SDK, iOS SDK? Генератор 433-960 МГц для RFID считывателя Не могу написать программу для штрих код считывателя Что нужно купить для Arduino и считывателя RFID/NFC? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |