hksdk/HCISUPSDKV2.5.0.35_build202.../incCn/HCISUPCMS.h

2705 lines
122 KiB
C
Raw Normal View History

2023-03-23 17:39:59 +08:00
#ifndef _HC_EHOME_CMS_H_
#define _HC_EHOME_CMS_H_
#include "HCISUPPublic.h"
typedef enum tagNET_EHOME_CMS_INIT_CFG_TYPE
{
NET_EHOME_CMS_INIT_CFG_LIBEAY_PATH = 0, //<2F><><EFBFBD><EFBFBD>OpenSSL<53><4C>libeay32.dll/libcrypto.so<73><6F><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
NET_EHOME_CMS_INIT_CFG_SSLEAY_PATH = 1 //<2F><><EFBFBD><EFBFBD>OpenSSL<53><4C>ssleay32.dll/libssl.so<73><6F><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
}NET_EHOME_CMS_INIT_CFG_TYPE;
#define EHOME_PROTOCOL_LEN (8*1024) //8KB
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
NET_DVR_API BOOL CALLBACK NET_ECMS_Init();
NET_DVR_API BOOL CALLBACK NET_ECMS_Fini();
//<2F><>ʼ<EFBFBD><CABC>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ʼ<EFBFBD><CABC>֮<EFBFBD>󲻿ɵ<F3B2BBBF><C9B5><EFBFBD>
NET_DVR_API BOOL CALLBACK NET_ECMS_SetSDKInitCfg(NET_EHOME_CMS_INIT_CFG_TYPE enumType, void* const lpInBuff);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_DVR_API DWORD CALLBACK NET_ECMS_GetLastError();
//<2F><>ȡ<EFBFBD><EFBFBD><E6B1BE>
NET_DVR_API DWORD CALLBACK NET_ECMS_GetBuildVersion();
//<2F><><EFBFBD><EFBFBD><EFBFBD>رռ<D8B1><D5BC><EFBFBD>
typedef enum tagNET_EHOME_REGISTER_TYPE
{
ENUM_UNKNOWN = -1,
ENUM_DEV_ON = 0, //<2F><EFBFBD><E8B1B8><EFBFBD>߻ص<DFBB>
ENUM_DEV_OFF, //<2F><EFBFBD><E8B1B8><EFBFBD>߻ص<DFBB>
ENUM_DEV_ADDRESS_CHANGED, //<2F><EFBFBD><E8B1B8>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
ENUM_DEV_AUTH, //Ehome5.0<EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD>ص<EFBFBD>
ENUM_DEV_SESSIONKEY, //Ehome5.0<EFBFBD>豸Sessionkey<EFBFBD>ص<EFBFBD>
ENUM_DEV_DAS_REQ, //Ehome5.0<EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
ENUM_DEV_SESSIONKEY_REQ, //EHome5.0<EFBFBD>豸sessionkey<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
ENUM_DEV_DAS_REREGISTER, //<2F><EFBFBD><E8B1B8>ע<EFBFBD><D7A2><EFBFBD>ص<EFBFBD>
ENUM_DEV_DAS_PINGREO, //<2F>豸ע<E8B1B8><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ENUM_DEV_DAS_EHOMEKEY_ERROR, //У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
ENUM_DEV_SESSIONKEY_ERROR, //Sessionkey<65><79><EFBFBD><EFBFBD><EFBFBD>
ENUM_DEV_SLEEP = 11 //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4>£<EFBFBD><C2A3><EFBFBD>޷<EFBFBD><DEB7><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD>طš<D8B7><C5A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>CMS<4D>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><E8B1B8>ͨ<EFBFBD><CDA8>NET_ECMS_WakeUp<55>ӿڽ<D3BF><DABD>л<EFBFBD><D0BB>ѣ<EFBFBD>
}NET_EHOME_REGISTER_TYPE;
//<2F><><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum tagNET_EHOME_TALK_ENCODING_TYPE
{
ENUM_ENCODING_START = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD>ʼ
ENUM_ENCODING_G722_1, //G722_1
ENUM_ENCODING_G711_MU, //G711_MU
ENUM_ENCODING_G711_A, //G711_A
ENUM_ENCODING_G723, //G723
ENUM_ENCODING_MP1L2, //MP1L2
ENUM_ENCODING_MP2L2, //MP2L2
ENUM_ENCODING_G726, //G726
ENUM_ENCODING_AAC, //AAC
ENUM_ENCODING_MP3 = 16, //MP3
ENUM_ENCODING_RAW = 100 //RAW
}NET_EHOME_TALK_ENCODING_TYPE;
typedef BOOL (CALLBACK * DEVICE_REGISTER_CB)(LONG lUserID, DWORD dwDataType, void* pOutBuffer, DWORD dwOutLen,
void* pInBuffer, DWORD dwInLen, void* pUser);
typedef struct tagNET_EHOME_CMS_LISTEN_PARAM
{
NET_EHOME_IPADDRESS struAddress; //<2F><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>IPΪ0.0.0.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>һ<EFBFBD><EFBFBD>
DEVICE_REGISTER_CB fnCB; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
void* pUserData; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwKeepAliveSec; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>,0:Ĭ<><C4AC>Ϊ30S<30><53>
DWORD dwTimeOutCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>Ĭ<EFBFBD><C4AC>Ϊ3<CEAA><33>
BYTE byRes[24];
}NET_EHOME_CMS_LISTEN_PARAM, *LPNET_EHOME_CMS_LISTEN_PARAM;
typedef struct tagNET_EHOME_REGISTER_LISTEN_MODE
{
DWORD dwSize;
DWORD dwRegisterListenMode; //0-<2D><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>TCP<43><50>UDP<44><50>1<EFBFBD><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>UDP<44><50>2<EFBFBD><32>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>TCP;
BYTE byRes[128];
}NET_EHOME_REGISTER_LISTEN_MODE, *LPNET_EHOME_REGISTER_LISTEN_MODE;
typedef struct tagNET_EHOME_SET_REREGISTER_MODE
{
DWORD dwSize;
DWORD dwReRegisterMode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ע<EFBFBD><D7A2>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EHome2.0Э<EFBFBD><EFBFBD><EFBFBD>Ϊ0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ע<EFBFBD>ᣬEHomeSDK<EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ<EFBFBD>˷<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ڱ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><EFBFBD>ظ<EFBFBD><EFBFBD>豸403<EFBFBD>ظ<EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}NET_EHOME_SET_REREGISTER_MODE, *LPNET_EHOME_SET_REREGISTER_MODE;
//<2F><><EFBFBD><EFBFBD><EFBFBD>رռ<D8B1><D5BC><EFBFBD>
NET_DVR_API LONG CALLBACK NET_ECMS_StartListen(LPNET_EHOME_CMS_LISTEN_PARAM lpCMSListenPara);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopListen(LONG iHandle);
//ע<><D7A2><EFBFBD>
NET_DVR_API BOOL CALLBACK NET_ECMS_ForceLogout(LONG lUserID);
NET_DVR_API BOOL CALLBACK NET_ECMS_SetLogToFile(DWORD iLogLevel, char* strLogDir, BOOL bAutoDel);
typedef enum tagNET_EHOME_CALLBACK_TYPE
{
NET_EHOME_REALSTREAM_CB = 0, //ȡ<><C8A1><EFBFBD><EFBFBD>ص<EFBFBD>
NET_EHOME_PLAYBACK_CB, //<2F>ط<EFBFBD><D8B7><EFBFBD>ص<EFBFBD>
NET_EHOME_VOICETALK_CB, //<2F><><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD>ص<EFBFBD>
NET_EHOME_PASSTHROUGH_CB, //ISAPI͸<49><CDB8><EFBFBD><EFBFBD>ص<EFBFBD>
NET_EHOME_V2_VOICETALK_CB //2.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
} NET_EHOME_CALLBACK_TYPE;
typedef struct tagNET_EHOME_CMSCB_DATA
{
LONG lUserID; //<2F>û<EFBFBD>ID
DWORD dwType; //<2F>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
DWORD dwHandle; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ψһ<CEA8><D2BB>ʶ
BOOL bSucc; //<2F><>Ӧͬ<D3A6><CDAC><EFBFBD>µĽӿڷ<D3BF><DAB7><EFBFBD>ֵ
void* pOutBuffer; //<2F><EFBFBD><E8B1B8>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
DWORD dwOutLen; //<2F><EFBFBD><E8B1B8>Ӧ<EFBFBD><D3A6><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
DWORD dwErrorNo; //SDK<44><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ
} NET_EHOME_CMSCB_DATA;
#define ECMS_CB_TYPE_UNDEFINE 0
#define ECMS_CB_TYPE_START_GET_REALSTREAM 1
#define ECMS_CB_TYPE_START_PUSH_REALSTREAM 3
#define ECMS_CB_TYPE_STOP_GET_REALSTREAM_EX 4
#define ECMS_CB_TYPE_START_PLAYBACK 5
#define ECMS_CB_TYPE_START_PUSH_PLAYBACK 6
#define ECMS_CB_TYPE_STOP_PLAYBACK_EX 7
#define ECMS_CB_STOP_VOICETALK_EX 9
#define ECMS_CB_TYPE_START_VOICETALK_STM 10
#define ECMS_CB_TYPE_START_PUSH_VOICE_STREAM 11
#define ECMS_CB_TYPE_STOP_VOICE_TALK_STM_EX 12
#define ECMS_CB_TYPE_ISAPI_PASSTHROUGH 13
#define ECMS_CB_TYPE_START_V2_VOICETALK 14
#define ECMS_CB_TYPE_PAUSE_PLAYBACK 15
#define ECMS_CB_TYPE_RESTART_PLAYBACK 16
typedef void(CALLBACK *ECMSCallback)(NET_EHOME_CMSCB_DATA *pData, void* pUser);
NET_DVR_API BOOL CALLBACK NET_ECMS_SetCallback(NET_EHOME_CALLBACK_TYPE enumCallbackType, ECMSCallback fnCallback, void* pUser);
typedef struct tagNET_EHOME_DEV_REG_INFO
{
DWORD dwSize;
DWORD dwNetUnitType; //<2F><><EFBFBD><EFBFBD>EHomeSDKЭ<4B><D0AD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD>Ŀǰû<C7B0><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byDeviceID[MAX_DEVICE_ID_LEN]; //<2F>豸ID
BYTE byFirmwareVersion[24]; //<2F>̼<EFBFBD><CCBC>
NET_EHOME_IPADDRESS struDevAdd; //<2F>豸ע<E8B1B8><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD>ı<EFBFBD><C4B1>ص<EFBFBD>ַ
DWORD dwDevType; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
DWORD dwManufacture; //<2F><EFBFBD><E8B1B8><EFBFBD>Ҵ<EFBFBD><D2B4><EFBFBD>
BYTE byPassWord[32]; //<2F><EFBFBD><E8B1B8>½CMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤
BYTE sDeviceSerial[NET_EHOME_SERIAL_LEN/*12*/]; //<2F><EFBFBD><E8B1B8><EFBFBD>кţ<D0BA><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
BYTE byReliableTransmission;
BYTE byWebSocketTransmission;
BYTE bySupportRedirect; //<2F>豸֧<E8B1B8><D6A7><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>ע<EFBFBD><D7A2> 0-<2D><>֧<EFBFBD><D6A7> 1-֧<><D6A7>
BYTE byDevProtocolVersion[6]; //<2F>豸Э<E8B1B8><D0AD><EFBFBD>
BYTE bySessionKey[MAX_MASTER_KEY_LEN];//Ehome5.0<EFBFBD>豸SessionKey
BYTE byMarketType; //0-<2D><>Ч<EFBFBD><D0A7>δ֪<CEB4><D6AA><EFBFBD>ͣ<EFBFBD>,1-<2D><><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>2-<2D><>ҵ<EFBFBD><D2B5>
BYTE byRes1; //<2F><><EFBFBD><EFBFBD>λ
BYTE bySupport; //<2F>豸֧<E8B1B8>ֵĹ<D6B5><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>"<22><>"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>
//<2F><>һλΪ1<CEAA><31>ʾ֧<CABE><D6A7>NPQԤ<51><D4A4>(0b00000001)
//<2F>ڶ<EFBFBD>λΪ1<CEAA><31>ʾ֧<CABE><D6A7>NPQ<50>ط<EFBFBD>(0b00000010)
//<2F><><EFBFBD><EFBFBD>λΪ1<CEAA><31>ʾ֧<CABE><D6A7>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD>طź<D8B7><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>(0b00000100)
//<2F><><EFBFBD><EFBFBD>λΪ1<CEAA><31>ʾ֧<CABE><D6A7>HLS<4C>ط<EFBFBD>(0b00001000)
//<2F><><EFBFBD><EFBFBD>λΪ1<CEAA><31>ʾ֧<CABE><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><E3B2A5><EFBFBD><EFBFBD><E4A1AA>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(0b00010000)
BYTE byRes[24];
}NET_EHOME_DEV_REG_INFO, *LPNET_EHOME_DEV_REG_INFO;
typedef struct tagNET_EHOME_DEV_REG_INFO_V12
{
NET_EHOME_DEV_REG_INFO struRegInfo;
NET_EHOME_IPADDRESS struRegAddr; //<2F>豸ע<E8B1B8><D7A2><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
BYTE sDevName[MAX_DEVNAME_LEN_EX]; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
BYTE byDeviceFullSerial[MAX_FULL_SERIAL_NUM_LEN]; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>кţ<D0BA><C5A3><EFBFBD>ͺ<EFBFBD>+<2B><><EFBFBD><EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>+<2B><>չ
BYTE byRes[128];
}NET_EHOME_DEV_REG_INFO_V12, *LPNET_EHOME_DEV_REG_INFO_V12;
typedef struct tagNET_EHOME_BLACKLIST_SEVER
{
NET_EHOME_IPADDRESS struAdd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
BYTE byServerName[NAME_LEN/*32*/]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byUserName[NAME_LEN/*32*/]; //<2F>û<EFBFBD><C3BB><EFBFBD>
BYTE byPassWord[NAME_LEN/*32*/]; //<2F><><EFBFBD><EFBFBD>
BYTE byRes[64];
}NET_EHOME_BLACKLIST_SEVER, *LPNET_EHOME_BLACKLIST_SEVER;
typedef struct tagNET_EHOME_SERVER_INFO
{
DWORD dwSize;
DWORD dwKeepAliveSec; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>,0:Ĭ<><C4AC>Ϊ15S<35><53>
DWORD dwTimeOutCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>Ĭ<EFBFBD><C4AC>Ϊ6<CEAA><36>
NET_EHOME_IPADDRESS struTCPAlarmSever; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>TCPЭ<50>
NET_EHOME_IPADDRESS struUDPAlarmSever; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>UDPЭ<50>
DWORD dwAlarmServerType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-ֻ֧<D6BB><D6A7>UDPЭ<50><D0AD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>1-֧<><D6A7>UDP<44><50>TCP<43><50><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>2 - <20><><EFBFBD><EFBFBD>MQTTЭ<54>ʽ<E9B7BD>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַΪTCPЭ<50><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>
NET_EHOME_IPADDRESS struNTPSever; //NTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
DWORD dwNTPInterval; //NTPУʱ<D0A3><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>
NET_EHOME_IPADDRESS struPictureSever; //ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
DWORD dwPicServerType; //ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1-VRBͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-TomcatͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>,2-<2D>ƴ洢3,3-KMS,4-EHome5.0<EFBFBD>洢Э<EFBFBD><EFBFBD>
NET_EHOME_BLACKLIST_SEVER struBlackListServer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[128];
}NET_EHOME_SERVER_INFO, *LPNET_EHOME_SERVER_INFO;
typedef struct tagNET_EHOME_SERVER_INFO_V50
{
DWORD dwSize;
DWORD dwKeepAliveSec; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>,0:Ĭ<><C4AC>Ϊ15S<35><53>
DWORD dwTimeOutCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>Ĭ<EFBFBD><C4AC>Ϊ6<CEAA><36>
NET_EHOME_IPADDRESS struTCPAlarmSever; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>TCPЭ<50>
NET_EHOME_IPADDRESS struUDPAlarmSever; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>UDPЭ<50>
DWORD dwAlarmServerType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-ֻ֧<D6BB><D6A7>UDPЭ<50><D0AD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>1-֧<><D6A7>UDP<44><50>TCP<43><50><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD>ϱ<EFBFBD>
NET_EHOME_IPADDRESS struNTPSever; //NTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
DWORD dwNTPInterval; //NTPУʱ<D0A3><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD>
NET_EHOME_IPADDRESS struPictureSever; //ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
DWORD dwPicServerType; //ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1-VRBͼƬ<CDBC><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-TomcatͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>,2-<2D>ƴ洢3,3-KMS
NET_EHOME_BLACKLIST_SEVER struBlackListServer;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_IPADDRESS struRedirectSever; //Redirect Server
BYTE byClouldAccessKey[64]; //<2F>ƴ洢AK
BYTE byClouldSecretKey[64]; //<2F>ƴ洢SK
BYTE byClouldHttps; //<2F>ƴ洢HTTPSʹ<53><CAB9> 1-HTTPS 0-HTTP
BYTE byRes1[3];
DWORD dwAlarmKeepAliveSec; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>,0:Ĭ<><C4AC>Ϊ30s<30><73>
DWORD dwAlarmTimeOutCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>Ĭ<EFBFBD><C4AC>Ϊ3<CEAA><33>
DWORD dwClouldPoolId; //<2F>ƴ洢PoolId
BYTE byRes[368];
}NET_EHOME_SERVER_INFO_V50, *LPNET_EHOME_SERVER_INFO_V50;
//-----------------------------------------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD>
typedef void(CALLBACK *fVoiceDataCallBack)(LONG iVoiceHandle, char* pRecvDataBuffer, DWORD dwBufSize, DWORD dwEncodeType, BYTE byAudioFlag, void* pUser);
typedef struct tagNET_EHOME_VOICETALK_PARA
{
BOOL bNeedCBNoEncData; //<2F><>Ҫ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-<2D><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ʱ<EFBFBD><CAB1>֧<EFBFBD>֣<EFBFBD>
fVoiceDataCallBack cbVoiceDataCallBack; //<2F><><EFBFBD>ڻص<DABB><D8B5><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ݵĻص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
DWORD dwEncodeType; //SDK<44><4B>ֵ,SDK<44><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,0- OggVorbis<69><73>1-G711U<31><55>2-G711A<31><41>3-G726<32><36>4-AAC<41><43>5-MP2L2<4C><32>6-PCM,7-MP3
void* pUser; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
BYTE byVoiceTalk; //0-<2D><><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD>,1-<2D><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>,2-<2D><><EFBFBD><EFBFBD><EFBFBD>
BYTE byDevAudioEnc; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ʽ 0- OggVorbis<69><73>1-G711U<31><55>2-G711A<31><41>3-G726<32><36>4-AAC<41><43>5-MP2L2<4C><32>6-PCM,7-MP3
BYTE byRes1[2];
LONG lHandle; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻ط<CBBB><D8B7><EFBFBD>ص<EFBFBD>֮<EFBFBD>󣬸<EFBFBD>ֵΪ<D6B5><CEAA>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʶ
BYTE byRes[56]; //Reserved, set as 0. 0
} NET_EHOME_VOICETALK_PARA,*LPNET_EHOME_VOICETALK_PARA;
typedef struct tagNET_EHOME_VOICE_TALK_IN
{
DWORD dwVoiceChan; //ͨ<><CDA8><EFBFBD><EFBFBD>
NET_EHOME_IPADDRESS struStreamSever; //<2F><>ý<EFBFBD><C3BD><EFBFBD><EFBFBD>ַ
NET_EHOME_TALK_ENCODING_TYPE byEncodingType[9]; //<2F><><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byLinkEncrypt; //
BYTE byBroadcast; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B2A5>ʶ,<2C><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>ʶΪ1<CEAA>󲻽<EFBFBD><F3B2BBBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>͸<EFBFBD><CDB8>Զ<EFBFBD>
BYTE byBroadLevel;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B2A5><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD>ʶ,0~15<31><35><EFBFBD>ȼ<EFBFBD><C8BC>ӵ͵<D3B5><CDB5><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>byBroadcastΪ1ʱ,0<><30>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>byBroadcastΪ0ʱ<30><CAB1><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
BYTE byBroadVolume; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B2A5><EFBFBD><EFBFBD>,0~15<31><35><EFBFBD><EFBFBD><EFBFBD>ӵ͵<D3B5><CDB5><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>byBroadcastΪ1ʱ,0<><30>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>byBroadcastΪ0ʱ<30><CAB1><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
BYTE byAudioSamplingRate; //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-Ĭ<><C4AC>, 1-16kHZ, 2-32kHZ, 3-48kHZ, 4-44.1kHZ, 5-8kHZ
BYTE byRes[114];
}NET_EHOME_VOICE_TALK_IN, *LPNET_EHOME_VOICE_TALK_IN;
typedef struct tagNET_EHOME_VOICE_TALK_OUT
{
LONG lSessionID;
LONG lHandle;
BYTE byRes[124];
}NET_EHOME_VOICE_TALK_OUT, *LPNET_EHOME_VOICE_TALK_OUT;
typedef struct tagNET_EHOME_PUSHVOICE_IN
{
DWORD dwSize;
LONG lSessionID;
BYTE byToken[64];
BYTE byRes[64];
}NET_EHOME_PUSHVOICE_IN, *LPNET_EHOME_PUSHVOICE_IN;
typedef struct tagNET_EHOME_PUSHVOICE_OUT
{
DWORD dwSize;
LONG lHandle;
BYTE byRes[124];
}NET_EHOME_PUSHVOICE_OUT, *LPNET_EHOME_PUSHVOICE_OUT;
typedef struct tagNET_EHOME_STOPVOICETALK_STM_PARAM
{
LONG lSessionID;
LONG lHandle;
BYTE byRes[120];
}NET_EHOME_STOPVOICETALK_STM_PARAM, *LPNET_EHOME_STOPVOICETALK_STM_PARAM;
NET_DVR_API LONG CALLBACK NET_ECMS_StartVoiceTalk(LONG lUserID, DWORD dwVoiceChan,
const NET_EHOME_VOICETALK_PARA* pVoiceTalkPara);
NET_DVR_API BOOL CALLBACK NET_ECMS_StartVoiceWithStmServer(LONG lUserID, NET_EHOME_VOICE_TALK_IN* lpVoiceTalkIn, NET_EHOME_VOICE_TALK_OUT* lpVoiceTalkOut);
NET_DVR_API BOOL CALLBACK NET_ECMS_StartPushVoiceStream(LONG lUserID, LPNET_EHOME_PUSHVOICE_IN lpPushParamIn, LPNET_EHOME_PUSHVOICE_OUT lpPushParamOut);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopVoiceTalk(LONG iVoiceHandle);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopVoiceTalkWithStmServer(LONG lUserID, LONG lSessionID);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopVoiceTalkWithStmServerEx(LONG lUserID, LPNET_EHOME_STOPVOICETALK_STM_PARAM pStopParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_SendVoiceTransData(LONG iVoiceHandle, const char *pSendBuf, DWORD dwBufSize);
//---------------------------------------------------------------------------------------------------------
typedef struct tagNET_EHOME_CONFIG
{
void* pCondBuf; //[in]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>ʾͨ<CABE><CDA8><EFBFBD>ŵ<EFBFBD>
DWORD dwCondSize; //[in]<5D><>pCondBufָ<66><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
void* pInBuf; //[in]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><E1B9B9><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
DWORD dwInSize; //[in], pInBufָ<66><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>С
void* pOutBuf; //[out]<5D><><EFBFBD><EFBFBD>ȡʱ<C8A1><CAB1>Ҫ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><E1B9B9><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD>
DWORD dwOutSize; //[in]<5D><><EFBFBD><EFBFBD>ȡʱ<C8A1><CAB1>Ҫ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>ʾpOutBufָ<66><D6B8><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>С<EFBFBD><D0A1>
BYTE byRes[40]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_CONFIG, *LPNET_EHOME_CONFIG;
typedef struct tagNET_EHOME_XML_CFG
{
void* pCmdBuf; //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>
DWORD dwCmdLen; //pCmdBuf<75><66><EFBFBD><EFBFBD>
void* pInBuf; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwInSize; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
void* pOutBuf; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwOutSize; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSendTimeOut; //<2F><><EFBFBD>ݷ<EFBFBD><DDB7>ͳ<EFBFBD>ʱʱ<CAB1><CAB1>,<2C><>λms<6D><73>Ĭ<EFBFBD><C4AC>5s
DWORD dwRecvTimeOut; //<2F><><EFBFBD>ݽ<EFBFBD><DDBD>ճ<EFBFBD>ʱʱ<CAB1><CAB1>,<2C><>λms<6D><73>Ĭ<EFBFBD><C4AC>5s
void* pStatusBuf; //<2F><><EFBFBD>ص<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>(XML<4D><4C>ʽ),<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL
DWORD dwStatusSize; //״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С(<28>ڴ<EFBFBD><DAB4><EFBFBD>С)
BYTE byRes[24];
}NET_EHOME_XML_CFG, *LPNET_EHOME_XML_CFG;
#define MAX_SERIALNO_LEN 128 //<2F><><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD>󳤶<EFBFBD>
#define MAX_PHOMENUM_LEN 32 //<2F>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD>
#define MAX_DEVICE_NAME_LEN 32//<2F><EFBFBD><E8B1B8><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
typedef struct tagNET_DVR_DVR_TYPE_NAME
{
DWORD dwDVRType;
char byDevName[24];
}NET_DVR_TYPE_NAME;
static const NET_DVR_TYPE_NAME DVRTypeName[] =
{
{0,"UNKNOWN TYPE"}, /*<2A><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dvr<76><72><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>NETRET_DVR*/
{1,"DVR"}, /*DVR*/
{2,"ATMDVR"}, /*atm dvr*/
{3,"DVS"}, /*DVS*/
{4,"DEC"}, /* 6001D */
{5,"ENC_DEC"}, /* 6001F */
{6,"DVR_HC"}, /*8000HC*/
{7,"DVR_HT"}, /*8000HT*/
{8,"DVR_HF"}, /*8000HF*/
{9,"DVR_HS"}, /* 8000HS DVR(no audio) */
{10,"DVR_HTS"}, /* 8016HTS DVR(no audio) */
{11,"DVR_HB"}, /* HB DVR(SATA HD) */
{12,"DVR_HCS"}, /* 8000HCS DVR */
{13,"DVS_A"}, /* <20><>ATAӲ<41>̵<EFBFBD>DVS */
{14,"DVR_HC_S"}, /* 8000HC-S */
{15,"DVR_HT_S"}, /* 8000HT-S */
{16,"DVR_HF_S"}, /* 8000HF-S */
{17,"DVR_HS_S"}, /* 8000HS-S */
{18,"ATMDVR_S"}, /* ATM-S */
{19,"DVR_7000H"}, /*7000Hϵ<48><CFB5>*/
{20,"DEC_MAT"}, /*<2A><>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{21,"DVR_MOBILE"}, /* mobile DVR */
{22,"DVR_HD_S"}, /* 8000HD-S */
{23,"DVR_HD_SL"}, /* 8000HD-SL */
{24,"DVR_HC_SL"}, /* 8000HC-SL */
{25,"DVR_HS_ST"}, /* 8000HS_ST */
{26,"DVS_HW"}, /* 6000HW */
{27,"DS630X_D"}, /* <20><>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
{28,"DS640X_HD"}, /*640X<30><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{29,"DS610X_D"}, /*610X<30><58><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{30,"IPCAM"}, /*IP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{31,"MEGA_IPCAM"}, /*<2A><><EFBFBD><EFBFBD>IP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 852F&852MF*/
{32,"IPCAM_862MF"}, /*862MF<4D><46><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>9000<30>豸*/
{35,"ITCCAM"}, /*<2A><><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{36,"IVS_IPCAM"}, /*<2A><><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{38,"ZOOMCAM"}, /*һ<><D2BB><EFBFBD><EFBFBD>*/
{40,"IPDOME"}, /*IP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{41,"IPDOME_MEGA200"}, /*IP 200<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{42,"IPDOME_MEGA130"}, /*IP 130<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{43,"IPDOME_AI"}, /*IP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD>*/
{44,"TII_IPCAM"}, /*<2A><><EFBFBD><EFBFBD><EFBFBD>ȳ<EFBFBD><C8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{50,"IPMOD"}, /*IP ģ<><C4A3>*/
{59,"DS64XXHD_T"}, //64-T<><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{60,"IDS6501_HF_P"}, // 6501 <20><><EFBFBD><EFBFBD>
{61,"IDS6101_HF_A"}, //<2F><><EFBFBD><EFBFBD>ATM
{62,"IDS6002_HF_B"}, //˫<><CBAB><EFBFBD><EFBFBD><EFBFBD>٣<EFBFBD>DS6002-HF/B
{63,"IDS6101_HF_B"}, //<2F><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DS6101-HF/B
{64,"IDS52XX"}, //<2F><><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD>IVMS
{65,"IDS90XX"}, // 9000<30><30><EFBFBD><EFBFBD>
{67,"IDS8104_AHL_S_H"}, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6> ATM
{68,"IDS91XX"}, // 9100<30><30><EFBFBD><EFBFBD>
{69,"IIP_CAM_B"}, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪIP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{70,"IIP_CAM_F"}, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{71,"DS71XX_H"}, /* DS71XXH_S */
{72,"DS72XX_H_S"}, /* DS72XXH_S */
{73,"DS73XX_H_S"}, /* DS73XXH_S */
{74,"DS72XX_HF_S"}, //DS72XX_HF_S
{75,"DS73XX_HFI_S"}, //DS73XX_HFI_S
{75,"DS73XX_HF_S"}, //DS73XX_HF_S
{76,"DS76XX_H_S"}, /* DVR,e.g. DS7604_HI_S */
{77,"DS76XX_N_S"}, /* NVR,e.g. DS7604_NI_S */
{81,"DS81XX_HS_S"}, /* DS81XX_HS_S */
{82,"DS81XX_HL_S"}, /* DS81XX_HL_S */
{83,"DS81XX_HC_S"}, /* DS81XX_HC_S */
{84,"DS81XX_HD_S"}, /* DS81XX_HD_S */
{85,"DS81XX_HE_S"}, /* DS81XX_HE_S */
{86,"DS81XX_HF_S"}, /* DS81XX_HF_S */
{87,"DS81XX_AH_S"}, /* DS81XX_AH_S */
{88,"DS81XX_AHF_S"}, /* DS81XX_AHF_S */
{90,"DS90XX_HF_S"}, /*DS90XX_HF_S*/
{91,"DS91XX_HF_S"}, /*DS91XX_HF_S*/
{92,"DS91XX_HD_S"}, /*91XXHD-S(MD)*/
{93,"IDS90XX_A"}, // 9000<30><30><EFBFBD><EFBFBD> ATM
{94,"IDS91XX_A"}, // 9100<30><30><EFBFBD><EFBFBD> ATM
{95,"DS95XX_N_S"}, /*DS95XX_N_S NVR <20><><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>*/
{96,"DS96XX_N_SH"}, /*DS96XX_N_SH NVR*/
{97,"DS90XX_HF_SH"}, /*DS90XX_HF_SH */
{98,"DS91XX_HF_SH"}, /*DS91XX_HF_SH */
{100,"DS_B10_XY"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD><EFBFBD>ͺ<EFBFBD>(X:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC><EFBFBD><EFBFBD>Y:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƭ<EFBFBD><C6AC>)*/
{101,"DS_6504HF_B10"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{102,"DS_6504D_B10"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{103,"DS_1832_B10"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{104,"DS_6401HFH_B10"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>˰<EFBFBD>*/
{105,"DS_65XXHC"}, //65XXHC DVS
{106,"DS_65XXHC_S"}, //65XXHC-SATA DVS
{107,"DS_65XXHF"}, //65XXHF DVS
{108,"DS_65XXHF_S"}, //65XXHF-SATA DVS
{109,"DS_6500HF_B"}, //65 rack DVS
{110,"IVMS_6200_C"}, // iVMS-6200(/C)
{111,"IVMS_6200_B"}, // iVMS-6200(/B)
{112,"DS_72XXHV_ST"}, //72XXHV_ST15 DVR
{113,"DS_72XXHV_ST"}, //72XXHV_ST20 DVR,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>ʾһ<CABE><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{114,"IVMS_6200_T"}, // IVMS-6200(/T)
{115,"IVMS_6200_BP"}, // IVMS-6200(/BP)
{116,"DS_81XXHC_ST"}, //DS_81XXHC_ST
{117,"DS_81XXHS_ST"}, //DS_81XXHS_ST
{118,"DS_81XXAH_ST"}, //DS_81XXAH_ST
{119,"DS_81XXAHF_ST"}, //DS_81XXAHF_ST
{120,"DS_66XXDVS"}, //66XX DVS
{121,"DS_1964_B10"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{122,"DS_B10N04_IN"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{123,"DS_B10N04_OUT"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{124,"DS_B10N04_INTEL"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>*/
{125,"DS_6408HFH_B10E_RM"}, //V6<56><36><EFBFBD><EFBFBD>
{126,"DS_B10N64F1_RTM"}, //V6<56><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DSP
{127,"DS_B10N64F1D_RTM"}, //V6<56><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DSP
{128,"DS_B10_SDS"}, //<2F><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{129,"DS_B10_DS"}, //<2F><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{130,"DS_6401HFH_B10V"}, //VGA<47><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{131,"DS_6504D_B10B"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{132,"DS_6504D_B10H"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{133,"DS_6504D_B10V"}, /*<2A><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨<C6BD>ڲ<EFBFBD>VGA<47><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{134,"DS_6408HFH_B10S"}, //<2F><>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨SDI<44>Ӱ<EFBFBD>
{135,"DS_18XX_N"}, /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
//ע<><D7A2>121<32><31>140Ԥ<30><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ۺ<EFBFBD>ƽ̨ϵ<CCA8>в<EFBFBD>Ʒʹ<C6B7><CAB9>,141~160<36><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
{141,"DS_18XX_PTZ"}, /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ*/
{142,"DS_19AXX"}, /*ͨ<>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ*/
{143,"DS_19BXX"}, /*<2A><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{144,"DS_19CXX"}, /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{145,"DS_19DXX"}, /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{146,"DS_19XX"}, /*1900ϵ<30>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{147,"DS_19SXX"}, /*<2A><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{148, "DS_1HXX"}, /*CS<43><53><EFBFBD><EFBFBD>Ʒ*/ //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/**********************<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD> end***********************/
//2011-11-03 161~170<37><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<E8B1B8><CAB9>
{161,"DS_C10H"}, /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{162,"DS_C10N_BI"}, //BNC<4E><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{163,"DS_C10N_DI"}, //rbg<62><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{164,"DS_C10N_SI"}, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{165,"DS_C10N_DO"}, //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{166,"DS_C10N_SERVER"}, //<2F>ֲ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 171- 180 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
{171,"IDS_8104_AHFL_S_H"}, // 8104ATM
{172,"IDS_65XX_HF_A"}, // 65 ATM
{173,"IDS90XX_HF_RH"}, // 9000 <20><><EFBFBD><EFBFBD>RH
{174,"IDS91XX_HF_RH"}, // 9100 <20><><EFBFBD><EFBFBD>RH<52>
{175,"IDS_65XX_HF_B"}, // 65 <20><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
{176,"IDS_65XX_HF_P"}, // 65 <20><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>
{177,"IVMS_6200_F"}, // IVMS-6200(/F)
{178,"IVMS_6200_A"}, //iVMS-6200(/A)
{179,"IVMS_6200_F_S"}, //iVMS-6200(/F_S)
{181,"DS90XX_HF_RH"}, // 9000 RH
{182,"DS91XX_HF_RH"}, // 9100 RH<52>
{183,"DS78XX_S"}, // 78ϵ<38><CFB5><EFBFBD>
{185,"DS81XXHW_S"}, // 81 Resolution 960
{186,"DS81XXHW_ST"}, // DS81XXHW_ST
{187,"DS91XXHW_ST"}, // DS91XXHW_ST
{188,"DS91XX_ST"}, // DS91XX_ST
{189,"DS81XX_ST"}, // DS81XX_ST
{190,"DS81XXH_ST"}, // DS81XXHDI_ST,DS81XXHE_ST ky2012
{191,"DS73XXH_ST"}, // DS73XXHI_ST ky2012
{192,"DS81XX_SH"}, // <20><>Ѷ81SH,81SHF
{193,"DS81XX_SN"}, // <20><>Ѷ81SNL
{194,"DS96XXN_ST"}, //NVR:DS96xxN_ST
{195,"DS86XXN_ST"}, //NVR:DS86xxN_ST
{196,"DS80XXHF_ST"}, //DVR:DS80xxHF_ST
{197,"DS90XXHF_ST"}, //DVR:DS90xxHF_ST
{198,"DS76XXN_ST"}, //NVR:DS76xxN_ST
{199,"DS_9664N_RX"}, //Ƕ<><C7B6>ʽNVR(64·IPͨ<50><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ͨ<EFBFBD><CDA8>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>X<EFBFBD><58>T/H
{200,"ENCODER_SERVER"}, // <20><><EFBFBD><EFBFBD><EBBFA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{201,"DECODER_SERVER"}, // <20><><EFBFBD><EFBFBD><EBBFA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{202,"PCNVR_SERVER"}, // PCNVR<56><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{203,"CVR_SERVER"}, // <20><>ŵCVR<56><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪDVR_S-1
{204,"DS_91XXHFH_ST"}, // 91ϵ<31><CFB5>HD-SDI<44><49><EFBFBD><EFBFBD>DVR
{205,"DS_66XXHFH"}, // 66<36><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{210,"TRAFFIC_TS_SERVER"}, //<2F>ն˷<D5B6><CBB7><EFBFBD><EFBFBD><EFBFBD>
{211,"TRAFFIC_VAR"}, //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>
{212,"IPCALL"}, //IP<49><50><EFBFBD>ӶԽ<D3B6><D4BD>ֻ<EFBFBD>
//2012-03-21 <20><><EFBFBD><EFBFBD>ֵ255<35>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><E8B1B8>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD><CAB9>չЭ<D5B9><D0AD><EFBFBD>ܻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ֵ255<35><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//{2001, "DS90XXHW_ST"} // DS90XXHW_ST<53><54><EFBFBD><EFBFBD>DVR
};
/**********************<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD> begin**********************/
/* dvr<76><72><EFBFBD><EFBFBD> 1-50 */
#define DEV_CLASS_DVR 1 //<2F><>ͨdvr<76><72><EFBFBD><EFBFBD>
#define DEV_CLASS_INTERROGATION 2 //<2F><>Ѷ<EFBFBD><D1B6>
#define DEV_CLASS_SIMPLE_TRAIL 3 //<2F><><EFBFBD><EFBFBD>ͥ<EFBFBD><CDA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_TRAIL 4 //<2F><>׼ͥ<D7BC><CDA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_RECORD_PLAY 5 //¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_ATM 6 //ATM<54><4D>
/* dvs<76><73><EFBFBD><EFBFBD> 51-100 */
#define DEV_CLASS_DVS 51 //<2F><>ͨdvs
/* nvr<76><72><EFBFBD><EFBFBD> 101-150 */
#define DEV_CLASS_NVR 101 //<2F><>ͨnvr
/* ipc<70><63><EFBFBD><EFBFBD> 151-200 */
#define DEV_CLASS_GUN 151 //ipcǹ<63><C7B9>
#define DEV_CLASS_BALL 152 //ipc<70><63><EFBFBD><EFBFBD>
#define DEV_CLASS_SNAP 153 //ץ<>Ļ<EFBFBD>
#define DEV_CLASS_INTELLI_TILT 154 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨
#define DEV_CLASS_FISH_EYE 155 //<2F><><EFBFBD><EFBFBD>
#define DEV_CLASS_2DP_Z 156 //<2F><>ӥ<EFBFBD><D3A5>
#define DEV_CLASS_2DP 157 //Сӥ<D0A1><D3A5>
#define DEV_CLASS_PT 158 //ȫ<><C8AB>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_TRI 159 //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD>̶<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* CVR<56><52><EFBFBD><EFBFBD> 201 - 250*/
#define DEV_CLASS_CVR 201 //CVR
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 251 - 300*/
#define DEV_CLASS_B20 251 //<2F><><EFBFBD><EFBFBD>B20ϵ<30><CFB5>
#define DEV_CLASS_B10 252 //<2F><><EFBFBD><EFBFBD>B10ϵ<30><CFB5>
#define DEV_CLASS_DECODER 253 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_MATRIXMANAGEDEVICE 254 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_OTICAL 255 //<2F><><EFBFBD>˻<EFBFBD>
#define DEV_CLASS_CODESPITTER 256 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_ALARMHOST 257 //<2F><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_MOVING_RING 258 //<2F><><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_CVCS 259 //<2F><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_DVCS 260 //<2F>ֲ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_TRANSCODER 261 //ת<><D7AA><EFBFBD><EFBFBD>
#define DEV_CLASS_LCD_SCREEN 262 //LCD<43><44>Ļ
#define DEV_CLASS_LED_SCREEN 263 //LED<45><44>Ļ
#define DEV_CLASS_MATRIX 264 //<2F><><EFBFBD><EFBFBD>
#define DEV_CLASS_CONFERENCE_SYSTEM 265 //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_INFORMATION_RELEASE_EQUIPMENT 266 //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_NET_GAP 267 //<2F><>բ
#define DEV_CLASS_MERGE 268 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_REAR_PROJECTION 269 //<2F><>Ͷ<EFBFBD><CDB6>ʾ<EFBFBD>
#define DEV_CLASS_SWITCH 270 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_FIBER_CONVERTER 271 //<2F><><EFBFBD><EFBFBD><EFBFBD>շ<EFBFBD><D5B7><EFBFBD>
#define DEV_CLASS_SCREEN_SERVER 272 //<2F><>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_SCE_SERVER 273 //ץ<><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_WIRELESS_TRANS 274 //<2F><><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD><EFBFBD>
#define DEV_CLASS_Y10_SERIES 275 //Y10ϵ<30><CFB5>
#define DEV_CLASS_SAFETY_MAVHINE 276 //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
#define DEV_CLASS_IOTGATEWAY 277 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 301 - 350*/
#define DEV_CLASS_VIDEO_ALARM_HOST 301 //<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_NET_ALARM_HOST 302 //<2F><><EFBFBD><EFBFBD><E7B1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_ONE_KEY_ALARM 303 //һ<><D2BB>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ
#define DEV_CLASS_WIRELESS_ALARM_HOST 304 //<2F><><EFBFBD>߱<EFBFBD><DFB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DEV_CLASS_ALARM_MODULE 305 //<2F><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>
#define DEV_CLASS_HOME_ALARM_HOST 306 //<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* <20>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD><EFBFBD> 351 - 400*/
#define DEV_CLASS_ACCESS_CONTROL 351 //<2F>Ž<EFBFBD><C5BD><EFBFBD>Ʒ
/* <20><><EFBFBD>ӶԽ<D3B6> 401 - 450*/
#define DEV_CLASS_VIDEO_INTERCOM 401 //<2F><><EFBFBD>ӶԽ<D3B6>
/* <20><><EFBFBD>˻<EFBFBD> 451 - 500*/
#define DEV_CLASS_UMMANNED_AERIAL_VEHICLE 451 //<2F><><EFBFBD>˻<EFBFBD><CBBB><EFBFBD>Ʒ
/* <20>ƶ<EFBFBD><C6B6><EFBFBD>Ʒ: 501-550*/
#define DEV_CLASS_MOBILE 501 //<2F>ƶ<EFBFBD><C6B6><EFBFBD>Ʒ
/* <20>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸: 551-600*/
#define DEV_CLASS_MOBILE_VEHICLE 551 //<2F>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD>ǣ<EFBFBD>601-650
#define DEV_CLASS_INTELLIGENT_ANALYZER 601 //<2F><><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD>ܽ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>651-700
#define DEV_CLASS_INTELLIGENT_TRAFFIC_SERVER 651 //<2F><><EFBFBD>ܽ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DS_TP2200_EC 652 //<2F><><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* nvs<76><73><EFBFBD><EFBFBD> 701-750 */
#define DEV_CLASS_NVS 701 //<2F><>ͨnvs
/*<2A><>ԴRFIDϵ<44><CFB5> 751-800*/
#define DS_TRI21A_1_P 751 //<2F><>ԴRFID<49><44>ȡ<EFBFBD><C8A1>
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸801-850 */
#define DS_CLASS_FA 801 //<2F><><EFBFBD>׵<EFBFBD><D7B5><EFBFBD>
#define DS_CLASS_PURE 802 //<2F><><EFBFBD>״<EFBFBD><D7B4><EFBFBD><EFBFBD><EFBFBD>
#define DS_CLASS_FS 803 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̬<EFBFBD><CCAC><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD><EFBFBD><EFBFBD>
#define DS_CLASS_FD 804 //ץ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DS_CLASS_HAWK 805 //<2F><>ӥ<EFBFBD><D3A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DS_CLASS_BLADE 806 //<2F><><EFBFBD><EFBFBD>
#define DS_CLASS_HMCP 807 //ģ<>ͶԱȷ<D4B1><C8B7><EFBFBD><EFBFBD><EFBFBD>
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 851 - 900*/
#define DEV_CLASS_SMART_LOCK 851 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* <20>״<EFBFBD><D7B4><EFBFBD><EFBFBD><EFBFBD> 901 - 950*/
#define DEV_CLASS_RADAR 901 //<2F>״<EFBFBD><D7B4><EFBFBD>Ʒ
/* <20>ǻ<EFBFBD><C7BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 951 - 1000*/
#define DEV_CLASS_FIRE_CONTROL 951 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ
/*ȫ<><C8AB>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8451-8470*/
#define iDS_PT 8451 //ȫ<><C8AB>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD> 65534 */
#define DEV_CLASS_DEFAULT 65534 //Ĭ<><C4AC><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
/**********************<2A><EFBFBD><E8B1B8><EFBFBD><EFBFBD> end**********************/
typedef struct tagNET_EHOME_DEVICE_INFO
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
DWORD dwChannelNumber; //ģ<><C4A3><EFBFBD><EFBFBD>Ƶͨ<C6B5><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwChannelAmount; //<2F><><EFBFBD><EFBFBD>Ƶͨ<C6B5><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>+IP<49><50>
DWORD dwDevType; //<2F><EFBFBD><E8B1B8><EFBFBD>ͣ<EFBFBD>1-DVR<56><52>3-DVS<56><53>30-IPC<50><43>40-IPDOME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD>NetSdk<64><EFBFBD><E8B1B8><EFBFBD>ͺŶ<CDBA><C5B6><EFBFBD>ֵ
DWORD dwDiskNumber; //<2F><EFBFBD><E8B1B8>ǰӲ<C7B0><D3B2><EFBFBD><EFBFBD>
BYTE sSerialNumber[MAX_SERIALNO_LEN]; //<2F><EFBFBD><E8B1B8><EFBFBD>к<EFBFBD>
DWORD dwAlarmInPortNum; //ģ<><C4A3>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwAlarmInAmount; //<2F><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwAlarmOutPortNum; //ģ<><C4A3>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwAlarmOutAmount; //<2F><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwStartChannel; //<2F><>Ƶ<EFBFBD><C6B5>ʼͨ<CABC><CDA8><EFBFBD><EFBFBD>
DWORD dwAudioChanNum; //<2F><><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸ͨ<E8B1B8><CDA8>+IPͨ<50><CDA8><EFBFBD><EFBFBD>byStartDTalkChan<61><6E><EFBFBD><EFBFBD>
DWORD dwMaxDigitChannelNum; //<2F>豸֧<E8B1B8>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>·<EFBFBD><C2B7>
DWORD dwAudioEncType; //<2F><><EFBFBD><EFBFBD><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD>Ƶ<EFBFBD><C6B5>ʽ<EFBFBD><CABD>0-G722<32><32>1-G711U<31><55>2-G711A<31><41>3-G726<32><36>4-AAC<41><43>5-MP2L2,6-PCM,7-MP3
BYTE sSIMCardSN[MAX_SERIALNO_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>չ<EFBFBD><D5B9>SIM<49><4D><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
BYTE sSIMCardPhoneNum[MAX_PHOMENUM_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>SIM<49><4D><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSupportZeroChan; // SupportZeroChan:֧<><D6A7><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>0-<2D><>֧<EFBFBD>֣<EFBFBD>1-֧<><D6A7><31><C2B7>2-֧<><D6A7><32><C2B7><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD>
DWORD dwStartZeroChan; //<2F><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ţ<EFBFBD>Ĭ<EFBFBD><C4AC>10000
DWORD dwSmartType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-smart<72><74>1-רҵ<D7A8><D2B5><EFBFBD>ܣ<EFBFBD>Ĭ<EFBFBD><C4AC>0-smart
WORD wDevClass; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
BYTE byStartDTalkChan; //<2F><>ʼ<EFBFBD><CABC><EFBFBD>ֶԽ<D6B6>ͨ<EFBFBD><CDA8><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Խ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ţ<EFBFBD>0<EFBFBD><30>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ֶԽ<D6B6>ͨ<EFBFBD><CDA8>
BYTE byRes[157]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_DEVICE_INFO,*LPNET_EHOME_DEVICE_INFO;
#define MAX_VERSION_LEN 32 //<2F><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_VERSION_INFO
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
BYTE sSoftwareVersion[MAX_VERSION_LEN]; //<2F><><EFBFBD>ذ汾
BYTE sDSPSoftwareVersion[MAX_VERSION_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD>
BYTE sPanelVersion[MAX_VERSION_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD>
BYTE sHardwareVersion[MAX_VERSION_LEN]; //Ӳ<><D3B2><EFBFBD>
BYTE byRes[124];
}NET_EHOME_VERSION_INFO,*LPNET_EHOME_VERSION_INFO;
typedef struct tagNET_EHOME_DEVICE_CFG
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
BYTE sServerName[MAX_DEVICE_NAME_LEN]; //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
DWORD dwServerID; //<2F><EFBFBD>ţ<EFBFBD>ң<EFBFBD><D2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:0~255<35><35>
DWORD dwRecycleRecord; //<2F>Ƿ<EFBFBD>ѭ<EFBFBD><D1AD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>
DWORD dwServerType; //<2F><EFBFBD><E8B1B8><EFBFBD>ͣ<EFBFBD>ͬDevType<70><65><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD>˾<EFBFBD><EFBFBD>ͺ<EFBFBD><CDBA>м<EFBFBD><D0BC>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD>ֻʹ<D6BB><CAB9>ͨ<EFBFBD><CDA8><EFBFBD>ͺţ<CDBA>1-DVR<56><52>3-DVS<56><53>30-IPC<50><43>40-IPDOME
DWORD dwChannelNum; //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>+IPͨ<50><CDA8><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
DWORD dwHardDiskNum; //Ӳ<≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
DWORD dwAlarmInNum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
DWORD dwAlarmOutNum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
DWORD dwRS232Num; //232<33><32><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
DWORD dwRS485Num; //485<38><35><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
DWORD dwNetworkPortNum; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
DWORD dwAuxoutNum; //<2F><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
DWORD dwAudioNum; //<2F><><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
BYTE sSerialNumber[MAX_SERIALNO_LEN]; //<2F><EFBFBD><E8B1B8><EFBFBD>кţ<D0BA>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>
DWORD dwMajorScale; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwMinorScale; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[292]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_DEVICE_CFG,*LPNET_EHOME_DEVICE_CFG;
#define NET_EHOME_GET_DEVICE_INFO 1 //<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8>Ϣ
#define NET_EHOME_GET_VERSION_INFO 2 //<2F><>ȡ<EFBFBD><EFBFBD><E6B1BE>Ϣ
#define NET_EHOME_GET_DEVICE_CFG 3 //<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_SET_DEVICE_CFG 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_GET_GPS_CFG 20 //<2F><>ȡGPS<50><53><EFBFBD><EFBFBD>
#define NET_EHOME_SET_GPS_CFG 21 //<2F><><EFBFBD><EFBFBD>GPS<50><53><EFBFBD><EFBFBD>
#define NET_EHOME_GET_PIC_CFG 22 //<2F><>ȡOSD<53><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
#define NET_EHOME_SET_PIC_CFG 23 //<2F><><EFBFBD><EFBFBD>OSD<53><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
#define NET_EHOME_GET_WIRELESSINFO_CFG 24 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
#define NET_EHOME_SET_WIRELESSINFO_CFG 25 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
#define MAX_EHOME_PROTOCOL_LEN 1500
typedef struct tagNET_EHOME_REMOTE_CTRL_PARAM
{
DWORD dwSize;
void* lpCondBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwCondBufferSize; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void* lpInbuffer; //<2F><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwInBufferSize; //<2F><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[32];
}NET_EHOME_REMOTE_CTRL_PARAM, *LPNET_EHOME_REMOTE_CTRL_PARAM;
//GPS<50><53><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_GPS_CFG
{
DWORD dwSize;
DWORD dwTransInterval; //GPS<50>ϴ<EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
DWORD dwMaxSpeed; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/Сʱ
DWORD dwMinSpeed; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/Сʱ
BYTE bEnable; //ʹ<><CAB9>,1-<2D><><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>2-<2D><><EFBFBD><EFBFBD>
BYTE byRes[63]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_GPS_CFG, *LPNET_EHOME_GPS_CFG;
//OSD<53><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_PIC_CFG
{
DWORD dwSize;
BYTE byChannelName[NAME_LEN]; //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>GB2312<31><32><EFBFBD>룬 V30<33>Ժ<EFBFBD><D4BA>ʹ<E6B1BE><CAB9>UTF-8<><38><EFBFBD><EFBFBD><EBA3A9><EFBFBD><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD>31<33>ֽ<EFBFBD>
BOOL bIsShowChanName; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʾͨ<CABE><CDA8><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>1<EFBFBD><31><EFBFBD><EFBFBD>ʾ
WORD wChanNameXPos; //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾX<CABE><58><EFBFBD><EFBFBD><EAA3AC><EFBFBD><EFBFBD>704x576<37><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wChanNameYPos; //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾY<CABE><59><EFBFBD><EFBFBD><EAA3AC><EFBFBD><EFBFBD>704x576<37><36><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>ֵΪ16<31>ı<EFBFBD><C4B1><EFBFBD>
BOOL bIsShowOSD; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʾOSD<53><44>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>1<EFBFBD><31><EFBFBD><EFBFBD>ʾ
WORD wOSDXPos; //OSD<53><44>ʾX<CABE><58><EFBFBD><EFBFBD>
WORD wOSDYPos; //OSD<53><44>ʾY<CABE><59><EFBFBD><EFBFBD>
BYTE byOSDType; /**OSD<53><44><EFBFBD><EFBFBD> 0:XXXX-XX-XX(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) 1:XX-XX-XXXX(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) 2:XXXX<58><58>XX<58><58>XX<58><58>
3:XX<EFBFBD><EFBFBD>XX<EFBFBD><EFBFBD>XXXX<EFBFBD><EFBFBD> 4:XX-XX-XXXX(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) 5:XX<EFBFBD><EFBFBD>XX<EFBFBD><EFBFBD>XXXX<EFBFBD><EFBFBD>
*/
BYTE byOSDAtrib; //OSD<53><44><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾOSD 1<><31>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸ 2<><32>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸ 3<><33><EFBFBD><EFBFBD>˸<EFBFBD><CBB8><EFBFBD><EFBFBD>͸<EFBFBD><CDB8> 4<><34><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸
BYTE byRes1[2]; //<2F><><EFBFBD><EFBFBD>1
BOOL bIsShowWeek; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ڣ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>1<EFBFBD><31><EFBFBD><EFBFBD>ʾ
BYTE byRes2[64]; //<2F><><EFBFBD><EFBFBD>2
}NET_EHOME_PIC_CFG, *LPNET_EHOME_PIC_CFG;
typedef struct tagNET_EHOME_WIRELESS_INFO_CFG
{
DWORD dwSize;
DWORD dwInfoTransInterval; //<2F>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>,<2C><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
BYTE byEnable; //ʹ<>ܣ<EFBFBD>0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1-<2D><><EFBFBD><EFBFBD>
BYTE byRes[47];
}NET_EHOME_WIRELESS_INFO_CFG, *LPNET_EHOME_WIRELESS_INFO_CFG;
#define STREAM_KEY_LEN 32
typedef struct tagNET_EHOME_STREAM_PASSWORD
{
BYTE byEnable; // <20><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD>0- <20><><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>1- <20><><EFBFBD><EFBFBD>, 2- <20>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes1[3];
BYTE byNewKey[STREAM_KEY_LEN]; // <20><><EFBFBD><EFBFBD>
BYTE byOldKey[STREAM_KEY_LEN]; //ԭ<><D4AD><EFBFBD><EFBFBD>
BYTE byRes[12];
}NET_EHOME_STREAM_PASSWORD, *LPNET_EHOME_STREAM_PASSWORD;
NET_DVR_API BOOL CALLBACK NET_ECMS_GetDevConfig(LONG lUserID, DWORD dwCommand, LPNET_EHOME_CONFIG lpConfig, DWORD dwConfigSize);
NET_DVR_API BOOL CALLBACK NET_ECMS_SetDevConfig(LONG lUserID, DWORD dwCommand, LPNET_EHOME_CONFIG lpConfig, DWORD dwConfigSize);
NET_DVR_API BOOL CALLBACK NET_ECMS_XMLConfig(LONG lUserID, LPNET_EHOME_XML_CFG pXmlCfg, DWORD dwConfigSize);
NET_DVR_API BOOL CALLBACK NET_ECMS_RemoteControl(LONG lUserID, DWORD dwCommand, LPNET_EHOME_REMOTE_CTRL_PARAM lpCtrlParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_CheckStreamEncrypt(LONG lUserID, const char* pStreamEncrypt);
//<2F><><EFBFBD><EFBFBD><EFBFBD>豸SessionKey<65><79>Ϣ
NET_DVR_API BOOL CALLBACK NET_ECMS_SetDeviceSessionKey(NET_EHOME_DEV_SESSIONKEY* pDeviceKey);
//<2F><>ȡ<EFBFBD>豸EhomeKey<65><79>Ϣ
NET_DVR_API BOOL CALLBACK NET_ECMS_GetDeviceSessionKey(NET_EHOME_DEV_SESSIONKEY* pDeviceKey);
//<2F><><EFBFBD><EFBFBD>5.0<EFBFBD>豸ע<EFBFBD><EFBFBD>״̬
NET_DVR_API BOOL CALLBACK NET_ECMS_ResetDevRegisterState(const char* sDeviceID);
//Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_PREVIEWINFO_IN
{
int iChannel; //ͨ<><CDA8><EFBFBD><EFBFBD>
DWORD dwStreamType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,3- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLinkMode; // 0<><30>TCP<43><50>ʽ,1<><31>UDP<44><50>ʽ,2: HRUDP<44><50>ʽ
NET_EHOME_IPADDRESS struStreamSever; //<2F><>ý<EFBFBD><C3BD><EFBFBD><EFBFBD>ַ
}NET_EHOME_PREVIEWINFO_IN, *LPNET_EHOME_PREVIEWINFO_IN;
typedef struct tagNET_EHOME_PREVIEWINFO_IN_V11
{
int iChannel;
DWORD dwStreamType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,3- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLinkMode;
NET_EHOME_IPADDRESS struStreamSever;
BYTE byDelayPreview;
BYTE byEncrypt; //0-<2D><><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD>1-<2D><><EFBFBD><EFBFBD>
BYTE byRes[30];
}NET_EHOME_PREVIEWINFO_IN_V11, *LPNET_EHOME_PREVIEWINFO_IN_V11;
typedef struct tagNET_EHOME_MAKE_I_FRAME
{
int iChannel; // ͨ<><CDA8><EFBFBD><EFBFBD>
DWORD dwStreamType; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 2- Ԥ<><D4A4>
BYTE byRes[40];
}NET_EHOME_MAKE_I_FRAME, *LPNET_EHOME_MAKE_I_FRAME;
typedef struct tagNET_EHOME_PREVIEWINFO_OUT
{
LONG lSessionID;
LONG lHandle; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ص<EFBFBD>֮<EFBFBD>󣬸<EFBFBD>ֵΪ<D6B5><CEAA>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʶ
BYTE byRes[124];
}NET_EHOME_PREVIEWINFO_OUT, *LPNET_EHOME_PREVIEWINFO_OUT;
typedef struct tagNET_EHOME_PUSHSTREAM_IN
{
DWORD dwSize;
LONG lSessionID;
BYTE byRes[128];
}NET_EHOME_PUSHSTREAM_IN, *LPNET_EHOME_PUSHSTREAM_IN;
typedef struct tagNET_EHOME_PUSHSTREAM_INFO_OUT
{
DWORD dwSize;
LONG lHandle; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ص<EFBFBD>֮<EFBFBD>󣬸<EFBFBD>ֵΪ<D6B5><CEAA>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʶ
BYTE byRes[124];
}NET_EHOME_PUSHSTREAM_OUT, *LPNET_EHOME_PUSHSTREAM_OUT;
typedef struct tagNET_EHOME_STOPSTREAM_PARAM
{
LONG lSessionID;
LONG lHandle;
BYTE byRes[120];
}NET_EHOME_STOPSTREAM_PARAM, *LPNET_EHOME_STOPSTREAM_PARAM;
NET_DVR_API BOOL CALLBACK NET_ECMS_StartGetRealStream(LONG lUserID, LPNET_EHOME_PREVIEWINFO_IN pPreviewInfoIn, LPNET_EHOME_PREVIEWINFO_OUT pPreviewInfoOut ); //lUserID<49><44>SDK<44><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ID<49><44><EFBFBD><EFBFBD><EFBFBD>豸ע<E8B1B8><D7A2><EFBFBD>ص<EFBFBD>ʱfDeviceRegisterCallBack<63><6B><EFBFBD><EFBFBD>
NET_DVR_API BOOL CALLBACK NET_ECMS_StartGetRealStreamV11(LONG lUserID, LPNET_EHOME_PREVIEWINFO_IN_V11 pPreviewInfoIn, LPNET_EHOME_PREVIEWINFO_OUT pPreviewInfoOut);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopGetRealStream(LONG lUserID, LONG lSessionID);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopGetRealStreamEx(LONG lUserID, LPNET_EHOME_STOPSTREAM_PARAM pStopParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_StartPushRealStream(LONG lUserID, LPNET_EHOME_PUSHSTREAM_IN pPushInfoIn, LPNET_EHOME_PUSHSTREAM_OUT pPushInfoOut);
NET_DVR_API BOOL CALLBACK NET_ECMS_MakeIFrame(LONG lUserID, LPNET_EHOME_MAKE_I_FRAME pIFrameParma);
NET_DVR_API BOOL CALLBACK NET_ECMS_SetStreamEncrypt(LONG lUserID, LPNET_EHOME_STREAM_PASSWORD pStreamPassword);
NET_DVR_API BOOL CALLBACK NET_ECMS_WakeUp(LONG lUserID);
//<2F><>ѯ<EFBFBD>ӿ<EFBFBD>
#define MAX_FILE_NAME_LEN 100
#define LEN_32 32
typedef enum tagSEARCH_TYPE
{
ENUM_SEARCH_TYPE_ERR = -1,
ENUM_SEARCH_RECORD_FILE = 0, //<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ļ<EFBFBD>
ENUM_SEARCH_PICTURE_FILE = 1, //<2F><><EFBFBD><EFBFBD>ͼƬ<CDBC>ļ<EFBFBD>
ENUM_SEARCH_FLOW_INFO = 2, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ
ENUM_SEARCH_DEV_LOG = 3, //<2F><EFBFBD><E8B1B8>־<EFBFBD><D6BE>ѯ
ENUM_SEARCH_ALARM_HOST_LOG = 4, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ѯ
}SEARCH_TYPE_ENUM;
typedef enum
{
ENUM_GET_NEXT_STATUS_SUCCESS = 1000, //<2F>ɹ<EFBFBD><C9B9><EFBFBD>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB1BE><EFBFBD><EFBFBD><EFBFBD>ݺ<EFBFBD><DDBA><EFBFBD>Ҫ<EFBFBD>ٴε<D9B4><CEB5><EFBFBD>FindNext<78><74>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ENUM_GET_NETX_STATUS_NO_FILE, //û<><C3BB><EFBFBD>ҵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ENUM_GET_NETX_STATUS_NEED_WAIT, //<2F><><EFBFBD>ݻ<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FindNext<78><74><EFBFBD><EFBFBD>
ENUM_GET_NEXT_STATUS_FINISH, //<2F><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB>ȡ<EFBFBD><C8A1>
ENUM_GET_NEXT_STATUS_FAILED, //<2F><><EFBFBD><EFBFBD><EFBFBD>
ENUM_GET_NEXT_STATUS_NOT_SUPPORT //<2F><EFBFBD><E8B1B8>֧<EFBFBD>ָò<D6B8><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ֵIJ<D6B5>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
}SEARCH_GET_NEXT_STATUS_ENUM;
//ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_TIME
{
WORD wYear; //<2F><>
BYTE byMonth; //<2F><>
BYTE byDay; //<2F><>
BYTE byHour; //ʱ
BYTE byMinute; //<2F><>
BYTE bySecond; //<2F><>
BYTE byRes1;
WORD wMSecond; //<2F><><EFBFBD><EFBFBD>
BYTE byRes2[2];
}NET_EHOME_TIME, *LPNET_EHOME_TIME;
typedef struct tagNET_EHOME_FINDCOND
{
DWORD dwSize;
LONG iChannel; //ͨ<><CDA8><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>1<EFBFBD><31>ʼ
DWORD dwMaxFileCountPer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫȷ<D2AA><C8B7>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ8
NET_EHOME_TIME struStartTime; //<2F><>ʼʱ<CABC><CAB1>
NET_EHOME_TIME struStopTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
SEARCH_TYPE_ENUM enumSearchType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0-¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ң<EFBFBD><D2A3><EFBFBD>ӦstruRecordFileParam 1-ͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ң<EFBFBD><D2A3><EFBFBD>ӦstruPicFileParam 2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ӦstruFlowParam
union
{
BYTE byLen[64];
struct
{
DWORD dwFileType; /**<2A>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
0xff-ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>񣨲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>
0-<EFBFBD><EFBFBD>ʱ¼<EFBFBD><EFBFBD>
1-<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
4-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
5-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
6-<EFBFBD>ֶ<EFBFBD>¼<EFBFBD><EFBFBD>
7-<EFBFBD>𶯱<EFBFBD><EFBFBD><EFBFBD>
8-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
9-<EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ֤¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
10<EFBFBD><EFBFBD>0x0a<EFBFBD><EFBFBD>-PIR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
11<EFBFBD><EFBFBD>0x0b<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><EFBFBD><EFBFBD>
12<EFBFBD><EFBFBD>0x0c<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD>
13<EFBFBD><EFBFBD>0x0d<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
100-ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
101-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>ͼƬ
102-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
103-<EFBFBD>ֶ<EFBFBD>ץ<EFBFBD><EFBFBD>ͼƬ
104-<EFBFBD>ط<EFBFBD>ץ<EFBFBD><EFBFBD>ͼƬ
**/
}struRecordFileParam;
struct
{
DWORD dwFileType; /*255<35><35>0xff<66><66><><C8AB><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>
0<EFBFBD><EFBFBD>0x00<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>ʱץͼ
1<EFBFBD><EFBFBD>0x01<EFBFBD><EFBFBD>-<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
2<EFBFBD><EFBFBD>0x02<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
3<EFBFBD><EFBFBD>0x03<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
4<EFBFBD><EFBFBD>0x04<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
5<EFBFBD><EFBFBD>0x05<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
6<EFBFBD><EFBFBD>0x06<EFBFBD><EFBFBD>-<EFBFBD>ֶ<EFBFBD>ץͼ
7<EFBFBD><EFBFBD>0x07<EFBFBD><EFBFBD>-<EFBFBD>𶯱<EFBFBD><EFBFBD><EFBFBD>ץͼ
8<EFBFBD><EFBFBD>0x08<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
9<EFBFBD><EFBFBD>0x09<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><EFBFBD><EFBFBD>ͼƬ
10<EFBFBD><EFBFBD>0x0a<EFBFBD><EFBFBD>-PIR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
11<EFBFBD><EFBFBD>0x0b<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><EFBFBD><EFBFBD>ͼƬ
12<EFBFBD><EFBFBD>0x0c<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD>ͼƬ
13<EFBFBD><EFBFBD>0x0d<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
14<EFBFBD><EFBFBD>0x0e<EFBFBD><EFBFBD>-Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
15<EFBFBD><EFBFBD>0x0f<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
16<EFBFBD><EFBFBD>0x10<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
17<EFBFBD><EFBFBD>0x11<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػط<EFBFBD>ʱ<EFBFBD><EFBFBD>ͼ
18<EFBFBD><EFBFBD>0x12<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
19<EFBFBD><EFBFBD>0x13<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
20<EFBFBD><EFBFBD>0x14<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
21<EFBFBD><EFBFBD>0x15<EFBFBD><EFBFBD>-<EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
22<EFBFBD><EFBFBD>0x16<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>Ա<EFBFBD>ۼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
23<EFBFBD><EFBFBD>0x17<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
24<EFBFBD><EFBFBD>0x18<EFBFBD><EFBFBD>-ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
25<EFBFBD><EFBFBD>0x19<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
26<EFBFBD><EFBFBD>0x1a<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
27<EFBFBD><EFBFBD>0x1b<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
28<EFBFBD><EFBFBD>0x1c<EFBFBD><EFBFBD>-<EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ͼƬ
*/
}struPicFileParam;
struct
{
BYTE bySearchMode; //<2F><>ѯģʽ<C4A3><CABD>1-<2D><>year<61><72>ѯ<EFBFBD><D1AF>2-<2D><>month<74><68>ѯ<EFBFBD><D1AF>3-<2D><>day<61><79>ѯ
}struFlowParam;
}unionSearchParam;
BYTE byStartIndex; //<2F><>ѯ<EFBFBD><D1AF>ʼλ<CABC>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾<CFB0><E6B1BE><EFBFBD>°汾<C2B0>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
BYTE byRes1[3];
DWORD dwStartIndexEx; //<2F><>չ<EFBFBD><D5B9><EFBFBD>IJ<EFBFBD>ѯ<EFBFBD><D1AF>ʼλ<CABC>ã<EFBFBD> <20><><EFBFBD>ӶԼ<D3B6>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>
BYTE byRes[124];
}NET_EHOME_FINDCOND, *LPNET_EHOME_FINDCOND;
//¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_REC_FILE_COND
{
DWORD dwChannel; //ͨ<><CDA8><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>1<EFBFBD><31>ʼ
DWORD dwRecType; /*0xff-ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>񣨲<EFBFBD><F1A3A8B2><EFBFBD><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC><EFBFBD>ͣ<EFBFBD>
0-<EFBFBD><EFBFBD>ʱ¼<EFBFBD><EFBFBD>
1-<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
3-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
4-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
5-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
6-<EFBFBD>ֶ<EFBFBD>¼<EFBFBD><EFBFBD>
7-<EFBFBD>𶯱<EFBFBD><EFBFBD><EFBFBD>
8-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
9-<EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ֤¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
10<EFBFBD><EFBFBD>0x0a<EFBFBD><EFBFBD>-PIR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
11<EFBFBD><EFBFBD>0x0b<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><EFBFBD><EFBFBD>
12<EFBFBD><EFBFBD>0x0c<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD>
13<EFBFBD><EFBFBD>0x0d<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
100-ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
101-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><EFBFBD>ͼƬ
102-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
103-<EFBFBD>ֶ<EFBFBD>ץ<EFBFBD><EFBFBD>ͼƬ
104-<EFBFBD>ط<EFBFBD>ץ<EFBFBD><EFBFBD>ͼƬ
*/
NET_EHOME_TIME struStartTime; //<2F><>ʼʱ<CABC><CAB1>
NET_EHOME_TIME struStopTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwStartIndex; //<2F><>ѯ<EFBFBD><D1AF>ʼλ<CABC><CEBB>
DWORD dwMaxFileCountPer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫȷ<D2AA><C8B7>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ8
BYTE byLocalOrUTC; //0-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD>豸OSDʱ<44><CAB1> 1-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>UTCʱ<43><CAB1>
BYTE byRes[63];
}NET_EHOME_REC_FILE_COND, *LPNET_EHOME_REC_FILE_COND;
//ͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_PIC_FILE_COND
{
DWORD dwChannel; //ͨ<><CDA8><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>1<EFBFBD><31>ʼ
DWORD dwPicType; /*255<35><35>0xff<66><66><><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
0<EFBFBD><EFBFBD>0x00<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>ʱץͼ
1<EFBFBD><EFBFBD>0x01<EFBFBD><EFBFBD>-<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
2<EFBFBD><EFBFBD>0x02<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
3<EFBFBD><EFBFBD>0x03<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>|<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
4<EFBFBD><EFBFBD>0x04<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<EFBFBD>ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
5<EFBFBD><EFBFBD>0x05<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
6<EFBFBD><EFBFBD>0x06<EFBFBD><EFBFBD>-<EFBFBD>ֶ<EFBFBD>ץͼ
7<EFBFBD><EFBFBD>0x07<EFBFBD><EFBFBD>-<EFBFBD>𶯱<EFBFBD><EFBFBD><EFBFBD>ץͼ
8<EFBFBD><EFBFBD>0x08<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץͼ
9<EFBFBD><EFBFBD>0x09<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><EFBFBD><EFBFBD>ͼƬ
10<EFBFBD><EFBFBD>0x0a<EFBFBD><EFBFBD>-PIR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
11<EFBFBD><EFBFBD>0x0b<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD><EFBFBD><EFBFBD>ͼƬ
12<EFBFBD><EFBFBD>0x0c<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD>ͼƬ
13<EFBFBD><EFBFBD>0x0d<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
14<EFBFBD><EFBFBD>0x0e<EFBFBD><EFBFBD>-Խ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
15<EFBFBD><EFBFBD>0x0f<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
16<EFBFBD><EFBFBD>0x10<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
17<EFBFBD><EFBFBD>0x11<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػط<EFBFBD>ʱ<EFBFBD><EFBFBD>ͼ
18<EFBFBD><EFBFBD>0x12<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
19<EFBFBD><EFBFBD>0x13<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
20<EFBFBD><EFBFBD>0x14<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
21<EFBFBD><EFBFBD>0x15<EFBFBD><EFBFBD>-<EFBFBD>ǻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
22<EFBFBD><EFBFBD>0x16<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>Ա<EFBFBD>ۼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
23<EFBFBD><EFBFBD>0x17<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
24<EFBFBD><EFBFBD>0x18<EFBFBD><EFBFBD>-ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
25<EFBFBD><EFBFBD>0x19<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
26<EFBFBD><EFBFBD>0x1a<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
27<EFBFBD><EFBFBD>0x1b<EFBFBD><EFBFBD>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬ
28<EFBFBD><EFBFBD>0x1c<EFBFBD><EFBFBD>-<EFBFBD>ͻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ͼƬ
*/
NET_EHOME_TIME struStartTime; //<2F><>ʼʱ<CABC><CAB1>
NET_EHOME_TIME struStopTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwStartIndex; //<2F><>ѯ<EFBFBD><D1AF>ʼλ<CABC><CEBB>
DWORD dwMaxFileCountPer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫȷ<D2AA><C8B7>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ8
BYTE byLocalOrUTC; //0-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD>豸OSDʱ<44><CAB1> 1-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>UTCʱ<43><CAB1>
BYTE byRes[63];
}NET_EHOME_PIC_FILE_COND, *LPNET_EHOME_PIC_FILE_COND;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_FLOW_COND
{
BYTE bySearchMode; //<2F><>ѯģʽ<C4A3><CABD>1-<2D><>year<61><72>ѯ<EFBFBD><D1AF>2-<2D><>month<74><68>ѯ<EFBFBD><D1AF>3-<2D><>day<61><79>ѯ
BYTE byRes[3];
NET_EHOME_TIME struStartTime; //<2F><>ʼʱ<CABC><CAB1>
NET_EHOME_TIME struStopTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwStartIndex; //<2F><>ѯ<EFBFBD><D1AF>ʼλ<CABC><CEBB>
DWORD dwMaxFileCountPer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫȷ<D2AA><C8B7>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ8
BYTE byLocalOrUTC; //0-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD>豸OSDʱ<44><CAB1> 1-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>UTCʱ<43><CAB1>
BYTE byRes1[63];
}NET_EHOME_FLOW_COND, *LPNET_EHOME_FLOW_COND;
//<2F><EFBFBD><E8B1B8>־<EFBFBD><D6BE>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_DEV_LOG_COND
{
DWORD dwMajorType; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2-<2D><EFBFBD><ECB3A3>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0xffff-ȫ<><C8AB>
DWORD dwMinorType; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD><EBB6A8><EFBFBD><EFBFBD>ͬ
NET_EHOME_TIME struStartTime; //<2F><>ʼʱ<CABC><CAB1>
NET_EHOME_TIME struStopTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwStartIndex; //<2F><>ѯ<EFBFBD><D1AF>ʼλ<CABC><CEBB>
DWORD dwMaxFileCountPer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫȷ<D2AA><C8B7>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ8
BYTE byLocalOrUTC; //0-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD>豸OSDʱ<44><CAB1> 1-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>UTCʱ<43><CAB1>
BYTE byRes[63];
}NET_EHOME_DEV_LOG_COND, *LPNET_EHOME_DEV_LOG_COND;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_ALARM_HOST_LOG_COND
{
DWORD dwMajorType; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2-<2D><EFBFBD><ECB3A3>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4-<2D>¼<EFBFBD><C2BC><EFBFBD>0xffff-ȫ<><C8AB>
DWORD dwMinorType; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD><EBB6A8><EFBFBD><EFBFBD>ͬ
NET_EHOME_TIME struStartTime; //<2F><>ʼʱ<CABC><CAB1>
NET_EHOME_TIME struStopTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwStartIndex; //<2F><>ѯ<EFBFBD><D1AF>ʼλ<CABC><CEBB>
DWORD dwMaxFileCountPer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫȷ<D2AA><C8B7>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E7BBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ8
BYTE byLocalOrUTC; //0-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD>豸OSDʱ<44><CAB1> 1-struStartTime<6D><65>struStopTime<6D>У<EFBFBD><D0A3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>UTCʱ<43><CAB1>
BYTE byRes1[63];
}NET_EHOME_ALARM_HOST_LOG_COND, *LPNET_EHOME_ALARM_HOST_LOG_COND;
//<2F>ϰ<EFBFBD><CFB0><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
typedef struct tagNET_EHOME_FINDDATA
{
DWORD dwSize;
char szFileName[MAX_FILE_NAME_LEN]; //<2F>ļ<EFBFBD><C4BC><EFBFBD>
NET_EHOME_TIME struStartTime; //<2F>ļ<EFBFBD><C4BC>Ŀ<EFBFBD>ʼʱ<CABC><CAB1>
NET_EHOME_TIME struStopTime; //<2F>ļ<EFBFBD><C4BC>Ľ<EFBFBD><C4BD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwFileSize; //<2F>ļ<EFBFBD><C4BC>Ĵ<EFBFBD>С
DWORD dwFileMainType; //¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFileSubType; //¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFileIndex; //¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[128];
}NET_EHOME_FINDDATA, *LPNET_EHOME_FINDDATA;
//¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
typedef struct tagNET_EHOME_REC_FILE
{
DWORD dwSize;
char sFileName[MAX_FILE_NAME_LEN]; //<2F>ļ<EFBFBD><C4BC><EFBFBD>
NET_EHOME_TIME struStartTime; //<2F>ļ<EFBFBD><C4BC>Ŀ<EFBFBD>ʼʱ<CABC><CAB1>
NET_EHOME_TIME struStopTime; //<2F>ļ<EFBFBD><C4BC>Ľ<EFBFBD><C4BD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwFileSize; //<2F>ļ<EFBFBD><C4BC>Ĵ<EFBFBD>С
DWORD dwFileMainType; //¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFileSubType; //¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFileIndex; //¼<><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
BYTE byTimeDiffH; //struStartTime<6D><65>struStopTime<6D><65><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>׼ʱ<D7BC>䣨UTC<54><43><EFBFBD><EFBFBD>ʱ<EFBFBD>Сʱ<D0A1><CAB1><EFBFBD><EFBFBD>-12 ... +14,0xff<66><66>ʾ<EFBFBD><CABE>Ч
BYTE byTimeDiffM; //struStartTime<6D><65>struStopTime<6D><65><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>׼ʱ<D7BC>䣨UTC<54><43><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EEA3A8><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>-30,0, 30, 45, 0xff<66><66>ʾ<EFBFBD><CABE>Ч
BYTE byRes[126];
}NET_EHOME_REC_FILE, *LPNET_EHOME_REC_FILE;
//ͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD>Ϣ
typedef struct tagNET_EHOME_PIC_FILE
{
DWORD dwSize;
char sFileName[MAX_FILE_NAME_LEN]; //<2F>ļ<EFBFBD><C4BC><EFBFBD>
NET_EHOME_TIME struPicTime; //ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
DWORD dwFileSize; //<2F>ļ<EFBFBD><C4BC>Ĵ<EFBFBD>С
DWORD dwFileMainType; //ͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFileIndex; //ͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
BYTE byTimeDiffH; //struPicTime<6D><65><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>׼ʱ<D7BC>䣨UTC<54><43><EFBFBD><EFBFBD>ʱ<EFBFBD>Сʱ<D0A1><CAB1><EFBFBD><EFBFBD>-12 ... +14,0xff<66><66>ʾ<EFBFBD><CABE>Ч
BYTE byTimeDiffM; //struPicTime<6D><65><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>׼ʱ<D7BC>䣨UTC<54><43><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EEA3A8><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>-30,0, 30, 45, 0xff<66><66>ʾ<EFBFBD><CABE>Ч
BYTE byRes[126];
}NET_EHOME_PIC_FILE, *LPNET_EHOME_PIC_FILE;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct tagNET_EHOME_FLOW_INFO
{
DWORD dwSize;
DWORD dwFlowValue; //<2F><><EFBFBD><EFBFBD>ֵ
DWORD dwFlowIndex; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[128];
}NET_EHOME_FLOW_INFO, *LPNET_EHOME_FLOW_INFO;
//<2F><EFBFBD><E8B1B8>־<EFBFBD><D6BE>Ϣ
#define MAX_LOG_INFO_LEN 8*1024 //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_DEV_LOG
{
NET_EHOME_TIME struLogTime; //<2F><>־ʱ<D6BE><CAB1>
DWORD dwMajorType; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2-<2D><EFBFBD><ECB3A3>3-<2D><><EFBFBD><EFBFBD>
DWORD dwMinorType; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD><EBB6A8><EFBFBD><EFBFBD>ͬ
DWORD dwParamType; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>󲿷ֱ<F3B2BFB7>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ֵΪ0
char sLocalUser[NAME_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
char sRemoteUser[NAME_LEN]; //Զ<><D4B6><EFBFBD>û<EFBFBD>
char sIPAddress[128]; //Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ
DWORD dwChannelNo; //ͨ<><CDA8><EFBFBD><EFBFBD>
DWORD dwHardDiskNo; //Ӳ<>̺<EFBFBD>
DWORD dwAlarmInputChanNo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
DWORD dwAlarmOutputChanNo; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
char sLogContext[MAX_LOG_INFO_LEN]; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
BYTE byTimeDiffH; //struLogTime<6D><65><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>׼ʱ<D7BC>䣨UTC<54><43><EFBFBD><EFBFBD>ʱ<EFBFBD>Сʱ<D0A1><CAB1><EFBFBD><EFBFBD>-12 ... +14,0xff<66><66>ʾ<EFBFBD><CABE>Ч
BYTE byTimeDiffM; //struLogTime<6D><65><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>׼ʱ<D7BC>䣨UTC<54><43><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EEA3A8><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>-30,0, 30, 45, 0xff<66><66>ʾ<EFBFBD><CABE>Ч
BYTE byRes[62];
}NET_EHOME_DEV_LOG, *LPNET_EHOME_DEV_LOG;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE>Ϣ
typedef struct tagNET_EHOME_ALARM_HOST_LOG
{
NET_EHOME_TIME struLogTime; //<2F><>־ʱ<D6BE><CAB1>
DWORD dwMajorType; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2-<2D><EFBFBD><ECB3A3>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4-<2D>¼<EFBFBD>
DWORD dwMinorType; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD><EBB6A8><EFBFBD><EFBFBD>ͬ
DWORD dwParamType; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>󲿷ֱ<F3B2BFB7>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>ֵΪ0
char sUserName[NAME_LEN]; //<2F>û<EFBFBD><C3BB><EFBFBD>
char sIPAddress[128]; //Զ<><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ
char sLogContext[MAX_LOG_INFO_LEN]; //<2F><>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
BYTE byTimeDiffH; //struLogTime<6D><65><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>׼ʱ<D7BC>䣨UTC<54><43><EFBFBD><EFBFBD>ʱ<EFBFBD>Сʱ<D0A1><CAB1><EFBFBD><EFBFBD>-12 ... +14,0xff<66><66>ʾ<EFBFBD><CABE>Ч
BYTE byTimeDiffM; //struLogTime<6D><65><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>׼ʱ<D7BC>䣨UTC<54><43><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EEA3A8><EFBFBD>ӣ<EFBFBD><D3A3><EFBFBD>-30,0, 30, 45, 0xff<66><66>ʾ<EFBFBD><CABE>Ч
BYTE byRes[62];
}NET_EHOME_ALARM_HOST_LOG, *LPNET_EHOME_ALARM_HOST_LOG;
NET_DVR_API LONG CALLBACK NET_ECMS_StartFindFile(LONG lUserID, LPNET_EHOME_FINDCOND pFindCond); //<2F><>֧<EFBFBD><D6A7>¼<EFBFBD><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ͼƬ<CDBC>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ
NET_DVR_API LONG CALLBACK NET_ECMS_FindNextFile(LONG lHandle, LPNET_EHOME_FINDDATA pFindData); //<2F><>֧<EFBFBD><D6A7>¼<EFBFBD><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ѯ
NET_DVR_API LONG CALLBACK NET_ECMS_StartFindFile_V11(LONG lUserID, LONG lSearchType, LPVOID pFindCond, DWORD dwCondSize);
NET_DVR_API LONG CALLBACK NET_ECMS_FindNextFile_V11(LONG lHandle, LPVOID pFindData, DWORD dwDataSize);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopFindFile(LONG lHandle);
typedef struct tagNET_EHOME_PLAYBACK_INFO_IN
{
DWORD dwSize;
DWORD dwChannel; //<2F>طŵ<D8B7>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
BYTE byPlayBackMode; //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD>ģʽ 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
BYTE byStreamPackage; //<2F>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ 0<><30>PS<50><53>Ĭ<EFBFBD>ϣ<EFBFBD> 1<><31>RTP
BYTE byLinkMode; //0<><30>TCP<43><50>1<EFBFBD><31>UDP, 8-NPQ
BYTE byLinkEncrypt;
union
{
BYTE byLen[512];
struct
{
char szFileName[MAX_FILE_NAME_LEN]; //<2F>طŵ<D8B7><C5B5>ļ<EFBFBD><C4BC><EFBFBD>
DWORD dwSeekType; //0-<2D><><EFBFBD>ֽڳ<D6BD><DAB3>ȼ<EFBFBD><C8BC><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD> 1-<2D><>ʱ<EFBFBD><EFBFBD><E4A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
DWORD dwFileOffset; //<2F>ļ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>λ<EFBFBD>ÿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>أ<EFBFBD><D8A3><EFBFBD><EFBFBD><EFBFBD>dwSeekTypeΪ0<CEAA><30>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڼ<D6BD><DABC>㣬Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwFileSpan; //<2F><><EFBFBD>ص<EFBFBD><D8B5>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD><D0A1>Ϊ0ʱ<30><CAB1><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ϊֹ<CEAA><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dwSeekTypeΪ0<CEAA><30><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>ֽڼ<D6BD><DABC>㣬Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byStreamType; //1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 0ΪĬ<CEAA><C4AC><EFBFBD><EFBFBD><E8B1B8>ʲô<CAB2><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲô<CAB2><C3B4>
}struPlayBackbyName;
struct
{
NET_EHOME_TIME struStartTime; // <20><>ʱ<EFBFBD><CAB1><EFBFBD>طŵĿ<C5B5>ʼʱ<CABC><CAB1>
NET_EHOME_TIME struStopTime; // <20><>ʱ<EFBFBD><CAB1><EFBFBD>طŵĽ<C5B5><C4BD><EFBFBD>ʱ<EFBFBD><CAB1>
BYTE byLocalOrUTC; //0-<2D><EFBFBD><E8B1B8><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD>豸OSDʱ<44><CAB1> 1-UTCʱ<43><CAB1>
BYTE byDuplicateSegment; //byLocalOrUTCΪ1ʱ<31><CAB1>Ч 0-<2D>ظ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ε<EFBFBD>ǰ<EFBFBD><C7B0> 1-<2D>ظ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>
BYTE byStreamType; //1 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 0ΪĬ<CEAA><C4AC><EFBFBD><EFBFBD><E8B1B8>ʲô<CAB2><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲô<CAB2><C3B4>
BYTE byHls; //HLS<4C>طţ<D8B7>0-<2D><><EFBFBD><EFBFBD>1-<2D><>
}struPlayBackbyTime;
}unionPlayBackMode;
NET_EHOME_IPADDRESS struStreamSever; //<2F><>ý<EFBFBD><C3BD><EFBFBD><EFBFBD>ַ
}NET_EHOME_PLAYBACK_INFO_IN, *LPNET_EHOME_PLAYBACK_INFO_IN;
typedef struct tagNET_EHOME_PLAYBACK_INFO_OUT
{
LONG lSessionID; //ĿǰЭ<C7B0>鲻֧<E9B2BB>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD>-1
LONG lHandle; //<2F><><EFBFBD><EFBFBD><EFBFBD>˻ط<CBBB><D8B7><EFBFBD>ص<EFBFBD>֮<EFBFBD>󣬸<EFBFBD>ֵΪ<D6B5><CEAA>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʶ
DWORD dwFileLen;
BYTE byRes[120];
}NET_EHOME_PLAYBACK_INFO_OUT, *LPNET_EHOME_PLAYBACK_INFO_OUT;
typedef struct tagNET_EHOME_PUSHPLAYBACK_IN
{
DWORD dwSize;
LONG lSessionID;
BYTE byKeyMD5[32];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կ,<2C><><EFBFBD><EFBFBD>MD5
BYTE byRes[96];
} NET_EHOME_PUSHPLAYBACK_IN, *LPNET_EHOME_PUSHPLAYBACK_IN;
typedef struct tagNET_EHOME_PUSHPLAYBACK_OUT
{
DWORD dwSize;
LONG lHandle;
BYTE byRes[124];
} NET_EHOME_PUSHPLAYBACK_OUT, *LPNET_EHOME_PUSHPLAYBACK_OUT;
typedef struct tagNET_EHOME_STOPPLAYBACK_PARAM
{
LONG lSessionID;
LONG lHandle;
BYTE byRes[120];
}NET_EHOME_STOPPLAYBACK_PARAM, *LPNET_EHOME_STOPPLAYBACK_PARAM;
typedef struct tagNET_EHOME_PLAYBACK_PAUSE_RESTART_PARAM
{
LONG lSessionID;
LONG lHandle; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻ط<CBBB><D8B7><EFBFBD>ص<EFBFBD>֮<EFBFBD>󣬸<EFBFBD>ֵΪ<D6B5><CEAA>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[120];
}NET_EHOME_PLAYBACK_PAUSE_RESTART_PARAM, *LPNET_EHOME_PLAYBACK_PAUSE_RESTART_PARAM;
typedef enum tagENUM_NET_EHOME_PLAYBACK_OPERATE_MODE
{
PLAYBACK_OPERATE_UNKNOW = -1, //<2F><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
PLAYBACK_OPERATE_PAUSE = 0, //<2F><>ͣ<EFBFBD>ط<EFBFBD>,<2C><>ӦpOperateParam<61><EFBFBD><E1B9B9>NET_EHOME_PLAYBACK_PAUSE_RESTART_PARAM
PLAYBACK_OPERATE_RESTART = 1, //<2F>ָ<EFBFBD><D6B8>طţ<D8B7><C5A3><EFBFBD>ӦpOperateParam<61><EFBFBD><E1B9B9>NET_EHOME_PLAYBACK_PAUSE_RESTART_PARAM
PLAYBACK_OPERATE_FAST = 2,
PLAYBACK_OPERATE_SLOW = 3
}ENUM_NET_EHOME_PLAYBACK_OPERATE_MODE;
NET_DVR_API BOOL CALLBACK NET_ECMS_StartPlayBack(LONG lUserID, LPNET_EHOME_PLAYBACK_INFO_IN pPlayBackInfoIn, LPNET_EHOME_PLAYBACK_INFO_OUT pPlayBackInfoOut);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopPlayBack(LONG lUserID, LONG lSessionID);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopPlayBackEx(LONG iUserID, LPNET_EHOME_STOPPLAYBACK_PARAM pStopParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_StartPushPlayBack(LONG lUserID, LPNET_EHOME_PUSHPLAYBACK_IN pPushInfoIn, LPNET_EHOME_PUSHPLAYBACK_OUT pPushInfoOut);
NET_DVR_API BOOL CALLBACK NET_ECMS_PlayBackOperate(LONG iUserID, ENUM_NET_EHOME_PLAYBACK_OPERATE_MODE enumMode, void* pOperateParam);
//<2F><>̨<EFBFBD><CCA8><EFBFBD>ؽṹ<D8BD><E1B9B9>
#define NET_EHOME_PTZ_CTRL 1000 //<2F>ƾ<EFBFBD><C6BE><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_PRESET_CTRL 1001 //Ԥ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_PZIN 1002 //3D<33><44>ѡ<EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>С
#define NET_EHOME_PTRACK 1003 //3D<33><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum
{
PTZ_UP = 0, //<2F><><EFBFBD><EFBFBD>
PTZ_DOWN, //<2F><><EFBFBD><EFBFBD>
PTZ_LEFT, //<2F><><EFBFBD><EFBFBD>
PTZ_RIGHT, //<2F><><EFBFBD><EFBFBD>
PTZ_UPLEFT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PTZ_DOWNLEFT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PTZ_UPRIGHT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PTZ_DOWNRIGHT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PTZ_ZOOMIN, //<2F><EFBFBD><E4BDB9>
PTZ_ZOOMOUT, //<2F><EFBFBD><E4BDB9>
PTZ_FOCUSNEAR, //<2F>۽<EFBFBD><DBBD><EFBFBD>
PTZ_FOCUSFAR, //<2F>۽<EFBFBD><DBBD><EFBFBD>
PTZ_IRISSTARTUP, //<2F><>Ȧ<EFBFBD><C8A6><EFBFBD><EFBFBD>
PTZ_IRISSTOPDOWN, //<2F><>Ȧ<EFBFBD><C8A6>С
PTZ_LIGHT, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PTZ_WIPER, //<2F><>ˢ
PTZ_AUTO //<2F>Զ<EFBFBD>
}EN_PTZ_CMD;
typedef struct tagNET_EHOME_PTZ_PARAM
{
DWORD dwSize;
BYTE byPTZCmd; //<2F><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>μ<EFBFBD>EN_PTZ_CMD
BYTE byAction; //<2F><>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-<2D><>ʼ<EFBFBD><CABC>̨<EFBFBD><CCA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-ֹͣ<CDA3><D6B9>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>
BYTE bySpeed; //<2F><>̨<EFBFBD>ٶȣ<D9B6>0-7<><37><EFBFBD><EFBFBD>ֵԽ<D6B5><D4BD><EFBFBD>ٶ<EFBFBD>Խ<EFBFBD><D4BD>
BYTE byRes[29];
}NET_EHOME_PTZ_PARAM, *LPNET_EHOME_PTZ_PARAM;
typedef struct tagNET_EHOME_PRESET_PARAM
{
DWORD dwSize;
BYTE byPresetCmd; //Ԥ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-<2D><><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ㣬2-<2D><><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ㣬3-ת<><D7AA>Ԥ<EFBFBD>õ<EFBFBD>
BYTE byRes1[3];
DWORD dwPresetIndex; //Ԥ<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes2[32];
}NET_EHOME_PRESET_PARAM, *LPNET_EHOME_PRESET_PARAM;
typedef struct tagNET_EHOME_PZIN_PARAM
{
DWORD dwSize;
BYTE byAction; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD>ϣ<EFBFBD> 1<>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD>ϣ<EFBFBD>
BYTE byRes1[3];
NET_EHOME_ZONE struArea; //<2F><>ѡ<EFBFBD><D1A1>Χ
BYTE byRes2[32];
}NET_EHOME_PZIN_PARAM, *LPNET_EHOME_PZIN_PARAM;
typedef struct tagNET_EHOME_POINT
{
DWORD dwX;
DWORD dwY;
BYTE byRes[4];
}NET_EHOME_POINT, *LPNET_EHOME_POINT;
typedef struct tagNET_EHOME_IPADDR
{
char sIpV4[16];
char sIpV6[128];
}NET_EHOME_IPADDR, *LPNET_EHOME_IPADDR;
#define MACADDR_LEN 6 //mac<61><63>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_ETHERNET
{
NET_EHOME_IPADDR struDevIP; //<2F>豸IP<49><50>ַ
NET_EHOME_IPADDR struDevIPMask; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
DWORD dwNetInterface; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1:10M<30><4D>˫<EFBFBD><CBAB> 2:10Mȫ˫<C8AB><CBAB> 3:100M<30><4D>˫<EFBFBD><CBAB> 4:100Mȫ˫<C8AB><CBAB> 6:1000Mȫ˫<C8AB><CBAB> 5:10M/100M/1000M<30><4D><EFBFBD><EFBFBD>Ӧ
WORD wDevPort; //<2F>豸SDK<44>˿ںţ<DABA>8000
WORD wMTU; // MTU<54><55><EFBFBD><EFBFBD>
BYTE byMACAddr[MACADDR_LEN]; //mac<61><63>ַ
BYTE byRes[2];
}NET_EHOME_ETHERNET,*LPNET_EHOME_ETHERNET;
#define PASSWD_LEN 16 //<2F><><EFBFBD><EFBFBD><EBB3A4>
typedef struct tagNET_EHOME_PPPOECFG
{
DWORD dwPPPoE; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>PPPOE<4F><45>1<EFBFBD><31><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
char sPPPoEUser[NAME_LEN]; //PPPoE<6F>û<EFBFBD><C3BB><EFBFBD>
char sPPPoEPassword[PASSWD_LEN]; //PPPoE<6F><45><EFBFBD><EFBFBD>
NET_EHOME_IPADDR struPPPoEIP; //PPPoE IP<49><50>ַ
}NET_EHOME_PPPOECFG,*LPNET_EHOME_PPPOECFG;
typedef struct tagNET_EHOME_NETWORK_CFG
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
NET_EHOME_ETHERNET struEtherNet; //<2F><>̫<EFBFBD><CCAB><EFBFBD><EFBFBD>
NET_EHOME_IPADDR struGateWayIP; //<2F><><EFBFBD>ص<EFBFBD>ַ
NET_EHOME_IPADDR struMultiCastIP; //<2F><EFBFBD><E0B2A5>ַ
NET_EHOME_IPADDR struDDNSServer1IP; //DDNS1<53><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
NET_EHOME_IPADDR struDDNSServer2IP; //DDNS2<53><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
NET_EHOME_IPADDR struAlarmHostIP; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
WORD wAlarmHostPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF>
WORD wIPResolverPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
NET_EHOME_IPADDR struIPResolver; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
NET_EHOME_PPPOECFG struPPPoE; //PPPoE<6F><45><EFBFBD><EFBFBD>
WORD wHTTPPort;; //Http<74>˿<EFBFBD>
BYTE byRes[674]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_NETWORK_CFG,*LPNET_EHOME_NETWORK_CFG;
typedef struct tagNET_EHOME_COMPRESSION_COND
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
DWORD dwChannelNum; //ͨ<><CDA8><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>1<EFBFBD><31>ʼ
BYTE byCompressionType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[23];
}NET_EHOME_COMPRESSION_COND,*LPNET_EHOME_COMPRESSION_COND;
typedef struct tagNET_EHOME_COMPRESSION_CFG
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
BYTE byStreamType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byPicQuality; //ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0:<3A><><EFBFBD><EFBFBD> 1:<3A>ϸ<EFBFBD> 2:<3A>е<EFBFBD> 3:<3A><> 4:<3A>ϵ<EFBFBD> 5:<3A><><EFBFBD><EFBFBD>
BYTE byBitRateType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes1; //<2F><><EFBFBD><EFBFBD>
DWORD dwResolution; //<2F>ֱ<EFBFBD><D6B1>ʣ<EFBFBD>0:DCIF 1:CIF 2:QCIF 3:4CIF 4:2CIF 6:QVGA<47><41>320x240<34><30> 16:VGA 17:UXGA 18:SVGA 19:HD720p 20:hd900 21:XVGA 22:SXGAp(1360*1024)
//27:1080P(1920*1080) 28:2560x1920 /*500W*/ 29:1600x304 30:2048x1536 /*300W*/
//31:2448x2048/*500W*/ 32:2448x1200 33:2448x800 34:XGA/*(1024*768)*/
//35:SXGA/*(1280*1024)*/ 36:WD1/*(960*576/960*480)*/ 37:HD1080I 38-WXGA(1440*900)<29><>
//39-HD_F(1920*1080/1280*720)<29><>40-HD_H(1920*540/1280*360)<29><> 41-HD_Q(960*540/630*360)<29><>
//42-2336*1744<34><34> 43-1920*1456<35><36>44-2592*2048<34><38> 45-3296*2472<37><32>46-1376*768<36><38>47-1366*768,
//48-1360*768, 49-WSXGA+<2B><>50-720*720<32><30>51-1280*1280<38><30>52-2048*768<36><38>53-2048*2048
//54-2560x2048, 55-3072x2048 , 56-2304*1296 57-WXGA(1280*800), 58-1600*600
//59-2592*1944 60-2752*2208, 61-384*288, 62-4000*3000, 63-4096*2160, 64-3840*2160,
//65-4000*2250, 66-3072*1728,
DWORD dwVideoBitRate; //0-32K 1-48k 2-64K 3-80K 4-96K 5-128K 6-160k 7-192K 8-224K 9-256K 10-320K 11-384K 12-448K 13-512K 14-640K 15-768K 16-896K 17-1024K 18-1280K 19-1536K 20-1792K 21-2048K 22-<2D>Զ<EFBFBD><D4B6><EFBFBD>
DWORD dwMaxBitRate; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwVideoFrameRate; //<2F><>Ƶ֡<C6B5>ʣ<EFBFBD>4<EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0:ȫ֡<C8AB><D6A1> 1:1/16 2:1/8 3:1/4 4:1/2 5:1 6:2 7:4 8:6 9:8 10:10 11:12 12:16 13:20 14:15 15:18 16:22
WORD wIntervalFrameI; // I֡<49><D6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ1~400
BYTE byIntervalBPFrame; //֡<><D6A1><EFBFBD><EFBFBD> 0:BBP 1<><31>BP 2:P
BYTE byRes[41]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_COMPRESSION_CFG,*LPNET_EHOME_COMPRESSION_CFG;
#define MAX_TIME_SEGMENT 8 //ʱ<><CAB1><EFBFBD><EFBFBD>,ehomeЭ<65><D0AD>ֻ֧<D6BB><D6A7>4<EFBFBD><34>
#define MAX_ANALOG_ALARMOUT 32 //<2F><><EFBFBD><EFBFBD>32·ģ<C2B7><EFBFBD><E2B1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define MAX_ANALOG_CHANNUM 32 //<2F><><EFBFBD><EFBFBD>32<33><32>ģ<EFBFBD><C4A3>ͨ<EFBFBD><CDA8>
#define MAX_DIGIT_CHANNUM 480 //<2F><><EFBFBD><EFBFBD>480<38><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B1A3>
typedef struct tagNET_EHOME_ALARM_TIME_COND
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
BYTE byAlarmType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-<2D>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>⣬1-<2D><>Ƶ<EFBFBD><C6B5>ʧ<EFBFBD><CAA7>2-<2D>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬4-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>9-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byWeekday; //0-Mon<6F><6E>1-Tues<65><73>2-Wed<65><64>3-Thur<75><72>4-Fri<72><69>5-Sat<61><74>6-Sun
BYTE byRes1[2];
DWORD dwChannel; //ͨ<><CDA8><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>1<EFBFBD><31>ʼ
BYTE byRes2[20];
}NET_EHOME_ALARM_TIME_COND,*LPNET_EHOME_ALARM_TIME_COND;
typedef struct tagNET_EHOME_SCHEDTIME
{
BYTE byStartHour; //<2F><>ʼʱ<CABC>䣺ʱ
BYTE byStartMin; //<2F><>ʼʱ<CABC><EFBFBD><E4A3BA>
BYTE byStopHour; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>䣺ʱ
BYTE byStopMin; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3BA>
}NET_EHOME_SCHEDTIME,*LPNET_EHOME_SCHEDTIME;
typedef struct tagNET_EHOME_ALARM_TIME_CFG
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
NET_EHOME_SCHEDTIME struSchedTime[MAX_TIME_SEGMENT];//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
BYTE bySchedTimeCount; //ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[43];
}NET_EHOME_ALARM_TIME_CFG,*LPNET_EHOME_ALARM_TIME_CFG;
typedef struct tagNET_EHOME_ALARMOUT_CFG
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
BYTE sAlarmOutName[NAME_LEN];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WORD wAlarmOutDelay; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>0<EFBFBD><30>5<EFBFBD>룻1<EBA3BB><31>10<31>룻 2<><32>30<33>룻 3<><33>1<EFBFBD>֣<EFBFBD> 4<><34>2<EFBFBD>֣<EFBFBD> 5<><35>5<EFBFBD>֣<EFBFBD> 6<><36>10<31>֣<EFBFBD> 7<><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[26]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_ALARMOUT_CFG,*LPNET_EHOME_ALARMOUT_CFG;
typedef struct tagNET_EHOME_ALARMOUT_STATUS_CFG
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
BYTE byAlarmOutStatus; //1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-<2D>رձ<D8B1><D5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[11];
}NET_EHOME_ALARMOUT_STATUS_CFG,*LPNET_EHOME_ALARMOUT_STATUS_CFG;
typedef struct tagNET_EHOME_ALARMIN_COND
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
DWORD dwAlarmInNum; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>1<EFBFBD><31>ʼ
DWORD dwPTZChan; // PTZ<54><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶͨ<C6B5><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><>1<EFBFBD><31>ʼ
BYTE byRes[20];
}NET_EHOME_ALARMIN_COND,*LPNET_EHOME_ALARMIN_COND;
typedef struct tagNET_EHOME_LINKAGE_ALARMOUT
{
DWORD dwAnalogAlarmOutNum; //ֻ<><D6BB><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD><E2B1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byAnalogAlarmOut[MAX_ANALOG_ALARMOUT]; //ģ<><EFBFBD><E2B1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byRes[5000]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><D0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>IP<49><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}NET_EHOME_LINKAGE_ALARMOUT,*LPNET_EHOME_LINKAGE_ALARMOUT;
typedef struct tagNET_EHOME_LINKAGE_PTZ
{
BYTE byUsePreset; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD>õ㣬0<E3A3AC><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byUseCurise; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ѳ<EFBFBD><D1B2><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byUseTrack; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ù켣<C3B9><ECBCA3>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byRes1; //<2F><><EFBFBD><EFBFBD>
WORD wPresetNo; //Ԥ<>õ<EFBFBD><C3B5>ţ<EFBFBD><C5A3><EFBFBD>Χ<EFBFBD><CEA7>1~256<35><36>Э<EFBFBD><D0AD><EFBFBD>й涨<D0B9><E6B6A8>1<EFBFBD><31>256<35><36>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸֧<E8B1B8><D6A7>300
WORD wCuriseNo; //Ѳ<><D1B2>·<EFBFBD><C2B7><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>Χ<EFBFBD><CEA7>1~16
WORD wTrackNo; //<2F><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>Χ<EFBFBD><CEA7>1~16
BYTE byRes2[6]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_LINKAGE_PTZ,*LPNET_EHOME_LINKAGE_PTZ;
typedef struct tagNET_EHOME_ALARMIN_LINKAGE_TYPE
{
BYTE byMonitorAlarm; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD><CFBE>棬0<E6A3AC><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE bySoundAlarm; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byUpload; //<2F>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ģ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byAlarmout; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>-
BYTE byEmail; //<2F>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byRes1[3]; //<2F><><EFBFBD><EFBFBD>
NET_EHOME_LINKAGE_PTZ struPTZLinkage; //PTZ<54><5A><EFBFBD><EFBFBD>
NET_EHOME_LINKAGE_ALARMOUT struAlarmOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[128];
}NET_EHOME_ALARMIN_LINKAGE_TYPE,*LPNET_EHOME_ALARMIN_LINKAGE_TYPE;
typedef struct tagNET_EHOME_RECORD_CHAN
{
BYTE byAnalogChanNum; //ֻ<><D6BB><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
BYTE byAnalogChan[MAX_ANALOG_CHANNUM]; //ģ<><C4A3>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byRes1[3]; //<2F><><EFBFBD><EFBFBD>
WORD wDigitChanNum; //ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
BYTE byDigitChan[MAX_DIGIT_CHANNUM]; //<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byRes2[62]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_RECORD_CHAN,*LPNET_EHOME_RECORD_CHAN;
typedef struct tagNET_EHOME_ALARMIN_CFG
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
BYTE sAlarmInName[NAME_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byAlarmInType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byUseAlarmIn; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD>1<EFBFBD><31>ʹ<EFBFBD><CAB9>
BYTE byRes1[2]; //<2F><><EFBFBD><EFBFBD>
NET_EHOME_ALARMIN_LINKAGE_TYPE struLinkageType; //<2F><><EFBFBD><EFBFBD>ģʽ
NET_EHOME_RECORD_CHAN struRecordChan;//<2F><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>ͨ<EFBFBD><CDA8>
BYTE byRes2[128]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_ALARMIN_CFG,*LPNET_EHOME_ALARMIN_CFG;
typedef struct tagNET_EHOME_MANUAL_IOOUT_CTRL
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
DWORD dwChan; //IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD>1<EFBFBD><31>ʼ
DWORD dwDelayTime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EBA3A9>ֵΪ0<CEAA><30>ʾһֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>ʱ<EFBFBD><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byAction; //0-<2D>رձ<D8B1><D5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[19];
}NET_EHOME_MANUAL_IOOUT_CTRL,*LPNET_EHOME_MANUAL_IOOUT_CTRL;
typedef struct tagNET_EHOME_IMAGE_CFG
{
DWORD dwSize; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>С
BYTE byHue; //ɫ<><C9AB><EFBFBD><EFBFBD>0<EFBFBD><30>255
BYTE byContrast; //<2F>Աȶ<D4B1>,0~255
BYTE byBright; //<2F><><EFBFBD>ȣ<EFBFBD>0<EFBFBD><30>255
BYTE bySaturation; //<2F><><EFBFBD>Ͷ<EFBFBD>
BYTE byRes[24];
}NET_EHOME_IMAGE_CFG,*LPNET_EHOME_IMAGE_CFG;
#define NET_EHOME_GET_NETWORK_CFG 5 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_SET_NETWORK_CFG 6 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_GET_COMPRESSION_CFG 7 //<2F><>ȡѹ<C8A1><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_SET_COMPRESSION_CFG 8 //<2F><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_GET_IMAGE_CFG 9 //<2F><>ȡͼ<C8A1><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_SET_IMAGE_CFG 10 //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_GET_ALARMIN_CFG 11 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_SET_ALARMIN_CFG 12 //<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_GET_ALARM_TIME_CFG 13 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_SET_ALARM_TIME_CFG 14 //<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_GET_ALARMOUT_CFG 15 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_SET_ALARMOUT_CFG 16 //<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_GET_ALARMOUT_STATUS_CFG 17 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
#define NET_EHOME_SET_ALARMOUT_STATUS_CFG 18 //<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
#define NET_EHOME_MANUAL_IOOUT 19 //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD>
typedef enum tagNET_CMS_ENUM_PROXY_TYPE
{
ENUM_PROXY_TYPE_NETSDK = 0, //NetSDK<44><4B><EFBFBD><EFBFBD>
ENUM_PROXY_TYPE_HTTP //HTTP<54><50><EFBFBD><EFBFBD>
}NET_CMS_ENUM_PROXY_TYPE;
typedef struct tagNET_EHOME_PT_PARAM
{
NET_EHOME_IPADDRESS struIP; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49>Ͷ˿<CDB6>
BYTE byProtocolType; //Э<><D0AD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-TCP
BYTE byProxyType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-NetSDK<44><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1-HTTP<54><50><EFBFBD><EFBFBD>
BYTE byRes[2];
}NET_EHOME_PT_PARAM, *LPNET_EHOME_Proxy_PARAM;
typedef LPNET_EHOME_Proxy_PARAM LPNET_EHOME_PT_PARAM;
typedef struct tagNET_EHOME_PASSTHROUGH_PARAM
{
DWORD dwSequence; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwUUID; //<2F>ỰID
BYTE byRes[64];
}NET_EHOME_PASSTHROUGH_PARAM, *LPNET_EHOME_PASSTHROUGH_PARAM;
typedef struct tagNET_EHOME_PTXML_PARAM
{
void* pRequestUrl; //<2F><><EFBFBD><EFBFBD>URL
DWORD dwRequestUrlLen; //<2F><><EFBFBD><EFBFBD>URL<52><4C><EFBFBD><EFBFBD>
void* pCondBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>XML<4D><4C>ʽ<EFBFBD><CABD><EFBFBD>ݣ<EFBFBD>
DWORD dwCondSize; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
void* pInBuffer; //<2F><><EFBFBD><EFBFBD><EBBBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>XML<4D><4C>ʽ<EFBFBD><CABD><EFBFBD>ݣ<EFBFBD>
DWORD dwInSize; //<2F><><EFBFBD><EFBFBD><EBBBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
void* pOutBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>XML<4D><4C>ʽ<EFBFBD><CABD><EFBFBD>ݣ<EFBFBD>
DWORD dwOutSize; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
DWORD dwReturnedXMLLen; //ʵ<>ʴ<EFBFBD><CAB4><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>XML<4D><4C><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
DWORD dwRecvTimeOut; //Ĭ<><C4AC>5000ms
DWORD dwHandle; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻ط<CBBB><D8B7><EFBFBD>ص<EFBFBD>֮<EFBFBD>󣬸<EFBFBD>ֵΪ<D6B5><CEAA>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[24]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_PTXML_PARAM, *LPNET_EHOME_PTXML_PARAM;
typedef struct tagNET_EHOME_HTTP_PARAM
{
void* pInBuffer; //<2F><><EFBFBD><EFBFBD><EBBBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>XML<4D><4C>ʽ<EFBFBD><CABD><EFBFBD>ݣ<EFBFBD>
DWORD dwInSize; //<2F><><EFBFBD><EFBFBD><EBBBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
void* pOutBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>XML<4D><4C>ʽ<EFBFBD><CABD><EFBFBD>ݣ<EFBFBD>
DWORD dwOutSize; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
DWORD dwReturnedXMLLen; //ʵ<>ʴ<EFBFBD><CAB4><EFBFBD><E8B1B8><EFBFBD>յ<EFBFBD><D5B5><EFBFBD>XML<4D><4C><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
DWORD dwRecvTimeOut; //<2F><><EFBFBD>ճ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>λms
BYTE byRes[28]; //<2F><><EFBFBD><EFBFBD>
}NET_EHOME_HTTP_PARAM, *LPNET_EHOME_HTTP_PARAM;
NET_DVR_API LONG CALLBACK NET_ECMS_StartListenProxy(LPNET_EHOME_PT_PARAM lpStru);
NET_DVR_API BOOL CALLBACK NET_ECMS_StopListenProxy(LONG lListenHandle, DWORD dwProxyType = 0);
NET_DVR_API LONG CALLBACK NET_ECMS_ConvertProtocolHttpToPassthrough(void* pSrcBuffer, DWORD dwSrcBufLen, void* pDestBuffer, DWORD dwDestBufLen, LPNET_EHOME_PASSTHROUGH_PARAM lpParam, BOOL bToPassthrough = TRUE);
typedef void (CALLBACK* PASSTHROUGHDATACALLBACK)(DWORD dwProxyType, LONG lListenHandle, void* pDeviceID, DWORD dwDevIDLen, void* pDataBuffer, DWORD dwDataLen, void* pUser);
NET_DVR_API BOOL CALLBACK NET_ECMS_SetPassthroughDataCallback(PASSTHROUGHDATACALLBACK fnPassthroughDataCb, void* pUser, DWORD dwProxyType = 0);
NET_DVR_API BOOL CALLBACK NET_ECMS_SendPassthroughData(void* pDataBuffer, DWORD dDataLen, DWORD dwProxyType = 0);
NET_DVR_API BOOL CALLBACK NET_ECMS_GetPTXMLConfig(LONG iUserID, LPNET_EHOME_PTXML_PARAM lpPTXMLParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_PutPTXMLConfig(LONG iUserID, LPNET_EHOME_PTXML_PARAM lpPTXMLParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_PostPTXMLConfig(LONG iUserID, LPNET_EHOME_PTXML_PARAM lpPTXMLParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_DeletePTXMLConfig(LONG lUserID, LPNET_EHOME_PTXML_PARAM lpPTXMLParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_ISAPIPassThrough(LONG lUserID, LPNET_EHOME_PTXML_PARAM lpParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_HTTPConfig(LONG iUserID, LPNET_EHOME_HTTP_PARAM lpParam);
NET_DVR_API BOOL CALLBACK NET_ECMS_SetSDKLocalCfg(NET_EHOME_LOCAL_CFG_TYPE enumType, void* const lpInBuff);
NET_DVR_API BOOL CALLBACK NET_ECMS_GetSDKLocalCfg(NET_EHOME_LOCAL_CFG_TYPE enumType,void* lpOutBuff);
typedef struct tagNET_EHOME_XML_REMOTE_CTRL_PARAM
{
DWORD dwSize;
void* lpInbuffer; //<2F><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwInBufferSize; //<2F><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSendTimeOut; //<2F><><EFBFBD>ݷ<EFBFBD><DDB7>ͳ<EFBFBD>ʱʱ<CAB1><CAB1>,<2C><>λms<6D><73>Ĭ<EFBFBD><C4AC>5s
DWORD dwRecvTimeOut; //<2F><><EFBFBD>ݽ<EFBFBD><DDBD>ճ<EFBFBD>ʱʱ<CAB1><CAB1>,<2C><>λms<6D><73>Ĭ<EFBFBD><C4AC>5s
void* lpOutBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwOutBufferSize; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
void* lpStatusBuffer; //״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ΪNULL
DWORD dwStatusBufferSize; //״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
BYTE byRes[16];
}NET_EHOME_XML_REMOTE_CTRL_PARAM, *LPNET_EHOME_XML_REMOTE_CTRL_PARAM;
NET_DVR_API BOOL CALLBACK NET_ECMS_XMLRemoteControl(LONG lUserID, LPNET_EHOME_XML_REMOTE_CTRL_PARAM lpCtrlParam, DWORD dwCtrlSize);
#define EHOME_CMSALARM_EXCEPTION 0x105 //CMS<4D><53><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD><EFBFBD>
NET_DVR_API BOOL CALLBACK NET_ECMS_SetExceptionCallBack(DWORD dwMessage, HANDLE hWnd, void (CALLBACK* fExceptionCallBack)(DWORD dwType, LONG iUserID, LONG iHandle, void* pUser), void* pUser);
NET_DVR_API BOOL CALLBACK NET_ECMS_TranBuf(LONG lUserID, DWORD dwLength, void* pBuf);
typedef enum
{
LONG_CFG_CREATED = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD>ɹ<EFBFBD>
LONG_CFG_CREATE_FAIL, //<2F><><EFBFBD><EFBFBD><EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD>ʧ<EFBFBD><CAA7>
LONG_CFG_DATA, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
LONG_CFG_TERMINATE //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}LONG_LINK_MSG;
typedef BOOL(CALLBACK *LongConfigCallBack)(LONG iHandle, LONG_LINK_MSG enMsg, void* pOutBuffer, DWORD dwOutLen, void* pUser);
typedef struct tagNET_EHOME_LONG_CFG_INPUT
{
LongConfigCallBack fnDataCallBack;
void* pUser;
BYTE byRes[32];
}NET_EHOME_LONG_CFG_INPUT, *LPNET_EHOME_LONG_CFG_INPUT;
typedef struct tagNET_EHOME_LONG_CFG_SEND
{
void* pDataBuffer;
DWORD dwDataLen;
BYTE byRes[32];
}NET_EHOME_LONG_CFG_SEND, *LPNET_EHOME_LONG_CFG_SEND;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>˽<EFBFBD><CBBD>Э<EFBFBD><D0AD> begin
#define NET_EHOME_S2C_TIME_ADJUST 0x9 //<2F>ն<EFBFBD>Уʱ
#define NET_EHOME_S2C_SEND_ERRCODE 0xD //<2F><><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_SET_SERVER_INFO 0x18 //<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ն<EFBFBD>
#define NET_EHOME_S2C_GET_TERMINAL_INFO 0x19 //<2F><>ȡ<EFBFBD>ն<EFBFBD><D5B6><EFBFBD>Ϣ
#define NET_EHOME_S2C_LOGOUT 0x20 //֪ͨ<CDA8>ն˵dz<CBB5><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_POST_SCHEDULE 0x50 //<2F>ճ<EFBFBD><D5B3>·<EFBFBD>
#define NET_EHOME_S2C_TERMINALCONTROL_V20 0x51 //<2F>ն<EFBFBD><D5B6><EFBFBD><E8B1B8><EFBFBD><EFBFBD>V20
#define NET_EHOME_S2C_GET_CAP_SUPPORTEDCMD 0x52 //<2F><>ȡ<EFBFBD>ն<EFBFBD>֧<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_TERMINALCONTROL 0x53 //<2F>ն<EFBFBD><D5B6><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_PLAYCONTROL 0x54 //<2F>ն˲<D5B6><CBB2>ſ<EFBFBD><C5BF><EFBFBD>
#define NET_EHOME_S2C_SET_IPCINFO 0x55 //<2F><><EFBFBD><EFBFBD>IPC<50><43>Ϣ
#define NET_EHOME_S2C_GET_WORKSTATUS 0x56 //<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬
#define NET_EHOME_S2C_VERSIONUPGRADE 0x57 //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_SETPLAYERPARAM 0x58 //<2F><><EFBFBD><EFBFBD><EFBFBD>ն˲<D5B6><CBB2>Ų<EFBFBD><C5B2><EFBFBD>
#define NET_EHOME_S2C_SETSERVERADDR 0x5B //<2F><><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD>ע<EFBFBD><D7A2><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define NET_EHOME_S2C_VERSIONUPGRADE_V20 0x5C //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD>V20
#define NET_EHOME_S2C_SET_WEATHERINFO 0x61 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_GET_SCREENSHOT 0x62 //<2F><>ȡ<EFBFBD>ն˵<D5B6><CBB5><EFBFBD>Ļ<EFBFBD><C4BB>ͼ
#define NET_EHOME_S2C_GET_DEFAULTPARAM 0x63 //<2F><>ȡ<EFBFBD>ָ<EFBFBD>Ĭ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
#define NET_EHOME_S2C_REPLACE_MATERIAL 0x64 //<2F>ز<EFBFBD><D8B2>
#define NET_EHOME_S2C_CANCEL_SCHEDULE 0x65 //ȡ<><C8A1><EFBFBD>ճ̷<D5B3><CCB7><EFBFBD>
#define NET_EHOME_S2C_SET_QUEUE_INFO 0x66 //<2F>кŹ<D0BA><C5B9><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define NET_EHOME_S2C_PUBLISH_SHOT_PIC 0x67 //<2F>·<EFBFBD><C2B7><EFBFBD>ͼͼƬ
#define NET_EHOME_S2C_GET_IPCINFO 0x68 //<2F><>ȡIPC<50><43>Ϣ
#define NET_EHOME_S2C_SET_TERMINAL_IP 0x69 //<2F><><EFBFBD><EFBFBD><EFBFBD>ն˵<D5B6>ip
#define NET_EHOME_S2C_GET_TERMINAL_IP 0x70 //<2F><>ȡ<EFBFBD>ն˵<D5B6>ip
#define NET_EHOME_S2C_SET_TERMINAL_NAME 0x71 //<2F><><EFBFBD><EFBFBD><EFBFBD>ն˵<D5B6><CBB5><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_PUBLISH_BIG_DATA 0x72 //<2F>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>8K<38><4B><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_SET_SWITCHPLAN 0x100 //<2F><>ʱ<EFBFBD><CAB1><EFBFBD>ػ<EFBFBD><D8BB>ƻ<EFBFBD><C6BB>·<EFBFBD>
#define NET_EHOME_S2C_GET_SWITCHPLAN 0x101 //<2F><>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><CAB1><EFBFBD>ػ<EFBFBD><D8BB>ƻ<EFBFBD>
#define NET_EHOME_S2C_SET_VOLUMEPLAN 0x102 //<2F><><EFBFBD>ö<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD>
#define NET_EHOME_S2C_GET_VOLUMEPLAN 0x103 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƽƻ<C6BC>
#define NET_EHOME_S2C_SET_INPUTPLAN 0x104 //<2F><>ʱ<EFBFBD><CAB1><EFBFBD>ο<EFBFBD><CEBF><EFBFBD>HDMI<4D><49><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
#define NET_EHOME_S2C_GET_INPUTPLAN 0x105 //<2F><>ȡHDMI<4D><49><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB>л<EFBFBD><D0BB>ƻ<EFBFBD>
#define NET_EHOME_S2C_SET_CHARACTER 0x106 //<2F><><EFBFBD>ն˲岥<CBB2><E5B2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define NET_EHOME_S2C_GET_CHARACTER 0x107 //<2F><>ȡ<EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>ڲ岥<DAB2><E5B2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define NET_EHOME_S2C_RETRANSMIT_TO_TERM 0x108 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD>
#define NET_EHOME_S2C_TRANS_WITH_RET 0x10A //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD>ն˲<D5B6><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_SET_ADB_CFG 0x110 //<2F><><EFBFBD><EFBFBD>ADB<44><42><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_GET_ADB_CFG 0x111 //<2F><>ȡADB<44><42><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_SET_TIEM_ZONE 0x112 //<2F><><EFBFBD><EFBFBD><EFBFBD>ն˵<D5B6>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϣ
#define NET_EHOME_S2C_GET_TIME_ZONE 0x113 //<2F><>ȡ<EFBFBD>ն˵<D5B6>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϣ
#define NET_EHOME_S2C_SET_SADP 0x114 //<2F><><EFBFBD><EFBFBD><EFBFBD>ն˵<D5B6>SADP<44><50>Ϣ
#define NET_EHOME_S2C_GET_SADP 0x115 //<2F><>ȡ<EFBFBD>ն˵<D5B6>SADP<44><50>Ϣ
#define NET_EHOME_S2C_GET_COMPONENT 0x116 //<2F><>ȡ<EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
#define NET_EHOME_S2C_PUBLISH_XML 0x200 //<2F>ճ̡<D5B3><CCA1><EFBFBD><E5B2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>XML͸<4C><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ר<CCA8>ã<EFBFBD>
#define NET_EHOME_S2C_SCREEN_SHOT 0x201 //<2F>ն˽<D5B6><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ר<CCA8>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>Ϊ˫<CEAA><CBAB><EFBFBD><EFBFBD><EFBFBD>նˣ<D5B6><CBA3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_SCREEN_SHOT_SECOND 0x202 //<2F>ն˽<D5B6><CBBD><EFBFBD><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD>ն˽<D5B6><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_GET_VCA_VERSION 0x100034 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ܿ<EFBFBD><DCBF><EFBFBD><E6B1BE>
#define NET_EHOME_S2C_GET_VCA_MASK_REGION 0x100054 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_SET_VCA_MASK_REGION 0x100055 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_SET_CALIBRATION 0x100080 //<2F><><EFBFBD>ñ궨<C3B1><EAB6A8><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_GET_CALIBRATION 0x100081 //<2F><>ȡ<EFBFBD><EFBFBD><EAB6A8><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_GET_PDC_RULECFG_V42 0x113427 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_SET_PDC_RULECFG_V42 0x113428 //<2F><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define NET_EHOME_S2C_GET_CAMERA_SETUPCFG 0x11350d //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װλ<D7B0><CEBB>
#define NET_EHOME_S2C_SET_CAMERA_SETUPCFG 0x11350e //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װλ<D7B0><CEBB>
#define NET_EHOME_S2C_GET_FACESNAPCFG 0x115001 //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ץ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
#define NET_EHOME_S2C_SET_FACESNAPCFG 0x115002 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
#define NET_EHOME_S2C_GET_VCA_CTRLINFO_CFG 0x11503e //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ܿ<EFBFBD><DCBF>Ʋ<EFBFBD><C6B2><EFBFBD>
#define NET_EHOME_S2C_SET_VCA_CTRLINFO_CFG 0x11503f //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><DCBF>Ʋ<EFBFBD><C6B2><EFBFBD>
#define NET_EHOME_MAX_TYPE_LEN 32 //ͨ<>ó<EFBFBD><C3B3><EFBFBD>
#define NET_EHOME_MAX_NAME_LEN 64 //<2F><><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>
#define NET_EHOME_MAX_TERM_NAME_LEN 100 //<2F>ն˵<D5B6><CBB5><EFBFBD><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD>
#define NET_EHOME_MAX_TEXT_MESSAGE_NUM 5 //<2F>ն<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
#define NET_EHOME_MAX_TEXT_CONTENT_NUM 1024 //<2F><EFBFBD><E5B2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>ݵij<DDB5><C4B3><EFBFBD>
#define NET_EHOME_MAX_PLATFROM_URL_LEN 256 //KMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>URL<52><4C>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD>
#define NET_EHOME_MAX_WEATHERINFO_LEN 4*1024 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>󳤶<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵķ<DDB5><C4B7>ͽṹ
typedef struct tagNET_EHOME_BINARY_SEND_DATA
{
DWORD dwSize;
void* lpInBuffer;
DWORD dwInBufferSize;
DWORD dwRecvTimeOut; //<2F><><EFBFBD>ճ<EFBFBD>ʱʱ<CAB1><CAB1>
BYTE byRes[64];
}NET_EHOME_BINARY_SEND_DATA, *LPNET_EHOME_BINARY_SEND_DATA;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĽ<DDB5><C4BD>ս
typedef struct tagNET_EHOME_BINARY_RECV_DATA
{
DWORD dwSize;
void* lpOutBuffer;
DWORD dwOutBufferSize;
BYTE byRes[64];
}NET_EHOME_BINARY_RECV_DATA, *LPNET_EHOME_BINARY_RECV_DATA;
//<2F>ճ<EFBFBD><D5B3>·<EFBFBD>
typedef struct tagNET_EHOME_POST_SCHEDULE
{
BYTE byServerIP[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ip
DWORD dwServerPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ˿ں<CBBF>
DWORD dwScheduleID; //<2F>ճ̵<D5B3>ID<49><44><EFBFBD>½<EFBFBD><C2BD>ճ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD>
DWORD dwScheduleSeq; //<2F>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ճ<EFBFBD><D5B3>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL byIsDefaultSchedual; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ճ<EFBFBD><D5B3>Ƿ<EFBFBD><C7B7>ǵ<EFBFBD>Ƭ<EFBFBD>ճ<EFBFBD>
BYTE byRes[2];
DWORD dwTimingSchedualID; //<2F><>ʱ<EFBFBD>ճ̼ƻ<CCBC><C6BB><EFBFBD>ID<49><44><EFBFBD><EFBFBD>ʾ<EFBFBD>ն<EFBFBD><D5B6><EFBFBD>Ҫ<EFBFBD><D2AA>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>ʱ<EFBFBD>ƻ<EFBFBD>
BYTE byEffectiveTime[32]; //<2F>ճ̿<D5B3>ʼ<EFBFBD><CABC><EFBFBD>ŵ<EFBFBD>ʱ<EFBFBD><CAB1>
}NET_EHOME_POST_SCHEDULE, *LPNET_EHOME_POST_SCHEDULE;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>͵<EFBFBD><CDB5>ǽк<C7BD><D0BA><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum
{
NET_EHOME_DATA_INFO_TYPE = 1, //<2F>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_COMMAND_INFO_TYPE = 2, //<2F>кſ<D0BA><C5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_CANCEL_SHOT_PIC, //ȡ<><C8A1><EFBFBD><EFBFBD>̬<EFBFBD><CCAC>ͼ
NET_EHOME_START_CAPTURE_PIC, //<2F><>ʼץ<CABC><D7A5>
NET_EHOME_STOP_CAPTURE_PIC, //ȡ<><C8A1><EFBFBD><EFBFBD>ʾץ<CABE><D7A5>ͼƬ
}NET_EHOME_THIRD_PARTY_DATA_TYPE;
typedef enum
{
NET_EHOME_SINGLE_REFRESH_TYPE = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_WHOLE_REFRESH_TYPE = 2, //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_OTHER_REFRESH_TYPE,
}NET_EHOME_REFRESH_TYPE;
typedef struct
{
char szQueueDataValue[32];
DWORD dwQueueDataId;
}NET_EHOME_QUEUE_DATA;
typedef struct
{
NET_EHOME_QUEUE_DATA queueData[20];
}NET_EHOME_QUEUE_DATALIST;
typedef struct
{
DWORD dwQueueDataListCnt; //<2F><>
DWORD dwQueueDataCnt; //<2F><>
NET_EHOME_QUEUE_DATALIST struQueueDatalist[4];
}NET_EHOME_QUEUE_ITEM_DATALIST;
//<2F>кŹ<D0BA><C5B9><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct tagNET_EHOME_QUEUE_INFO
{
DWORD dwMaterialId; //<2F>ز<EFBFBD>ID
DWORD dwQueueId; //<2F>к<EFBFBD>ID
NET_EHOME_THIRD_PARTY_DATA_TYPE enumDataType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_REFRESH_TYPE enumRefreshType; //<2F><><EFBFBD>ݸ<EFBFBD><DDB8>·<EFBFBD>ʽ
NET_EHOME_QUEUE_ITEM_DATALIST struItemDataList; //<2F>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
}NET_EHOME_QUEUE_INFO, *LPNET_EHOME_QUEUE_INFO;
//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_SHOT_PIC
{
BYTE byServerIP[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ
DWORD dwServerPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF>
DWORD dwShotPicID; //<2F><>ͼ<EFBFBD><CDBC>ͼƬID
}NET_EHOME_SHOT_PIC, *LPNET_EHOME_SHOT_PIC;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
typedef struct tagNET_EHOME_ERRCODE_RET
{
DWORD dwCmd; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>
DWORD dwErrCode; //<2F><>Ӧ<EFBFBD><D3A6>NET_EHOME_ERROR_CODE<44><45>ֵ
}NET_EHOME_ERRCODE_RET, *LPNET_EHOME_ERRCODE_RET;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD>֮<EFBFBD><EFBFBD><E4B6A8><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>루2.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ汾<EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>
enum NET_EHOME_ERROR_CODE
{
EHOME_OK = 0,
EHOME_PASSERWORD_ERROR = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EHOME_NOT_SUPPORT = 2, //<2F>ն˲<D5B6>֧<EFBFBD><D6A7>
EHOME_USERNAME_ERROR = 3, //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EHOME_USERNAME_PASSWORD_ERROR = 4, //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EHOME_TERM_RNAME_REPEAT = 5, //<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
EHOME_TERM_SERIAL_REPEAT = 6, //<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>к<EFBFBD><D0BA>ظ<EFBFBD>
EHOME_PARAM_ERROR = 7, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EHOME_TERM_RECEIVING = 8//<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum NET_EHOME_CONTROL_TYPE
{
NET_EHOME_CONTROL_STARTPLAY = 1, //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
NET_EHOME_CONTROL_STOPPLAY, //ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
NET_EHOME_CONTROL_INSERT, //<2F>
NET_EHOME_CONTROL_STOPINSERT, //ֹͣ<CDA3>
NET_EHOME_CONTROL_POWERON, //<2F><><EFBFBD><EFBFBD>
NET_EHOME_CONTROL_POWEROFF, //<2F>ػ<EFBFBD>
NET_EHOME_CONTROL_REBOOT, //<2F><><EFBFBD><EFBFBD>
NET_EHOME_CONTROL_RESTORECONFIG, //<2F>ָ<EFBFBD>Ĭ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>
NET_EHOME_CONTROL_SCREENOPEN, //<2F><>Ļ<EFBFBD><C4BB>
NET_EHOME_CONTROL_SCREENCLOSE, //<2F><>Ļ<EFBFBD><C4BB>
NET_EHOME_CONTROL_PLANCTRL, //<2F><><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ػ<EFBFBD><D8BB>ƻ<EFBFBD>
NET_EHOME_CONTROL_CANCELINSERT, //ȡ<><C8A1><EFBFBD>
NET_EHOME_CONTROL_PUBLISH_STATE_SHOW, //<2F>ն˷<D5B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
NET_EHOME_CONTROL_PUBLISH_STATE_HIDE, //<2F>ն˷<D5B6><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><EFBFBD><E5B2A5><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>زĻ<D8B2><C4BB>߽<EFBFBD>Ŀ
enum NET_EHOME_PROGRAM_INSERT_TYPE
{
NET_EHOME_INSERT_TYPE_MATERIAL = 1,
NET_EHOME_INSERT_TYPE_PROGRAM,
};
//λ<><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_POSITION_INFO
{
DWORD dwPositionX;
DWORD dwPositionY;
DWORD dwHeight;
DWORD dwWidth;
}NET_EHOME_POSITION_INFO, *LPNET_EHOME_POSITION_INFO;
//<2F>ַ<EFBFBD>Ч<EFBFBD><D0A7>
typedef struct
{
DWORD dwFontSize; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
DWORD dwFontColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
DWORD dwBackColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
DWORD dwBackTransparent; //͸<><CDB8><EFBFBD><EFBFBD>
BOOL bSubtitlesEnabled; //ʹ<><CAB9><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ʾģʽ
BYTE szScrollDirection[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>left,right,up,down
DWORD dwScrollSpeed; //<2F><><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
}NET_EHOME_CHAR_EFFECT;
//<2F>岥Ч<E5B2A5><D0A7>
typedef struct
{
NET_EHOME_CHAR_EFFECT struCharEffect; //<2F>ַ<EFBFBD>Ч<EFBFBD><D0A7>
DWORD dwPageTime; //ҳ<><D2B3>ʱ<EFBFBD><CAB1>
DWORD dwScrollSpeedWeb; //ҳ<><D2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
}NET_EHOME_INSERT_EFFECT;
//<2F><EFBFBD>زĻ<D8B2><C4BB>߽<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>Ϣ
typedef struct tagNET_EHOME_INSERT_TEXT_INFO
{
DWORD dwTextNo; //<2F><EFBFBD><E5B2A5><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD>ID<49><44><EFBFBD>߽<EFBFBD>ĿID
BYTE szPlayMode[32]; //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>byTime<6D><65>byEndTime
DWORD dwCountNum; //<2F><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>֧<EFBFBD><D6A7>
DWORD dwPlayDuration; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
BYTE playEndTime[32];//<2F><><EFBFBD>ս<EFBFBD><D5BD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>в岥
DWORD dwTextSeq; //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>ļ<EFBFBD>ID<49><44>Ӧ<EFBFBD><D3A6><EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD>һ<EFBFBD><D2BB>
}NET_EHOME_INSERT_TEXT_INFO, *LPNET_EHOME_INSERT_TEXT_INFO;
//<2F><><EFBFBD><EFBFBD>ģʽ
enum NET_EHOME_POS_MODE
{
NET_EHOME_POS_MODE_ILLEGAL = 0,
NET_EHOME_POS_MODE_STANDARD = 1, //<2F><>׼<EFBFBD><D7BC><EFBFBD><EFBFBD>1920*1920
NET_EHOME_POS_MODE_RESOLUTION = 2, //<2F>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//<2F><EFBFBD><E5B2A5><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_INSERT_INFO
{
DWORD dwInsertType; //NET_EHOME_PROGRAM_INSERT_TYPE
NET_EHOME_INSERT_TEXT_INFO struMaterialInfo;
NET_EHOME_INSERT_TEXT_INFO struProgramInfo;
NET_EHOME_POSITION_INFO struPosInfo;
NET_EHOME_INSERT_EFFECT struInsertEffect;
}NET_EHOME_INSERT_INFO, *LPNET_EHOME_INSERT_INFO;
//<2F><EFBFBD><E5B2A5><EFBFBD><EFBFBD>V20
typedef struct tagNET_EHOME_INSERT_INFO_V20
{
DWORD dwInsertType; //NET_EHOME_PROGRAM_INSERT_TYPE
NET_EHOME_INSERT_TEXT_INFO struMaterialInfo;
NET_EHOME_INSERT_TEXT_INFO struProgramInfo;
NET_EHOME_POSITION_INFO struPosInfo;
NET_EHOME_INSERT_EFFECT struInsertEffect;
DWORD dwPosMode; //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD>μ<EFBFBD>ö<EFBFBD><C3B6>NET_EHOME_POS_MODE
BYTE byRes[64];
}NET_EHOME_INSERT_INFO_V20, *LPNET_EHOME_INSERT_INFO_V20;
enum NET_EHOME_PLANCTRL_TYPE
{
NET_EHOME_CONTROL_SWITCHPLAY = 1, //<2F><>ʱ<EFBFBD><CAB1><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD>Ӧ<EFBFBD><D3A6>EHome<6D><65><EFBFBD><EFBFBD>
NET_EHOME_CONTROL_VOLUMEPLAY, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>EHome<6D><65><EFBFBD><EFBFBD>
NET_EHOME_CONTROL_INPUTPLAY, //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><C6BB>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ö<EFBFBD>Ӧ<EFBFBD>ĵ<EFBFBD>EHome<6D><65><EFBFBD><EFBFBD>
};
//<2F><>ʱ<EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_PLAY_CTRLPARAM
{
NET_EHOME_PLANCTRL_TYPE enumPlanType; //<2F><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
BOOL bEnable; //<2F>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
}NET_EHOME_PLAN_CTRLPARAM, *LPNET_EHOME_PLAY_CTRLPARAM;
//<2F>ն˿<D5B6><CBBF><EFBFBD>
typedef struct tagNET_EHOME_TERMINAL_CONTROL
{
DWORD dwControlType; //NET_EHOME_CONTROL_TYPE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_INSERT_INFO struInsertInfo; //<2F><EFBFBD><E5B2A5><EFBFBD>صIJ<D8B5><C4B2><EFBFBD>
NET_EHOME_PLAN_CTRLPARAM struPlanCtrl; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>ն˵Ķ<CBB5>ʱ<EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwConnPort; //<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>˿ڣ<CBBF><DAA3><EFBFBD>ʱûʹ<C3BB><CAB9>
}NET_EHOME_TERMINAL_CONTROL, *LPNET_EHOME_TERMINAL_CONTROL;
//<2F>ն˿<D5B6><CBBF><EFBFBD>V20
typedef struct tagNET_EHOME_TERMINAL_CONTROL_V20
{
DWORD dwControlType; //NET_EHOME_CONTROL_TYPE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_INSERT_INFO_V20 struInsertInfo; //<2F><EFBFBD><E5B2A5><EFBFBD>صIJ<D8B5><C4B2><EFBFBD>
NET_EHOME_PLAN_CTRLPARAM struPlanCtrl; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>ն˵Ķ<CBB5>ʱ<EFBFBD>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD>
DWORD dwConnPort; //<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>˿ڣ<CBBF><DAA3><EFBFBD>ʱûʹ<C3BB><CAB9>
BYTE byRes[64];
}NET_EHOME_TERMINAL_CONTROL_V20, *LPNET_EHOME_TERMINAL_CONTROL_V20;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_TEXT_MESSAGE
{
DWORD dwId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϢΨһ<CEA8><D2BB><EFBFBD><EFBFBD>
BYTE szMsgName[NET_EHOME_MAX_NAME_LEN]; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
BYTE szContent[NET_EHOME_MAX_TEXT_CONTENT_NUM]; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
BYTE szBeginTime[NET_EHOME_MAX_TYPE_LEN]; //<2F><>Ϣ<EFBFBD><CFA2>ʼ<EFBFBD>岥ʱ<E5B2A5><CAB1>
BYTE szEndTime[NET_EHOME_MAX_TYPE_LEN]; //<2F><>Ϣ<EFBFBD><EFBFBD><E5B2A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}NET_EHOME_TEXT_MESSAGE, *LPNET_EHOME_TEXT_MESSAGE;
//<2F><EFBFBD><E5B2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct tagNET_EHOME_INSERT_CHARACTER
{
DWORD dwMessageCnt;
NET_EHOME_TEXT_MESSAGE struTextMessage[NET_EHOME_MAX_TEXT_MESSAGE_NUM];
BYTE szMsgPos[NET_EHOME_MAX_TYPE_LEN]; //<2F><>Ϣλ<CFA2>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>
NET_EHOME_POSITION_INFO struPosition; //<2F><>Ϣ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD>λ<EFBFBD>ã<EFBFBD>ֻ<EFBFBD><D6BB>msgPosΪ<73>Զ<EFBFBD><D4B6><EFBFBD>ʱ<EFBFBD><CAB1>Ч
NET_EHOME_CHAR_EFFECT struCharEffect; //<2F>ַ<EFBFBD>Ч<EFBFBD><D0A7>
}NET_EHOME_INSERT_CHARACTER, *LPNET_EHOME_INSERT_CHARACTER;
typedef enum
{
POWER_ON = 1, //<2F><><EFBFBD><EFBFBD>
POWER_OFF, //<2F>ػ<EFBFBD>
}NET_EHOME_POWER_ONOFF;
typedef enum
{
INVALID_PLAN = 0,
DAYLY_PLAN, //<2F>ռƻ<D5BC>
WEEKLY_PLAN, //<2F>ܼƻ<DCBC>
SELF_DEF_PLAN, //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ƻ<EFBFBD>
CIRCLE_PLAN, //<2F>ֲ<EFBFBD>
}NET_EHOME_PLAY_SCHEDULE_TYPE1;
typedef enum
{
INVALID_DAY = 0,
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY,
}NET_EHOME_DAY_OF_WEEK1;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct
{
DWORD dwId; //<2F><>ʾ<EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD>ýڵ<C3BD>
DWORD dwSwitchType; //<2F><><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǹػ<C7B9><D8BB><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD>ػ<EFBFBD>
DWORD dwSwitchDate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߹ػ<DFB9><D8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSwitchTime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߹ػ<DFB9><D8BB><EFBFBD>ʱ<EFBFBD>䣬235959 <20>ȼ<EFBFBD><C8BC><EFBFBD>23:59:59
}NET_EHOME_SWITCH_PLAN, *LPNET_EHOME_SWITCHE_PLAN;
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD>ػ<EFBFBD><D8BB>ռƻ<D5BC>
typedef struct
{
DWORD dwDayPlanCnt; //һ<><D2BB><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD><D8BB>ڵ<EFBFBD>
NET_EHOME_SWITCH_PLAN struDayPlan[16];
}NET_EHOME_SWITCH_DAILY_PLAN, *LPNET_EHOME_SWITCH_DAILY_PLAN;
typedef struct
{
DWORD dwId; //<2F><>ʾ<EFBFBD>ڼ<EFBFBD><DABC><EFBFBD>
NET_EHOME_DAY_OF_WEEK1 enumDayOfWeek; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>е<EFBFBD><D0B5><EFBFBD>һ<EFBFBD><D2BB>
NET_EHOME_SWITCH_DAILY_PLAN struDayOfWeekPlan; //<2F>ռƻ<D5BC>
}NET_EHOME_SWITCHE_DAY_OF_WEEK_PLAN, *LPNET_EHOME_SWITCH_DAY_OF_WEEK_PLAN;
//<2F>ܼƻ<DCBC>
typedef struct
{
DWORD dwWeekPlanCnt; //һ<><D2BB><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD>Ķ<EFBFBD>ʱ<EFBFBD>ƻ<EFBFBD>
NET_EHOME_SWITCHE_DAY_OF_WEEK_PLAN struWeekPlan[7];
}NET_EHOME_SWITCH_WEEKLY_PLAN, *LPNET_EHOME_SWITCH_WEEKLY_PLAN;
//<2F><><EFBFBD>͸<EFBFBD><CDB8>ն˵Ķ<CBB5>ʱ<EFBFBD><CAB1><EFBFBD>ػ<EFBFBD><D8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
NET_EHOME_PLAY_SCHEDULE_TYPE1 enumPlanType; //<2F>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>ܼƻ<DCBC><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռƻ<D5BC>
union
{
NET_EHOME_SWITCH_DAILY_PLAN struDailyPlan; //ÿ<><C3BF><EFBFBD>Ķ<EFBFBD>ʱ<EFBFBD>ƻ<EFBFBD>
NET_EHOME_SWITCH_WEEKLY_PLAN struWeeklyPlan; //ÿ<>ܵĶ<DCB5>ʱ<EFBFBD>ƻ<EFBFBD>
}unionSwitchPlan;
}NET_EHOME_SWITCH_PLAN_PARAM, *LPNET_EHOME_SWITCH_PLAN_PARAM;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
DWORD dwId; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwVolumeValue; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
DWORD dwVolumeBeginDate; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
DWORD dwVolumeBeginTime; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>ʼʱ<CABC><CAB1>235959<35>ȼ<EFBFBD><C8BC><EFBFBD>23:59:59
DWORD dwVolumeEndDate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwVolumeEndTime; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}NET_EHOME_VOLUME_PLAN, *LPNET_EHOME_VOLUME_PLAN;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD>
typedef struct
{
DWORD dwDayPlanCnt;
NET_EHOME_VOLUME_PLAN struDayPlan[8]; //ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD>
}NET_EHOME_VOLUME_DAILY_PLAN, *LPNET_EHOME_VOLUME_DAILY_PLAN;
typedef struct
{
DWORD dwId;
NET_EHOME_DAY_OF_WEEK1 enumDayOfWeek; //һ<><D2BB><EFBFBD>е<EFBFBD><D0B5><EFBFBD>һ<EFBFBD><D2BB>
NET_EHOME_VOLUME_DAILY_PLAN struDayOfWeekPlan;
}NET_EHOME_VOLUME_DAY_OF_WEEK_PLAN, *LPNET_EHOME_VOLUME_DAY_OF_WEEK_PLAN;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ܼƻ<DCBC>
typedef struct
{
DWORD dwWeekPlanCnt;
NET_EHOME_VOLUME_DAY_OF_WEEK_PLAN struWeekPlan[7];
}NET_EHOME_VOLUME_WEEKLY_PLAN, *LPNET_EHOME_VOLUME_WEEKLY_PLAN;
//<2F><><EFBFBD>͸<EFBFBD><CDB8>ն˵Ķ<CBB5>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
NET_EHOME_PLAY_SCHEDULE_TYPE1 enumPlanType;
union
{
NET_EHOME_VOLUME_DAILY_PLAN struDailyPlan; //ÿ<><C3BF><EFBFBD>Ķ<EFBFBD>ʱ<EFBFBD>ƻ<EFBFBD>
NET_EHOME_VOLUME_WEEKLY_PLAN struWeeklyPlan; //ÿ<>ܵĶ<DCB5>ʱ<EFBFBD>ƻ<EFBFBD>
}unionVolumePlan;
}NET_EHOME_VOLUME_PLAN_PARAM, *LPNET_EHOME_VOLUME_PLAN_PARAM;
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD>ij<EFBFBD><C4B3>ʱ<EFBFBD><CAB1><EFBFBD>Σ<EFBFBD><CEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļƻ<C4BC><C6BB><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_INPUT_DAY_PLAN
{
DWORD dwId;
BYTE byInputType[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>HDMI,InfoPublish,VGA
DWORD dwBeginDate; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD>
DWORD dwBeginTime; //235959 <20>ȼ<EFBFBD><C8BC><EFBFBD>23:59:59
DWORD dwEndDate; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD>ʼʱ<CABC><CAB1>
DWORD dwEndTime; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}NET_EHOME_INPUT_DAY_PLAN, *LPNET_EHOME_INPUT_DAY_PLAN;
//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ƽ̨HDMI<4D><49><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB>ռƻ<D5BC>
typedef struct tagNET_EHOME_INPUT_DAILY_PLAN
{
DWORD dwDayPlanCnt; //һ<><D2BB><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD><D9B8><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
NET_EHOME_INPUT_DAY_PLAN struDayPlan[8]; //<2F><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>8<EFBFBD><38>
}NET_EHOME_INPUT_DAILY_PLAN, *LPNET_EHOME_INPUT_DAILY_PLAN;
//HDMI<4D><49><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ijһ<C4B3><D2BB><EFBFBD>ļƻ<C4BC>
typedef struct tagNET_EHOME_INPUT_DAY_OF_WEEK_PLAN
{
DWORD dwId;
NET_EHOME_DAY_OF_WEEK1 enumDayOfWeek; //<2F><>
NET_EHOME_INPUT_DAILY_PLAN struDayOfWeekPlan;
}NET_EHOME_INPUT_DAY_OF_WEEK_PLAN, *LPNET_EHOME_INPUT_DAY_OF_WEEK_PLAN;
//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ƽ̨HDMI<4D><49><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB>ܼƻ<DCBC>
typedef struct tagNET_EHOME_INPUT_WEEKLY_PLAN
{
DWORD dwWeekPlanCnt;
NET_EHOME_INPUT_DAY_OF_WEEK_PLAN struWeekPlan[7]; //7<><37>
}NET_EHOME_INPUT_WEEKLY_PLAN, *LPNET_EHOME_INPUT_WEEKLY_PLAN;
//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>ƽ̨HDMI<4D><49><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ƻ<EFBFBD>
typedef struct tagNET_EHOME_INPUT_SELF_PLAN
{
DWORD dwSelfPlanCnt;
NET_EHOME_INPUT_DAY_PLAN struSelfPlan[8];
}NET_EHOME_INPUT_SELF_PLAN, *LPNET_EHOME_INPUT_SELF_PLAN;
//HDMI<4D><49><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB>ƻ<EFBFBD>
typedef struct tagNET_EHOME_INPUT_PLAN
{
DWORD dwId;
BYTE byPlanType[32];
union
{
NET_EHOME_INPUT_DAILY_PLAN struDailyPlan;
NET_EHOME_INPUT_WEEKLY_PLAN struWeeklyPlan;
}unionInputPlan;
}NET_EHOME_INPUT_PLAN, *LPNET_EHOME_INPUT_PLAN;
//<2F>ն˵IJ<CBB5><C4B2>Ų<EFBFBD><C5B2><EFBFBD>
typedef struct tagNET_EHOME_DISPLAY_PARAM
{
DWORD dwR; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
DWORD dwG;
DWORD dwB;
DWORD dwOffsetR; //<2F><>ƫ<EFBFBD><C6AB>
DWORD dwOffsetG;
DWORD dwOffsetB;
DWORD dwBrightnessLevel; //<2F><><EFBFBD><EFBFBD>
DWORD dwContrastLevel; //<2F>Աȶ<D4B1>
DWORD dwSharpnessLevel; //<2F><><EFBFBD><EFBFBD>
DWORD dwSaturationLevel; //<2F><><EFBFBD>Ͷ<EFBFBD>
DWORD dwHueLevel; //ɫ<><C9AB><EFBFBD><EFBFBD><EFBFBD>ϱߵIJ<DFB5><C4B2><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>֧<EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>ø<EFBFBD>ֵ
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD>
BOOL bAutoLightEnable; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5>ڣ<EFBFBD>2.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLightMode; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ȵ<EFBFBD>ֵ<EFBFBD><D6B5>2.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD>ģ<EFBFBD>
DWORD dwBackLightLevel; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL bBootLogoEnabled; //<2F><><EFBFBD><EFBFBD>Logo
DWORD dwScreenVolume; //<2F><>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>֧<EFBFBD><D6A7>
//<2F><>Ƭ<EFBFBD><C6AC>Ϣ
BOOL bDefaultScheduleEnable; //<2F><>Ƭ<EFBFBD>ճ<EFBFBD><D5B3>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
DWORD dwDefaultScheduleId; //<2F><>Ƭ<EFBFBD>ճ̵<D5B3>ID
BYTE byDefaultScheduleName[32]; //<2F><>Ƭ<EFBFBD>ճ̵<D5B3><CCB5><EFBFBD><EFBFBD><EFBFBD>
BOOL bTemperaturenable; //<2F>¶Ȱ<C2B6>ȫ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ã<EFBFBD>2.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD bSecurity; //<2F>¶ȵİ<C8B5>ȫֵ
DWORD bProtectValue; //<2F>¶ȵı<C8B5><C4B1><EFBFBD>ֵ
}NET_EHOME_DISPLAY_PARAM, *LPNET_EHOME_DISPLAY_PARAM;
//<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_PASSWORD_CFG
{
BYTE szOldPwd[32]; //<2F>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>
BYTE szNewPwd[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}NET_EHOME_PASSWORD_CFG, *LPNET_EHOME_PASSWORD_CFG;
//<2F>ն˵IJ<CBB5><C4B2><EFBFBD>
typedef struct tagNET_EHOME_PLAYER_PARAM
{
BYTE szCfgType[32]; //volume,light,logo,defaultSchedule,password,temperature,allParam
DWORD dwplayerVolume; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_DISPLAY_PARAM struDisplayParam; //<2F>ն˵IJ<CBB5><C4B2>Ų<EFBFBD><C5B2><EFBFBD>
NET_EHOME_PASSWORD_CFG struPasswordCfg; //<2F>ն˵<D5B6><CBB5><EFBFBD><EFBFBD><EFBFBD>
}NET_EHOME_PLAYER_PARAM, *LPNET_EHOME_PLAYER_PARAM;
/*<2A>ն<EFBFBD><D5B6><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
typedef struct tagNET_EHOME_DEV_DEFAULT_PARAM
{
BOOL bAutoLightEnable; //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLightMode; //<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwBackLightLevel; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwVolume; //<2F><><EFBFBD><EFBFBD>
BOOL bEnableStartLogo; //<2F><><EFBFBD><EFBFBD>LOGO<47>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
BOOL bEnableVolumeTiming; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><C6BB>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
BOOL bEnablePowerTiming; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD>ػ<EFBFBD><D8BB>ƻ<EFBFBD><C6BB>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
BOOL bDefaultScheduleEnable; //<2F><>Ƭ<EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
DWORD dwDefaultScheduleId; //<2F><>Ƭ<EFBFBD>ճ̵<D5B3>id
BYTE szDefaultScheduleName[32]; //<2F><>Ƭ<EFBFBD>ճ̵<D5B3><CCB5><EFBFBD><EFBFBD><EFBFBD>
BOOL bTemperaturenable; //<2F>¶Ȱ<C2B6>ȫ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ã<EFBFBD>2.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSecurity; //<2F>¶ȵİ<C8B5>ȫֵ
DWORD dwProtectValue; //<2F>¶ȵı<C8B5><C4B1><EFBFBD>ֵ
}NET_EHOME_DEV_DEFAULT_PARAM, *LPNET_EHOME_DEV_DEFAULT_PARAM;
//<2F>ն˵<D5B6>IP<49><50>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_TERM_DEFAULT_GATEWAY
{
BYTE szIpAddress[32]; //Ipv4<76><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE szIpv6Address[32]; //Ipv6<76><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}NET_EHOME_TERM_DEFAULT_GATEWAY, *LPNET_EHOME_TERM_DEFAULT_GATEWAY;
//<2F>ն˵<D5B6>ip<69><70>ַ<EFBFBD><D6B7>Ϣ
typedef struct tagNET_EHOME_TERM_IP_ADDRESS
{
BYTE szIpVersion[32]; //v4,v6
BYTE szIpAddress[32]; //IP<49><50>ַ
BYTE szSubnetMask[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE szIpv6Address[32]; //Ipv6<76><36>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>֧<EFBFBD><D6A7>
BYTE szBitMask[32]; //Ipv6<76><36><EFBFBD><EFBFBD>
NET_EHOME_TERM_DEFAULT_GATEWAY strDefaultGateway;
}NET_EHOME_TERM_IP_ADDRESS, *LPNET_EHOME_TERM_IP_ADDRESS;
enum NET_EHOME_TIME_ZONE
{
NET_EHOME_ZONE_GMT_LOCAL, // ʹ<>õ<EFBFBD>ǰʱ<C7B0><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_ZONE_GMT_MINUS_12,
NET_EHOME_ZONE_GMT_MINUS_11,
NET_EHOME_ZONE_GMT_MINUS_10,
NET_EHOME_ZONE_GMT_MINUS_9,
NET_EHOME_ZONE_GMT_MINUS_8,
NET_EHOME_ZONE_GMT_MINUS_7,
NET_EHOME_ZONE_GMT_MINUS_6,
NET_EHOME_ZONE_GMT_MINUS_5,
NET_EHOME_ZONE_GMT_MINUS_430,
NET_EHOME_ZONE_GMT_MINUS_4,
NET_EHOME_ZONE_GMT_MINUS_330,
NET_EHOME_ZONE_GMT_MINUS_3,
NET_EHOME_ZONE_GMT_MINUS_2,
NET_EHOME_ZONE_GMT_MINUS_1,
NET_EHOME_ZONE_GMT_0, //UTC ʱ<><CAB1>
NET_EHOME_ZONE_GMT_PLUS_1,
NET_EHOME_ZONE_GMT_PLUS_2,
NET_EHOME_ZONE_GMT_PLUS_3,
NET_EHOME_ZONE_GMT_PLUS_330,
NET_EHOME_ZONE_GMT_PLUS_4,
NET_EHOME_ZONE_GMT_PLUS_430,
NET_EHOME_ZONE_GMT_PLUS_5,
NET_EHOME_ZONE_GMT_PLUS_530,
NET_EHOME_ZONE_GMT_PLUS_545,
NET_EHOME_ZONE_GMT_PLUS_6,
NET_EHOME_ZONE_GMT_PLUS_630,
NET_EHOME_ZONE_GMT_PLUS_7,
NET_EHOME_ZONE_GMT_PLUS_8, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_ZONE_GMT_PLUS_9,
NET_EHOME_ZONE_GMT_PLUS_930,
NET_EHOME_ZONE_GMT_PLUS_10,
NET_EHOME_ZONE_GMT_PLUS_11,
NET_EHOME_ZONE_GMT_PLUS_12,
NET_EHOME_ZONE_GMT_PLUS_13,
};
//ʱ<><CAB1>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_TIME_ADJUST_PARAM
{
DWORD dwTimeZone; //<2F>ο<EFBFBD>NET_EHOME_TIME_ZONE
BYTE szTime[32]; // YYYY-MM-DD HH:MM:SS
}NET_EHOME_TIME_ADJUST_PARAM, *LPNET_EHOME_TIME_ADJUST_PARAM;
//<2F>ն<EFBFBD>ADB<44><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct tagNET_EHOME_ADB_DEBUG
{
BOOL bAdbEnable;
BYTE bySecreKey[128];
}NET_EHOME_ADB_DEBUG, *LPNET_EHOME_ADB_DEBUG;
//<2F>ն<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϣ
typedef struct tagNET_EHOME_TERM_TIME_ZONE
{
BYTE szTimeZone[32]; //ʱ<><CAB1><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>GMT+08
}NET_EHOME_TERM_TIME_ZONE, *LPNET_EHOME_TERM_TIME_ZONE;
//<2F>ն˵<D5B6>discoveryģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SADP<44>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
typedef struct tagNET_EHOME_DISCOVERY_MODE
{
BOOL bSadpMode;
}NET_EHOME_DISCOVERY_MODE, *LPNET_EHOME_DISCOVERY_MODE;
typedef enum
{
ADDRTYPE_IPV4 = 0,
ADDRTYPE_IPV6,
HOSTNAME,
}NET_EHOME_ADDRFORMAT_CMD;
typedef struct tagNET_EHOME_PUBLISH_SERVERADDR
{
NET_EHOME_ADDRFORMAT_CMD enumAddressingFormatType;
BYTE szIpAddress[NET_EHOME_MAX_TYPE_LEN];
BYTE szIpv6Address[NET_EHOME_MAX_TYPE_LEN];
BYTE szHostName[NET_EHOME_MAX_TYPE_LEN];
DWORD dwPortNo;
BYTE szUserName[NET_EHOME_MAX_TYPE_LEN];
BYTE szPassword[NET_EHOME_MAX_TYPE_LEN];
BOOL bRegStatus;
}NET_EHOME_PUBLISH_SERVERADDR, *LPNET_EHOME_PUBLISH_SERVERADDR;
typedef enum
{
NET_EHOME_NORMAL_IPC, //<2F><>ͨIPC
NET_EHOME_SMART_PASSENGER_IPC, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IPC
NET_EHOME_SMART_VALID_PASSENGER_IPC, //<2F><>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>
}NET_EHOME_IPC_TYPE;
typedef enum
{
NET_EHOME_HOST_MODE, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_IP_MODE, //IP<49><50>ַ
}NET_EHOME_ADDRESS_TYPE;
//ȡ<><C8A1>Э<EFBFBD><D0AD>
typedef enum
{
NET_EHOME_TCP = 1,
NET_EHOME_UDP,
NET_EHOME_MCAST,
}NET_EHOME_TRANSMINT_PROTOCAL;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef enum
{
NET_EHOME_MAIN = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_SUB, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_THIRD,
}NET_EHOME_STREAM_TYPE;
//<2F><><EFBFBD><EFBFBD>IPC<50><43>Ϣ
typedef struct tagNET_EHOME_IPC_INFO
{
NET_EHOME_IPC_TYPE enumIPCType; //<2F>ο<EFBFBD>NET_EHOME_IPC_TYPE
DWORD dwId;
DWORD chanNum; //ipc<70><63><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD>Ŀ<EFBFBD>е<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
NET_EHOME_ADDRESS_TYPE enumAddressType; //IP<49><50>ַ<EFBFBD><D6B7><EFBFBD>ͣ<EFBFBD><CDA3>ο<EFBFBD>NET_EHOME_ADDRESS_TYPE
BYTE szIpcState[32]; //online<6E><65>offline<6E><65><EFBFBD><EFBFBD>״̬
BYTE szHostName[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE szIpVersion[16]; //v4<76><34><EFBFBD><EFBFBD>v6
BYTE szIpAddress[32]; //ipv4<76><34>ַ
BYTE szIpv6Address[32]; //ipV6<56><36>ַ
DWORD dwPortNo; //ipc<70>Ķ˿ں<CBBF>
DWORD dwIpcChanNum; //ipcͨ<63><CDA8><EFBFBD><EFBFBD>
BYTE szUserName[52]; //ipc<70><63>½<EFBFBD>û<EFBFBD><C3BB><EFBFBD>
BYTE szPassWord[32]; //ipc<70><63>½<EFBFBD><C2BD><EFBFBD><EFBFBD>
NET_EHOME_TRANSMINT_PROTOCAL enumTransmitProtocol;//ȡ<><C8A1>Э<EFBFBD><EFBFBD>ο<EFBFBD>NET_EHOME_TRANSMINT_PROTOCAL
NET_EHOME_STREAM_TYPE enumStreamType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3>ο<EFBFBD>NET_EHOME_STREAM_TYPE
}NET_EHOME_IPC_INFO, *LPNET_EHOME_IPC_INFO;
//<2F>ն˹<D5B6><CBB9><EFBFBD>IPC<50><43>Ϣ
typedef struct tagNET_EHOME_RELATE_IPC_INFO
{
DWORD dwIpcNum; //IPC<50><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD><CBBC><EFBFBD>IPC
NET_EHOME_IPC_INFO struIpcInfo[6];
}NET_EHOME_RELATE_IPC_INFO, *LPNET_EHOME_RELATE_IPC_INFO;
//<2F><>ȡ<EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD>״̬
typedef struct tagNET_EHOME_DEV_WORK_STATUS
{
BYTE byIdentifyCode[32]; //<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>к<EFBFBD>
DWORD dwCpuUsage; //cpu<70><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwMemTotal; //<2F>ڴ<EFBFBD><DAB4>ܴ<EFBFBD>С
DWORD dwMemUsed;
DWORD dwDiskTotal; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwDiskUsed; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwTemperature; //<2F>ն<EFBFBD><D5B6><EFBFBD>
BYTE bySoftwareVersion[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>
BYTE byDspwareVersion[32]; //DSP<53><EFBFBD><E6B1BE>
BYTE byHardwareVersion[32]; //Ӳ<><D3B2><EFBFBD><EFBFBD><E6B1BE>
BYTE bySystemVersion[32]; //ϵͳ<CFB5><EFBFBD><E6B1BE>
BYTE byMacAddress[2][32]; //<2F><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL bySwitchEnable; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD>ػ<EFBFBD><D8BB>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
BOOL byVolumeEnable; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9>
DWORD dwRelateScheNo; //<2F>ճ<EFBFBD>id
BYTE byScheName[100]; //<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2>ŵ<EFBFBD><C5B5>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD>
BYTE byInstallType[32]; //vertical or horizontal<61><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>or<6F><72><EFBFBD><EFBFBD>
DWORD byResWidth; //<2F>ֱ<EFBFBD><D6B1><EFBFBD>
DWORD byResHeight; //<2F>ֱ<EFBFBD><D6B1><EFBFBD>
}NET_EHOME_DEV_WORK_STATUS, *LPNET_EHOME_DEV_WORK_STATUS;
//<2F>ն˽<D5B6><CBBD><EFBFBD>
typedef struct tagNET_EHOME_SCREEN_SHOT
{
DWORD dwServerPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF>
DWORD dwClientFdIndex; //<2F>ͻ<EFBFBD><CDBB><EFBFBD>fd<66><64><EFBFBD><EFBFBD>
}NET_EHOME_SCREEN_SHOT, *LPNET_EHOME_SCREEN_SHOT;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tcp<63><70>·Э<C2B7><D0AD>
typedef struct tagNET_EHOME_UPGRADE_CONN_PARAM
{
BYTE szServerIP[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<49><50>ַ
DWORD dwServerPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF>
}NET_EHOME_UPGRADE_CONN_PARAM, *LPNET_EHOME_UPGRADE_CONN_PARAM;
//<2F>ն˻<D5B6>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>״̬<D7B4><EFBFBD><E1B9B9>
typedef struct tagNET_EHOME_TERMINAL_UPG_ST_REPORT
{
DWORD dwLength; //<2F><EFBFBD><E1B9B9><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>
DWORD dwCheckSum; //У<><D0A3><EFBFBD><EFBFBD>
DWORD dwRetVal; //1000<30><30><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>1001<30><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1002<30><32><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>1003<30><33>ѹ<EFBFBD><D1B9>ʧ<EFBFBD>ܣ<EFBFBD>1004 APK<50><EFBFBD><E6B1BE>ƥ<EFBFBD>䣬1005 ROM<4F><EFBFBD><E6B1BE>ƥ<EFBFBD><C6A5>
DWORD dwUpgradPercent;
}NET_EHOME_TERMINAL_UPG_ST_REPORT, *LPNET_EHOME_TERMINAL_UPG_ST_REPORT;
//<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_EHOME_TERMINAL_NAME
{
BYTE szTermName[NET_EHOME_MAX_TERM_NAME_LEN];
}NET_EHOME_TERMINAL_NAME, *LPNET_EHOME_TERMINAL_NAME;
//<2F>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct tagNET_EHOME_SYSCOMPONENT_REDUCED_ADDR
{
BYTE szComponentName[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD>磺SDK
BYTE szComponentPkgName[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>磺com.hikvision.sdk<64><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ڿͻ<DABF><CDBB><EFBFBD><EFBFBD><EFBFBD>ʾ
BYTE szComponentVersion[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD>磺V2.0.2 build 20180705
DWORD dwIsEnableAutoStart; //<2F>Ƿ񿪻<C7B7><F1BFAABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ҫ<EFBFBD>ڿͻ<DABF><CDBB><EFBFBD><EFBFBD><EFBFBD>ʾ
DWORD dwIsSupportUpgrade; //<2F>Ƿ<EFBFBD>֧<EFBFBD><D6A7>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[20];
}NET_EHOME_SYSCOMPONENT_REDUCED_ADDR, *LPNET_EHOME_SYSCOMPONENT_REDUCED_ADDR;
typedef struct tagNET_EHOME_COMPONENT_GROUP_INFO
{
DWORD dwComponentNum; //ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NET_EHOME_SYSCOMPONENT_REDUCED_ADDR struSysComponentAddr[6]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
BYTE byRes[20];
}NET_EHOME_COMPONENT_GROUP_INFO, *LPNET_EHOME_COMPONENT_GROUP_INFO;
//<2F>ز<EFBFBD><D8B2>
typedef struct tagNET_EHOME_REPLACE_MATERIAL
{
BYTE szServerIP[NET_EHOME_MAX_TYPE_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
DWORD dwServerPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
DWORD dwMaterialId; //<2F>ز<EFBFBD>ID
DWORD dwMaterialSeq; //<2F>ز<EFBFBD>Seq
}NET_EHOME_REPLACE_MATERIAL, *LPNET_EHOME_REPLACE_MATERIAL;
//IPAG<41>ճ̡<D5B3><CCA1><EFBFBD><E5B2A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>XML͸<4C><CDB8>
typedef struct tagNET_EHOME_POST_PUBLISH_XML
{
BYTE szServerIP[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
DWORD szServerPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ˿ں<CBBF>
DWORD dwTerminalID; //<2F>ն<EFBFBD>ID<49><44><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwXmlUniqueSeq; //Ψһxml<6D><6C>ʾ
DWORD dwXmlSizeH; //xml<6D><6C>С<EFBFBD><D0A1>32λ
DWORD dwXmlSizeL; //xml<6D><6C>С<EFBFBD><D0A1>32λ
BYTE byStorageId[128]; //xml<6D>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
BYTE byRes[16]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>
}NET_EHOME_POST_PUBLISH_XML, *LPNET_EHOME_POST_PUBLISH_XML;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct tagNET_EHOME_WEATHER_INFO
{
BYTE byCityCode[32]; //<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
BYTE byWeatherData[4 * 1024]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}NET_EHOME_WEATHER_INFO, *LPNET_EHOME_WEATHER_INFO;
//<2F>ն˵<D5B6><CBB5><EFBFBD><EFBFBD>к<EFBFBD>
typedef struct tagNET_EHOME_IDENTIFICATION
{
BYTE bySerialNumber[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>ʱû<CAB1><C3BB>
BYTE byIdentifyCode[32]; //<2F>ն˵<D5B6><CBB5><EFBFBD><EFBFBD>кţ<D0BA><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}NET_EHOME_IDENTIFICATION, *LPNET_EHOME_IDENTIFICATION;
//<2F>ն<EFBFBD><D5B6><EFBFBD>Ϣ
typedef struct tagNET_EHOME_TERMINAL_INFO
{
NET_EHOME_IDENTIFICATION struDevIdentify;
DWORD dwNetUintType;
BYTE byDeviceID[NET_EHOME_MAX_TYPE_LEN];
BYTE byPassWord[NET_EHOME_MAX_TYPE_LEN];
BYTE byFirmWareVersion[NET_EHOME_MAX_TYPE_LEN];
BYTE byLocalIP[NET_EHOME_MAX_TYPE_LEN]; //<2F>ն<EFBFBD>ͨ<EFBFBD><CDA8>IP
DWORD dwLocalPort;
DWORD dwDevType;
DWORD dwManufacture; //0-hikvision
BOOL bDetectPackage; //1-̽<><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0-ע<><D7A2><EFBFBD><EFBFBD>
BOOL bReliableTrans; //1-֧<>ֿɿ<D6BF><C9BF><EFBFBD><EFBFBD>䣬0-<2D><>֧<EFBFBD>ֿɿ<D6BF><C9BF><EFBFBD><EFBFBD><EFBFBD>
BYTE byServerUserName[NET_EHOME_MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
BYTE byServerUserPassword[NET_EHOME_MAX_NAME_LEN]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE byTerminalName[NET_EHOME_MAX_NAME_LEN]; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD>ն˵<D5B6><CBB5><EFBFBD><EFBFBD><EFBFBD>
}NET_EHOME_TERMINAL_INFO, *LPNET_EHOME_TERMINAL_INFO;
//<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct tagNET_EHOME_RELEASE_SERVER_INFO
{
DWORD dwKeepAliveSeconds; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>䣬Ĭ<E4A3AC><C4AC>50s
BYTE byAlarmServerIP[32];
DWORD dwAlarmServerPort;
DWORD dwAlarmServerType; //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-TCP, 1-UDP<44><50>Ĭ<EFBFBD><C4AC>Ϊ0
DWORD dwAlarmServerTcpPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>˿<EFBFBD>
BYTE byNtpServerIP[32];
DWORD dwNtpServerPort;
DWORD dwNtpInterval;
BYTE byPicServerIP[32];
DWORD dwPicServerPort;
DWORD dwPicServerType;
BYTE byBlackListAddr[32];
BYTE byBlackListName[32];
DWORD dwBlackListPort;
BYTE byBlackListUser[32];
BYTE byBlackListPasswd[32];
DWORD dwTranserialSvrPort;
BOOL bReliableTransmission;
}NET_EHOME_RELEASE_SERVER_INFO, *LPNET_EHOME_RELEASE_SERVER_INFO;
//<2F>ն˽<D5B6><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ר<CCA8>ã<EFBFBD>
typedef struct tagNET_EHOME_SCREEN_SHOT_EX
{
DWORD dwServerPort; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˿ں<CBBF>
DWORD dwClientFdIndex; //<2F>ͻ<EFBFBD><CDBB><EFBFBD>fd<66><64><EFBFBD><EFBFBD>
BYTE szKmsURL[256]; //<2F>ն<EFBFBD>Ҫ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>KMS<4D><53>URL<52><4C>ַ
}NET_EHOME_SCREEN_SHOT_EX, *LPNET_EHOME_SCREEN_SHOT_EX;
//<2F>ն˽<D5B6><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؽṹ
typedef struct tagNET_EHOME_SCREEN_SHOT_RET
{
unsigned int dwConnfd; //<2F>ն˺ͷ<CBBA><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첽ͨ<ECB2BD><CDA8><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>
unsigned int dwSeq; //<2F>ն˺ͷ<CBBA><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB2BD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>ʶ
char szUUID[64]; //<2F><><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC>uuidΨһ<CEA8><D2BB>ʾ
char szPicURL[256]; //<2F><>ͼ<EFBFBD><CDBC>KMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>URL<52><4C>ַ
}NET_EHOME_SCREEN_SHOT_RET, *LPNET_EHOME_SCREEN_SHOT_RET;
NET_DVR_API BOOL CALLBACK NET_ECMS_STDBinaryCfg(LONG lUserID, LONG dwCommand, NET_EHOME_BINARY_SEND_DATA* pSendData, NET_EHOME_BINARY_RECV_DATA* pRecvData);
NET_DVR_API BOOL CALLBACK NET_ECMS_STDBinaryCtrl(LONG lUserID, LONG dwCommand, NET_EHOME_BINARY_SEND_DATA* pSendData);
/** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>˽<EFBFBD><CBBD>Э<EFBFBD><D0AD> end */
NET_DVR_API LONG CALLBACK NET_ECMS_LongConfigCreate(LONG lUserlD, LPNET_EHOME_LONG_CFG_INPUT pLongCfgInput);
NET_DVR_API BOOL CALLBACK NET_ECMS_LongConfigSend(LONG lHandle, LPNET_EHOME_LONG_CFG_SEND pSend);
NET_DVR_API BOOL CALLBACK NET_ECMS_LongConfigDestory(LONG lHandle);
NET_DVR_API BOOL CALLBACK NET_ECMS_LongConfigGetSessionId(LONG iHandle, LONG* pSessionId);
typedef struct tagNET_EHOME_ASYNC_RESP_CB_DATA
{
void* pOutBuffer; //<2F><EFBFBD><E8B1B8>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>
DWORD dwOutLen; //<2F><EFBFBD><E8B1B8>Ӧ<EFBFBD><D3A6><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
DWORD dwErrorNo; //SDK<44><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwHandle; //<2F><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ψһ<CEA8><D2BB>ʶ<EFBFBD><CAB6>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ
LONG lUserID; //<2F>û<EFBFBD>ID
char byRes[32];
}NET_EHOME_ASYNC_RESP_CB_DATA, *LPNET_EHOME_ASYNC_RESP_CB_DATA;
typedef BOOL(CALLBACK * ASYNC_RESPONSE_CB)(LPNET_EHOME_ASYNC_RESP_CB_DATA lpData, void* pUser);
NET_DVR_API BOOL CALLBACK NET_ECMS_SetXmlConfigResponseCB(ASYNC_RESPONSE_CB fnCB, void* pUser);
NET_DVR_API BOOL CALLBACK NET_ECMS_XMLConfigEx(LONG lUserID, NET_EHOME_XML_CFG* pXmlCfg, DWORD* dwHandle);
NET_DVR_API BOOL CALLBACK NET_ECMS_SetAliveTimeout(LONG lUserID, DWORD dwKeepAliveSec, DWORD dwTimeOutCount);
////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
////////////////////////////////////////////////////////////////////////////
#define MAX_LF_SEND_BUF_LEN 4 * 1024 * 1024 // <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>η<EFBFBD><CEB7>͵<EFBFBD><CDB5><EFBFBD><EFBFBD><EFBFBD>buffer<65><72><EFBFBD><EFBFBD> 4M
typedef enum tagNET_ISUP_CMS_LF_CB_TYPE
{
DATETYPE_UNKNOW = 0, //δ֪<CEB4><D6AA><EFBFBD><EFBFBD>, ClassType(pOutBuffer) = NULL
DATETYPE_EXPECTION = 1, //<2F><><EFBFBD><EFBFBD><EFBFBD>쳣, ClassType(pOutBuffer) = HPR_UINT32 *,<2C><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DATETYPE_LINK_INFO = 2, //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD> ClassType(pOutBuffer) = LPNET_ISUP_CMS_LF_LINK_INFO
DATATYPE_SESSION_ID = 3, //<2F><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>sessionid<69>ص<EFBFBD> ClassType(pOutBuffer) = sessionid<69><64>Ϣ
DATETYPE_UPLOAD_RESULT = 4, //<2F>ļ<EFBFBD><C4BC>ϴ<EFBFBD><CFB4><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD> ClassType(pOutBuffer) = LPNET_ISUP_CMS_LARGEFILETRANS__UPLOAD_RSP_PARAM
DATETYPE_DOWNLOAD = 5, //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> ClassType(pOutBuffer) = LPNET_ISUP_CMS_LF_DOWNLOAD_PARAM
DATETYPE_DOWNLOAD_END = 6, //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD> ClassType(pOutBuffer) = HPR_UINT32 *״ֵ̬<CCAC><D6B5><EFBFBD>ɹ<EFBFBD>=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}NET_ISUP_CMS_LF_CB_TYPE;
//<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define RESULT_LF_SUCCESS 0 //<2F>ɹ<EFBFBD>
#define RESULT_LF_UNKNOW_EXCEPTION 1 //δ֪<CEB4>
#define RESULT_LF_FILE_SIZE_LIMIT 2 //<2F>ļ<EFBFBD><C4BC><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
#define RESULT_LF_INVALID_FILE 3 //<2F>Ƿ<EFBFBD><C7B7>ļ<EFBFBD>
#define RESULT_LF_DEVICE_RESOURCE_ERROR 4 //<2F><EFBFBD>ռ<D5BC><E4B2BB>
#define RESULT_LF_FILE_NOT_FOUND 5 // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define RESULT_LF_RESUME_POSITION_ERROR 6 //<2F>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
#define RESULT_LF_CALLBACK_PARAM_ERROR 7 //<2F>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define RESULT_LF_TRANS_CHANNEL_BUSY 8 // ͨ<><CDA8>æµ
#define RESULT_LF_TRANS_CHANNEL_NOT_FOUND 9 //ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define RESULT_LF_TRANS_CHANNEL_NOT_ESTABLISH 10 //ͨ<><CDA8>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>
#define RESULT_LF_TRANS_READ_DATA_ERROR 11//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
#define RESULT_LF_TRANS_SEND_DATA_ERROR 12 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
//dwDataType<70><65><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>pOutBufferת<72><D7AA><EFBFBD><EFBFBD>NET_ISUP_CMS_LF_CB_TYPE<50><45>pInBuffer<65><72><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD>
typedef BOOL(CALLBACK * LF_LINK_INFO)(LONG lLinkHandle, DWORD dwDataType, void* pOutBuffer, DWORD dwOutLen, void* pInBuffer, DWORD dwInLen, void* pUser);
typedef struct tagNET_ISUP_CMS_LF_LISTEN_PARAM
{
NET_EHOME_IPADDRESS struAddress; //<2F><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>IPΪ0.0.0.0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>Ĭ<EFBFBD><EFBFBD>Ϊ<EFBFBD>Ӳ<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>һ<EFBFBD><EFBFBD>
LF_LINK_INFO fnCB; //<2F><><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
void* pUserData; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
BYTE byRes[128];
}NET_ISUP_CMS_LF_LISTEN_PARAM, *LPNET_ISUP_CMS_LF_LISTEN_PARAM;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ص<EFBFBD><D8B5><EFBFBD><E1B9B9>
typedef struct tagNET_ISUP_CMS_LF_LINK_INFO
{
char szDeviceID[MAX_DEVICE_ID_LEN];
char szDeviceSerial[NET_EHOME_SERIAL_LEN];
BYTE byRes[128];
}NET_ISUP_CMS_LF_LINK_INFO, *LPNET_ISUP_CMS_LF_LINK_INFO;
typedef struct tagNET_ISUP_CMS_LF_SESSION_INFO
{
char szSessionId[128];
BYTE byRes[128];
}NET_ISUP_CMS_LF_SESSION_INFO;
#define TAG_LF_TRANS_START 0x01 //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
#define TAG_LF_TRANS_END 0x10 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bufferһ<72><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define TAG_LF_TRANS_DATA 0x00 //<2F><><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct tagNET_ISUP_CMS_LF_UPLOAD_PARAM
{
char* pbuf; //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>ļ<EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD>ô˽ӿڷ<D3BF><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwbufLen; //buf<75><66><EFBFBD><EFBFBD>
BYTE byTransStage; //<2F>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x00 <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD> 0x01, <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x10 , <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0x11
BYTE byRes[127];
}NET_ISUP_CMS_LF_UPLOAD_PARAM, *LPNET_ISUP_CMS_LF_UPLOAD_PARAM;
typedef struct tagNET_ISUP_CMS_LF_UPLOAD_RSP_INFO
{
DWORD dwResult; //<2F>ļ<EFBFBD><C4BC>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>
char* pFileURI; //<2F>ļ<EFBFBD><C4BC>ϴ<EFBFBD><CFB4><EFBFBD><E8B1B8>Ӧ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>λ<EFBFBD><CEBB>
DWORD dwUriLen;
DWORD dwSequence;
BYTE byRes[128];
}NET_ISUP_CMS_LF_UPLOAD_RSP_INFO, *LPNET_ISUP_CMS_LF_UPLOAD_RSP_INFO;
typedef struct tagNET_ISUP_CMS_LF_DOWNLOAD_DATA_INFO
{
void* pbuf; //buf<75><66><EFBFBD><EFBFBD>
DWORD dwbufLen; //buf<75><66><EFBFBD><EFBFBD>
DWORD dwSequence;
BYTE byRes[124];
}NET_ISUP_CMS_LF_DOWNLOAD_DATA_INFO, *LPNET_ISUP_CMS_LF_DOWNLOAD_DATA_INFO;
typedef struct tagNET_ISUP_CMS_LF_DWONLOAD_RSP_INFO
{
DWORD dwResult; //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD>
DWORD dwSequence; //
BYTE byRes[128];
}NET_ISUP_CMS_LF_DWONLOAD_RSP_INFO;
#define INTERACT_BY_BUF 0 //<2F><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ݷ<EFBFBD>ʽ<EFBFBD><CABD>SDK<44><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>NET_ISUP_CMS_LFUpload<61><64><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>ӿ<EFBFBD>LF_CB<43><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DATETYPE_DOWNLOAD_RSP
//#define INTERACT_BY_FILE 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>ͨ<EFBFBD><CDA8>SDK<44>Լ<EFBFBD><D4BC><EFBFBD>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
typedef enum tagNET_ISUP_CMS_LF_SET_BUSINESS_PARAM
{
DATATYPE_URL = 0, //URL ClassType(pBuffer) = NET_ISUP_CMS_LF_CONFIG_PARAM, bufΪURL
DATATYPE_RESUME_BREAKPOINT_URL = 1, //<2F>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> classtype(pbuffer) = NET_ISUP_CMS_LF_CONFIG_PARAM, bufΪURL,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6> fileid firsttag lasttag
//DATATYPE_INTERACT_BY_BUF, //<2F><>buf<75><66><EFBFBD><EFBFBD><EBBDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ClassType(pBuffer) = NULL
//DATETYPE_INTERACT_BY_FILE, //<2F><><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>õ<EFBFBD><C3B5>ļ<EFBFBD><C4BC><EFBFBD> ·<><C2B7><EFBFBD><EFBFBD><EFBFBD>󳤶Ȳ<F3B3A4B6><C8B2>ܳ<EFBFBD><DCB3><EFBFBD>260<36><30>ClassType(pBuffer) = LPNET_ISUP_CMS_LF_PARAM, bufΪ<66>ļ<EFBFBD>·<EFBFBD><C2B7>
}NET_ISUP_CMS_LF_SET_BUSINESS_PARAM;
typedef struct tagNET_ISUP_CMS_LF_CONFIG_PARAM
{
char* pFileId; //<2F><><EFBFBD>͵<EFBFBD>FileId = sha256<35><36>filename + filesize<7A><65>, <20>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD>ʱҪ<CAB1><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>firsttag<61><67>lasttag, <20><><EFBFBD><EFBFBD>512
DWORD dwFileIdLen; //
DWORD dwFirstTag; //DATATYPE_RESUME_BREAKPOINT_URL<52><4C>Ч <20>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD> <20><>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwLastTag; //DATATYPE_RESUME_BREAKPOINT_URL<52><4C>Ч <20>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD>λ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>
DWORD dwSequence; //[out]SequenceΪ<65><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0>Ƚϴ<C8BD>ʱ<EFBFBD><CAB1><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>η<EFBFBD><CEB7>ͣ<EFBFBD>ÿ<EFBFBD><C3BF>Sequenceֵ<65><D6B5>ͬ
BYTE byRes[128];
}NET_ISUP_CMS_LF_CONFIG_PARAM, *LPNET_ISUP_CMS_LF_CONFIG_PARAM;
#define FUN_UPLOAD_SET_PARAM 0 //<2F>ϴ<EFBFBD><CFB4>ӿڲ<D3BF><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define FUN_DOWNLOAD_SET_PARAM 1 //<2F><><EFBFBD>ؽӿڲ<D3BF><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// sessionid
NET_DVR_API LONG CALLBACK NET_ISUP_CMS_LFStartListen(LPNET_ISUP_CMS_LF_LISTEN_PARAM lpListenParam); //<2F><><EFBFBD><EFBFBD>listenhandle
NET_DVR_API BOOL CALLBACK NET_ISUP_CMS_LFStopListen(LONG lListenHandle);
NET_DVR_API BOOL CALLBACK NET_ISUP_CMS_LFStopLink(LONG lLinkHandle); //linkhandle<6C>ڻص<DABB><D8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//dwFunType<70><65><EFBFBD><EFBFBD>FUN_UPLOAD_SET_PARAM<41><4D>FUN_DOWNLOAD_SET_PARAM<41><4D> dwBusinessType<70>μ<EFBFBD>ö<EFBFBD><C3B6>ֵNET_ISUP_CMS_LF_SET_BUSINESS_PARAM
NET_DVR_API BOOL CALLBACK NET_ISUP_CMS_LFSetParam(LONG lLinkHandle, DWORD dwFunType, DWORD dwBusinessType, void* pBuffer);
NET_DVR_API BOOL CALLBACK NET_ISUP_CMS_LFUpload(LONG lLinkHandle, LPNET_ISUP_CMS_LF_UPLOAD_PARAM lpUploadParam);
NET_DVR_API BOOL CALLBACK NET_ISUP_CMS_LFDownload(LONG lLinkHandle);
#endif //_HC_EHOME_CMS_H_