#ifndef _SADP_H_ #define _SADP_H_ #if defined _WIN32 || defined _WIN64 #define CSADP_API extern "C" __declspec(dllimport) #elif defined __linux__ || defined __APPLE__ #define CSADP_API extern "C" #endif #if defined _WIN32 || defined _WIN64 #define CALLBACK __stdcall #elif defined __linux__ || defined __APPLE__ #define CALLBACK #endif #define BOOL int //ÏûÏ¢²Ù×÷µÄÀàÐÍ #define SADP_ADD 1 //Ôö¼ÓÒ»É豸 #define SADP_UPDATE 2 //¸üÐÂÉ豸 #define SADP_DEC 3 //É豸ÏÂÏß #define SADP_RESTART 4 //Éè±¸ÖØÐÂÆô¶¯ #define SADP_UPDATEFAIL 5 //É豸¸üÐÂʧ°Ü //ÍⲿÃüÁîÂë #define SADP_GET_DEVICE_CODE 1 //»ñÈ¡É豸Â룬¶ÔÓ¦½á¹¹ÌåSADP_SAFE_CODE #define SADP_GET_ENCRYPT_STRING 2 //»ñÈ¡¼ÓÃÜ´®£¬¶ÔÓ¦½á¹¹ÌåSADP_ENCRYPT_STRING #define SADP_GET_DEVICE_TYPE_UNLOCK_CODE 3 //»ñÈ¡É豸ÀàÐͽâ½ûÂ룬¶ÔÓ¦µÄ½á¹¹ÌåSADP_TYPE_UNLOCK_CODE #define SADP_SET_DEVICE_CUSTOM_TYPE 4 //ÉèÖÃÉ豸×Ô¶¨ÒåÐͺţ¬¶ÔÓ¦µÄ½á¹¹ÌåSADP_CUSTOM_DEVICE_TYPE #define SADP_GET_GUID 5 //»ñÈ¡GUID #define SADP_GET_SECURITY_QUESTION 6 //»ñÈ¡°²È«ÎÊÌâ #define SADP_SET_SECURITY_QUESTION 7 //ÉèÖð²È«ÎÊÌâ #define SADP_SET_HCPLATFORM_STATUS 8 //ÉèÖÃHCPLATFORM״̬ #define SADP_SET_VERIFICATION_CODE 9 //ÉèÖÃÑéÖ¤Â루ÑéÖ¤ÂëÓÃÓÚөʯ½ÓÈë¡¢Ô¤ÀÀ¡¢¿ØÖƵÄΨһÃÜÂ룩 #define SADP_GET_BIND_LIST 12 //»ñÈ¡°ó¶¨É豸Áбí #define SADP_SET_BIND_LIST 13 //ÉèÖðó¶¨É豸Áбí #define SADP_RESTORE_INACTIVE 14 //»Ö¸´Î´¼¤»î #define SADP_SET_WIFI_REGION 15 //ÉèÖÃwifiÇøÓò #define SADP_SET_CHANNEL_DEFAULT_PASSWORD 16 //ÉèÖÃͨµÀĬÈÏÃÜÂë #define SADP_GET_SELF_CHECK 17 //»ñÈ¡É豸×Ô¼ì״̬ #define SADP_DISK_LOCATE 18 //»µÅ̶¨Î» #define SADP_EHOME_ENABLE 19 //EHomeʹÄÜ #define SADP_SET_USER_MAILBOX 20 //ÉèÖÃÓû§ÓÊÏä #define SADP_GET_QR_CODES 21 //»ñÈ¡¶þάÂëÊý¾Ý #define SADP_GET_PASSWORD_RESET_TYPE 27 //»ñÈ¡ÖØÖÃÃÜÂ뷽ʽ²ÎÊý #define SADP_MAX_VERIFICATION_CODE_LEN 12 //×î´óÑéÖ¤Â볤¶È #define MAX_PASS_LEN 16 //É豸×î´óÃÜÂ볤¶È #define MAX_QUESTION_LIST_LEN 32 //×î¶àÎÊÌâÁбí¸öÊý #define SADP_MAX_BIND_NUM 32 //×î´ó°ó¶¨É豸¸öÊý #define MAX_CPU_LEN 32 //CPU³¤¶È #define MAX_MEMORY_LEN 32 //Äڴ泤¶È #define MAX_USERNAME_LEN 32 //Óû§Ãû×î´ó³¤¶È #define SADP_MAX_SERIALNO_LEN 64 //×î´óÉ豸ÐòÁкų¤¶È #define MAX_DEVICE_CODE 128 //É豸·µ»ØÂ볤¶È£¬Ôݶ¨×î´ó128 #define MAX_MAILBOX_LEN 128 //ÓÊÏ䳤¶È£¬Ôݶ¨×î´ó128 #define MAX_GUID_LEN 128 //GUID³¤¶È #define MAX_EXCHANGE_CODE 256 //½»»»Â볤¶È #define MAX_ENCRYPT_CODE 256 //É豸·µ»ØÂë¼ÓÃÜºó³¤¶È #define MAX_UNLOCK_CODE_KEY 256 //½â½ûÃÜÔ¿ #define MAX_QR_CODES 256 //¶þάÂëÊý¾Ý³¤¶È£¬Ôݶ¨×î´ó256 #define MAX_ANSWER_LEN 256 //×î´ó´ð°¸³¤¶È #define MAX_UNLOCK_CODE_RANDOM_LEN 256 //½â½ûÂëËæ»ú´® #define MAX_FILE_PATH_LEN 260 //Îļþ×î´ó·¾¶³¤¶È // ´íÎóÂë #define SADP_ERROR_BASE 2000 #define SADP_NOERROR 0 // ûÓдíÎó #define SADP_ALLOC_RESOURCE_ERROR (SADP_ERROR_BASE+1) // ×ÊÔ´·ÖÅä´íÎó #define SADP_NOT_START_ERROR (SADP_ERROR_BASE+2) // SADPδÆô¶¯ #define SADP_NO_ADAPTER_ERROR (SADP_ERROR_BASE+3) // ÎÞÍø¿¨ #define SADP_GET_ADAPTER_FAIL_ERROR (SADP_ERROR_BASE+4) // »ñÈ¡Íø¿¨ÐÅϢʧ°Ü #define SADP_PARAMETER_ERROR (SADP_ERROR_BASE+5) // ²ÎÊý´íÎó #define SADP_OPEN_ADAPTER_FAIL_ERROR (SADP_ERROR_BASE+6) // ´ò¿ªÍø¿¨Ê§°Ü #define SADP_SEND_PACKET_FAIL_ERROR (SADP_ERROR_BASE+7) // ·¢ËÍÊý¾Ýʧ°Ü #define SADP_SYSTEM_CALL_ERROR (SADP_ERROR_BASE+8) // ϵͳ½Ó¿Úµ÷ÓÃʧ°Ü #define SADP_DEVICE_DENY (SADP_ERROR_BASE+9) // É豸¾Ü¾ø´¦Àí #define SADP_NPF_INSTALL_ERROR (SADP_ERROR_BASE+10) // °²×°NPF·þÎñʧ°Ü #define SADP_TIMEOUT (SADP_ERROR_BASE+11) // É豸³¬Ê± #define SADP_CREATE_SOCKET_ERROR (SADP_ERROR_BASE+12) // ´´½¨socketʧ°Ü #define SADP_BIND_SOCKET_ERROR (SADP_ERROR_BASE+13) // °ó¶¨socketʧ°Ü #define SADP_JOIN_MULTI_CAST_ERROR (SADP_ERROR_BASE+14) // ¼ÓÈë¶à²¥×éʧ°Ü #define SADP_NETWORK_SEND_ERROR (SADP_ERROR_BASE+15) // ·¢Ëͳö´í #define SADP_NETWORK_RECV_ERROR (SADP_ERROR_BASE+16) // ½ÓÊÕ³ö´í #define SADP_XML_PARSE_ERROR (SADP_ERROR_BASE+17) // ¶à²¥XML½âÎö³ö´í #define SADP_LOCKED (SADP_ERROR_BASE+18) // Éè±¸Ëø¶¨ #define SADP_NOT_ACTIVATED (SADP_ERROR_BASE+19) // É豸δ¼¤»î #define SADP_RISK_PASSWORD (SADP_ERROR_BASE+20) // ·çÏոߵÄÃÜÂë #define SADP_HAS_ACTIVATED (SADP_ERROR_BASE+21) // É豸ÒѼ¤»î #define SADP_EMPTY_ENCRYPT_STRING (SADP_ERROR_BASE+22) // ¼ÓÃÜ´®Îª¿Õ #define SADP_EXPORT_FILE_OVERDUE (SADP_ERROR_BASE+23) // µ¼³öÎļþ³¬ÆÚ #define SADP_PASSWORD_ERROR (SADP_ERROR_BASE+24) // ÃÜÂë´íÎó #define SADP_LONG_SECURITY_ANSWER (SADP_ERROR_BASE+25) // °²È«ÎÊÌâ´ð°¸Ì«³¤ #define SADP_INVALID_GUID (SADP_ERROR_BASE+26) // ÎÞЧµÄGUID #define SADP_ANSWER_ERROR (SADP_ERROR_BASE+27) // ´ð°¸´íÎó #define SADP_QUESTION_NUM_ERR (SADP_ERROR_BASE+28) // °²È«ÎÊÌâ¸öÊýÅäÖôíÎó #define SADP_LOAD_WPCAP_FAIL (SADP_ERROR_BASE+30) // ¼ÓÔØWpcapʧ°Ü #define SADP_ILLEGAL_VERIFICATION_CODE (SADP_ERROR_BASE+33) // ·Ç·¨ÑéÖ¤Âë #define SADP_BIND_ERROR_DEV (SADP_ERROR_BASE+34) // °ó¶¨´íÎóµÄÉ豸 #define SADP_EXTED_MAX_BIND_NUM (SADP_ERROR_BASE+35) // ³¬¹ý×î´ó°ó¶¨¸öÊý #define SADP_MAILBOX_NOT_EXIST (SADP_ERROR_BASE+36) // ÓÊÏä²»´æÔÚ #define SADP_MAILBOX_NOT_SET (SADP_ERROR_BASE+38) // [add] <2019/01/08> by yangzheng ÓÊÏäÖØÖÃÃÜÂëδÉèÖÃÓÊÏä #define SADP_INVALID_RESET_CODE (SADP_ERROR_BASE+39) // ÖØÖÃÃÜÂë ÖØÖÿÚÁî´íÎó //SADPÉ豸¹ýÂ˹æÔòÀàÐÍ //°´Î»±íʾ£¬Îª1±íʾ¹ýÂË£¬0±íʾ²»¹ýÂË; //bit 1:ÊÇ·ñ¹ýÂËөʯ;bit 2:ÊÇ·ñ¹ýÂËOEM; #define SADP_DISPLAY_ALL 0 //ÏÔʾËùÓÐÉ豸 #define SADP_FILTER_EZVIZ 0x01 //¹ýÂËөʯÉ豸 #define SADP_FILTER_OEM 0x02 //¹ýÂËOEMÉ豸 #define SADP_FILTER_EZVIZ_OEM 0x03 //ͬʱ¹ýÂËөʯºÍOEMÉ豸 #define SADP_ONLY_DISPLAY_OEM 0xfffffffd //½öÏÔʾOEMÉ豸,¶ÔÓ¦½á¹¹ÌåSADP_DISPLAY_OEM_CFG #define SADP_ONLY_DISPLAY_EZVIZ 0xfffffffe //½öÏÔʾөʯÉ豸 // ½á¹¹Ìå typedef struct tagSADP_DEVICE_INFO { char szSeries[12]; //É豸ϵÁУ¨±£Áô£© char szSerialNO[48]; //É豸ÐòÁкŠchar szMAC[20]; //É豸ÎïÀíµØÖ· char szIPv4Address[16]; //É豸IPv4µØÖ· char szIPv4SubnetMask[16]; //É豸IPv4×ÓÍøÑÚÂë unsigned int dwDeviceType; //É豸ÀàÐÍ£¬¾ßÌåÊýÖµ´ú±íµÄÉ豸ÐͺŠunsigned int dwPort; //Éè±¸ÍøÂçSDK·þÎñ¶Ë¿ÚºÅ(ĬÈÏ8000) unsigned int dwNumberOfEncoders; //É豸±àÂëÆ÷¸öÊý£¬¼´É豸±àÂëͨµÀ¸öÊý¡£¶ÔÓÚ½âÂëÆ÷£¬ÆäÖµÉèΪ0 unsigned int dwNumberOfHardDisk; //É豸ӲÅÌÊýÄ¿ char szDeviceSoftwareVersion[48]; //É豸Èí¼þ°æ±¾ºÅ char szDSPVersion[48]; //É豸DSP°æ±¾ºÅ char szBootTime[48]; //¿ª»úʱ¼ä int iResult; //ÐÅÏ¢ÀàÐÍ£º 1.É豸ÉÏÏß 2.É豸¸üР3.É豸ÏÂÏß 4.Éè±¸ÖØÆô 5.É豸¸üÐÂʧ°Ü //SADP_ADD 1 ÐÂÉ豸ÉÏÏߣ¬Ö®Ç°ÔÚSADP¿âÁбíÖÐδ³öÏÖµÄÉ豸 //SADP_UPDATE 2 ÔÚÏßµÄÉ豸µÄÍøÂç²ÎÊý»òÕßijЩ״̬¸Ä±ä //SADP_DEC 3 É豸ÏÂÏߣ¬É豸×Ô¶¯·¢ËÍÏÂÏßÏûÏ¢»ò120ÃëÄÚ¼ì²â²»µ½É豸 //SADP_RESTART 4 ֮ǰSADP¿âÁбíÖгöÏÖ¹ýÖ®ºóÏÂÏßµÄÉ豸ÔÙ´ÎÉÏÏß //SADP_UPDATEFAIL 5 É豸¸üÐÂʧ°Ü char szDevDesc[24]; //É豸ÀàÐÍÃèÊö ÓëdwDeviceType¶ÔÓ¦ char szOEMinfo[24]; //OEM²úÉÌÐÅÏ¢ char szIPv4Gateway[16]; //IPv4Íø¹Ø char szIPv6Address[46]; //IPv6µØÖ· char szIPv6Gateway[46]; //IPv6Íø¹Ø unsigned char byIPv6MaskLen; //IPv6×ÓÍøÇ°×º³¤¶È unsigned char bySupport; //°´Î»±íʾ,¶ÔӦΪΪ1±íʾ֧³Ö //0x01:ÊÇ·ñÖ§³ÖIpv6 //0x02:ÊÇ·ñÖ§³ÖÐÞ¸ÄIpv6²ÎÊý //0x04:ÊÇ·ñÖ§³ÖDhcp //0x08:ÊÇ·ñÖ§³Öudp¶à²¥ //0x10:ÊÇ·ñº¬¼ÓÃܽڵã //0x20:ÊÇ·ñÖ§³Ö»Ö¸´ÃÜÂë //0x40:ÊÇ·ñÖ§³ÖÖØÖÃÃÜÂë //0x80:ÊÇ·ñÖ§³Öͬ²½IPCÃÜÂë unsigned char byDhcpEnabled; //Dhcp״̬, 0 ²»ÆôÓà 1 ÆôÓà unsigned char byDeviceAbility; //É豸ÄÜÁ¦ //0£ºÉ豸²»Ö§³Ö¡°¡®É豸ÀàÐÍÃèÊö¡¯ 'OEM³§ÉÌ' 'IPv4Íø¹Ø' ¡®IPv6µØÖ·¡¯ 'IPv6Íø¹Ø' ¡®IPv6×ÓÍøÇ°×º¡¯¡®DHCP¡¯¡± //1£ºÖ§³ÖÉÏËß¹¦ÄÜ unsigned short wHttpPort; //Http ¶Ë¿Ú unsigned short wDigitalChannelNum; //Êý×ÖͨµÀÊý char szCmsIPv4[16]; //CMS×¢²á·þÎñÆ÷IPv4µØÖ· unsigned short wCmsPort; //CMS×¢²á·þÎñÆ÷¼àÌý¶Ë¿Ú unsigned char byOEMCode; //0-»ùÏßÉ豸 1-OEMÉ豸 unsigned char byActivated; //É豸ÊÇ·ñ¼¤»î;0-¼¤»î£¬1-δ¼¤»î£¨ÀϵÄÉ豸¶¼ÊÇÒѼ¤»î״̬£© char szBaseDesc[24]; //»ùÏß¶ÌÐͺţ¬²»Ëæ¶¨ÖÆ¶øÐ޸ĵÄÐͺţ¬ÓÃÓÚөʯƽ̨½øÐÐÐÍºÅ¶Ô±È unsigned char bySupport1; //°´Î»±íʾ, 1±íʾ֧³Ö£¬0±íʾ²»Ö§³Ö //0x01:ÊÇ·ñÖ§³ÖÖØÖÃÃÜÂ뷽ʽ2 //0x02;ÊÇ·ñÖ§³ÖÉè±¸Ëø¶¨¹¦ÄÜ //0x04:ÊÇ·ñÖ§³Öµ¼ÈëGUIDÖØÖÃÃÜÂë //0x08:ÊÇ·ñÖ§³Ö°²È«ÎÊÌâÖØÖÃÃÜÂë //0x10:ÊÇ·ñÖ§³ÖOEM¸ü»»Logo //0x20:ÊÇ·ñÖ§³Ö°ó¶¨²Ù×÷ //0x40:ÊÇ·ñÖ§³Ö»Ö¸´Î´¼¤»î //0x80:ÊÇ·ñÖ§³ÖwifiÐźÅÔöǿģʽ unsigned char byHCPlatform; //ÊÇ·ñÖ§³ÖHCPlatform 0-±£Áô, 1-Ö§³Ö, 2-²»Ö§³Ö unsigned char byEnableHCPlatform; //ÊÇ·ñÆôÓÃHCPlatform 0-±£Áô, 1-ÆôÓ㬠2-²»ÆôÓà unsigned char byEZVIZCode; //0-»ùÏßÉ豸, 1-өʯÉ豸 unsigned int dwDetailOEMCode; //ÏêϸOEMCodeÐÅÏ¢:oemcodeÓɿͻ§ÐòºÅ£¨¿É±äλ,´Ó1¿ªÊ¼£¬1~429496)+²Ëµ¥·ç¸ñ£¨2룩+ÇøÓòºÅ£¨2룩Èý²¿·Ö¹¹³É¡£ //¹æÔò˵Ã÷£ºoemcode×î´óֵΪ4294967295£¬×î¶àÊÇʮλÊý¡£ //0: ÀÏÉ豸 //1: лùÏßÉ豸 //10101: ÓоßÌåOEM codeµÄΪOEMÉ豸 unsigned char byModifyVerificationCode; //ÊÇ·ñÐÞ¸ÄÑéÖ¤Âë 0-±£Áô£¬ 1-ÐÞ¸ÄÑéÖ¤Â룬 2-²»ÐÞ¸ÄÑéÖ¤Âë unsigned char byMaxBindNum; //Ö§³Ö°ó¶¨µÄ×î´ó¸öÊý£¨Ä¿Ç°Ö»ÓÐNVRÖ§³Ö¸Ã×ֶΣ© unsigned short wOEMCommandPort; //OEMÃüÁî¶Ë¿Ú unsigned char bySupportWifiRegion; //É豸֧³ÖµÄwifiÇøÓòÁÐ±í£¬°´Î»±íʾ£¬1±íʾ֧³Ö£¬0±íʾ²»Ö§³Ö //0x01:ÊÇ·ñÖ§³Ödefault£¨Ä¬ÈϹ¦Âʺͱ±ÃÀÒ»Ö£© //0x02:ÊÇ·ñÖ§³Öchina //0x04:ÊÇ·ñÖ§³ÖnothAmerica //0x08:ÊÇ·ñÖ§³Öjapan //0x10:ÊÇ·ñÖ§³Öeurope //0x20:ÊÇ·ñÖ§³Öworld unsigned char byEnableWifiEnhancement;//ÊÇ·ñÆôÓÃwifiÔöǿģʽ,0-²»ÆôÓã¬1-ÆôÓà unsigned char byWifiRegion; //É豸µ±Ç°ÇøÓò£¬0-default£¬1-china£¬2-nothAmerica£¬3-japan£¬4-europe,5-world unsigned char bySupport2; //°´Î»±íʾ, 1±íʾ֧³Ö£¬0±íʾ²»Ö§³Ö //0x01:ÊÇ·ñÖ§³ÖͨµÀĬÈÏÃÜÂëÅäÖ㨸ÃÃÜÂëÓÃÓÚnvrÌí¼ÓIPC£¬ ĬÈÏʹÓõÄÊÇnvr adminÃÜÂ룬»áµ¥¶À±£´æÔÚ±¾µØ£© //0x02:ÊÇ·ñÖ§³ÖÓÊÏäÖØÖÃÃÜÂë //0x04:ÊÇ·ñÖ§³Öδ¼¤»îÅäÖÃSSIDºÍPassword }SADP_DEVICE_INFO, *LPSADP_DEVICE_INFO; typedef struct tagSADP_DEVICE_INFO_V40 { SADP_DEVICE_INFO struSadpDeviceInfo; unsigned char byLicensed; //É豸ÊÇ·ñÊÚȨ£º0-±£Áô,1-É豸δÊÚȨ£¬2-É豸ÒÑÊÚȨ unsigned char bySystemMode; //ϵͳģʽ 0-±£Áô,1-µ¥¿Ø£¬2-Ë«¿Ø£¬3-µ¥»ú¼¯Èº£¬4-Ë«¿Ø¼¯Èº unsigned char byControllerType; //¿ØÖÆÆ÷ÀàÐÍ 0-±£Áô£¬1-A¿Ø£¬2-B¿Ø char szEhmoeVersion[16]; //Ehmoe°æ±¾ºÅ unsigned char bySpecificDeviceType;//É豸ÀàÐÍ£¬1-ÖÐÐÔÉ豸 2-º£¿µÉ豸 unsigned int dwSDKOverTLSPort; //˽ÓÐЭÒéÖÐ SDK Over TLS ÃüÁî¶Ë¿Ú unsigned char bySecurityMode; //É豸°²È«Ä£Ê½£º0-standard,1-high-A,2-high-B,3-custom unsigned char bySDKServerStatus; //É豸SDK·þÎñ״̬, 0-¿ªÆô£¬1-¹Ø±Õ unsigned char bySDKOverTLSServerStatus; //É豸SDKOverTLS·þÎñ״̬, 0-¹Ø±Õ£¬1-¿ªÆô char szUserName[MAX_USERNAME_LEN + 1]; //¹ÜÀíÔ±Óû§µÄÓû§Ãû£¨É豸°²È«Ä£Ê½ÔڷDZê׼ģʽÏÂÊÇÔÊÐíÓû§ÉèÖùÜÀíÔ±Óû§µÄÓû§Ãû£¬±ê׼ģʽĬÈÏΪadmin£© char szWifiMAC[20]; //É豸ËùÁ¬wifiµÄMacµØÖ· unsigned char byDataFromMulticast; //0-Á´Â· 1-¶à²¥ unsigned char bySupportEzvizUnbind; //ÊÇ·ñÖ§³Öөʯ½â°ó 0-²»Ö§³Ö 1-Ö§³Ö unsigned char bySupportCodeEncrypt; //ÊÇ·ñÖ§³ÖÖØÖÿÚÁîAES128_ECB½âÃÜ 0-²»Ö§³Ö 1-Ö§³Ö unsigned char bySupportPasswordResetType; //ÊÇ·ñÖ§³Ö»ñÈ¡ÃÜÂëÖØÖ÷½Ê½²ÎÊý 0-²»Ö§³Ö 1-Ö§³Ö unsigned char byEZVIZBindStatus; //Éè±¸Ó©Ê¯ÔÆ°ó¶¨×´Ì¬,0-δ֪,1-ÒѰó¶¨,2-δ°ó¶¨ char szPhysicalAccessVerification[16]; //É豸֧³ÖµÄÎïÀí½Ó´¥Ê½Ìí¼Ó·½Ê½,1#APÅäÍø´«µÝ,2#Óû§ÁîÅÆ£¨Óû§token£©°ó¶¨,3#ÎïÀí°´¼ü½Ó´¥,4#ɨÂë°ó¶¨£¨É豸token£© unsigned char byRes[411]; }SADP_DEVICE_INFO_V40, *LPSADP_DEVICE_INFO_V40; //´ýÐ޸ĵÄÉè±¸ÍøÂç²ÎÊý typedef struct tagSADP_DEV_NET_PARAM { char szIPv4Address[16]; // IPv4µØÖ· char szIPv4SubNetMask[16]; // IPv4×ÓÍøÑÚÂë char szIPv4Gateway[16]; // IPv4Íø¹Ø char szIPv6Address[128]; // IPv6µØÖ· char szIPv6Gateway[128]; // IPv6Íø¹Ø unsigned short wPort; // Éè±¸ÍøÂçSDK·þÎñ¶Ë¿ÚºÅ(ĬÈÏ8000) unsigned char byIPv6MaskLen; // IPv6ÑÚÂ볤¶È unsigned char byDhcpEnable; // DHCPʹÄÜ unsigned short wHttpPort; // HTTP¶Ë¿Ú unsigned int dwSDKOverTLSPort; // ˽ÓÐЭÒéÖÐ SDK Over TLS ÃüÁî¶Ë¿Ú unsigned char byRes[122]; }SADP_DEV_NET_PARAM, *LPSADP_DEV_NET_PARAM; //É豸·µ»ØÍøÂç²ÎÊýÐÅÏ¢ typedef struct tagSADP_DEV_RET_NET_PARAM { unsigned char byRetryModifyTime; //Ê£Óà¿É³¢ÊÔÐÞ¸ÄÍøÂç²ÎÊý´ÎÊý unsigned char bySurplusLockTime; //Ê£Óàʱ¼ä£¬µ¥Î»£º·ÖÖÓ£¬Óû§Ëø¶¨Ê±´Ë²ÎÊýÓÐЧ unsigned char byRes[126]; }SADP_DEV_RET_NET_PARAM, *LPSADP_DEV_RET_NET_PARAM; // CMS²ÎÊý typedef struct tagSADP_CMS_PARAM { char szPUID[32]; // Ô¤·ÖÅäµÄPUID char szPassword[16]; // ÉèÖõĵǼÃÜÂë char szCmsIPv4[16]; // CMS·þÎñÆ÷IPv4µØÖ· char szCmsIPv6[128]; // CMS·þÎñÆ÷IPv6µØÖ· unsigned short wCmsPort; // CMS·þÎñÆ÷¼àÌý¶Ë¿Ú unsigned char byRes[30]; }SADP_CMS_PARAM, *LPSADP_CMS_PARAM; //É豸°²È«Â룬¶ÔÓ¦ÅäÖÃÃüÁîSADP_GET_DEVICE_CODE£¬½Ó¿ÚSADP_GetDeviceConfig typedef struct tagSADP_SAFE_CODE { unsigned int dwCodeSize; char szDeviceCode[MAX_DEVICE_CODE]; unsigned char byRes[128]; }SADP_SAFE_CODE, *LPSADP_SAFE_CODE; //É豸¶þάÂë typedef struct tagSADP_QR_CODES { unsigned int dwCodeSize; unsigned int dwMailBoxSize; unsigned int dwServiceMailBoxSize; char szQrCodes[MAX_QR_CODES]; char szMailBoxAddr[MAX_MAILBOX_LEN]; //ÒªÉèÖõÄÓÊÏ䵨ַ char szServiceMailBoxAddr[MAX_MAILBOX_LEN]; //·þÎñµÄÓÊÏ䵨ַ unsigned char byRes[128]; }SADP_QR_CODES, *LPSADP_QR_CODES; //¼ÓÃÜ´®½á¹¹Ì壬¶ÔÓ¦ÅäÖÃÃüÁîSADP_GET_ENCRYPT_STRING£¬½Ó¿ÚSADP_GetDeviceConfig typedef struct tagSADP_ENCRYPT_STRING { unsigned int dwEncryptStringSize; //¼ÓÃÜ´®³¤¶È char szEncryptString[MAX_ENCRYPT_CODE]; //¼ÓÃÜ´®ÄÚÈÝ unsigned char byRes[128]; }SADP_ENCRYPT_STRING, *LPSADP_ENCRYPT_STRING; //»Ö¸´/ÖØÖÃÃÜÂë½á¹¹Ìå typedef struct tagSADP_RESET_PARAM { char szCode[MAX_ENCRYPT_CODE]; //ÈÕÆÚת»»¹ýµÄÌØÊâ×Ö·û´®»ò¼ÓÃܹ¤¾ß¼ÓÃܺóµÄ×Ö·û´® - Ϊ¼æÈÝÀÏ½Ó¿Ú char szAuthFile[MAX_FILE_PATH_LEN];//ÖØÖÃÊÚȨÎļþ char szPassword[MAX_PASS_LEN]; //Óû§ÃÜÂë unsigned char byEnableSyncIPCPW; //ÊÇ·ñÆôÓÃͬ²½IPCÃÜÂë¡£0 - ²»ÆôÓ㬠1- ÆôÓà unsigned char byRes[511]; }SADP_RESET_PARAM, *LSADP_RESET_PARAM; //ÏÔʾOEMÅäÖýṹÌå typedef struct tagSADP_DISPLAY_OEM_CFG { unsigned int dwDisplayOEM; //0-ÏÔʾËùÓÐOEM£¬ÆäËüֵΪҪÏÔʾµÄijһÖÖÀàÐ͵ÄOEMCode£¬¾ßÌåÏê¼ûdwDetailOEMCode unsigned char byRes[32]; //±£Áô }SADP_DISPLAY_OEM_CFG, *LPSADP_DISPLAY_OEM_CFG; typedef struct tagSADP_TYPE_UNLOCK_CODE { unsigned int dwCodeSize; char szDeviceTypeUnlockCode[MAX_UNLOCK_CODE_RANDOM_LEN/*256*/];//É豸ÐͺŽâ½ûÂë unsigned char byRes[128]; }SADP_TYPE_UNLOCK_CODE, *LPSADP_TYPE_UNLOCK_CODE; typedef struct tagSADP_CUSTOM_DEVICE_TYPE { unsigned int dwCodeSize; char szDeviceTypeSecretKey[MAX_UNLOCK_CODE_KEY/*256*/];//ÀàÐͽâ½ûÃØÔ¿ unsigned char byRes[128]; }SADP_CUSTOM_DEVICE_TYPE, *LPSADP_CUSTOM_DEVICE_TYPE; //»ñÈ¡GUID²ÎÊý½á¹¹Ìå typedef struct tagSADP_GUID_FILE_COND { char szPassword[MAX_PASS_LEN]; //Óû§ÃÜÂë unsigned char byRes[128]; }SADP_GUID_FILE_COND, *LPSADP_GUID_FILE_COND; //GUID½á¹¹Ìå typedef struct tagSADP_GUID_FILE { unsigned int dwGUIDSize; char szGUID[MAX_GUID_LEN]; unsigned char byRetryGUIDTime; //Ê£Óà¿Éµ¼Èë/µ¼³öGUID´ÎÊý unsigned char bySurplusLockTime; //Ê£Óàʱ¼ä£¬µ¥Î»£º·ÖÖÓ£¬Óû§Ëø¶¨Ê±´Ë²ÎÊýÓÐЧ unsigned char byRes[254]; }SADP_GUID_FILE, *LPSADP_GUID_FILE; typedef struct tagSADP_SINGLE_SECURITY_QUESTION_CFG { unsigned int dwSize; unsigned int dwId;//ÐòºÅ char szAnswer[MAX_ANSWER_LEN/*256*/];//´ð°¸£¬Ö»ÔÚÉèÖÃʱÓÐЧ£¬»ñȡʱÎÞЧ unsigned char byMark;//±ê¼Ç¸ÃÐòºÅµÄÎÊÌâÊÇ·ñ±»ÉèÖà 0-δÉèÖà 1-ÒÑÉèÖà unsigned char byRes[127]; }SADP_SINGLE_SECURITY_QUESTION_CFG, *LPSADP_SINGLE_SECURITY_QUESTION_CFG; typedef struct tagSADP_SECURITY_QUESTION_CFG { unsigned int dwSize; SADP_SINGLE_SECURITY_QUESTION_CFG struSecurityQuestion[MAX_QUESTION_LIST_LEN/*32*/];//°²È«ÎÊÌâÁбí char szPassword[MAX_PASS_LEN]; //Óû§ÃÜÂë unsigned char byRes[512]; }SADP_SECURITY_QUESTION_CFG, *LPSADP_SECURITY_QUESTION_CFG; typedef struct tagSADP_SECURITY_QUESTION { unsigned char byRetryAnswerTime; //Ê£Óà¿ÉÉèÖð²È«ÎÊÌâ´ÎÊý unsigned char bySurplusLockTime; //Ê£Óàʱ¼ä£¬µ¥Î»£º·ÖÖÓ£¬Óû§Ëø¶¨Ê±´Ë²ÎÊýÓÐЧ unsigned char byRes[254]; }SADP_SECURITY_QUESTION, *LPSADP_SECURITY_QUESTION; typedef struct tagSADP_RESET_PARAM_V40 { unsigned int dwSize; unsigned char byResetType; //ÃÜÂëÖØÖÃÀàÐÍ 0-±£Áô,1- ͨ¹ýÉ豸ÐòÁкŻָ´Ä¬ÈÏÃÜÂ룬2-µ¼Èë/µ¼³öÎļþÖØÖÃÃÜÂ룬3-¶þάÂëÖØÖ㬠4-GUIDÖØÖã¬5-°²È«ÎÊÌâÖØÖà 6-ÓÊÏäÖØÖÃÃÜÂë unsigned char byEnableSyncIPCPW; //ÊÇ·ñͬʱ½«ÃÜÂëÆôÓÃΪNVRͬ²½IPCÃÜÂë¡£0 - ²»ÆôÓ㬠1- ÆôÓà unsigned char byRes2[2]; //±£Áô char szPassword[MAX_PASS_LEN]; //Óû§ÃÜÂë char szCode[MAX_ENCRYPT_CODE]; //ÈÕÆÚת»»¹ýµÄÌØÊâ×Ö·û´®»ò¼ÓÃܹ¤¾ß¼ÓÃܺóµÄ×Ö·û´® - byResetType Ϊ1¡¢3ʱÓÐЧ char szAuthFile[MAX_FILE_PATH_LEN];//ÖØÖÃÊÚȨÎļþ£¬ byResetType Ϊ2ʱÓÐЧ char szGUID[MAX_GUID_LEN]; //GUID, byResetType Ϊ4ʱÓÐЧ SADP_SECURITY_QUESTION_CFG struSecurityQuestionCfg;//°²È«ÎÊÌâ½á¹¹Ì壬 byResetType Ϊ5ʱÓÐЧ unsigned char byRes[512]; }SADP_RESET_PARAM_V40, *LPSADP_RESET_PARAM_V40; typedef struct tagSADP_RET_RESET_PARAM_V40 { unsigned char byRetryGUIDTime; //Ê£Óà¿ÉÉèÖôÎÊý unsigned char bySurplusLockTime; //Ê£Óàʱ¼ä£¬µ¥Î»£º·ÖÖÓ£¬Óû§Ëø¶¨Ê±´Ë²ÎÊýÓÐЧ unsigned char bRetryTimeValid; //byRetryGUIDTime×Ö¶ÎÊÇ·ñÓÐЧ 0-ÎÞЧ,1-ÓÐЧ unsigned char bLockTimeValid; //bySurplusLockTime×Ö¶ÎÊÇ·ñÓÐЧ 0-ÎÞЧ,1-ÓÐЧ unsigned char byRes[252]; }SADP_RET_RESET_PARAM_V40, *LPSADP_RET_RESET_PARAM_V40; //HCPlatform״̬ typedef struct tagSADP_HCPLATFORM_STATUS_INFO { unsigned int dwSize; unsigned char byEnableHCPlatform; //ÊÇ·ñÆôÓÃHCPlatform¡£0 - ±£Áô£¬ 1- ÆôÓ㬠2-²»ÆôÓà unsigned char byRes[3]; //±£Áô char szPassword[MAX_PASS_LEN]; //Óû§ÃÜÂë unsigned char byRes2[128]; }SADP_HCPLATFORM_STATUS_INFO, *LPSADP_HCPLATFORM_STATUS_INFO; typedef struct tagSADP_USER_MAILBOX { unsigned int dwSize; char szPassword[MAX_PASS_LEN]; //É豸adminÓû§ÃÜÂë char szMailBoxAddr[MAX_MAILBOX_LEN]; //Ô¤ÁôÓÊÏ䵨ַ£¬ÓÃÓÚ½ÓÊÕÃÜÂë·þÎñÆ÷·µ»ØµÄ°²È«Âë unsigned char byRes[128]; }SADP_USER_MAILBOX, *LPSADP_USER_MAILBOX; //É豸ÑéÖ¤Âë typedef struct tagSADP_VERIFICATION_CODE_INFO { unsigned int dwSize; char szVerificationCode[SADP_MAX_VERIFICATION_CODE_LEN]; //ÑéÖ¤Â루ÑéÖ¤ÂëÓÃÓÚөʯ½ÓÈë¡¢Ô¤ÀÀ¡¢¿ØÖƵÄΨһÃÜÂ룩 char szPassword[MAX_PASS_LEN]; //Óû§ÃÜÂë unsigned char byRes[128]; }SADP_VERIFICATION_CODE_INFO, *LPSADP_VERIFICATION_CODE_INFO; //Éè±¸Ëø¶¨ÐÅÏ¢ typedef struct tagSADP_DEV_LOCK_INFO { unsigned char byRetryTime; //Ê£Óà¿É³¢ÊÔ´ÎÊý unsigned char bySurplusLockTime; //Ê£Óàʱ¼ä£¬µ¥Î»£º·ÖÖÓ£¬Óû§Ëø¶¨Ê±´Ë²ÎÊýÓÐЧ unsigned char byRes[126]; }SADP_DEV_LOCK_INFO, *LPSADP_DEV_LOCK_INFO; //±»°ó¶¨É豸ÐÅÏ¢½á¹¹Ìå typedef struct tagSADP_BIND_INFO { char szSerialNO[SADP_MAX_SERIALNO_LEN]; //±»°ó¶¨É豸µÄÐòÁкŠunsigned char byiBind; //É豸ÊÇ·ñ°ó¶¨ 0-δ°ó¶¨£»1-ÒÑ°ó¶¨ unsigned char byRes[127]; }SADP_BIND_INFO, *LPSADP_BIND_INFO; typedef struct tagSADP_BIND_LIST { SADP_BIND_INFO struBindInfo[SADP_MAX_BIND_NUM]; //°ó¶¨É豸ÐÅÏ¢Áбí char szPassword[MAX_PASS_LEN]; //Óû§ÃÜÂë unsigned char byUnbindAll; //ÊÇ·ñ½â°óËùÓÐÉ豸 0-²»½â°óËùÓÐÉ豸£»1-½â°óËùÓÐÉ豸 unsigned char byRes[127]; }SADP_BIND_LIST, *LPSADP_BIND_LIST; typedef struct tagSADP_INACTIVE_INFO { char szPassword[MAX_PASS_LEN]; //Óû§ÃÜÂë unsigned char byRes[128]; }SADP_INACTIVE_INFO, *LPSADP_INACTIVE_INFO; //wifi Region typedef struct tagSADP_WIFI_REGION_INFO { unsigned char byMode; //ģʽ£¬0-±£Áô£¬1-wifiÇøÓòÅäÖÃģʽ£¬2-wifiÔöǿģʽ unsigned char byWifiRegion; //wifiÇøÓò£¬µ±byModeΪ1ʱ£¬¸Ã×Ö¶ÎÓÐЧ¡£0 -default£¬ 1- china, 2-nothAmerica,3-japan,4-europe,5-world unsigned char byWifiEnhancementEnabled;//ÊÇ·ñÆôÓÃwifiÔöǿģʽ£¬µ±byModeΪ2ʱ£¬¸Ã×Ö¶ÎÓÐЧ 0 -²»ÆôÓ㬠1- ÆôÓà unsigned char byRes; //±£Áô char szPassword[MAX_PASS_LEN];//Óû§ÃÜÂë unsigned char byRes2[128]; }SADP_WIFI_REGION_INFO, *LPSADP_WIFI_REGION_INFO; //ͨµÀĬÈÏÃÜÂëÐÅÏ¢ typedef struct tagSADP_CHANNEL_DEFAULT_PASSWORD { char szPassword[MAX_PASS_LEN]; //É豸adminÓû§ÃÜÂë char szChannelDefaultPassword[MAX_PASS_LEN]; //ͨµÀĬÈÏÃÜÂ루Óû§NVR¼¤»î£¬Ìí¼ÓIPC£© unsigned char byRes[128]; }SADP_CHANNEL_DEFAULT_PASSWORD, *LPSADP_CHANNEL_DEFAULT_PASSWORD; //É豸×Ô¼ì״̬½á¹¹Ìå typedef struct tagSADP_SELF_CHECK_STATE { unsigned int dwSize; int dwTotalDisk; //´ÅÅÌ×ÜÊý£¨Ä¬ÈÏֵΪ-1£© int dwGoodDisk; //ºÃÅÌÊý£¨Ä¬ÈÏֵΪ-1£© char szCPU[MAX_CPU_LEN]; //CPU char szMemory[MAX_MEMORY_LEN]; //ÄÚ´æ unsigned char byProgress; //×Ô¼ì½ø¶È£¬0-100 unsigned char byTemperatureState; //ζÈ״̬£¬0-ÎÞЧ£»1-Õý³££»2-Òì³£ unsigned char byFanState; //·çÉÈ״̬£¬0-ÎÞЧ£»1-Õý³££»2-Òì³£ unsigned char byPowerState; //µçԴ״̬£¬0-ÎÞЧ£»1-Õý³££»2-Òì³£ unsigned char bySASConnectState; //SASÁ¬½Ó״̬£¬0-ÎÞЧ£»1-Á¬½Ó£»2-δÁ¬½Ó char byTotalNetworkPort; //Íø¿Ú×ÜÊý£¨Ä¬ÈÏֵΪ-1£© char byConnectNetworkPort; //Íø¿ÚÁ¬½ÓÊý£¨Ä¬ÈÏֵΪ-1£© unsigned char byRes[129]; }SADP_SELF_CHECK_STATE, *LPSADP_SELF_CHECK_STATE; //EHomeʹÄܲÎÊý typedef struct tagSADP_EHOME_ENABLE_PARAM { unsigned int dwSize; char szDevID[MAX_PASS_LEN]; //É豸ID char szEhomeKey[MAX_PASS_LEN]; //Ehome Key char szPassword[MAX_PASS_LEN]; //É豸ÃÜÂë unsigned char byRes[64]; }SADP_EHOME_ENABLE_PARAM, *LPSADP_EHOME_ENABLE_PARAM; //WIFI²ÎÊýÅäÖýṹÌå typedef struct tagSADP_WIFI_CONFIG_PARAM { unsigned int dwSize; char szSSID[SADP_MAX_SERIALNO_LEN]; //SSID char szPassword[SADP_MAX_SERIALNO_LEN]; //Password unsigned char byWifiMode; //wifiģʽ£¬0-ĬÈÏ£¬1-Station£¬ 2-AP unsigned char byRes[64]; }SADP_WIFI_CONFIG_PARAM, *LPSADP_WIFI_CONFIG_PARAM; //ÒÑÅäÖÃÖØÖÃÃÜÂëÀàÐͲÎÊýÅäÖýṹÌå typedef struct tagSADP_PASSWORD_RESET_TYPE_PARAM { unsigned int dwSize; unsigned char byEnable; //0-δÅäÖà 1-£¨GUID£¬°²È«ÎÊÌ⣬°²È«ÓÊÏ䣬HC£©ÅäÖùýÒ»ÖÖ»ò¶àÖÖ unsigned char byGuidEnabled; //0-δµ¼³ö¹ýGUID 1-µ¼³ö¹ýGUID unsigned char bySecurityQuestionEnabled; //0-δÅäÖùý°²È«ÎÊÌâ 1-ÅäÖùý°²È«ÎÊÌâ unsigned char bySecurityMailBoxEnabled; //0-δÅäÖùý°²È«ÓÊÏä 1-ÅäÖùý°²È«ÓÊÏä unsigned char byHikConnectEnabled; //0-δ°ó¶¨HikConnectÕ˺Š1-°ó¶¨¹ýHikConnectÕ˺Šunsigned char byRes1[3]; unsigned char byRes[64]; }SADP_PASSWORD_RESET_TYPE_PARAM, *LPSADP_PASSWORD_RESET_TYPE_PARAM; // ½Ó¿Ú typedef void (CALLBACK *PDEVICE_FIND_CALLBACK)(const SADP_DEVICE_INFO *lpDeviceInfo, void *pUserData); CSADP_API BOOL CALLBACK SADP_Start_V30(PDEVICE_FIND_CALLBACK pDeviceFindCallBack, int bInstallNPF = 0, void* pUserData = NULL); typedef void (CALLBACK *PDEVICE_FIND_CALLBACK_V40)(const SADP_DEVICE_INFO_V40 *lpDeviceInfo, void *pUserData); CSADP_API BOOL CALLBACK SADP_Start_V40(PDEVICE_FIND_CALLBACK_V40 pDeviceFindCallBack, int bInstallNPF = 0, void* pUserData = NULL); CSADP_API BOOL CALLBACK SADP_SendInquiry(void); CSADP_API BOOL CALLBACK SADP_Stop(void); CSADP_API BOOL CALLBACK SADP_ModifyDeviceNetParam(const char* sMAC, const char* sPassword, const SADP_DEV_NET_PARAM *lpNetParam); CSADP_API unsigned int CALLBACK SADP_GetSadpVersion(void); CSADP_API BOOL CALLBACK SADP_SetLogToFile(int nLogLevel=0, char const *strLogDir = NULL, int bAutoDel = 1); CSADP_API unsigned int CALLBACK SADP_GetLastError(void); CSADP_API BOOL CALLBACK SADP_ResetDefaultPasswd(const char* sDevSerialNO, const char* sCommand); CSADP_API BOOL CALLBACK SADP_SetCMSInfo(const char* sMac, const SADP_CMS_PARAM *lpCmsParam); CSADP_API BOOL CALLBACK SADP_Clearup(void); CSADP_API void CALLBACK SADP_SetAutoRequestInterval(unsigned int dwInterval); //ÉèÖÃ×Ô¶¯ËÑË÷ʱ¼ä¼ä¸ô(µ¥Î»Ã룬Ϊ0Ôò²»×Ô¶¯ÇëÇó£¬Ä¬ÈÏ60s) CSADP_API BOOL CALLBACK SADP_GetDeviceConfig(const char* sDevSerialNO, unsigned int dwCommand, void* lpInBuffer, unsigned int dwinBuffSize, void *lpOutBuffer, unsigned int dwOutBuffSize); CSADP_API BOOL CALLBACK SADP_SetDeviceConfig(const char* sDevSerialNO, unsigned int dwCommand, void* lpInBuffer, unsigned int dwInBuffSize, void* lpOutBuffer, unsigned int dwOutBuffSize); CSADP_API BOOL CALLBACK SADP_GetDeviceConfigByMAC(const char* sDevMAC, unsigned int dwCommand, void* lpInBuffer, unsigned int dwinBuffSize, void *lpOutBuffer, unsigned int dwOutBuffSize); //¼¤»îÉ豸 CSADP_API BOOL CALLBACK SADP_ActivateDevice(const char* sDevSerialNO, const char* sCommand); //ÖØÖÃÃÜÂë½Ó¿Ú£¬¼æÈÝ֮ǰµÄ»Ö¸´Ä¬ÈÏÃÜÂë½Ó¿Ú CSADP_API BOOL CALLBACK SADP_ResetPasswd(const char* sDevSerialNO, const SADP_RESET_PARAM *pResetParam); //ÖØÖÃÃÜÂë½Ó¿ÚV40£¬¼æÈÝ֮ǰµÄSADP_ResetPasswd CSADP_API BOOL CALLBACK SADP_ResetPasswd_V40(const char* sDevSerialNO, const SADP_RESET_PARAM_V40 *pResetParam, SADP_RET_RESET_PARAM_V40 *pRetResetParam); //ÉèÖÃÉ豸¹ýÂ˹æÔò //dwFilterRule,°´Î»±íʾ£¬Îª1±íʾ¹ýÂË£¬È«0±íʾ²»¹ýÂË;0x01:¹ýÂËөʯÉ豸;0x02:¹ýÂËOEMÉ豸;0x03:¹ýÂËÓ©ºÍOEMÉ豸;0xfffffffe:½öÏÔʾөʯÉ豸;0xfffffffd:½öÏÔʾOEMÉ豸 CSADP_API BOOL CALLBACK SADP_SetDeviceFilterRule( unsigned int dwFilterRule, const void *lpInBuff, unsigned int dwInBuffLen); //ÐÞ¸ÄÍøÂç²ÎÊýV40 CSADP_API BOOL CALLBACK SADP_ModifyDeviceNetParam_V40(const char* sMAC, const char* sPassword, const SADP_DEV_NET_PARAM *lpNetParam, SADP_DEV_RET_NET_PARAM *lpRetNetParam, unsigned int dwOutBuffSize); //µãµÆ CSADP_API BOOL CALLBACK SADP_SendLamp(const char* sMAC, unsigned int dwCommand); #endif