HCEHomeCMS.h 106 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435
  1. #ifndef _HC_EHOME_CMS_H_
  2. #define _HC_EHOME_CMS_H_
  3. #include "HCEHomePublic.h"
  4. #define EHOME_PROTOCOL_LEN 300*1024 /*300KB*/
  5. //初始化,反初始化
  6. NET_DVR_API BOOL CALLBACK NET_ECMS_Init();
  7. NET_DVR_API BOOL CALLBACK NET_ECMS_Fini();
  8. //获取错误码
  9. NET_DVR_API DWORD CALLBACK NET_ECMS_GetLastError();
  10. //获取版本号
  11. NET_DVR_API DWORD CALLBACK NET_ECMS_GetBuildVersion();
  12. //开启关闭监听
  13. typedef enum tagNET_EHOME_REGISTER_TYPE{
  14. ENUM_UNKNOWN = -1,
  15. ENUM_DEV_ON = 0, //设备上线回调
  16. ENUM_DEV_OFF, //设备下线回调
  17. ENUM_DEV_ADDRESS_CHANGED, //设备地址发生变化
  18. ENUM_DEV_AUTH, //Ehome5.0设备认证回调
  19. ENUM_DEV_SESSIONKEY, //Ehome5.0设备Sessionkey回调
  20. ENUM_DEV_DAS_REQ //Ehome5.0设备重定向请求回调
  21. }NET_EHOME_REGISTER_TYPE;
  22. //语音对讲编码类型
  23. typedef enum tagNET_EHOME_TALK_ENCODING_TYPE{
  24. ENUM_ENCODING_START = 0, //编码类型开始
  25. ENUM_ENCODING_G722_1, //G722_1
  26. ENUM_ENCODING_G711_MU, //G711_MU
  27. ENUM_ENCODING_G711_A, //G711_A
  28. ENUM_ENCODING_G723, //G723
  29. ENUM_ENCODING_MP1L2, //MP1L2
  30. ENUM_ENCODING_MP2L2, //MP2L2
  31. ENUM_ENCODING_G726, //G726
  32. ENUM_ENCODING_AAC, //AAC
  33. ENUM_ENCODING_RAW = 100 //RAW
  34. }NET_EHOME_TALK_ENCODING_TYPE;
  35. typedef BOOL (CALLBACK * DEVICE_REGISTER_CB)(LONG lUserID, DWORD dwDataType, void *pOutBuffer, DWORD dwOutLen,
  36. void *pInBuffer, DWORD dwInLen, void *pUser);
  37. typedef struct tagNET_EHOME_CMS_LISTEN_PARAM
  38. {
  39. NET_EHOME_IPADDRESS struAddress; //本地监听信息,IP为0.0.0.0的情况下,默认为本地地址,多个网卡的情况下,默认为从操作系统获取到的第一个
  40. DEVICE_REGISTER_CB fnCB; //报警信息回调函数
  41. void * pUserData; //用户数据
  42. BYTE byRes[32];
  43. }NET_EHOME_CMS_LISTEN_PARAM, *LPNET_EHOME_CMS_LISTEN_PARAM;
  44. //开启关闭监听
  45. NET_DVR_API LONG CALLBACK NET_ECMS_StartListen(LPNET_EHOME_CMS_LISTEN_PARAM lpCMSListenPara);
  46. NET_DVR_API BOOL CALLBACK NET_ECMS_StopListen(LONG iHandle);
  47. //注销设备
  48. NET_DVR_API BOOL CALLBACK NET_ECMS_ForceLogout(LONG lUserID);
  49. NET_DVR_API BOOL CALLBACK NET_ECMS_SetLogToFile(DWORD iLogLevel, char *strLogDir, BOOL bAutoDel);
  50. #define FIRMWARE_VER_LEN 24
  51. #define CODE_LEN 8
  52. #define MAX_DEVNAME_LEN 32
  53. typedef struct tagNET_EHOME_DEV_REG_INFO
  54. {
  55. DWORD dwSize;
  56. DWORD dwNetUnitType; //根据EHomeSDK协议预留,目前没有意义
  57. BYTE byDeviceID[MAX_DEVICE_ID_LEN]; //设备ID
  58. BYTE byFirmwareVersion[24]; //固件版本
  59. NET_EHOME_IPADDRESS struDevAdd; //设备注册上来是,设备的本地地址
  60. DWORD dwDevType; //设备类型
  61. DWORD dwManufacture; //设备厂家代码
  62. BYTE byPassWord[32]; //设备登陆CMS的密码,由用户自行根据需求进行验证
  63. BYTE sDeviceSerial[NET_EHOME_SERIAL_LEN/*12*/]; //设备序列号,数字序列号
  64. BYTE byReliableTransmission;
  65. BYTE byWebSocketTransmission;
  66. BYTE bySupportRedirect; //设备支持重定向注册 0-不支持 1-支持
  67. BYTE byDevProtocolVersion[6]; //设备协议版本
  68. BYTE bySessionKey[MAX_MASTER_KEY_LEN];//Ehome5.0设备SessionKey
  69. BYTE byRes[27];
  70. }NET_EHOME_DEV_REG_INFO, *LPNET_EHOME_DEV_REG_INFO;
  71. typedef struct tagNET_EHOME_DEV_REG_INFO_V12
  72. {
  73. NET_EHOME_DEV_REG_INFO struRegInfo;
  74. NET_EHOME_IPADDRESS struRegAddr; //设备注册的服务器地址
  75. BYTE sDevName[MAX_DEVNAME_LEN]; /*设备名称*/
  76. BYTE byRes[224];
  77. }NET_EHOME_DEV_REG_INFO_V12, *LPNET_EHOME_DEV_REG_INFO_V12;
  78. typedef struct tagNET_EHOME_BLACKLIST_SEVER
  79. {
  80. NET_EHOME_IPADDRESS struAdd; //服务器地址
  81. BYTE byServerName[NAME_LEN/*32*/]; //服务器名称
  82. BYTE byUserName[NAME_LEN/*32*/]; //用户名
  83. BYTE byPassWord[NAME_LEN/*32*/]; //密码
  84. BYTE byRes[64];
  85. }NET_EHOME_BLACKLIST_SEVER, *LPNET_EHOME_BLACKLIST_SEVER;
  86. typedef struct tagNET_EHOME_SERVER_INFO
  87. {
  88. DWORD dwSize;
  89. DWORD dwKeepAliveSec; //心跳间隔(单位:秒,0:默认为15S)
  90. DWORD dwTimeOutCount; //心跳超时次数(0:默认为6)
  91. NET_EHOME_IPADDRESS struTCPAlarmSever; //报警服务器地址(TCP协议)
  92. NET_EHOME_IPADDRESS struUDPAlarmSever; //报警服务器地址(UDP协议)
  93. DWORD dwAlarmServerType; //报警服务器类型0-只支持UDP协议上报,1-支持UDP、TCP两种协议上报,2 - 采用MQTT协议方式上报(此时服务器地址为TCP协议服务地址)
  94. NET_EHOME_IPADDRESS struNTPSever; //NTP服务器地址
  95. DWORD dwNTPInterval; //NTP校时间隔(单位:秒)
  96. NET_EHOME_IPADDRESS struPictureSever; //图片服务器地址
  97. DWORD dwPicServerType; //图片服务器类型图片服务器类型,1-VRB图片服务器,0-Tomcat图片服务,2-云存储3,3-KMS,4-EHome5.0存储协议
  98. NET_EHOME_BLACKLIST_SEVER struBlackListServer; //黑名单服务器
  99. BYTE byRes[128];
  100. }NET_EHOME_SERVER_INFO, *LPNET_EHOME_SERVER_INFO;
  101. typedef struct tagNET_EHOME_SERVER_INFO_V50
  102. {
  103. DWORD dwSize;
  104. DWORD dwKeepAliveSec; //心跳间隔(单位:秒,0:默认为15S)
  105. DWORD dwTimeOutCount; //心跳超时次数(0:默认为6)
  106. NET_EHOME_IPADDRESS struTCPAlarmSever; //报警服务器地址(TCP协议)
  107. NET_EHOME_IPADDRESS struUDPAlarmSever; //报警服务器地址(UDP协议)
  108. DWORD dwAlarmServerType; //报警服务器类型0-只支持UDP协议上报,1-支持UDP、TCP两种协议上报
  109. NET_EHOME_IPADDRESS struNTPSever; //NTP服务器地址
  110. DWORD dwNTPInterval; //NTP校时间隔(单位:秒)
  111. NET_EHOME_IPADDRESS struPictureSever; //图片服务器地址
  112. DWORD dwPicServerType; //图片服务器类型图片服务器类型,1-VRB图片服务器,0-Tomcat图片服务,2-云存储3,3-KMS
  113. NET_EHOME_BLACKLIST_SEVER struBlackListServer; //黑名单服务器
  114. NET_EHOME_IPADDRESS struRedirectSever; //Redirect Server
  115. BYTE byClouldAccessKey[64]; //云存储AK
  116. BYTE byClouldSecretKey[64]; //云存储SK
  117. BYTE byClouldHttps; //云存储HTTPS使能 1-HTTPS 0-HTTP
  118. BYTE byRes[383];
  119. }NET_EHOME_SERVER_INFO_V50, *LPNET_EHOME_SERVER_INFO_V50;
  120. //-----------------------------------------------------------------------------------------------------------
  121. //语音对讲
  122. typedef void(CALLBACK *fVoiceDataCallBack)(LONG iVoiceHandle, char *pRecvDataBuffer, DWORD dwBufSize, DWORD dwEncodeType, BYTE byAudioFlag, void* pUser);
  123. typedef struct tagNET_EHOME_VOICETALK_PARA
  124. {
  125. BOOL bNeedCBNoEncData; //需要回调的语音类型:0-编码后语音,1-编码前语音(语音转发时不支持)
  126. fVoiceDataCallBack cbVoiceDataCallBack; //用于回调音频数据的回调函数
  127. DWORD dwEncodeType; //SDK赋值,SDK的语音编码类型,0- OggVorbis,1-G711U,2-G711A,3-G726,4-AAC,5-MP2L2,6-PCM,7-MP3
  128. void* pUser; //用户参数
  129. BYTE byVoiceTalk; //0-语音对讲,1-语音转发
  130. BYTE byDevAudioEnc; //输出参数,设备的音频编码方式 0- OggVorbis,1-G711U,2-G711A,3-G726,4-AAC,5-MP2L2,6-PCM,7-MP3
  131. BYTE byRes[62];//Reserved, set as 0. 0
  132. } NET_EHOME_VOICETALK_PARA,*LPNET_EHOME_VOICETALK_PARA;
  133. typedef struct tagNET_EHOME_VOICE_TALK_IN
  134. {
  135. DWORD dwVoiceChan; //通道号
  136. NET_EHOME_IPADDRESS struStreamSever; //流媒体地址
  137. NET_EHOME_TALK_ENCODING_TYPE byEncodingType[9]; //语音对讲编码类型
  138. BYTE byRes[119];
  139. }NET_EHOME_VOICE_TALK_IN, *LPNET_EHOME_VOICE_TALK_IN;
  140. typedef struct tagNET_EHOME_VOICE_TALK_OUT
  141. {
  142. LONG lSessionID;
  143. BYTE byRes[128];
  144. }NET_EHOME_VOICE_TALK_OUT, *LPNET_EHOME_VOICE_TALK_OUT;
  145. typedef struct tagNET_EHOME_PUSHVOICE_IN
  146. {
  147. DWORD dwSize;
  148. LONG lSessionID;
  149. BYTE byToken[64];
  150. BYTE byRes[64];
  151. }NET_EHOME_PUSHVOICE_IN, *LPNET_EHOME_PUSHVOICE_IN;
  152. typedef struct tagNET_EHOME_PUSHVOICE_OUT
  153. {
  154. DWORD dwSize;
  155. BYTE byRes[128];
  156. }NET_EHOME_PUSHVOICE_OUT, *LPNET_EHOME_PUSHVOICE_OUT;
  157. NET_DVR_API LONG CALLBACK NET_ECMS_StartVoiceTalk(LONG lUserID, DWORD dwVoiceChan,
  158. const NET_EHOME_VOICETALK_PARA *pVoiceTalkPara);
  159. NET_DVR_API BOOL CALLBACK NET_ECMS_StartVoiceWithStmServer(LONG lUserID, NET_EHOME_VOICE_TALK_IN *lpVoiceTalkIn, NET_EHOME_VOICE_TALK_OUT *lpVoiceTalkOut);
  160. NET_DVR_API BOOL CALLBACK NET_ECMS_StartPushVoiceStream(LONG lUserID, LPNET_EHOME_PUSHVOICE_IN lpPushParamIn, LPNET_EHOME_PUSHVOICE_OUT lpPushParamOut);
  161. NET_DVR_API BOOL CALLBACK NET_ECMS_StopVoiceTalk(LONG iVoiceHandle);
  162. NET_DVR_API BOOL CALLBACK NET_ECMS_StopVoiceTalkWithStmServer(LONG lUserID, LONG lSessionID);
  163. NET_DVR_API BOOL CALLBACK NET_ECMS_SendVoiceTransData(LONG iVoiceHandle, const char *pSendBuf, DWORD dwBufSize);
  164. bool NET_EHOME_ClientAudioStart(fVoiceDataCallBack cbVoiceDataCallBack, void *pUser);
  165. //---------------------------------------------------------------------------------------------------------
  166. typedef struct tagNET_EHOME_CONFIG
  167. {
  168. void* pCondBuf; //[in],条件数据指针,如表示通道号等
  169. DWORD dwCondSize; //[in],pCondBuf指向的数据大小
  170. void* pInBuf; //[in],设置时需要用到,指向结构体的指针
  171. DWORD dwInSize; //[in], pInBuf指向的数据大小
  172. void* pOutBuf; //[out],获取时需要用到,指向结构体的指针,内存由上层分配
  173. DWORD dwOutSize; //[in],获取时需要用到,表示pOutBuf指向的内存大小,
  174. BYTE byRes[40]; //保留
  175. }NET_EHOME_CONFIG, *LPNET_EHOME_CONFIG;
  176. typedef struct tagNET_EHOME_XML_CFG
  177. {
  178. void* pCmdBuf; //字符串格式命令
  179. DWORD dwCmdLen; //pCmdBuf长度
  180. void* pInBuf; //输入数据
  181. DWORD dwInSize; //输入数据长度
  182. void* pOutBuf; //输出缓冲
  183. DWORD dwOutSize; //输出缓冲区长度
  184. DWORD dwSendTimeOut; //数据发送超时时间,单位ms,默认5s
  185. DWORD dwRecvTimeOut; //数据接收超时时间,单位ms,默认5s
  186. void* pStatusBuf; //返回的状态参数(XML格式),如果不需要,可以置NULL
  187. DWORD dwStatusSize; //状态缓冲区大小(内存大小)
  188. BYTE byRes[24];
  189. }NET_EHOME_XML_CFG, *LPNET_EHOME_XML_CFG;
  190. #define MAX_SERIALNO_LEN 128 //序列号最大长度
  191. #define MAX_PHOMENUM_LEN 32 //手机号码最大长度
  192. #define MAX_DEVICE_NAME_LEN 32//设备名称长度
  193. typedef struct tagNET_DVR_DVR_TYPE_NAME
  194. {
  195. DWORD dwDVRType;
  196. char byDevName[24];
  197. }NET_DVR_TYPE_NAME;
  198. static const NET_DVR_TYPE_NAME DVRTypeName[] =
  199. {
  200. {0,"UNKNOWN TYPE"}, /*对尚未定义的dvr类型返回NETRET_DVR*/
  201. {1,"DVR"}, /*DVR*/
  202. {2,"ATMDVR"}, /*atm dvr*/
  203. {3,"DVS"}, /*DVS*/
  204. {4,"DEC"}, /* 6001D */
  205. {5,"ENC_DEC"}, /* 6001F */
  206. {6,"DVR_HC"}, /*8000HC*/
  207. {7,"DVR_HT"}, /*8000HT*/
  208. {8,"DVR_HF"}, /*8000HF*/
  209. {9,"DVR_HS"}, /* 8000HS DVR(no audio) */
  210. {10,"DVR_HTS"}, /* 8016HTS DVR(no audio) */
  211. {11,"DVR_HB"}, /* HB DVR(SATA HD) */
  212. {12,"DVR_HCS"}, /* 8000HCS DVR */
  213. {13,"DVS_A"}, /* 带ATA硬盘的DVS */
  214. {14,"DVR_HC_S"}, /* 8000HC-S */
  215. {15,"DVR_HT_S"}, /* 8000HT-S */
  216. {16,"DVR_HF_S"}, /* 8000HF-S */
  217. {17,"DVR_HS_S"}, /* 8000HS-S */
  218. {18,"ATMDVR_S"}, /* ATM-S */
  219. {19,"DVR_7000H"}, /*7000H系列*/
  220. {20,"DEC_MAT"}, /*多路解码器*/
  221. {21,"DVR_MOBILE"}, /* mobile DVR */
  222. {22,"DVR_HD_S"}, /* 8000HD-S */
  223. {23,"DVR_HD_SL"}, /* 8000HD-SL */
  224. {24,"DVR_HC_SL"}, /* 8000HC-SL */
  225. {25,"DVR_HS_ST"}, /* 8000HS_ST */
  226. {26,"DVS_HW"}, /* 6000HW */
  227. {27,"DS630X_D"}, /* 多路解码器 */
  228. {28,"DS640X_HD"}, /*640X高清解码器*/
  229. {29,"DS610X_D"}, /*610X解码器*/
  230. {30,"IPCAM"}, /*IP 摄像机*/
  231. {31,"MEGA_IPCAM"}, /*高清IP摄像机 852F&852MF*/
  232. {32,"IPCAM_862MF"}, /*862MF可以接入9000设备*/
  233. {35,"ITCCAM"}, /*智能高清网络摄像机*/
  234. {36,"IVS_IPCAM"}, /*智能分析高清网络摄像机*/
  235. {38,"ZOOMCAM"}, /*一体机*/
  236. {40,"IPDOME"}, /*IP 标清球机*/
  237. {41,"IPDOME_MEGA200"}, /*IP 200万高清球机*/
  238. {42,"IPDOME_MEGA130"}, /*IP 130万高清球机*/
  239. {43,"IPDOME_AI"}, /*IP 高清智能快球*/
  240. {44,"TII_IPCAM"}, /*红外热成像摄像机*/
  241. {50,"IPMOD"}, /*IP 模块*/
  242. {59,"DS64XXHD_T"}, //64-T高清解码器
  243. {60,"IDS6501_HF_P"}, // 6501 车牌
  244. {61,"IDS6101_HF_A"}, //智能ATM
  245. {62,"IDS6002_HF_B"}, //双机跟踪:DS6002-HF/B
  246. {63,"IDS6101_HF_B"}, //行为分析:DS6101-HF/B
  247. {64,"IDS52XX"}, //智能分析仪IVMS
  248. {65,"IDS90XX"}, // 9000智能
  249. {67,"IDS8104_AHL_S_H"}, // 海康人脸识别 ATM
  250. {68,"IDS91XX"}, // 9100智能
  251. {69,"IIP_CAM_B"}, //智能行为IP摄像机
  252. {70,"IIP_CAM_F"}, //智能人脸IP摄像机
  253. {71,"DS71XX_H"}, /* DS71XXH_S */
  254. {72,"DS72XX_H_S"}, /* DS72XXH_S */
  255. {73,"DS73XX_H_S"}, /* DS73XXH_S */
  256. {74,"DS72XX_HF_S"}, //DS72XX_HF_S
  257. {75,"DS73XX_HFI_S"}, //DS73XX_HFI_S
  258. {75,"DS73XX_HF_S"}, //DS73XX_HF_S
  259. {76,"DS76XX_H_S"}, /* DVR,e.g. DS7604_HI_S */
  260. {77,"DS76XX_N_S"}, /* NVR,e.g. DS7604_NI_S */
  261. {81,"DS81XX_HS_S"}, /* DS81XX_HS_S */
  262. {82,"DS81XX_HL_S"}, /* DS81XX_HL_S */
  263. {83,"DS81XX_HC_S"}, /* DS81XX_HC_S */
  264. {84,"DS81XX_HD_S"}, /* DS81XX_HD_S */
  265. {85,"DS81XX_HE_S"}, /* DS81XX_HE_S */
  266. {86,"DS81XX_HF_S"}, /* DS81XX_HF_S */
  267. {87,"DS81XX_AH_S"}, /* DS81XX_AH_S */
  268. {88,"DS81XX_AHF_S"}, /* DS81XX_AHF_S */
  269. {90,"DS90XX_HF_S"}, /*DS90XX_HF_S*/
  270. {91,"DS91XX_HF_S"}, /*DS91XX_HF_S*/
  271. {92,"DS91XX_HD_S"}, /*91XXHD-S(MD)*/
  272. {93,"IDS90XX_A"}, // 9000智能 ATM
  273. {94,"IDS91XX_A"}, // 9100智能 ATM
  274. {95,"DS95XX_N_S"}, /*DS95XX_N_S NVR 不带任何输出*/
  275. {96,"DS96XX_N_SH"}, /*DS96XX_N_SH NVR*/
  276. {97,"DS90XX_HF_SH"}, /*DS90XX_HF_SH */
  277. {98,"DS91XX_HF_SH"}, /*DS91XX_HF_SH */
  278. {100,"DS_B10_XY"}, /*视频综合平台设备型号(X:编码板片数,Y:解码板片数)*/
  279. {101,"DS_6504HF_B10"}, /*视频综合平台内部编码器*/
  280. {102,"DS_6504D_B10"}, /*视频综合平台内部解码器*/
  281. {103,"DS_1832_B10"}, /*视频综合平台内部码分器*/
  282. {104,"DS_6401HFH_B10"}, /*视频综合平台内部光纤板*/
  283. {105,"DS_65XXHC"}, //65XXHC DVS
  284. {106,"DS_65XXHC_S"}, //65XXHC-SATA DVS
  285. {107,"DS_65XXHF"}, //65XXHF DVS
  286. {108,"DS_65XXHF_S"}, //65XXHF-SATA DVS
  287. {109,"DS_6500HF_B"}, //65 rack DVS
  288. {110,"IVMS_6200_C"}, // iVMS-6200(/C)
  289. {111,"IVMS_6200_B"}, // iVMS-6200(/B)
  290. {112,"DS_72XXHV_ST"}, //72XXHV_ST15 DVR
  291. {113,"DS_72XXHV_ST"}, //72XXHV_ST20 DVR,这两个设备显示一个名字
  292. {114,"IVMS_6200_T"}, // IVMS-6200(/T)
  293. {115,"IVMS_6200_BP"}, // IVMS-6200(/BP)
  294. {116,"DS_81XXHC_ST"}, //DS_81XXHC_ST
  295. {117,"DS_81XXHS_ST"}, //DS_81XXHS_ST
  296. {118,"DS_81XXAH_ST"}, //DS_81XXAH_ST
  297. {119,"DS_81XXAHF_ST"}, //DS_81XXAHF_ST
  298. {120,"DS_66XXDVS"}, //66XX DVS
  299. {121,"DS_1964_B10"}, /*视频综合平台内部报警器*/
  300. {122,"DS_B10N04_IN"}, /*视频综合平台内部级联输入*/
  301. {123,"DS_B10N04_OUT"}, /*视频综合平台内部级联输出*/
  302. {124,"DS_B10N04_INTEL"}, /*视频综合平台内部智能*/
  303. {125,"DS_6408HFH_B10E_RM"}, //V6高清
  304. {126,"DS_B10N64F1_RTM"}, //V6级联不带DSP
  305. {127,"DS_B10N64F1D_RTM"}, //V6级联带DSP
  306. {128,"DS_B10_SDS"}, //视频综合平台子域控制器
  307. {129,"DS_B10_DS"}, //视频综合平台域控制器
  308. {130,"DS_6401HFH_B10V"}, //VGA高清编码器
  309. {131,"DS_6504D_B10B"}, /*视频综合平台内部标清解码器*/
  310. {132,"DS_6504D_B10H"}, /*视频综合平台内部高清解码器*/
  311. {133,"DS_6504D_B10V"}, /*视频综合平台内部VGA解码器*/
  312. {134,"DS_6408HFH_B10S"}, //视频综合平台SDI子板
  313. {135,"DS_18XX_N"}, /* 矩阵接入网关*/
  314. //注:121~140预留给视频综合平台系列产品使用,141~160留给码分设备和报警设备类用
  315. {141,"DS_18XX_PTZ"}, /*网络码分类产品*/
  316. {142,"DS_19AXX"}, /*通用报警主机类产品*/
  317. {143,"DS_19BXX"}, /*家用报警主机*/
  318. {144,"DS_19CXX"}, /*自助银行报警主机*/
  319. {145,"DS_19DXX"}, /*动环监控报警主机*/
  320. {146,"DS_19XX"}, /*1900系列报警主机*/
  321. {147,"DS_19SXX"}, /*视频报警主机*/
  322. {148, "DS_1HXX"}, /*CS类产品*/ //防护舱
  323. /**********************设备类型 end***********************/
  324. //2011-11-03 161~170分配给大屏设备使用
  325. {161,"DS_C10H"}, /*多屏控制器*/
  326. {162,"DS_C10N_BI"}, //BNC处理器
  327. {163,"DS_C10N_DI"}, //rbg处理器
  328. {164,"DS_C10N_SI"}, //码流处理器
  329. {165,"DS_C10N_DO"}, //显示处理器
  330. {166,"DS_C10N_SERVER"}, //分布式服务器
  331. // 171- 180 划给智能使用
  332. {171,"IDS_8104_AHFL_S_H"}, // 8104ATM
  333. {172,"IDS_65XX_HF_A"}, // 65 ATM
  334. {173,"IDS90XX_HF_RH"}, // 9000 智能RH
  335. {174,"IDS91XX_HF_RH"}, // 9100 智能RH设备
  336. {175,"IDS_65XX_HF_B"}, // 65 行为分析
  337. {176,"IDS_65XX_HF_P"}, // 65 车牌识别
  338. {177,"IVMS_6200_F"}, // IVMS-6200(/F)
  339. {178,"IVMS_6200_A"}, //iVMS-6200(/A)
  340. {179,"IVMS_6200_F_S"}, //iVMS-6200(/F_S)
  341. {181,"DS90XX_HF_RH"}, // 9000 RH
  342. {182,"DS91XX_HF_RH"}, // 9100 RH设备
  343. {183,"DS78XX_S"}, // 78系列设备
  344. {185,"DS81XXHW_S"}, // 81 Resolution 960
  345. {186,"DS81XXHW_ST"}, // DS81XXHW_ST
  346. {187,"DS91XXHW_ST"}, // DS91XXHW_ST
  347. {188,"DS91XX_ST"}, // DS91XX_ST
  348. {189,"DS81XX_ST"}, // DS81XX_ST
  349. {190,"DS81XXH_ST"}, // DS81XXHDI_ST,DS81XXHE_ST ky2012
  350. {191,"DS73XXH_ST"}, // DS73XXHI_ST ky2012
  351. {192,"DS81XX_SH"}, // 审讯81SH,81SHF
  352. {193,"DS81XX_SN"}, // 审讯81SNL
  353. {194,"DS96XXN_ST"}, //NVR:DS96xxN_ST
  354. {195,"DS86XXN_ST"}, //NVR:DS86xxN_ST
  355. {196,"DS80XXHF_ST"}, //DVR:DS80xxHF_ST
  356. {197,"DS90XXHF_ST"}, //DVR:DS90xxHF_ST
  357. {198,"DS76XXN_ST"}, //NVR:DS76xxN_ST
  358. {199,"DS_9664N_RX"}, //嵌入式NVR(64路IP通道,无模拟通道),最后一个X:T/H
  359. {200,"ENCODER_SERVER"}, // 编码卡服务器
  360. {201,"DECODER_SERVER"}, // 解码卡服务器
  361. {202,"PCNVR_SERVER"}, // PCNVR存储服务器
  362. {203,"CVR_SERVER"}, // 邦诺CVR,他给自己定的类型为DVR_S-1
  363. {204,"DS_91XXHFH_ST"}, // 91系列HD-SDI高清DVR
  364. {205,"DS_66XXHFH"}, // 66高清编码器
  365. {210,"TRAFFIC_TS_SERVER"}, //终端服务器
  366. {211,"TRAFFIC_VAR"}, //视频分析记录仪
  367. {212,"IPCALL"}, //IP可视对讲分机
  368. //2012-03-21 类型值255以后的设备不要添加至此数组中,该数组的作用是为了使扩展协议能获取类型值255以下设备的名称
  369. //{2001, "DS90XXHW_ST"} // DS90XXHW_ST混合DVR
  370. };
  371. /**********************设备大类 begin**********************/
  372. /* dvr相关 1-50 */
  373. #define DEV_CLASS_DVR 1 //普通dvr类型
  374. #define DEV_CLASS_INTERROGATION 2 //审讯机
  375. #define DEV_CLASS_SIMPLE_TRAIL 3 //简易庭审主机
  376. #define DEV_CLASS_TRAIL 4 //标准庭审主机
  377. #define DEV_CLASS_RECORD_PLAY 5 //录播主机
  378. #define DEV_CLASS_ATM 6 //ATM机
  379. /* dvs相关 51-100 */
  380. #define DEV_CLASS_DVS 51 //普通dvs
  381. /* nvr相关 101-150 */
  382. #define DEV_CLASS_NVR 101 //普通nvr
  383. /* ipc相关 151-200 */
  384. #define DEV_CLASS_GUN 151 //ipc枪机
  385. #define DEV_CLASS_BALL 152 //ipc球机
  386. #define DEV_CLASS_SNAP 153 //抓拍机
  387. #define DEV_CLASS_INTELLI_TILT 154 //智能云台
  388. #define DEV_CLASS_FISH_EYE 155 //鱼眼
  389. #define DEV_CLASS_2DP_Z 156 //大鹰眼
  390. #define DEV_CLASS_2DP 157 //小鹰眼
  391. #define DEV_CLASS_PT 158 //全景细节相机
  392. #define DEV_CLASS_TRI 159 //超高频固定式读卡器
  393. /* CVR相关 201 - 250*/
  394. #define DEV_CLASS_CVR 201 //CVR
  395. /* 传显相关 251 - 300*/
  396. #define DEV_CLASS_B20 251 //传显B20系列
  397. #define DEV_CLASS_B10 252 //传显B10系列
  398. #define DEV_CLASS_DECODER 253 //解码器
  399. #define DEV_CLASS_MATRIXMANAGEDEVICE 254 //矩阵接入网关
  400. #define DEV_CLASS_OTICAL 255 //光端机
  401. #define DEV_CLASS_CODESPITTER 256 //码分器
  402. #define DEV_CLASS_ALARMHOST 257 //行业报警主机
  403. #define DEV_CLASS_MOVING_RING 258 //动环设备
  404. #define DEV_CLASS_CVCS 259 //集中式多屏控制器
  405. #define DEV_CLASS_DVCS 260 //分布式多屏控制器
  406. #define DEV_CLASS_TRANSCODER 261 //转码器
  407. #define DEV_CLASS_LCD_SCREEN 262 //LCD屏幕
  408. #define DEV_CLASS_LED_SCREEN 263 //LED屏幕
  409. #define DEV_CLASS_MATRIX 264 //矩阵
  410. #define DEV_CLASS_CONFERENCE_SYSTEM 265 //视频会议设备
  411. #define DEV_CLASS_INFORMATION_RELEASE_EQUIPMENT 266 //信息发布设备
  412. #define DEV_CLASS_NET_GAP 267 //网闸
  413. #define DEV_CLASS_MERGE 268 //合码器
  414. #define DEV_CLASS_REAR_PROJECTION 269 //背投显示设备
  415. #define DEV_CLASS_SWITCH 270 //交换机
  416. #define DEV_CLASS_FIBER_CONVERTER 271 //光纤收发器
  417. #define DEV_CLASS_SCREEN_SERVER 272 //屏幕服务器
  418. #define DEV_CLASS_SCE_SERVER 273 //抓屏服务器
  419. #define DEV_CLASS_WIRELESS_TRANS 274 //无线传输设备
  420. #define DEV_CLASS_Y10_SERIES 275 //Y10系列
  421. #define DEV_CLASS_SAFETY_MAVHINE 276 //安监一体机
  422. #define DEV_CLASS_IOTGATEWAY 277 //物联网关类
  423. /* 报警主机相关 301 - 350*/
  424. #define DEV_CLASS_VIDEO_ALARM_HOST 301 //视频报警主机
  425. #define DEV_CLASS_NET_ALARM_HOST 302 //网络报警主机
  426. #define DEV_CLASS_ONE_KEY_ALARM 303 //一键式报警产品
  427. #define DEV_CLASS_WIRELESS_ALARM_HOST 304 //无线报警主机
  428. #define DEV_CLASS_ALARM_MODULE 305 //报警模块
  429. #define DEV_CLASS_HOME_ALARM_HOST 306 //家用报警主机
  430. /* 门禁相关 351 - 400*/
  431. #define DEV_CLASS_ACCESS_CONTROL 351 //门禁产品
  432. /* 可视对讲 401 - 450*/
  433. #define DEV_CLASS_VIDEO_INTERCOM 401 //可视对讲
  434. /* 无人机 451 - 500*/
  435. #define DEV_CLASS_UMMANNED_AERIAL_VEHICLE 451 //无人机产品
  436. /* 移动产品: 501-550*/
  437. #define DEV_CLASS_MOBILE 501 //移动产品
  438. /* 移动车载设备: 551-600*/
  439. #define DEV_CLASS_MOBILE_VEHICLE 551 //移动车载设备
  440. //智能分析仪:601-650
  441. #define DEV_CLASS_INTELLIGENT_ANALYZER 601 //智能分析仪
  442. //智能交通服务器:651-700
  443. #define DEV_CLASS_INTELLIGENT_TRAFFIC_SERVER 651 //智能交通服务器
  444. #define DS_TP2200_EC 652 //经济型机柜监测仪
  445. /* nvs相关 701-750 */
  446. #define DEV_CLASS_NVS 701 //普通nvs
  447. /*有源RFID系列 751-800*/
  448. #define DS_TRI21A_1_P 751 //有源RFID读取器
  449. /* 数据中心设备801-850 */
  450. #define DS_CLASS_FA 801 //脸谱单机
  451. #define DS_CLASS_PURE 802 //脸谱纯分析
  452. #define DS_CLASS_FS 803 //人脸静态数据服务器
  453. #define DS_CLASS_FD 804 //抓拍检测服务器
  454. #define DS_CLASS_HAWK 805 //猎鹰服务器
  455. #define DS_CLASS_BLADE 806 //刀锋
  456. #define DS_CLASS_HMCP 807 //模型对比服务器
  457. /* 智能锁相关 851 - 900*/
  458. #define DEV_CLASS_SMART_LOCK 851 //智能锁盒子
  459. /* 雷达相关 901 - 950*/
  460. #define DEV_CLASS_RADAR 901 //雷达产品
  461. /*全景细节相机: 8451-8470*/
  462. #define iDS_PT 8451 //全景细节相机
  463. /* 其他设备类型 65534 */
  464. #define DEV_CLASS_DEFAULT 65534 //默认设备类型
  465. /**********************设备大类 end**********************/
  466. typedef struct tagNET_EHOME_DEVICE_INFO
  467. {
  468. DWORD dwSize; //结构体大小
  469. DWORD dwChannelNumber; //模拟视频通道个数
  470. DWORD dwChannelAmount; //总视频通道数(模拟+IP)
  471. DWORD dwDevType; //设备类型,1-DVR,3-DVS,30-IPC,40-IPDOME,其他值参考海康NetSdk设备类型号定义值
  472. DWORD dwDiskNumber; //设备当前硬盘数
  473. BYTE sSerialNumber[MAX_SERIALNO_LEN]; //设备序列号
  474. DWORD dwAlarmInPortNum; //模拟通道报警输入个数
  475. DWORD dwAlarmInAmount; //设备总报警输入个数
  476. DWORD dwAlarmOutPortNum; //模拟通道报警输出个数
  477. DWORD dwAlarmOutAmount; //设备总报警输出个数
  478. DWORD dwStartChannel; //视频起始通道号
  479. DWORD dwAudioChanNum; //语音对讲通道个数
  480. DWORD dwMaxDigitChannelNum; //设备支持的最大数字通道路数
  481. DWORD dwAudioEncType; //语音对讲音频格式,0- OggVorbis,1-G711U,2-G711A,3-G726,4-AAC,5-MP2L2,6-PCM,7-MP3
  482. BYTE sSIMCardSN[MAX_SERIALNO_LEN]; //车载设备扩展:SIM卡序列号
  483. BYTE sSIMCardPhoneNum[MAX_PHOMENUM_LEN]; //车载扩展:SIM卡手机号码
  484. DWORD dwSupportZeroChan; // SupportZeroChan:支持零通道的个数:0-不支持,1-支持1路,2-支持2路,以此类推
  485. DWORD dwStartZeroChan; //零通道起始编号,默认10000
  486. DWORD dwSmartType; //智能类型,0-smart,1-专业智能;默认0-smart
  487. WORD wDevClass; //设备大类
  488. BYTE byRes[158]; //保留
  489. }NET_EHOME_DEVICE_INFO,*LPNET_EHOME_DEVICE_INFO;
  490. #define MAX_VERSION_LEN 32 //版本描述长度
  491. typedef struct tagNET_EHOME_VERSION_INFO
  492. {
  493. DWORD dwSize; //结构体大小
  494. BYTE sSoftwareVersion[MAX_VERSION_LEN]; //主控版本
  495. BYTE sDSPSoftwareVersion[MAX_VERSION_LEN];//编码版本
  496. BYTE sPanelVersion[MAX_VERSION_LEN]; //面板版本
  497. BYTE sHardwareVersion[MAX_VERSION_LEN]; //硬件版本
  498. BYTE byRes[124];
  499. }NET_EHOME_VERSION_INFO,*LPNET_EHOME_VERSION_INFO;
  500. typedef struct tagNET_EHOME_DEVICE_CFG
  501. {
  502. DWORD dwSize; //结构体大小
  503. BYTE sServerName[MAX_DEVICE_NAME_LEN]; //设备名称
  504. DWORD dwServerID; //设备号(遥控器编号:0~255)
  505. DWORD dwRecycleRecord; //是否循环录像,0代表不循环,1代表循环
  506. DWORD dwServerType; //设备类型,同DevType,由于公司设备型号有几百个,本协议中只使用通用型号:1-DVR,3-DVS,30-IPC,40-IPDOME
  507. DWORD dwChannelNum; //通道个数,包括模拟+IP通道(只读)
  508. DWORD dwHardDiskNum; //硬盘个数(只读)
  509. DWORD dwAlarmInNum; //报警输入个数(模拟通道)(只读)
  510. DWORD dwAlarmOutNum; //报警输出个数(模拟通道)(只读)
  511. DWORD dwRS232Num; //232串口个数(只读)
  512. DWORD dwRS485Num; //485串口个数(只读)
  513. DWORD dwNetworkPortNum; //网络口个数(只读)
  514. DWORD dwAuxoutNum; //辅口个数(只读)
  515. DWORD dwAudioNum; //语音口个数(只读)
  516. BYTE sSerialNumber[MAX_SERIALNO_LEN]; //设备序列号(只读)
  517. DWORD dwMajorScale; //主口缩放:0代表不缩放;1代表缩放
  518. DWORD dwMinorScale; //辅口缩放:0代表不缩放;1代表缩放
  519. BYTE byRes[292]; //保留
  520. }NET_EHOME_DEVICE_CFG,*LPNET_EHOME_DEVICE_CFG;
  521. #define NET_EHOME_GET_DEVICE_INFO 1 //获取设备信息
  522. #define NET_EHOME_GET_VERSION_INFO 2 //获取版本信息
  523. #define NET_EHOME_GET_DEVICE_CFG 3 //获取设备基本参数
  524. #define NET_EHOME_SET_DEVICE_CFG 4 //设置设备基本参数
  525. #define NET_EHOME_GET_GPS_CFG 20 //获取GPS参数
  526. #define NET_EHOME_SET_GPS_CFG 21 //设置GPS参数
  527. #define NET_EHOME_GET_PIC_CFG 22 //获取OSD显示参数
  528. #define NET_EHOME_SET_PIC_CFG 23 //设置OSD显示参数
  529. #define NET_EHOME_GET_WIRELESSINFO_CFG 24 //获取无线网络信息参数
  530. #define NET_EHOME_SET_WIRELESSINFO_CFG 25 //设置无线网络信息参数
  531. #define MAX_EHOME_PROTOCOL_LEN 1500
  532. typedef struct tagNET_EHOME_REMOTE_CTRL_PARAM
  533. {
  534. DWORD dwSize;
  535. void *lpCondBuffer; //条件参数缓冲区
  536. DWORD dwCondBufferSize; //条件参数缓冲区长度
  537. void *lpInbuffer; //控制参数缓冲区
  538. DWORD dwInBufferSize; //控制参数缓冲区长度
  539. BYTE byRes[32];
  540. }NET_EHOME_REMOTE_CTRL_PARAM, *LPNET_EHOME_REMOTE_CTRL_PARAM;
  541. //GPS参数
  542. typedef struct tagNET_EHOME_GPS_CFG
  543. {
  544. DWORD dwSize;
  545. DWORD dwTransInterval; //GPS上传时间,单位:秒
  546. DWORD dwMaxSpeed; //超速限速值,单位:厘米/小时
  547. DWORD dwMinSpeed; //低速限速值,单位:厘米/小时
  548. BYTE bEnable; //使能,1-不启用,2-启用
  549. BYTE byRes[63]; //保留
  550. }NET_EHOME_GPS_CFG, *LPNET_EHOME_GPS_CFG;
  551. //OSD显示参数
  552. typedef struct tagNET_EHOME_PIC_CFG
  553. {
  554. DWORD dwSize;
  555. BYTE byChannelName[NAME_LEN]; //通道名称(GB2312编码, V30以后版本使用UTF-8编码),长度不超过31字节
  556. BOOL bIsShowChanName; //是否显示通道名称:0:不显示;1:显示
  557. WORD wChanNameXPos; //通道名称显示X坐标,按照704x576来配置
  558. WORD wChanNameYPos; //通道名称显示Y坐标,按照704x576来配置,坐标值为16的倍数
  559. BOOL bIsShowOSD; //是否显示OSD:0:不显示;1:显示
  560. WORD wOSDXPos; //OSD显示X坐标
  561. WORD wOSDYPos; //OSD显示Y坐标
  562. BYTE byOSDType; /**OSD类型 0:XXXX-XX-XX(年月日) 1:XX-XX-XXXX(月日年) 2:XXXX年XX月XX日
  563. 3:XX月XX日XXXX年 4:XX-XX-XXXX(日月年) 5:XX日XX月XXXX年
  564. */
  565. BYTE byOSDAtrib; //OSD属性 0:不显示OSD 1:透明,闪烁 2:透明,不闪烁 3:闪烁,不透明 4:不透明,不闪烁
  566. BYTE byRes1[2]; //保留1
  567. BOOL bIsShowWeek; //是否显示星期:0:不显示;1:显示
  568. BYTE byRes2[64]; //保留2
  569. }NET_EHOME_PIC_CFG, *LPNET_EHOME_PIC_CFG;
  570. typedef struct tagNET_EHOME_WIRELESS_INFO_CFG
  571. {
  572. DWORD dwSize;
  573. DWORD dwInfoTransInterval; //上传间隔,单位:秒
  574. BYTE byEnable; //使能,0-不启用 1-启用
  575. BYTE byRes[47];
  576. }NET_EHOME_WIRELESS_INFO_CFG, *LPNET_EHOME_WIRELESS_INFO_CFG;
  577. typedef struct tagNET_CMS_ISAPI_CONFIG
  578. {
  579. DWORD dwSize;
  580. void *lpRequestUrl;
  581. DWORD dwRequestUrlLen;
  582. void *lpInBuffer;
  583. DWORD dwInBufferSize;
  584. void *lpOutBuffer;
  585. DWORD dwOutBufferSize;
  586. DWORD dwReturnedSize;
  587. DWORD dwRecvTimeOut;
  588. BYTE byRes[32];
  589. }NET_CMS_ISAPI_CONFIG, *LPNET_CMS_ISAPI_CONFIG;
  590. #define STREAM_KEY_LEN 32
  591. typedef struct tagNET_EHOME_STREAM_PASSWORD
  592. {
  593. BYTE byEnable; // 加密操作,0- 不启用,1- 启用, 2- 修改密码
  594. BYTE byRes1[3];
  595. BYTE byNewKey[STREAM_KEY_LEN]; // 密码;
  596. BYTE byOldKey[STREAM_KEY_LEN]; //原密码
  597. BYTE byRes[12];
  598. }NET_EHOME_STREAM_PASSWORD, *LPNET_EHOME_STREAM_PASSWORD;
  599. NET_DVR_API BOOL CALLBACK NET_ECMS_GetDevConfig(LONG lUserID, DWORD dwCommand, LPNET_EHOME_CONFIG lpConfig, DWORD dwConfigSize);
  600. NET_DVR_API BOOL CALLBACK NET_ECMS_SetDevConfig(LONG lUserID, DWORD dwCommand, LPNET_EHOME_CONFIG lpConfig, DWORD dwConfigSize);
  601. NET_DVR_API BOOL CALLBACK NET_ECMS_XMLConfig(LONG lUserID, LPNET_EHOME_XML_CFG pXmlCfg, DWORD dwConfigSize);
  602. NET_DVR_API BOOL CALLBACK NET_ECMS_RemoteControl(LONG lUserID, DWORD dwCommand, LPNET_EHOME_REMOTE_CTRL_PARAM lpCtrlParam);
  603. NET_DVR_API BOOL CALLBACK NET_ECMS_ISAPI_Config(LONG lUserID, NET_CMS_ISAPI_CONFIG *lpParam);
  604. NET_DVR_API BOOL CALLBACK NET_ECMS_CheckStreamEncrypt(LONG lUserID, const char* pStreamEncrypt);
  605. //设置设备SessionKey信息
  606. NET_DVR_API BOOL CALLBACK NET_ECMS_SetDeviceSessionKey(NET_EHOME_DEV_SESSIONKEY* pDeviceKey);
  607. //获取设备EhomeKey信息
  608. NET_DVR_API BOOL CALLBACK NET_ECMS_GetDeviceSessionKey(NET_EHOME_DEV_SESSIONKEY* pDeviceKey);
  609. //重置5.0设备注册状态
  610. NET_DVR_API BOOL CALLBACK NET_ECMS_ResetDevRegisterState(const char* sDeviceID);
  611. //预览请求
  612. typedef struct tagNET_EHOME_PREVIEWINFO_IN
  613. {
  614. int iChannel; //通道号
  615. DWORD dwStreamType; // 码流类型,0-主码流,1-子码流, 2-第三码流
  616. DWORD dwLinkMode; // 0:TCP方式,1:UDP方式,2: HRUDP方式
  617. NET_EHOME_IPADDRESS struStreamSever; //流媒体地址
  618. }NET_EHOME_PREVIEWINFO_IN, *LPNET_EHOME_PREVIEWINFO_IN;
  619. typedef struct tagNET_EHOME_PREVIEWINFO_IN_V11
  620. {
  621. int iChannel;
  622. DWORD dwStreamType;
  623. DWORD dwLinkMode;
  624. NET_EHOME_IPADDRESS struStreamSever;
  625. BYTE byDelayPreview;
  626. BYTE byEncrypt; //0-不加密,1-加密
  627. BYTE byRes[30];
  628. }NET_EHOME_PREVIEWINFO_IN_V11, *LPNET_EHOME_PREVIEWINFO_IN_V11;
  629. typedef struct tagNET_EHOME_MAKE_I_FRAME
  630. {
  631. int iChannel; // 通道号
  632. DWORD dwStreamType; // 码流类型,0- 主码流,1- 子码流, 2- 预留
  633. BYTE byRes[40];
  634. }NET_EHOME_MAKE_I_FRAME, *LPNET_EHOME_MAKE_I_FRAME;
  635. typedef struct tagNET_EHOME_PREVIEWINFO_OUT
  636. {
  637. LONG lSessionID;
  638. BYTE byRes[128];
  639. }NET_EHOME_PREVIEWINFO_OUT, *LPNET_EHOME_PREVIEWINFO_OUT;
  640. typedef struct tagNET_EHOME_PUSHSTREAM_IN
  641. {
  642. DWORD dwSize;
  643. LONG lSessionID;
  644. BYTE byRes[128];
  645. }NET_EHOME_PUSHSTREAM_IN, *LPNET_EHOME_PUSHSTREAM_IN;
  646. typedef struct tagNET_EHOME_PUSHSTREAM_INFO_OUT
  647. {
  648. DWORD dwSize;
  649. BYTE byRes[128];
  650. }NET_EHOME_PUSHSTREAM_OUT, *LPNET_EHOME_PUSHSTREAM_OUT;
  651. NET_DVR_API BOOL CALLBACK NET_ECMS_StartGetRealStream(LONG lUserID, LPNET_EHOME_PREVIEWINFO_IN pPreviewInfoIn, LPNET_EHOME_PREVIEWINFO_OUT pPreviewInfoOut ); //lUserID由SDK分配的用户ID,由设备注册回调时fDeviceRegisterCallBack返回
  652. NET_DVR_API BOOL CALLBACK NET_ECMS_StartGetRealStreamV11(LONG lUserID, LPNET_EHOME_PREVIEWINFO_IN_V11 pPreviewInfoIn, LPNET_EHOME_PREVIEWINFO_OUT pPreviewInfoOut);
  653. NET_DVR_API BOOL CALLBACK NET_ECMS_StopGetRealStream(LONG lUserID, LONG lSessionID);
  654. NET_DVR_API BOOL CALLBACK NET_ECMS_StartPushRealStream(LONG lUserID, LPNET_EHOME_PUSHSTREAM_IN pPushInfoIn, LPNET_EHOME_PUSHSTREAM_OUT pPushInfoOut);
  655. NET_DVR_API BOOL CALLBACK NET_ECMS_MakeIFrame(LONG lUserID, LPNET_EHOME_MAKE_I_FRAME pIFrameParma);
  656. NET_DVR_API BOOL CALLBACK NET_ECMS_SetStreamEncrypt(LONG lUserID, LPNET_EHOME_STREAM_PASSWORD pStreamPassword);
  657. //查询接口
  658. #define MAX_FILE_NAME_LEN 100
  659. #define LEN_32 32
  660. typedef enum tagSEARCH_TYPE
  661. {
  662. ENUM_SEARCH_TYPE_ERR = -1,
  663. ENUM_SEARCH_RECORD_FILE = 0, //查找录像文件
  664. ENUM_SEARCH_PICTURE_FILE = 1, //查找图片文件
  665. ENUM_SEARCH_FLOW_INFO = 2, //流量查询
  666. ENUM_SEARCH_DEV_LOG = 3, //设备日志查询
  667. ENUM_SEARCH_ALARM_HOST_LOG = 4, //报警主机日志查询
  668. }SEARCH_TYPE_ENUM;
  669. typedef enum
  670. {
  671. ENUM_GET_NEXT_STATUS_SUCCESS = 1000, //成功读取到一条数据,处理完本次数据后需要再次调用FindNext获取下一条数据
  672. ENUM_GET_NETX_STATUS_NO_FILE, //没有找到一条数据
  673. ENUM_GET_NETX_STATUS_NEED_WAIT, //数据还未就绪,需等待,继续调用FindNext函数
  674. ENUM_GET_NEXT_STATUS_FINISH, //数据全部取完
  675. ENUM_GET_NEXT_STATUS_FAILED, //出现异常
  676. ENUM_GET_NEXT_STATUS_NOT_SUPPORT //设备不支持该操作,不支持的查询类型
  677. }SEARCH_GET_NEXT_STATUS_ENUM;
  678. //时间参数
  679. typedef struct tagNET_EHOME_TIME
  680. {
  681. WORD wYear; //年
  682. BYTE byMonth; //月
  683. BYTE byDay; //日
  684. BYTE byHour; //时
  685. BYTE byMinute; //分
  686. BYTE bySecond; //秒
  687. BYTE byRes1;
  688. WORD wMSecond; //毫秒
  689. BYTE byRes2[2];
  690. }NET_EHOME_TIME, *LPNET_EHOME_TIME;
  691. typedef struct tagNET_EHOME_FINDCOND
  692. {
  693. DWORD dwSize;
  694. LONG iChannel; //通道号,从1开始
  695. DWORD dwMaxFileCountPer; //单次搜索最大文件个数,最大文件个数,需要确定实际网络环境,建议最大个数为8
  696. NET_EHOME_TIME struStartTime; //开始时间
  697. NET_EHOME_TIME struStopTime; //结束时间
  698. SEARCH_TYPE_ENUM enumSearchType; //查找类型 0-录像文件查找,对应struRecordFileParam 1-图片文件查找,对应struPicFileParam 2-流量查询,对应struFlowParam
  699. union
  700. {
  701. BYTE byLen[64];
  702. struct
  703. {
  704. DWORD dwFileType; /**文件类型(字节整形数):
  705. 0xff-全部类型录像(不包含图片类型)
  706. 0-定时录像
  707. 1-移动报警
  708. 2-报警触发
  709. 3-报警|动测
  710. 4-报警&动测
  711. 5-命令触发
  712. 6-手动录像
  713. 7-震动报警
  714. 8-环境报警
  715. 9-智能报警(或者取证录像)
  716. 10(0x0a)-PIR报警
  717. 11(0x0b)-无线报警
  718. 12(0x0c)-呼救报警
  719. 13(0x0d)全部报警
  720. 100-全部类型图片
  721. 101-车牌识别图片
  722. 102-稽查报警图片
  723. 103-手动抓拍图片
  724. 104-回放抓拍图片
  725. **/
  726. }struRecordFileParam;
  727. struct
  728. {
  729. DWORD dwFileType; /*255(0xff)-全部类型:
  730. 0(0x00)-定时抓图
  731. 1(0x01)-移动侦测抓图
  732. 2(0x02)-报警抓图
  733. 3(0x03)-报警|移动侦测抓图
  734. 4(0x04)-报警&移动侦测抓图
  735. 5(0x05)-命令触发抓图
  736. 6(0x06)-手动抓图
  737. 7(0x07)-震动报警抓图
  738. 8(0x08)-环境报警触发抓图
  739. 9(0x09)-智能报警图片
  740. 10(0x0a)-PIR报警图片
  741. 11(0x0b)-无线报警图片
  742. 12(0x0c)-呼救报警图片
  743. 13(0x0d)-人脸侦测图片
  744. 14(0x0e)-越界侦测图片
  745. 15(0x0f)-入侵区域侦测图片
  746. 16(0x10)-场景变更侦测图片
  747. 17(0x11)-设备本地回放时截图
  748. 18(0x12)-智能侦测图片
  749. 19(0x13)-进入区域侦测图片
  750. 20(0x14)-离开区域侦测图片
  751. 21(0x15)-徘徊侦测图片
  752. 22(0x16)-人员聚集侦测图片
  753. 23(0x17)-快速运动侦测图片
  754. 24(0x18)-停车侦测图片
  755. 25(0x19)-物品遗留侦测图片
  756. 26(0x1a)-物品拿取侦测图片
  757. 27(0x1b)-车牌侦测图片
  758. 28(0x1c)-客户端上传图片
  759. */
  760. }struPicFileParam;
  761. struct
  762. {
  763. BYTE bySearchMode; //查询模式,1-按year查询,2-按month查询,3-按day查询
  764. }struFlowParam;
  765. }unionSearchParam;
  766. BYTE byStartIndex; //查询起始位置,兼容老版本,新版本中不建议使用
  767. BYTE byRes1[1];
  768. DWORD dwStartIndexEx; //扩展后的查询起始位置, 增加对记录条数过大的支持
  769. BYTE byRes[122];
  770. }NET_EHOME_FINDCOND, *LPNET_EHOME_FINDCOND;
  771. //录像文件查找条件
  772. typedef struct tagNET_EHOME_REC_FILE_COND
  773. {
  774. DWORD dwChannel; //通道号,从1开始
  775. DWORD dwRecType; /*0xff-全部类型录像(不包含图片类型)
  776. 0-定时录像
  777. 1-移动报警
  778. 2-报警触发
  779. 3-报警|动测
  780. 4-报警&动测
  781. 5-命令触发
  782. 6-手动录像
  783. 7-震动报警
  784. 8-环境报警
  785. 9-智能报警(或者取证录像)
  786. 10(0x0a)-PIR报警
  787. 11(0x0b)-无线报警
  788. 12(0x0c)-呼救报警
  789. 13(0x0d)全部报警
  790. 100-全部类型图片
  791. 101-车牌识别图片
  792. 102-稽查报警图片
  793. 103-手动抓拍图片
  794. 104-回放抓拍图片
  795. */
  796. NET_EHOME_TIME struStartTime; //开始时间
  797. NET_EHOME_TIME struStopTime; //结束时间
  798. DWORD dwStartIndex; //查询起始位置
  799. DWORD dwMaxFileCountPer; //单次搜索最大文件个数,最大文件个数,需要确定实际网络环境,建议最大个数为8
  800. BYTE byLocalOrUTC; //0-struStartTime和struStopTime中,表示的是设备本地时间,即设备OSD时间 1-struStartTime和struStopTime中,表示的是UTC时间
  801. BYTE byRes[63];
  802. }NET_EHOME_REC_FILE_COND, *LPNET_EHOME_REC_FILE_COND;
  803. //图片文件查找条件
  804. typedef struct tagNET_EHOME_PIC_FILE_COND
  805. {
  806. DWORD dwChannel; //通道号,从1开始
  807. DWORD dwPicType; /*255(0xff)-全部类型
  808. 0(0x00)-定时抓图
  809. 1(0x01)-移动侦测抓图
  810. 2(0x02)-报警抓图
  811. 3(0x03)-报警|移动侦测抓图
  812. 4(0x04)-报警&移动侦测抓图
  813. 5(0x05)-命令触发抓图
  814. 6(0x06)-手动抓图
  815. 7(0x07)-震动报警抓图
  816. 8(0x08)-环境报警触发抓图
  817. 9(0x09)-智能报警图片
  818. 10(0x0a)-PIR报警图片
  819. 11(0x0b)-无线报警图片
  820. 12(0x0c)-呼救报警图片
  821. 13(0x0d)-人脸侦测图片
  822. 14(0x0e)-越界侦测图片
  823. 15(0x0f)-入侵区域侦测图片
  824. 16(0x10)-场景变更侦测图片
  825. 17(0x11)-设备本地回放时截图
  826. 18(0x12)-智能侦测图片
  827. 19(0x13)-进入区域侦测图片
  828. 20(0x14)-离开区域侦测图片
  829. 21(0x15)-徘徊侦测图片
  830. 22(0x16)-人员聚集侦测图片
  831. 23(0x17)-快速运动侦测图片
  832. 24(0x18)-停车侦测图片
  833. 25(0x19)-物品遗留侦测图片
  834. 26(0x1a)-物品拿取侦测图片
  835. 27(0x1b)-车牌侦测图片
  836. 28(0x1c)-客户端上传图片
  837. */
  838. NET_EHOME_TIME struStartTime; //开始时间
  839. NET_EHOME_TIME struStopTime; //结束时间
  840. DWORD dwStartIndex; //查询起始位置
  841. DWORD dwMaxFileCountPer; //单次搜索最大文件个数,最大文件个数,需要确定实际网络环境,建议最大个数为8
  842. BYTE byLocalOrUTC; //0-struStartTime和struStopTime中,表示的是设备本地时间,即设备OSD时间 1-struStartTime和struStopTime中,表示的是UTC时间
  843. BYTE byRes[63];
  844. }NET_EHOME_PIC_FILE_COND, *LPNET_EHOME_PIC_FILE_COND;
  845. //流量查询条件
  846. typedef struct tagNET_EHOME_FLOW_COND
  847. {
  848. BYTE bySearchMode; //查询模式,1-按year查询,2-按month查询,3-按day查询
  849. BYTE byRes[3];
  850. NET_EHOME_TIME struStartTime; //开始时间
  851. NET_EHOME_TIME struStopTime; //结束时间
  852. DWORD dwStartIndex; //查询起始位置
  853. DWORD dwMaxFileCountPer; //单次搜索最大文件个数,最大文件个数,需要确定实际网络环境,建议最大个数为8
  854. BYTE byLocalOrUTC; //0-struStartTime和struStopTime中,表示的是设备本地时间,即设备OSD时间 1-struStartTime和struStopTime中,表示的是UTC时间
  855. BYTE byRes1[63];
  856. }NET_EHOME_FLOW_COND, *LPNET_EHOME_FLOW_COND;
  857. //设备日志查询条件
  858. typedef struct tagNET_EHOME_DEV_LOG_COND
  859. {
  860. DWORD dwMajorType; //日志主类型,1-报警,2-异常,3-操作,0xffff-全部
  861. DWORD dwMinorType; //日志次类型,与设备基线代码定义相同
  862. NET_EHOME_TIME struStartTime; //开始时间
  863. NET_EHOME_TIME struStopTime; //结束时间
  864. DWORD dwStartIndex; //查询起始位置
  865. DWORD dwMaxFileCountPer; //单次搜索最大文件个数,最大文件个数,需要确定实际网络环境,建议最大个数为8
  866. BYTE byLocalOrUTC; //0-struStartTime和struStopTime中,表示的是设备本地时间,即设备OSD时间 1-struStartTime和struStopTime中,表示的是UTC时间
  867. BYTE byRes[63];
  868. }NET_EHOME_DEV_LOG_COND, *LPNET_EHOME_DEV_LOG_COND;
  869. //报警主机日志查询条件
  870. typedef struct tagNET_EHOME_ALARM_HOST_LOG_COND
  871. {
  872. DWORD dwMajorType; //日志主类型,1-报警,2-异常,3-操作,4-事件,0xffff-全部
  873. DWORD dwMinorType; //日志次类型,与设备基线代码定义相同
  874. NET_EHOME_TIME struStartTime; //开始时间
  875. NET_EHOME_TIME struStopTime; //结束时间
  876. DWORD dwStartIndex; //查询起始位置
  877. DWORD dwMaxFileCountPer; //单次搜索最大文件个数,最大文件个数,需要确定实际网络环境,建议最大个数为8
  878. BYTE byLocalOrUTC; //0-struStartTime和struStopTime中,表示的是设备本地时间,即设备OSD时间 1-struStartTime和struStopTime中,表示的是UTC时间
  879. BYTE byRes1[63];
  880. }NET_EHOME_ALARM_HOST_LOG_COND, *LPNET_EHOME_ALARM_HOST_LOG_COND;
  881. //老版的录像文件信息
  882. typedef struct tagNET_EHOME_FINDDATA
  883. {
  884. DWORD dwSize;
  885. char szFileName[MAX_FILE_NAME_LEN]; //文件名
  886. NET_EHOME_TIME struStartTime; //文件的开始时间
  887. NET_EHOME_TIME struStopTime; //文件的结束时间
  888. DWORD dwFileSize; //文件的大小
  889. DWORD dwFileMainType; //录像文件主类型
  890. DWORD dwFileSubType; //录像文件子类型
  891. DWORD dwFileIndex; //录像文件索引
  892. BYTE byRes[128];
  893. }NET_EHOME_FINDDATA, *LPNET_EHOME_FINDDATA;
  894. //录像文件信息
  895. typedef struct tagNET_EHOME_REC_FILE
  896. {
  897. DWORD dwSize;
  898. char sFileName[MAX_FILE_NAME_LEN]; //文件名
  899. NET_EHOME_TIME struStartTime; //文件的开始时间
  900. NET_EHOME_TIME struStopTime; //文件的结束时间
  901. DWORD dwFileSize; //文件的大小
  902. DWORD dwFileMainType; //录像文件主类型
  903. DWORD dwFileSubType; //录像文件子类型
  904. DWORD dwFileIndex; //录像文件索引
  905. BYTE byTimeDiffH; //struStartTime、struStopTime与国际标准时间(UTC)的时差(小时),-12 ... +14,0xff表示无效
  906. BYTE byTimeDiffM; //struStartTime、struStopTime与国际标准时间(UTC)的时差(分钟),-30,0, 30, 45, 0xff表示无效
  907. BYTE byRes[126];
  908. }NET_EHOME_REC_FILE, *LPNET_EHOME_REC_FILE;
  909. //图片文件信息
  910. typedef struct tagNET_EHOME_PIC_FILE
  911. {
  912. DWORD dwSize;
  913. char sFileName[MAX_FILE_NAME_LEN]; //文件名
  914. NET_EHOME_TIME struPicTime; //图片生成时间
  915. DWORD dwFileSize; //文件的大小
  916. DWORD dwFileMainType; //图片文件主类型
  917. DWORD dwFileIndex; //图片文件索引
  918. BYTE byTimeDiffH; //struPicTime与国际标准时间(UTC)的时差(小时),-12 ... +14,0xff表示无效
  919. BYTE byTimeDiffM; //struPicTime与国际标准时间(UTC)的时差(分钟),-30,0, 30, 45, 0xff表示无效
  920. BYTE byRes[126];
  921. }NET_EHOME_PIC_FILE, *LPNET_EHOME_PIC_FILE;
  922. //流量信息
  923. typedef struct tagNET_EHOME_FLOW_INFO
  924. {
  925. DWORD dwSize;
  926. DWORD dwFlowValue; //流量值
  927. DWORD dwFlowIndex; //流量索引
  928. BYTE byRes[128];
  929. }NET_EHOME_FLOW_INFO, *LPNET_EHOME_FLOW_INFO;
  930. //设备日志信息
  931. #define MAX_LOG_INFO_LEN 8*1024 //日志附加信息长度
  932. typedef struct tagNET_EHOME_DEV_LOG
  933. {
  934. NET_EHOME_TIME struLogTime; //日志时间
  935. DWORD dwMajorType; //日志主类型,1-报警,2-异常,3-操作
  936. DWORD dwMinorType; //日志次类型,与设备基线代码定义相同
  937. DWORD dwParamType; //次类型参数类型,大部分表示防区号,如果没有则值为0
  938. char sLocalUser[NAME_LEN]; //本地用户
  939. char sRemoteUser[NAME_LEN]; //远程用户
  940. char sIPAddress[128]; //远端主机IP地址
  941. DWORD dwChannelNo; //通道号
  942. DWORD dwHardDiskNo; //硬盘号
  943. DWORD dwAlarmInputChanNo; //报警输入通道号
  944. DWORD dwAlarmOutputChanNo; //报警输出通道号
  945. char sLogContext[MAX_LOG_INFO_LEN]; //日志内容
  946. BYTE byTimeDiffH; //struLogTime与国际标准时间(UTC)的时差(小时),-12 ... +14,0xff表示无效
  947. BYTE byTimeDiffM; //struLogTime与国际标准时间(UTC)的时差(分钟),-30,0, 30, 45, 0xff表示无效
  948. BYTE byRes[62];
  949. }NET_EHOME_DEV_LOG, *LPNET_EHOME_DEV_LOG;
  950. //报警主机日志信息
  951. typedef struct tagNET_EHOME_ALARM_HOST_LOG
  952. {
  953. NET_EHOME_TIME struLogTime; //日志时间
  954. DWORD dwMajorType; //日志主类型,1-报警,2-异常,3-操作,4-事件
  955. DWORD dwMinorType; //日志次类型,与设备基线代码定义相同
  956. DWORD dwParamType; //次类型参数类型,大部分表示防区号,如果没有则值为0
  957. char sUserName[NAME_LEN]; //用户名
  958. char sIPAddress[128]; //远端主机IP地址
  959. char sLogContext[MAX_LOG_INFO_LEN]; //日志内容
  960. BYTE byTimeDiffH; //struLogTime与国际标准时间(UTC)的时差(小时),-12 ... +14,0xff表示无效
  961. BYTE byTimeDiffM; //struLogTime与国际标准时间(UTC)的时差(分钟),-30,0, 30, 45, 0xff表示无效
  962. BYTE byRes[62];
  963. }NET_EHOME_ALARM_HOST_LOG, *LPNET_EHOME_ALARM_HOST_LOG;
  964. NET_DVR_API LONG CALLBACK NET_ECMS_StartFindFile(LONG lUserID, LPNET_EHOME_FINDCOND pFindCond); //仅支持录像文件、图片文件和流量查询
  965. NET_DVR_API LONG CALLBACK NET_ECMS_FindNextFile(LONG lHandle, LPNET_EHOME_FINDDATA pFindData); //仅支持录像文件查询
  966. NET_DVR_API LONG CALLBACK NET_ECMS_StartFindFile_V11(LONG lUserID, LONG lSearchType, LPVOID pFindCond, DWORD dwCondSize);
  967. NET_DVR_API LONG CALLBACK NET_ECMS_FindNextFile_V11(LONG lHandle, LPVOID pFindData, DWORD dwDataSize);
  968. NET_DVR_API BOOL CALLBACK NET_ECMS_StopFindFile(LONG lHandle);
  969. typedef struct tagNET_EHOME_PLAYBACK_INFO_IN
  970. {
  971. DWORD dwSize;
  972. DWORD dwChannel; //回放的通道号
  973. BYTE byPlayBackMode; //回放下载模式 0-按名字 1-按时间
  974. BYTE byStreamPackage; //回放码流类型,设备端发出的码流格式 0-PS(默认) 1-RTP
  975. BYTE byRes[2];
  976. union
  977. {
  978. BYTE byLen[512];
  979. struct
  980. {
  981. char szFileName[MAX_FILE_NAME_LEN]; //回放的文件名
  982. DWORD dwSeekType; //0-按字节长度计算偏移量 1-按时间(秒数)计算偏移量
  983. DWORD dwFileOffset; //文件偏移量,从哪个位置开始下载,如果dwSeekType为0,偏移则以字节计算,为1则以秒数计算
  984. DWORD dwFileSpan; //下载的文件大小,为0时,表示下载直到该文件结束为止,如果dwSeekType为0,大小则以字节计算,为1则以秒数计算
  985. }struPlayBackbyName;
  986. struct
  987. {
  988. NET_EHOME_TIME struStartTime; // 按时间回放的开始时间
  989. NET_EHOME_TIME struStopTime; // 按时间回放的结束时间
  990. BYTE byLocalOrUTC; //0-设备本地时间,即设备OSD时间 1-UTC时间
  991. BYTE byDuplicateSegment; //byLocalOrUTC为1时无效 0-重复时间段的前段 1-重复时间段后端
  992. }struPlayBackbyTime;
  993. }unionPlayBackMode;
  994. NET_EHOME_IPADDRESS struStreamSever; //流媒体地址
  995. }NET_EHOME_PLAYBACK_INFO_IN, *LPNET_EHOME_PLAYBACK_INFO_IN;
  996. typedef struct tagNET_EHOME_PLAYBACK_INFO_OUT
  997. {
  998. LONG lSessionID; //目前协议不支持,返回-1
  999. BYTE byRes[128];
  1000. }NET_EHOME_PLAYBACK_INFO_OUT, *LPNET_EHOME_PLAYBACK_INFO_OUT;
  1001. typedef struct tagNET_EHOME_PUSHPLAYBACK_IN
  1002. {
  1003. DWORD dwSize;
  1004. LONG lSessionID;
  1005. BYTE byKeyMD5[32];//码流加密秘钥,两次MD5
  1006. BYTE byRes[96];
  1007. } NET_EHOME_PUSHPLAYBACK_IN, *LPNET_EHOME_PUSHPLAYBACK_IN;
  1008. typedef struct tagNET_EHOME_PUSHPLAYBACK_OUT
  1009. {
  1010. DWORD dwSize;
  1011. BYTE byRes[128];
  1012. } NET_EHOME_PUSHPLAYBACK_OUT, *LPNET_EHOME_PUSHPLAYBACK_OUT;
  1013. NET_DVR_API BOOL CALLBACK NET_ECMS_StartPlayBack(LONG lUserID, LPNET_EHOME_PLAYBACK_INFO_IN pPlayBackInfoIn, LPNET_EHOME_PLAYBACK_INFO_OUT pPlayBackInfoOut);
  1014. NET_DVR_API BOOL CALLBACK NET_ECMS_StopPlayBack(LONG lUserID, LONG lSessionID);
  1015. NET_DVR_API BOOL CALLBACK NET_ECMS_StartPushPlayBack(LONG lUserID, LPNET_EHOME_PUSHPLAYBACK_IN pPushInfoIn, LPNET_EHOME_PUSHPLAYBACK_OUT pPushInfoOut);
  1016. //云台相关结构体
  1017. #define NET_EHOME_PTZ_CTRL 1000 //云镜控制
  1018. #define NET_EHOME_PRESET_CTRL 1001 //预置点操作
  1019. #define NET_EHOME_PZIN 1002 //3D框选放大缩小
  1020. #define NET_EHOME_PTRACK 1003 //3D点击居中
  1021. typedef enum
  1022. {
  1023. PTZ_UP = 0, //向上
  1024. PTZ_DOWN, //向下
  1025. PTZ_LEFT, //向左
  1026. PTZ_RIGHT, //向右
  1027. PTZ_UPLEFT, //向左上
  1028. PTZ_DOWNLEFT, //向左下
  1029. PTZ_UPRIGHT, //向右上
  1030. PTZ_DOWNRIGHT, //向右下
  1031. PTZ_ZOOMIN, //变焦-
  1032. PTZ_ZOOMOUT, //变焦+
  1033. PTZ_FOCUSNEAR, //聚焦-
  1034. PTZ_FOCUSFAR, //聚焦+
  1035. PTZ_IRISSTARTUP, //光圈变大
  1036. PTZ_IRISSTOPDOWN, //光圈变小
  1037. PTZ_LIGHT, //补光灯
  1038. PTZ_WIPER, //雨刷
  1039. PTZ_AUTO //自动
  1040. }EN_PTZ_CMD;
  1041. typedef struct tagNET_EHOME_PTZ_PARAM
  1042. {
  1043. DWORD dwSize;
  1044. BYTE byPTZCmd; //云台命令,参见EN_PTZ_CMD
  1045. BYTE byAction; //云台动作,0-开始云台动作,1-停止云台动作
  1046. BYTE bySpeed; //云台速度,0-7,数值越大速度越快
  1047. BYTE byRes[29];
  1048. }NET_EHOME_PTZ_PARAM, *LPNET_EHOME_PTZ_PARAM;
  1049. typedef struct tagNET_EHOME_PRESET_PARAM
  1050. {
  1051. DWORD dwSize;
  1052. BYTE byPresetCmd; //预置点控制命令,1-设置预置点,2-清除预置点,3-转到预置点
  1053. BYTE byRes1[3];
  1054. DWORD dwPresetIndex; //预置点编号
  1055. BYTE byRes2[32];
  1056. }NET_EHOME_PRESET_PARAM, *LPNET_EHOME_PRESET_PARAM;
  1057. typedef struct tagNET_EHOME_PZIN_PARAM
  1058. {
  1059. DWORD dwSize;
  1060. BYTE byAction; //动作,0缩小(右上->左下,右下->左上) 1放大(左上->右下,左下->右上)
  1061. BYTE byRes1[3];
  1062. NET_EHOME_ZONE struArea; //框选范围
  1063. BYTE byRes2[32];
  1064. }NET_EHOME_PZIN_PARAM, *LPNET_EHOME_PZIN_PARAM;
  1065. typedef struct tagNET_EHOME_POINT
  1066. {
  1067. DWORD dwX;
  1068. DWORD dwY;
  1069. BYTE byRes[4];
  1070. }NET_EHOME_POINT, *LPNET_EHOME_POINT;
  1071. typedef struct tagNET_EHOME_IPADDR
  1072. {
  1073. char sIpV4[16];
  1074. char sIpV6[128];
  1075. }NET_EHOME_IPADDR, *LPNET_EHOME_IPADDR;
  1076. #define MACADDR_LEN 6 //mac地址长度
  1077. typedef struct tagNET_EHOME_ETHERNET
  1078. {
  1079. NET_EHOME_IPADDR struDevIP; //设备IP地址
  1080. NET_EHOME_IPADDR struDevIPMask; //掩码地址
  1081. DWORD dwNetInterface; // 网卡类型1:10M半双工 2:10M全双工 3:100M半双工 4:100M全双工 6:1000M全双工 5:10M/100M/1000M自适应
  1082. WORD wDevPort; //设备SDK端口号:8000
  1083. WORD wMTU; // MTU参数
  1084. BYTE byMACAddr[MACADDR_LEN]; //mac地址
  1085. BYTE byRes[2];
  1086. }NET_EHOME_ETHERNET,*LPNET_EHOME_ETHERNET;
  1087. #define PASSWD_LEN 16 //密码长度
  1088. typedef struct tagNET_EHOME_PPPOECFG
  1089. {
  1090. DWORD dwPPPoE; //是否启用PPPOE:1代表使用;0代表不使用
  1091. char sPPPoEUser[NAME_LEN]; //PPPoE用户名
  1092. char sPPPoEPassword[PASSWD_LEN]; //PPPoE密码
  1093. NET_EHOME_IPADDR struPPPoEIP; //PPPoE IP地址
  1094. }NET_EHOME_PPPOECFG,*LPNET_EHOME_PPPOECFG;
  1095. typedef struct tagNET_EHOME_NETWORK_CFG
  1096. {
  1097. DWORD dwSize; //结构体大小
  1098. NET_EHOME_ETHERNET struEtherNet; //以太网口
  1099. NET_EHOME_IPADDR struGateWayIP;//网关地址
  1100. NET_EHOME_IPADDR struMultiCastIP;//多播地址
  1101. NET_EHOME_IPADDR struDDNSServer1IP;//DDNS1服务器IP
  1102. NET_EHOME_IPADDR struDDNSServer2IP;//DDNS2服务器IP
  1103. NET_EHOME_IPADDR struAlarmHostIP; //报警主机IP
  1104. WORD wAlarmHostPort; //报警主机端口号
  1105. WORD wIPResolverPort; //解析服务器端口
  1106. NET_EHOME_IPADDR struIPResolver; //解析服务器地址
  1107. NET_EHOME_PPPOECFG struPPPoE; //PPPoE参数
  1108. WORD wHTTPPort;; //Http端口
  1109. BYTE byRes[674]; //保留
  1110. }NET_EHOME_NETWORK_CFG,*LPNET_EHOME_NETWORK_CFG;
  1111. typedef struct tagNET_EHOME_COMPRESSION_COND
  1112. {
  1113. DWORD dwSize; //结构体大小
  1114. DWORD dwChannelNum; //通道号,从1开始
  1115. BYTE byCompressionType;//码流类型,1-主码流,2-子码流,3-三码流
  1116. BYTE byRes[23];
  1117. }NET_EHOME_COMPRESSION_COND,*LPNET_EHOME_COMPRESSION_COND;
  1118. typedef struct tagNET_EHOME_COMPRESSION_CFG
  1119. {
  1120. DWORD dwSize; //结构体大小
  1121. BYTE byStreamType; //码流类型
  1122. BYTE byPicQuality; //图像质量0:最高 1:较高 2:中等 3:低 4:较低 5:最低
  1123. BYTE byBitRateType; //码率类型0:变码率 1:定码率
  1124. BYTE byRes1; //保留
  1125. DWORD dwResolution; //分辨率,0:DCIF 1:CIF 2:QCIF 3:4CIF 4:2CIF 6:QVGA(320x240) 16:VGA 17:UXGA 18:SVGA 19:HD720p 20:hd900 21:XVGA 22:SXGAp(1360*1024)
  1126. //27:1080P(1920*1080) 28:2560x1920 /*500W*/ 29:1600x304 30:2048x1536 /*300W*/
  1127. //31:2448x2048/*500W*/ 32:2448x1200 33:2448x800 34:XGA/*(1024*768)*/
  1128. //35:SXGA/*(1280*1024)*/ 36:WD1/*(960*576/960*480)*/ 37:HD1080I 38-WXGA(1440*900),
  1129. //39-HD_F(1920*1080/1280*720),40-HD_H(1920*540/1280*360), 41-HD_Q(960*540/630*360),
  1130. //42-2336*1744, 43-1920*1456,44-2592*2048, 45-3296*2472,46-1376*768,47-1366*768,
  1131. //48-1360*768, 49-WSXGA+,50-720*720,51-1280*1280,52-2048*768,53-2048*2048
  1132. //54-2560x2048, 55-3072x2048 , 56-2304*1296 57-WXGA(1280*800), 58-1600*600
  1133. //59-2592*1944 60-2752*2208, 61-384*288, 62-4000*3000, 63-4096*2160, 64-3840*2160,
  1134. //65-4000*2250, 66-3072*1728,
  1135. 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-自定义
  1136. DWORD dwMaxBitRate; //自定义码率
  1137. DWORD dwVideoFrameRate; //视频帧率(4字节整数)0:全帧率 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
  1138. WORD wIntervalFrameI; // I帧间隔,范围1~400
  1139. BYTE byIntervalBPFrame; //帧类型 0:BBP 1:BP 2:P
  1140. BYTE byRes[41]; //保留
  1141. }NET_EHOME_COMPRESSION_CFG,*LPNET_EHOME_COMPRESSION_CFG;
  1142. #define MAX_TIME_SEGMENT 8 //时间段,ehome协议只支持4个
  1143. #define MAX_ANALOG_ALARMOUT 32 //最大32路模拟报警输出
  1144. #define MAX_ANALOG_CHANNUM 32 //最大32个模拟通道
  1145. #define MAX_DIGIT_CHANNUM 480/*512-32*/ //最大480个数字通道,与网络库保持
  1146. typedef struct tagNET_EHOME_ALARM_TIME_COND
  1147. {
  1148. DWORD dwSize; //结构体大小
  1149. BYTE byAlarmType; //报警类型,0-移动侦测,1-视频丢失,2-遮挡报警,3-报警输入,4-报警输出,9-客流量
  1150. BYTE byWeekday; //0-Mon,1-Tues,2-Wed,3-Thur,4-Fri,5-Sat,6-Sun
  1151. BYTE byRes1[2];
  1152. DWORD dwChannel; //通道号,从1开始
  1153. BYTE byRes2[20];
  1154. }NET_EHOME_ALARM_TIME_COND,*LPNET_EHOME_ALARM_TIME_COND;
  1155. typedef struct tagNET_EHOME_SCHEDTIME
  1156. {
  1157. BYTE byStartHour; //开始时间:时
  1158. BYTE byStartMin; //开始时间:分
  1159. BYTE byStopHour; //结束时间:时
  1160. BYTE byStopMin; //结束时间:分
  1161. }NET_EHOME_SCHEDTIME,*LPNET_EHOME_SCHEDTIME;
  1162. typedef struct tagNET_EHOME_ALARM_TIME_CFG
  1163. {
  1164. DWORD dwSize; //结构体大小
  1165. NET_EHOME_SCHEDTIME struSchedTime[MAX_TIME_SEGMENT];//布防时间段
  1166. BYTE bySchedTimeCount; //只读,布防时间段数
  1167. BYTE byRes[43];
  1168. }NET_EHOME_ALARM_TIME_CFG,*LPNET_EHOME_ALARM_TIME_CFG;
  1169. typedef struct tagNET_EHOME_ALARMOUT_CFG
  1170. {
  1171. DWORD dwSize; //结构体大小
  1172. BYTE sAlarmOutName[NAME_LEN]; //报警输出名称
  1173. WORD wAlarmOutDelay; //输出延时:0:5秒;1:10秒; 2:30秒; 3:1分; 4:2分; 5:5分; 6:10分; 7:最大;
  1174. BYTE byRes[26]; //保留
  1175. }NET_EHOME_ALARMOUT_CFG,*LPNET_EHOME_ALARMOUT_CFG;
  1176. typedef struct tagNET_EHOME_ALARMOUT_STATUS_CFG
  1177. {
  1178. DWORD dwSize; //结构体大小
  1179. BYTE byAlarmOutStatus; //1-开启报警输出,0-关闭报警输出
  1180. BYTE byRes[11];
  1181. }NET_EHOME_ALARMOUT_STATUS_CFG,*LPNET_EHOME_ALARMOUT_STATUS_CFG;
  1182. typedef struct tagNET_EHOME_ALARMIN_COND
  1183. {
  1184. DWORD dwSize; //结构体大小
  1185. DWORD dwAlarmInNum; //报警编号,从1开始
  1186. DWORD dwPTZChan;// PTZ联动视频通道编号,从1开始
  1187. BYTE byRes[20];
  1188. }NET_EHOME_ALARMIN_COND,*LPNET_EHOME_ALARMIN_COND;
  1189. typedef struct tagNET_EHOME_LINKAGE_ALARMOUT
  1190. {
  1191. DWORD dwAnalogAlarmOutNum; //只读,模拟报警数量
  1192. BYTE byAnalogAlarmOut[MAX_ANALOG_ALARMOUT]; //模拟报警输出,0:不使用;1:使用
  1193. BYTE byRes[5000]; //保留,协议里面没有IP报警输出联动,接口上位置留出来
  1194. }NET_EHOME_LINKAGE_ALARMOUT,*LPNET_EHOME_LINKAGE_ALARMOUT;
  1195. typedef struct tagNET_EHOME_LINKAGE_PTZ
  1196. {
  1197. BYTE byUsePreset; //是否调用预置点,0:不使用;1:使用
  1198. BYTE byUseCurise; //是否调用巡航,0:不使用;1:使用
  1199. BYTE byUseTrack; //是否调用轨迹,0:不使用;1:使用
  1200. BYTE byRes1; //保留
  1201. WORD wPresetNo; //预置点号,范围:1~256,协议中规定是1~256,实际已有设备支持300
  1202. WORD wCuriseNo; //巡航路径号,范围:1~16
  1203. WORD wTrackNo; //轨迹号,范围:1~16
  1204. BYTE byRes2[6]; //保留
  1205. }NET_EHOME_LINKAGE_PTZ,*LPNET_EHOME_LINKAGE_PTZ;
  1206. typedef struct tagNET_EHOME_ALARMIN_LINKAGE_TYPE
  1207. {
  1208. BYTE byMonitorAlarm; //监视器上警告,0:不使用;1:使用
  1209. BYTE bySoundAlarm; //声音报警,0:不使用;1:使用
  1210. BYTE byUpload; //上传中心,0:不使用;1:使用
  1211. BYTE byAlarmout; //触发报警输出,0:不使用;1:使用-
  1212. BYTE byEmail; //邮件联动,0:不使用;1:使用
  1213. BYTE byRes1[3]; //保留
  1214. NET_EHOME_LINKAGE_PTZ struPTZLinkage; //PTZ联动
  1215. NET_EHOME_LINKAGE_ALARMOUT struAlarmOut; //报警输出联动
  1216. BYTE byRes[128];
  1217. }NET_EHOME_ALARMIN_LINKAGE_TYPE,*LPNET_EHOME_ALARMIN_LINKAGE_TYPE;
  1218. typedef struct tagNET_EHOME_RECORD_CHAN
  1219. {
  1220. BYTE byAnalogChanNum; //只读,模拟通道数
  1221. BYTE byAnalogChan[MAX_ANALOG_CHANNUM]; //模拟通道,0:不使用;1:使用
  1222. BYTE byRes1[3]; //保留
  1223. WORD wDigitChanNum; //只读,数字通道数
  1224. BYTE byDigitChan[MAX_DIGIT_CHANNUM]; //数字通道,0:不使用;1:使用
  1225. BYTE byRes2[62]; //保留
  1226. }NET_EHOME_RECORD_CHAN,*LPNET_EHOME_RECORD_CHAN;
  1227. typedef struct tagNET_EHOME_ALARMIN_CFG
  1228. {
  1229. DWORD dwSize; //结构体大小
  1230. BYTE sAlarmInName[NAME_LEN]; //报警输入名称
  1231. BYTE byAlarmInType; //报警器类型:0:常开;1:常闭
  1232. BYTE byUseAlarmIn; //是否处理,0:不使用;1:使用
  1233. BYTE byRes1[2]; //保留
  1234. NET_EHOME_ALARMIN_LINKAGE_TYPE struLinkageType; //联动模式
  1235. NET_EHOME_RECORD_CHAN struRecordChan; //关联录像通道
  1236. BYTE byRes2[128]; //保留
  1237. }NET_EHOME_ALARMIN_CFG,*LPNET_EHOME_ALARMIN_CFG;
  1238. typedef struct tagNET_EHOME_MANUAL_IOOUT_CTRL
  1239. {
  1240. DWORD dwSize; //结构体大小
  1241. DWORD dwChan; //IO输出编号,从1开始
  1242. DWORD dwDelayTime; //报警输出持续时间(秒),值为0表示一直输出,否则按指定时间长度进行输出。
  1243. BYTE byAction; //0-关闭报警输出,1-开启报警输出
  1244. BYTE byRes[19];
  1245. }NET_EHOME_MANUAL_IOOUT_CTRL,*LPNET_EHOME_MANUAL_IOOUT_CTRL;
  1246. typedef struct tagNET_EHOME_IMAGE_CFG
  1247. {
  1248. DWORD dwSize; //结构体大小
  1249. BYTE byHue; //色调,0~255
  1250. BYTE byContrast; //对比度,0~255
  1251. BYTE byBright; //亮度,0~255
  1252. BYTE bySaturation; //饱和度
  1253. BYTE byRes[24];
  1254. }NET_EHOME_IMAGE_CFG,*LPNET_EHOME_IMAGE_CFG;
  1255. typedef struct tagBINARY_DATA_INFO
  1256. {
  1257. DWORD dwMagic;
  1258. DWORD dwCommand; //命令码
  1259. DWORD dwSequence; //序号
  1260. DWORD dwStatus; //状态值
  1261. DWORD dwBufLen;
  1262. BYTE byMsgType; /*报文类型,0-无效,1-请求报文,2-应答报文*/
  1263. char sSerialNumber[12];//设备序列号,尚未使用
  1264. //char sDeviceID[16];//设备ID
  1265. BYTE byVersion;
  1266. BYTE byRes[2];
  1267. } BINARY_DATA_INFO, *LPBINARY_DATA_INFO;
  1268. #define NET_EHOME_GET_NETWORK_CFG 5 //获取网络参数
  1269. #define NET_EHOME_SET_NETWORK_CFG 6 //设置网络参数
  1270. #define NET_EHOME_GET_COMPRESSION_CFG 7 //获取压缩参数
  1271. #define NET_EHOME_SET_COMPRESSION_CFG 8 //设置压缩参数
  1272. #define NET_EHOME_GET_IMAGE_CFG 9 //获取图像参数
  1273. #define NET_EHOME_SET_IMAGE_CFG 10 //设置图像参数
  1274. #define NET_EHOME_GET_ALARMIN_CFG 11 //获取报警输入参数
  1275. #define NET_EHOME_SET_ALARMIN_CFG 12 //设置报警输入参数
  1276. #define NET_EHOME_GET_ALARM_TIME_CFG 13 //获取报警布防时间参数
  1277. #define NET_EHOME_SET_ALARM_TIME_CFG 14 //设置报警布防时间参数
  1278. #define NET_EHOME_GET_ALARMOUT_CFG 15 //获取报警输出参数
  1279. #define NET_EHOME_SET_ALARMOUT_CFG 16 //设置报警输出参数
  1280. #define NET_EHOME_GET_ALARMOUT_STATUS_CFG 17 //获取报警输出状态参数
  1281. #define NET_EHOME_SET_ALARMOUT_STATUS_CFG 18 //设置报警输出状态参数
  1282. #define NET_EHOME_MANUAL_IOOUT 19 //手动控制IO输出
  1283. typedef enum tagNET_CMS_ENUM_PROXY_TYPE
  1284. {
  1285. ENUM_PROXY_TYPE_NETSDK = 0, //NetSDK代理
  1286. ENUM_PROXY_TYPE_HTTP //HTTP代理
  1287. }NET_CMS_ENUM_PROXY_TYPE;
  1288. typedef struct tagNET_EHOME_PT_PARAM
  1289. {
  1290. NET_EHOME_IPADDRESS struIP; //监听的IP和端口
  1291. BYTE byProtocolType; //协议类型,0-TCP
  1292. BYTE byProxyType; //代理类型,0-NetSDK代理,1-HTTP代理
  1293. BYTE byRes[2];
  1294. }NET_EHOME_PT_PARAM, *LPNET_EHOME_Proxy_PARAM;
  1295. typedef struct tagNET_EHOME_PASSTHROUGH_PARAM
  1296. {
  1297. DWORD dwSequence; //报文序号
  1298. DWORD dwUUID; //会话ID
  1299. BYTE byRes[64];
  1300. }NET_EHOME_PASSTHROUGH_PARAM, *LPNET_EHOME_PASSTHROUGH_PARAM;
  1301. typedef struct tagNET_EHOME_PTXML_PARAM
  1302. {
  1303. void* pRequestUrl; //请求URL
  1304. DWORD dwRequestUrlLen; //请求URL长度
  1305. void* pCondBuffer; //条件缓冲区(XML格式数据)
  1306. DWORD dwCondSize; //条件缓冲区大小
  1307. void* pInBuffer; //输入缓冲区(XML格式数据)
  1308. DWORD dwInSize; //输入缓冲区大小
  1309. void* pOutBuffer; //输出缓冲区(XML格式数据)
  1310. DWORD dwOutSize; //输出缓冲区大小
  1311. DWORD dwReturnedXMLLen; //实际从设备接收到的XML数据的长度
  1312. DWORD dwRecvTimeOut; //默认5000ms
  1313. BYTE byRes[28]; //保留
  1314. }NET_EHOME_PTXML_PARAM, *LPNET_EHOME_PTXML_PARAM;
  1315. NET_DVR_API LONG CALLBACK NET_ECMS_StartListenProxy(LPNET_EHOME_Proxy_PARAM lpStru);
  1316. NET_DVR_API BOOL CALLBACK NET_ECMS_StopListenProxy(LONG lListenHandle, DWORD dwProxyType = 0);
  1317. NET_DVR_API LONG CALLBACK NET_ECMS_ConvertProtocolHttpToPassthrough(void* pSrcBuffer, DWORD dwSrcBufLen, void* pDestBuffer, DWORD dwDestBufLen, LPNET_EHOME_PASSTHROUGH_PARAM lpParam, BOOL bToPassthrough = TRUE);
  1318. typedef void (CALLBACK* PASSTHROUGHDATACALLBACK)(DWORD dwProxyType, LONG lListenHandle, void* pDeviceID, DWORD dwDevIDLen, void* pDataBuffer, DWORD dwDataLen, void* pUser);
  1319. NET_DVR_API BOOL CALLBACK NET_ECMS_SetPassthroughDataCallback(PASSTHROUGHDATACALLBACK fnPassthroughDataCb, void* pUser, DWORD dwProxyType = 0);
  1320. NET_DVR_API BOOL CALLBACK NET_ECMS_SendPassthroughData(void* pDataBuffer, DWORD dDataLen, DWORD dwProxyType = 0);
  1321. NET_DVR_API BOOL CALLBACK NET_ECMS_GetPTXMLConfig(LONG iUserID, LPNET_EHOME_PTXML_PARAM lpPTXMLParam);
  1322. NET_DVR_API BOOL CALLBACK NET_ECMS_PutPTXMLConfig(LONG iUserID, LPNET_EHOME_PTXML_PARAM lpPTXMLParam);
  1323. NET_DVR_API BOOL CALLBACK NET_ECMS_PostPTXMLConfig(LONG iUserID, LPNET_EHOME_PTXML_PARAM lpPTXMLParam);
  1324. NET_DVR_API BOOL CALLBACK NET_ECMS_DeletePTXMLConfig(LONG lUserID, LPNET_EHOME_PTXML_PARAM lpPTXMLParam);
  1325. NET_DVR_API BOOL CALLBACK NET_ECMS_SetSDKLocalCfg(NET_EHOME_LOCAL_CFG_TYPE enumType, void* const lpInBuff);
  1326. NET_DVR_API BOOL CALLBACK NET_ECMS_GetSDKLocalCfg(NET_EHOME_LOCAL_CFG_TYPE enumType,void *lpOutBuff);
  1327. typedef struct tagNET_EHOME_XML_REMOTE_CTRL_PARAM
  1328. {
  1329. DWORD dwSize;
  1330. void* lpInbuffer; //控制参数缓冲区
  1331. DWORD dwInBufferSize; //控制参数缓冲区长度
  1332. DWORD dwSendTimeOut; //数据发送超时时间,单位ms,默认5s
  1333. DWORD dwRecvTimeOut; //数据接收超时时间,单位ms,默认5s
  1334. void *lpOutBuffer; //输出缓冲区
  1335. DWORD dwOutBufferSize; //输出缓冲区大小
  1336. void *lpStatusBuffer; //状态缓冲区,若不需要可置为NULL
  1337. DWORD dwStatusBufferSize; //状态缓冲区大小
  1338. BYTE byRes[16];
  1339. }NET_EHOME_XML_REMOTE_CTRL_PARAM, *LPNET_EHOME_XML_REMOTE_CTRL_PARAM;
  1340. NET_DVR_API BOOL CALLBACK NET_ECMS_XMLRemoteControl(LONG lUserID, LPNET_EHOME_XML_REMOTE_CTRL_PARAM lpCtrlParam, DWORD dwCtrlSize);
  1341. #define EHOME_CMSALARM_EXCEPTION 0x105 //CMS接收报警异常
  1342. 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);
  1343. NET_DVR_API BOOL CALLBACK NET_ECMS_TranBuf(LONG lUserID, DWORD dwLength, void *pBuf);
  1344. typedef enum
  1345. {
  1346. LONG_CFG_CREATED, //长连接建立成功
  1347. LONG_CFG_CREATE_FAIL, //长连接建立失败
  1348. LONG_CFG_DATA, //长连接普通数据
  1349. LONG_CFG_TERMINATE //长连接销毁消息
  1350. }LONG_LINK_MSG;
  1351. typedef BOOL(CALLBACK *LongConfigCallBack)(LONG iHandle, LONG_LINK_MSG enMsg, void *pOutBuffer, DWORD dwOutLen, void *pUser);
  1352. typedef struct tagNET_EHOME_LONG_CFG_INPUT
  1353. {
  1354. LongConfigCallBack fnDataCallBack;
  1355. void *pUser;
  1356. BYTE byRes[32];
  1357. }NET_EHOME_LONG_CFG_INPUT, *LPNET_EHOME_LONG_CFG_INPUT;
  1358. typedef struct tagNET_EHOME_LONG_CFG_SEND
  1359. {
  1360. void *pDataBuffer;
  1361. DWORD dwDataLen;
  1362. BYTE byRes[32];
  1363. }NET_EHOME_LONG_CFG_SEND, *LPNET_EHOME_LONG_CFG_SEND;
  1364. /** 兼容信息发布私有协议 begin */
  1365. #define NET_EHOME_S2C_TIME_ADJUST 0x9 //终端校时
  1366. #define NET_EHOME_S2C_SEND_ERRCODE 0xD //发送错误码
  1367. #define NET_EHOME_S2C_SET_SERVER_INFO 0x18 //设置服务器信息给终端
  1368. #define NET_EHOME_S2C_GET_TERMINAL_INFO 0x19 //获取终端信息
  1369. #define NET_EHOME_S2C_LOGOUT 0x20 //通知终端登出服务器
  1370. #define NET_EHOME_S2C_POST_SCHEDULE 0x50 //日程下发
  1371. #define NET_EHOME_S2C_TERMINALCONTROL_V20 0x51 //终端设备控制V20
  1372. #define NET_EHOME_S2C_GET_CAP_SUPPORTEDCMD 0x52 //获取终端支持的信令的能力集
  1373. #define NET_EHOME_S2C_TERMINALCONTROL 0x53 //终端设备控制
  1374. #define NET_EHOME_S2C_PLAYCONTROL 0x54 //终端播放控制
  1375. #define NET_EHOME_S2C_SET_IPCINFO 0x55 //设置IPC信息
  1376. #define NET_EHOME_S2C_GET_WORKSTATUS 0x56 //获取设备工作状态
  1377. #define NET_EHOME_S2C_VERSIONUPGRADE 0x57 //设备升级
  1378. #define NET_EHOME_S2C_SETPLAYERPARAM 0x58 //设置终端播放参数
  1379. #define NET_EHOME_S2C_SETSERVERADDR 0x5B //设置终端注册的服务器信息
  1380. #define NET_EHOME_S2C_SET_WEATHERINFO 0x61 //城市天气信息设置
  1381. #define NET_EHOME_S2C_GET_SCREENSHOT 0x62 //获取终端的屏幕截图
  1382. #define NET_EHOME_S2C_GET_DEFAULTPARAM 0x63 //获取恢复默认参数后的值
  1383. #define NET_EHOME_S2C_REPLACE_MATERIAL 0x64 //素材替换
  1384. #define NET_EHOME_S2C_CANCEL_SCHEDULE 0x65 //取消日程发布
  1385. #define NET_EHOME_S2C_SET_QUEUE_INFO 0x66 //叫号管理信息
  1386. #define NET_EHOME_S2C_PUBLISH_SHOT_PIC 0x67 //下发弹图图片
  1387. #define NET_EHOME_S2C_GET_IPCINFO 0x68 //获取IPC信息
  1388. #define NET_EHOME_S2C_SET_TERMINAL_IP 0x69 //设置终端的ip
  1389. #define NET_EHOME_S2C_GET_TERMINAL_IP 0x70 //获取终端的ip
  1390. #define NET_EHOME_S2C_SET_TERMINAL_NAME 0x71 //设置终端的名称
  1391. #define NET_EHOME_S2C_SET_SWITCHPLAN 0x100 //定时开关机计划下发
  1392. #define NET_EHOME_S2C_GET_SWITCHPLAN 0x101 //获取定时开关机计划
  1393. #define NET_EHOME_S2C_SET_VOLUMEPLAN 0x102 //设置定时音量计划
  1394. #define NET_EHOME_S2C_GET_VOLUMEPLAN 0x103 //获取音量控制计划
  1395. #define NET_EHOME_S2C_SET_INPUTPLAN 0x104 //按时间段控制HDMI和信息发布切换
  1396. #define NET_EHOME_S2C_GET_INPUTPLAN 0x105 //获取HDMI和信息发布切换切换计划
  1397. #define NET_EHOME_S2C_SET_CHARACTER 0x106 //往终端插播文字消息
  1398. #define NET_EHOME_S2C_GET_CHARACTER 0x107 //获取终端正在插播的文字消息
  1399. #define NET_EHOME_S2C_RETRANSMIT_TO_TERM 0x108 //服务器数据透传到终端
  1400. #define NET_EHOME_S2C_TRANS_WITH_RET 0x10A //服务器数据透传到终端并接收终端透传到服务器的数据
  1401. #define NET_EHOME_S2C_SET_ADB_CFG 0x110 //设置ADB参数
  1402. #define NET_EHOME_S2C_GET_ADB_CFG 0x111 //获取ADB参数
  1403. #define NET_EHOME_S2C_SET_TIEM_ZONE 0x112 //设置终端的时区信息
  1404. #define NET_EHOME_S2C_GET_TIME_ZONE 0x113 //获取终端的时区信息
  1405. #define NET_EHOME_S2C_SET_SADP 0x114 //设置终端的SADP信息
  1406. #define NET_EHOME_S2C_GET_SADP 0x115 //获取终端的SADP信息
  1407. #define NET_EHOME_S2C_GET_COMPONENT 0x116 //获取终端组件信息
  1408. #define NET_EHOME_S2C_PUBLISH_XML 0x200 //日程、插播、升级XML透传(公安平台专用)
  1409. #define NET_EHOME_S2C_SCREEN_SHOT 0x201 //终端截屏(公安平台专用)
  1410. #define NET_EHOME_S2C_GET_VCA_VERSION 0x100034 //获取智能库版本号
  1411. #define NET_EHOME_S2C_GET_VCA_MASK_REGION 0x100054 //获取人脸屏蔽区域配置
  1412. #define NET_EHOME_S2C_SET_VCA_MASK_REGION 0x100055 //设置人脸屏蔽区域配置
  1413. #define NET_EHOME_S2C_SET_CALIBRATION 0x100080 //设置标定场景
  1414. #define NET_EHOME_S2C_GET_CALIBRATION 0x100081 //获取标定场景
  1415. #define NET_EHOME_S2C_GET_PDC_RULECFG_V42 0x113427 //获取客流量统计规则参数
  1416. #define NET_EHOME_S2C_SET_PDC_RULECFG_V42 0x113428 //设置客流量统计规则参数
  1417. #define NET_EHOME_S2C_GET_CAMERA_SETUPCFG 0x11350d //获取相机安装位置
  1418. #define NET_EHOME_S2C_SET_CAMERA_SETUPCFG 0x11350e //配置相机安装位置
  1419. #define NET_EHOME_S2C_GET_FACESNAPCFG 0x115001 //获取人脸抓拍参数
  1420. #define NET_EHOME_S2C_SET_FACESNAPCFG 0x115002 //设置人脸抓拍参数
  1421. #define NET_EHOME_S2C_GET_VCA_CTRLINFO_CFG 0x11503e //批量获取智能控制参数
  1422. #define NET_EHOME_S2C_SET_VCA_CTRLINFO_CFG 0x11503f //批量设置智能控制参数
  1423. #define NET_EHOME_MAX_TYPE_LEN 32 //通用长度
  1424. #define NET_EHOME_MAX_NAME_LEN 64 //名称长度
  1425. #define NET_EHOME_MAX_TERM_NAME_LEN 100 //终端的名字长度
  1426. #define NET_EHOME_MAX_TEXT_MESSAGE_NUM 5 //终端一个窗口最大支持的文字消息条数
  1427. #define NET_EHOME_MAX_TEXT_CONTENT_NUM 1024 //插播的文字消息内容的长度
  1428. #define NET_EHOME_MAX_PLATFROM_URL_LEN 256 //KMS服务器上文件的URL地址的最大长度
  1429. #define NET_EHOME_MAX_WEATHERINFO_LEN 4*1024 //天气信息的最大长度
  1430. //二进制数据的发送结构
  1431. typedef struct tagNET_EHOME_BINARY_SEND_DATA
  1432. {
  1433. DWORD dwSize;
  1434. void *lpInBuffer;
  1435. DWORD dwInBufferSize;
  1436. DWORD dwRecvTimeOut; //接收超时时间
  1437. BYTE byRes[64];
  1438. }NET_EHOME_BINARY_SEND_DATA, *LPNET_EHOME_BINARY_SEND_DATA;
  1439. //二进制数据的接收结构
  1440. typedef struct tagNET_EHOME_BINARY_RECV_DATA
  1441. {
  1442. DWORD dwSize;
  1443. void *lpOutBuffer;
  1444. DWORD dwOutBufferSize;
  1445. BYTE byRes[64];
  1446. }NET_EHOME_BINARY_RECV_DATA, *LPNET_EHOME_BINARY_RECV_DATA;
  1447. /** 日程下发 */
  1448. typedef struct tagNET_EHOME_POST_SCHEDULE
  1449. {
  1450. BYTE byServerIP[32]; //服务器ip
  1451. DWORD dwServerPort; //服务器的端口号
  1452. DWORD dwScheduleID; //日程的ID,新建日程时分配的唯一索引
  1453. DWORD dwScheduleSeq; //断点续传的时候使用,用来标示日程是否被修改,能否继续传输
  1454. BOOL byIsDefaultSchedual; //用来标示这个日程是否是垫片日程
  1455. BYTE byRes[2];
  1456. DWORD dwTimingSchedualID; //定时日程计划的ID,标示终端想要获取的是哪个定时计划
  1457. BYTE byEffectiveTime[32]; //日程开始播放的时间
  1458. }NET_EHOME_POST_SCHEDULE, *LPNET_EHOME_POST_SCHEDULE;
  1459. //用来标示发送的是叫号数据还是命令
  1460. typedef enum
  1461. {
  1462. NET_EHOME_DATA_INFO_TYPE = 1, //叫号数据
  1463. NET_EHOME_COMMAND_INFO_TYPE = 2, //叫号控制命令
  1464. NET_EHOME_CANCEL_SHOT_PIC, //取消动态弹图
  1465. NET_EHOME_START_CAPTURE_PIC, //开始抓拍
  1466. NET_EHOME_STOP_CAPTURE_PIC, //取消显示抓拍图片
  1467. }NET_EHOME_THIRD_PARTY_DATA_TYPE;
  1468. typedef enum
  1469. {
  1470. NET_EHOME_SINGLE_REFRESH_TYPE = 1, //单个数据
  1471. NET_EHOME_WHOLE_REFRESH_TYPE = 2, //全部数据
  1472. NET_EHOME_OTHER_REFRESH_TYPE,
  1473. }NET_EHOME_REFRESH_TYPE;
  1474. typedef struct
  1475. {
  1476. char szQueueDataValue[32];
  1477. DWORD dwQueueDataId;
  1478. }NET_EHOME_QUEUE_DATA;
  1479. typedef struct
  1480. {
  1481. NET_EHOME_QUEUE_DATA queueData[20];
  1482. }NET_EHOME_QUEUE_DATALIST;
  1483. typedef struct
  1484. {
  1485. DWORD dwQueueDataListCnt; //行
  1486. DWORD dwQueueDataCnt; //列
  1487. NET_EHOME_QUEUE_DATALIST struQueueDatalist[4];
  1488. }NET_EHOME_QUEUE_ITEM_DATALIST;
  1489. //叫号管理信息
  1490. typedef struct tagNET_EHOME_QUEUE_INFO
  1491. {
  1492. DWORD dwMaterialId; //素材ID
  1493. DWORD dwQueueId; //叫号ID
  1494. NET_EHOME_THIRD_PARTY_DATA_TYPE enumDataType; //命令类型
  1495. NET_EHOME_REFRESH_TYPE enumRefreshType; //数据更新方式
  1496. NET_EHOME_QUEUE_ITEM_DATALIST struItemDataList; //叫号数据列表
  1497. }NET_EHOME_QUEUE_INFO, *LPNET_EHOME_QUEUE_INFO;
  1498. //弹图命令
  1499. typedef struct tagNET_EHOME_SHOT_PIC
  1500. {
  1501. BYTE byServerIP[32]; //服务器IP地址
  1502. DWORD dwServerPort; //服务器端口号
  1503. DWORD dwShotPicID; //弹图的图片ID
  1504. }NET_EHOME_SHOT_PIC, *LPNET_EHOME_SHOT_PIC;
  1505. /* 错误回应 */
  1506. typedef struct tagNET_EHOME_ERRCODE_RET
  1507. {
  1508. DWORD dwCmd; //命令对应的错误码
  1509. DWORD dwErrCode; //对应的NET_EHOME_ERROR_CODE的值
  1510. }NET_EHOME_ERRCODE_RET, *LPNET_EHOME_ERRCODE_RET;
  1511. /* 服务器和终端之间定义的错误码(2.0及以上版本可用)*/
  1512. enum NET_EHOME_ERROR_CODE
  1513. {
  1514. EHOME_OK = 0,
  1515. EHOME_PASSERWORD_ERROR = 1, //密码错误
  1516. EHOME_NOT_SUPPORT = 2, //终端不支持
  1517. EHOME_USERNAME_ERROR = 3, //用户名错误
  1518. EHOME_USERNAME_PASSWORD_ERROR = 4, //用户名或者密码错误
  1519. EHOME_TERM_RNAME_REPEAT = 5, //终端名称重复
  1520. EHOME_TERM_SERIAL_REPEAT = 6, //终端序列号重复
  1521. EHOME_PARAM_ERROR = 7, //参数错误
  1522. };
  1523. //控制命令对应的命令码
  1524. enum NET_EHOME_CONTROL_TYPE
  1525. {
  1526. NET_EHOME_CONTROL_STARTPLAY = 1, //开始播放
  1527. NET_EHOME_CONTROL_STOPPLAY, //停止播放
  1528. NET_EHOME_CONTROL_INSERT, //插播
  1529. NET_EHOME_CONTROL_STOPINSERT, //停止插播
  1530. NET_EHOME_CONTROL_POWERON, //开机
  1531. NET_EHOME_CONTROL_POWEROFF, //关机
  1532. NET_EHOME_CONTROL_REBOOT, //重启
  1533. NET_EHOME_CONTROL_RESTORECONFIG, //恢复默认参数
  1534. NET_EHOME_CONTROL_SCREENOPEN, //屏幕开
  1535. NET_EHOME_CONTROL_SCREENCLOSE, //屏幕关
  1536. NET_EHOME_CONTROL_PLANCTRL, //音量和定时开关机计划
  1537. NET_EHOME_CONTROL_CANCELINSERT, //取消插播
  1538. NET_EHOME_CONTROL_PUBLISH_STATE_SHOW, //终端发布进度显示
  1539. NET_EHOME_CONTROL_PUBLISH_STATE_HIDE, //终端发布进度隐藏
  1540. };
  1541. /*插播的类型,插播素材或者节目*/
  1542. enum NET_EHOME_PROGRAM_INSERT_TYPE
  1543. {
  1544. NET_EHOME_INSERT_TYPE_MATERIAL = 1,
  1545. NET_EHOME_INSERT_TYPE_PROGRAM,
  1546. };
  1547. /*位置坐标*/
  1548. typedef struct tagNET_EHOME_POSITION_INFO
  1549. {
  1550. DWORD dwPositionX;
  1551. DWORD dwPositionY;
  1552. DWORD dwHeight;
  1553. DWORD dwWidth;
  1554. }NET_EHOME_POSITION_INFO, *LPNET_EHOME_POSITION_INFO;
  1555. //字符效果
  1556. typedef struct
  1557. {
  1558. DWORD dwFontSize; //字体大小
  1559. DWORD dwFontColor; //字体颜色
  1560. DWORD dwBackColor; //背景颜色
  1561. DWORD dwBackTransparent; //透明度
  1562. BOOL bSubtitlesEnabled; //使能字符显示模式
  1563. BYTE szScrollDirection[32]; //滚动方向,left,right,up,down
  1564. DWORD dwScrollSpeed;//滚动速度
  1565. }NET_EHOME_CHAR_EFFECT;
  1566. /* 插播效果 */
  1567. typedef struct
  1568. {
  1569. NET_EHOME_CHAR_EFFECT struCharEffect; //字符效果
  1570. DWORD dwPageTime; //页面时间
  1571. DWORD dwScrollSpeedWeb; //页面滚动速度
  1572. }NET_EHOME_INSERT_EFFECT;
  1573. /*插播素材或者节目的信息*/
  1574. typedef struct tagNET_EHOME_INSERT_TEXT_INFO
  1575. {
  1576. DWORD dwTextNo; //插播的文件索引,素材ID或者节目ID
  1577. BYTE szPlayMode[32]; //播放模式,byTime或byEndTime
  1578. DWORD dwCountNum; //播放次数,暂时不支持
  1579. DWORD dwPlayDuration; //播放时间
  1580. BYTE playEndTime[32]; //按照结束时间进行插播
  1581. DWORD dwTextSeq; //用于判断文件ID对应的文件是否一致
  1582. }NET_EHOME_INSERT_TEXT_INFO, *LPNET_EHOME_INSERT_TEXT_INFO;
  1583. /* 坐标模式 */
  1584. enum NET_EHOME_POS_MODE
  1585. {
  1586. NET_EHOME_POS_MODE_ILLEGAL = 0,
  1587. NET_EHOME_POS_MODE_STANDARD = 1,//基准坐标1920*1920
  1588. NET_EHOME_POS_MODE_RESOLUTION = 2,//分辨率坐标
  1589. };
  1590. /* 插播参数 */
  1591. typedef struct tagNET_EHOME_INSERT_INFO
  1592. {
  1593. DWORD dwInsertType; //NET_EHOME_PROGRAM_INSERT_TYPE
  1594. NET_EHOME_INSERT_TEXT_INFO struMaterialInfo;
  1595. NET_EHOME_INSERT_TEXT_INFO struProgramInfo;
  1596. NET_EHOME_POSITION_INFO struPosInfo;
  1597. NET_EHOME_INSERT_EFFECT struInsertEffect;
  1598. }NET_EHOME_INSERT_INFO, *LPNET_EHOME_INSERT_INFO;
  1599. /* 插播参数V20 */
  1600. typedef struct tagNET_EHOME_INSERT_INFO_V20
  1601. {
  1602. DWORD dwInsertType; //NET_EHOME_PROGRAM_INSERT_TYPE
  1603. NET_EHOME_INSERT_TEXT_INFO struMaterialInfo;
  1604. NET_EHOME_INSERT_TEXT_INFO struProgramInfo;
  1605. NET_EHOME_POSITION_INFO struPosInfo;
  1606. NET_EHOME_INSERT_EFFECT struInsertEffect;
  1607. DWORD dwPosMode; //坐标模式,参见枚举NET_EHOME_POS_MODE
  1608. BYTE byRes[64];
  1609. }NET_EHOME_INSERT_INFO_V20, *LPNET_EHOME_INSERT_INFO_V20;
  1610. enum NET_EHOME_PLANCTRL_TYPE
  1611. {
  1612. NET_EHOME_CONTROL_SWITCHPLAY = 1, //定时开关机对应的EHome命令
  1613. NET_EHOME_CONTROL_VOLUMEPLAY, //音量对应的EHome命令
  1614. NET_EHOME_CONTROL_INPUTPLAY, //定时输入计划是否启用对应的的EHome命令
  1615. };
  1616. /*定时计划控制*/
  1617. typedef struct tagNET_EHOME_PLAY_CTRLPARAM
  1618. {
  1619. NET_EHOME_PLANCTRL_TYPE enumPlanType; //控制的类型
  1620. BOOL bEnable; //是否使能
  1621. }NET_EHOME_PLAN_CTRLPARAM, *LPNET_EHOME_PLAY_CTRLPARAM;
  1622. /* 终端控制 */
  1623. typedef struct tagNET_EHOME_TERMINAL_CONTROL
  1624. {
  1625. DWORD dwControlType; //NET_EHOME_CONTROL_TYPE 控制命令的类型
  1626. NET_EHOME_INSERT_INFO struInsertInfo; //插播相关的参数
  1627. NET_EHOME_PLAN_CTRLPARAM struPlanCtrl; //信息发布终端的定时计划控制
  1628. DWORD dwConnPort; //数据传输端口,暂时没使用
  1629. }NET_EHOME_TERMINAL_CONTROL, *LPNET_EHOME_TERMINAL_CONTROL;
  1630. /* 终端控制V20 */
  1631. typedef struct tagNET_EHOME_TERMINAL_CONTROL_V20
  1632. {
  1633. DWORD dwControlType; //NET_EHOME_CONTROL_TYPE 控制命令的类型
  1634. NET_EHOME_INSERT_INFO_V20 struInsertInfo; //插播相关的参数
  1635. NET_EHOME_PLAN_CTRLPARAM struPlanCtrl; //信息发布终端的定时计划控制
  1636. DWORD dwConnPort; //数据传输端口,暂时没使用
  1637. BYTE byRes[64];
  1638. }NET_EHOME_TERMINAL_CONTROL_V20, *LPNET_EHOME_TERMINAL_CONTROL_V20;
  1639. //文字消息的内容
  1640. typedef struct tagNET_EHOME_TEXT_MESSAGE
  1641. {
  1642. DWORD dwId;//文字消息唯一索引
  1643. BYTE szMsgName[NET_EHOME_MAX_NAME_LEN]; //消息名称
  1644. BYTE szContent[NET_EHOME_MAX_TEXT_CONTENT_NUM]; //消息内容
  1645. BYTE szBeginTime[NET_EHOME_MAX_TYPE_LEN]; //消息开始插播时间
  1646. BYTE szEndTime[NET_EHOME_MAX_TYPE_LEN]; //消息插播结束时间
  1647. }NET_EHOME_TEXT_MESSAGE, *LPNET_EHOME_TEXT_MESSAGE;
  1648. //插播文字消息
  1649. typedef struct tagNET_EHOME_INSERT_CHARACTER
  1650. {
  1651. DWORD dwMessageCnt;
  1652. NET_EHOME_TEXT_MESSAGE struTextMessage[NET_EHOME_MAX_TEXT_MESSAGE_NUM];
  1653. BYTE szMsgPos[NET_EHOME_MAX_TYPE_LEN]; //消息位置,顶部,中部,底部,自定义
  1654. NET_EHOME_POSITION_INFO struPosition; //消息自定义位置,只有msgPos为自定义时有效
  1655. NET_EHOME_CHAR_EFFECT struCharEffect; /* 字符效果 */
  1656. }NET_EHOME_INSERT_CHARACTER, *LPNET_EHOME_INSERT_CHARACTER;
  1657. typedef enum
  1658. {
  1659. POWER_ON = 1, //开机
  1660. POWER_OFF, //关机
  1661. }NET_EHOME_POWER_ONOFF;
  1662. typedef enum
  1663. {
  1664. INVALID_PLAN = 0,
  1665. DAYLY_PLAN, /*日计划*/
  1666. WEEKLY_PLAN, /*周计划*/
  1667. SELF_DEF_PLAN, /*自定义计划*/
  1668. CIRCLE_PLAN, /*轮播*/
  1669. }NET_EHOME_PLAY_SCHEDULE_TYPE1;
  1670. typedef enum
  1671. {
  1672. INVALID_DAY = 0,
  1673. MONDAY,
  1674. TUESDAY,
  1675. WEDNESDAY,
  1676. THURSDAY,
  1677. FRIDAY,
  1678. SATURDAY,
  1679. SUNDAY,
  1680. }NET_EHOME_DAY_OF_WEEK1;
  1681. /*具体的配置信息*/
  1682. typedef struct
  1683. {
  1684. DWORD dwId; /*标示第几个开关机配置节点*/
  1685. DWORD dwSwitchType; /*开关机类型,开机还是关机,1开机,2关机*/
  1686. DWORD dwSwitchDate; /*开机或者关机的日期*/
  1687. DWORD dwSwitchTime; //开机或者关机的时间,235959 等价于23:59:59
  1688. }NET_EHOME_SWITCH_PLAN, *LPNET_EHOME_SWITCHE_PLAN;
  1689. //定时开关机日计划
  1690. typedef struct
  1691. {
  1692. DWORD dwDayPlanCnt; /*一天有几个开关机节点*/
  1693. NET_EHOME_SWITCH_PLAN struDayPlan[16];
  1694. }NET_EHOME_SWITCH_DAILY_PLAN, *LPNET_EHOME_SWITCH_DAILY_PLAN;
  1695. typedef struct
  1696. {
  1697. DWORD dwId; /*标示第几天*/
  1698. NET_EHOME_DAY_OF_WEEK1 enumDayOfWeek; /*标示具体一周中的哪一天*/
  1699. NET_EHOME_SWITCH_DAILY_PLAN struDayOfWeekPlan; //日计划
  1700. }NET_EHOME_SWITCHE_DAY_OF_WEEK_PLAN, *LPNET_EHOME_SWITCH_DAY_OF_WEEK_PLAN;
  1701. //周计划
  1702. typedef struct
  1703. {
  1704. DWORD dwWeekPlanCnt; /*一周有几天的定时计划*/
  1705. NET_EHOME_SWITCHE_DAY_OF_WEEK_PLAN struWeekPlan[7];
  1706. }NET_EHOME_SWITCH_WEEKLY_PLAN, *LPNET_EHOME_SWITCH_WEEKLY_PLAN;
  1707. //发送给终端的定时开关机参数结构
  1708. typedef struct
  1709. {
  1710. NET_EHOME_PLAY_SCHEDULE_TYPE1 enumPlanType; //计划类型,周计划还是日计划
  1711. union
  1712. {
  1713. NET_EHOME_SWITCH_DAILY_PLAN struDailyPlan; //每天的定时计划
  1714. NET_EHOME_SWITCH_WEEKLY_PLAN struWeeklyPlan; //每周的定时计划
  1715. }unionSwitchPlan;
  1716. }NET_EHOME_SWITCH_PLAN_PARAM, *LPNET_EHOME_SWITCH_PLAN_PARAM;
  1717. /*具体的音量参数*/
  1718. typedef struct
  1719. {
  1720. DWORD dwId; /*用来标示第几个音量配置*/
  1721. DWORD dwVolumeValue; //音量的数值
  1722. DWORD dwVolumeBeginDate; //音量的开始日期
  1723. DWORD dwVolumeBeginTime; //音量的开始时间235959等价于23:59:59
  1724. DWORD dwVolumeEndDate; //音量的数据日期
  1725. DWORD dwVolumeEndTime; //音量结束时间
  1726. }NET_EHOME_VOLUME_PLAN, *LPNET_EHOME_VOLUME_PLAN;
  1727. /*音量天计划*/
  1728. typedef struct
  1729. {
  1730. DWORD dwDayPlanCnt;
  1731. NET_EHOME_VOLUME_PLAN struDayPlan[8]; //每一天的音量计划
  1732. }NET_EHOME_VOLUME_DAILY_PLAN, *LPNET_EHOME_VOLUME_DAILY_PLAN;
  1733. typedef struct
  1734. {
  1735. DWORD dwId;
  1736. NET_EHOME_DAY_OF_WEEK1 enumDayOfWeek; //一周中的哪一天
  1737. NET_EHOME_VOLUME_DAILY_PLAN struDayOfWeekPlan;
  1738. }NET_EHOME_VOLUME_DAY_OF_WEEK_PLAN, *LPNET_EHOME_VOLUME_DAY_OF_WEEK_PLAN;
  1739. /*音量周计划*/
  1740. typedef struct
  1741. {
  1742. DWORD dwWeekPlanCnt;
  1743. NET_EHOME_VOLUME_DAY_OF_WEEK_PLAN struWeekPlan[7];
  1744. }NET_EHOME_VOLUME_WEEKLY_PLAN, *LPNET_EHOME_VOLUME_WEEKLY_PLAN;
  1745. //发送给终端的定时调节音量参数结构
  1746. typedef struct
  1747. {
  1748. NET_EHOME_PLAY_SCHEDULE_TYPE1 enumPlanType;
  1749. union
  1750. {
  1751. NET_EHOME_VOLUME_DAILY_PLAN struDailyPlan; //每天的定时计划
  1752. NET_EHOME_VOLUME_WEEKLY_PLAN struWeeklyPlan; //每周的定时计划
  1753. }unionVolumePlan;
  1754. }NET_EHOME_VOLUME_PLAN_PARAM, *LPNET_EHOME_VOLUME_PLAN_PARAM;
  1755. /*定时输入切换,某个时间段,具体的计划参数*/
  1756. typedef struct tagNET_EHOME_INPUT_DAY_PLAN
  1757. {
  1758. DWORD dwId;
  1759. BYTE byInputType[32]; //输入类型,HDMI,InfoPublish,VGA
  1760. DWORD dwBeginDate; //年月日转换成十进制
  1761. DWORD dwBeginTime; //235959 等价于23:59:59
  1762. DWORD dwEndDate; //定时输入切换开始时间
  1763. DWORD dwEndTime; //定时输入切换结束时间
  1764. }NET_EHOME_INPUT_DAY_PLAN, *LPNET_EHOME_INPUT_DAY_PLAN;
  1765. /* 信息发布平台HDMI和信息发布切换日计划 */
  1766. typedef struct tagNET_EHOME_INPUT_DAILY_PLAN
  1767. {
  1768. DWORD dwDayPlanCnt; //一天多少个定时输入切换
  1769. NET_EHOME_INPUT_DAY_PLAN struDayPlan[8]; //最多支持8个
  1770. }NET_EHOME_INPUT_DAILY_PLAN, *LPNET_EHOME_INPUT_DAILY_PLAN;
  1771. /*HDMI和信息发布切换一周中某一天的计划*/
  1772. typedef struct tagNET_EHOME_INPUT_DAY_OF_WEEK_PLAN
  1773. {
  1774. DWORD dwId;
  1775. NET_EHOME_DAY_OF_WEEK1 enumDayOfWeek; //周
  1776. NET_EHOME_INPUT_DAILY_PLAN struDayOfWeekPlan;
  1777. }NET_EHOME_INPUT_DAY_OF_WEEK_PLAN, *LPNET_EHOME_INPUT_DAY_OF_WEEK_PLAN;
  1778. /* 信息发布平台HDMI和信息发布切换周计划 */
  1779. typedef struct tagNET_EHOME_INPUT_WEEKLY_PLAN
  1780. {
  1781. DWORD dwWeekPlanCnt;
  1782. NET_EHOME_INPUT_DAY_OF_WEEK_PLAN struWeekPlan[7]; //7天
  1783. }NET_EHOME_INPUT_WEEKLY_PLAN, *LPNET_EHOME_INPUT_WEEKLY_PLAN;
  1784. /* 信息发布平台HDMI和信息发布切换自定义计划 */
  1785. typedef struct tagNET_EHOME_INPUT_SELF_PLAN
  1786. {
  1787. DWORD dwSelfPlanCnt;
  1788. NET_EHOME_INPUT_DAY_PLAN struSelfPlan[8];
  1789. }NET_EHOME_INPUT_SELF_PLAN, *LPNET_EHOME_INPUT_SELF_PLAN;
  1790. /* HDMI和信息发布切换计划 */
  1791. typedef struct tagNET_EHOME_INPUT_PLAN
  1792. {
  1793. DWORD dwId;
  1794. BYTE byPlanType[32];
  1795. union
  1796. {
  1797. NET_EHOME_INPUT_DAILY_PLAN struDailyPlan;
  1798. NET_EHOME_INPUT_WEEKLY_PLAN struWeeklyPlan;
  1799. }unionInputPlan;
  1800. }NET_EHOME_INPUT_PLAN, *LPNET_EHOME_INPUT_PLAN;
  1801. /*终端的播放参数*/
  1802. typedef struct tagNET_EHOME_DISPLAY_PARAM
  1803. {
  1804. DWORD dwR; //显示的颜色,红
  1805. DWORD dwG;
  1806. DWORD dwB;
  1807. DWORD dwOffsetR; //红偏移
  1808. DWORD dwOffsetG;
  1809. DWORD dwOffsetB;
  1810. DWORD dwBrightnessLevel; //亮度
  1811. DWORD dwContrastLevel; //对比度
  1812. DWORD dwSharpnessLevel; //锐度
  1813. DWORD dwSaturationLevel; //饱和度
  1814. DWORD dwHueLevel; //色调,上边的参数暂时不支持,可以不用赋值
  1815. /*自动亮度调节*/
  1816. BOOL bAutoLightEnable; //自动亮度调节(2.0新增)
  1817. DWORD dwLightMode; //自动亮度的值(2.0新增,有个范围的)
  1818. DWORD dwBackLightLevel; //背光参数
  1819. BOOL bBootLogoEnabled; //开机Logo
  1820. DWORD dwScreenVolume; //屏幕音量,暂时不支持
  1821. //垫片信息
  1822. BOOL bDefaultScheduleEnable; //垫片日程是否使能
  1823. DWORD dwDefaultScheduleId; //垫片日程的ID
  1824. BYTE byDefaultScheduleName[32]; //垫片日程的名字
  1825. BOOL bTemperaturenable; //温度安全是否启用(2.0新增)
  1826. DWORD bSecurity; //温度的安全值
  1827. DWORD bProtectValue; //温度的保护值
  1828. }NET_EHOME_DISPLAY_PARAM, *LPNET_EHOME_DISPLAY_PARAM;
  1829. /*终端密码参数*/
  1830. typedef struct tagNET_EHOME_PASSWORD_CFG
  1831. {
  1832. BYTE szOldPwd[32]; //老的密码
  1833. BYTE szNewPwd[32]; //新密码
  1834. }NET_EHOME_PASSWORD_CFG, *LPNET_EHOME_PASSWORD_CFG;
  1835. /*终端的参数*/
  1836. typedef struct tagNET_EHOME_PLAYER_PARAM
  1837. {
  1838. BYTE szCfgType[32]; //volume,light,logo,defaultSchedule,password,temperature,allParam
  1839. DWORD dwplayerVolume; //播放音量
  1840. NET_EHOME_DISPLAY_PARAM struDisplayParam; //终端的播放参数
  1841. NET_EHOME_PASSWORD_CFG struPasswordCfg; //终端的密码
  1842. }NET_EHOME_PLAYER_PARAM, *LPNET_EHOME_PLAYER_PARAM;
  1843. /*终端设备的基本参数*/
  1844. typedef struct tagNET_EHOME_DEV_DEFAULT_PARAM
  1845. {
  1846. BOOL bAutoLightEnable; //自动亮度调节(新增)
  1847. DWORD dwLightMode; //亮度值(新增)
  1848. DWORD dwBackLightLevel; //背光参数
  1849. DWORD dwVolume; //音量
  1850. BOOL bEnableStartLogo; //开机LOGO是否使能
  1851. BOOL bEnableVolumeTiming; //定时音量计划是否使能
  1852. BOOL bEnablePowerTiming; //定时开关机计划是否使能
  1853. BOOL bDefaultScheduleEnable; //垫片是否使能
  1854. DWORD dwDefaultScheduleId; //垫片日程的id
  1855. BYTE szDefaultScheduleName[32]; //垫片日程的名字
  1856. BOOL bTemperaturenable; //温度安全是否启用(2.0新增)
  1857. DWORD dwSecurity; //温度的安全值
  1858. DWORD dwProtectValue; //温度的保护值
  1859. }NET_EHOME_DEV_DEFAULT_PARAM, *LPNET_EHOME_DEV_DEFAULT_PARAM;
  1860. //终端的IP对应的网关
  1861. typedef struct tagNET_EHOME_TERM_DEFAULT_GATEWAY
  1862. {
  1863. BYTE szIpAddress[32]; //Ipv4的网关
  1864. BYTE szIpv6Address[32]; //Ipv6的网关
  1865. }NET_EHOME_TERM_DEFAULT_GATEWAY, *LPNET_EHOME_TERM_DEFAULT_GATEWAY;
  1866. //终端的ip地址信息
  1867. typedef struct tagNET_EHOME_TERM_IP_ADDRESS
  1868. {
  1869. BYTE szIpVersion[32]; //v4,v6
  1870. BYTE szIpAddress[32]; //IP地址
  1871. BYTE szSubnetMask[32]; //子网掩码
  1872. BYTE szIpv6Address[32]; //Ipv6地址,暂时不支持
  1873. BYTE szBitMask[32]; //Ipv6网关
  1874. NET_EHOME_TERM_DEFAULT_GATEWAY strDefaultGateway;
  1875. }NET_EHOME_TERM_IP_ADDRESS, *LPNET_EHOME_TERM_IP_ADDRESS;
  1876. enum NET_EHOME_TIME_ZONE
  1877. {
  1878. NET_EHOME_ZONE_GMT_LOCAL, // 使用当前时区配置
  1879. NET_EHOME_ZONE_GMT_MINUS_12,
  1880. NET_EHOME_ZONE_GMT_MINUS_11,
  1881. NET_EHOME_ZONE_GMT_MINUS_10,
  1882. NET_EHOME_ZONE_GMT_MINUS_9,
  1883. NET_EHOME_ZONE_GMT_MINUS_8,
  1884. NET_EHOME_ZONE_GMT_MINUS_7,
  1885. NET_EHOME_ZONE_GMT_MINUS_6,
  1886. NET_EHOME_ZONE_GMT_MINUS_5,
  1887. NET_EHOME_ZONE_GMT_MINUS_430,
  1888. NET_EHOME_ZONE_GMT_MINUS_4,
  1889. NET_EHOME_ZONE_GMT_MINUS_330,
  1890. NET_EHOME_ZONE_GMT_MINUS_3,
  1891. NET_EHOME_ZONE_GMT_MINUS_2,
  1892. NET_EHOME_ZONE_GMT_MINUS_1,
  1893. NET_EHOME_ZONE_GMT_0, //UTC 时区
  1894. NET_EHOME_ZONE_GMT_PLUS_1,
  1895. NET_EHOME_ZONE_GMT_PLUS_2,
  1896. NET_EHOME_ZONE_GMT_PLUS_3,
  1897. NET_EHOME_ZONE_GMT_PLUS_330,
  1898. NET_EHOME_ZONE_GMT_PLUS_4,
  1899. NET_EHOME_ZONE_GMT_PLUS_430,
  1900. NET_EHOME_ZONE_GMT_PLUS_5,
  1901. NET_EHOME_ZONE_GMT_PLUS_530,
  1902. NET_EHOME_ZONE_GMT_PLUS_545,
  1903. NET_EHOME_ZONE_GMT_PLUS_6,
  1904. NET_EHOME_ZONE_GMT_PLUS_630,
  1905. NET_EHOME_ZONE_GMT_PLUS_7,
  1906. NET_EHOME_ZONE_GMT_PLUS_8, //东八区
  1907. NET_EHOME_ZONE_GMT_PLUS_9,
  1908. NET_EHOME_ZONE_GMT_PLUS_930,
  1909. NET_EHOME_ZONE_GMT_PLUS_10,
  1910. NET_EHOME_ZONE_GMT_PLUS_11,
  1911. NET_EHOME_ZONE_GMT_PLUS_12,
  1912. NET_EHOME_ZONE_GMT_PLUS_13,
  1913. };
  1914. /* 时间同步参数 */
  1915. typedef struct tagNET_EHOME_TIME_ADJUST_PARAM
  1916. {
  1917. DWORD dwTimeZone; //参考NET_EHOME_TIME_ZONE
  1918. BYTE szTime[32]; // YYYY-MM-DD HH:MM:SS
  1919. }NET_EHOME_TIME_ADJUST_PARAM, *LPNET_EHOME_TIME_ADJUST_PARAM;
  1920. //终端ADB控制信息
  1921. typedef struct tagNET_EHOME_ADB_DEBUG
  1922. {
  1923. BOOL bAdbEnable;
  1924. BYTE bySecreKey[128];
  1925. }NET_EHOME_ADB_DEBUG, *LPNET_EHOME_ADB_DEBUG;
  1926. //终端时区信息
  1927. typedef struct tagNET_EHOME_TERM_TIME_ZONE
  1928. {
  1929. BYTE szTimeZone[32]; //时区信息,GMT+08
  1930. }NET_EHOME_TERM_TIME_ZONE, *LPNET_EHOME_TERM_TIME_ZONE;
  1931. /*终端的discovery模式参数,SADP是否使能*/
  1932. typedef struct tagNET_EHOME_DISCOVERY_MODE
  1933. {
  1934. BOOL bSadpMode;
  1935. }NET_EHOME_DISCOVERY_MODE, *LPNET_EHOME_DISCOVERY_MODE;
  1936. typedef enum
  1937. {
  1938. ADDRTYPE_IPV4 = 0,
  1939. ADDRTYPE_IPV6,
  1940. HOSTNAME,
  1941. }NET_EHOME_ADDRFORMAT_CMD;
  1942. typedef struct tagNET_EHOME_PUBLISH_SERVERADDR
  1943. {
  1944. NET_EHOME_ADDRFORMAT_CMD enumAddressingFormatType;
  1945. BYTE szIpAddress[NET_EHOME_MAX_TYPE_LEN];
  1946. BYTE szIpv6Address[NET_EHOME_MAX_TYPE_LEN];
  1947. BYTE szHostName[NET_EHOME_MAX_TYPE_LEN];
  1948. DWORD dwPortNo;
  1949. BYTE szUserName[NET_EHOME_MAX_TYPE_LEN];
  1950. BYTE szPassword[NET_EHOME_MAX_TYPE_LEN];
  1951. BOOL bRegStatus;
  1952. }NET_EHOME_PUBLISH_SERVERADDR, *LPNET_EHOME_PUBLISH_SERVERADDR;
  1953. typedef enum
  1954. {
  1955. NET_EHOME_NORMAL_IPC, //普通IPC
  1956. NET_EHOME_SMART_PASSENGER_IPC, //客流量IPC
  1957. NET_EHOME_SMART_VALID_PASSENGER_IPC, //有效客流量IPC(人脸识别)
  1958. }NET_EHOME_IPC_TYPE;
  1959. typedef enum
  1960. {
  1961. NET_EHOME_HOST_MODE, //主机名
  1962. NET_EHOME_IP_MODE, //IP地址
  1963. }NET_EHOME_ADDRESS_TYPE;
  1964. /*取流协议*/
  1965. typedef enum
  1966. {
  1967. NET_EHOME_TCP = 1,
  1968. NET_EHOME_UDP,
  1969. NET_EHOME_MCAST,
  1970. }NET_EHOME_TRANSMINT_PROTOCAL;
  1971. /*码流类型*/
  1972. typedef enum
  1973. {
  1974. NET_EHOME_MAIN = 1, //主码流
  1975. NET_EHOME_SUB, //子码流
  1976. NET_EHOME_THIRD,
  1977. }NET_EHOME_STREAM_TYPE;
  1978. /* 单个IPC信息 */
  1979. typedef struct tagNET_EHOME_IPC_INFO
  1980. {
  1981. NET_EHOME_IPC_TYPE enumIPCType; //参考NET_EHOME_IPC_TYPE
  1982. DWORD dwId;
  1983. DWORD chanNum; //ipc关联的节目中的通道号
  1984. NET_EHOME_ADDRESS_TYPE enumAddressType; //IP地址类型,参考NET_EHOME_ADDRESS_TYPE
  1985. BYTE szIpcState[32]; //online和offline两种状态
  1986. BYTE szHostName[32]; //主机名
  1987. BYTE szIpVersion[16]; //v4或者v6
  1988. BYTE szIpAddress[32]; //ipv4地址
  1989. BYTE szIpv6Address[32]; //ipV6地址
  1990. DWORD dwPortNo; //ipc的端口号
  1991. DWORD dwIpcChanNum; //ipc通道号
  1992. BYTE szUserName[52]; //ipc登陆用户名
  1993. BYTE szPassWord[32]; //ipc登陆密码
  1994. NET_EHOME_TRANSMINT_PROTOCAL enumTransmitProtocol;//取流协议,参考NET_EHOME_TRANSMINT_PROTOCAL
  1995. NET_EHOME_STREAM_TYPE enumStreamType; //码流类型,参考NET_EHOME_STREAM_TYPE
  1996. }NET_EHOME_IPC_INFO, *LPNET_EHOME_IPC_INFO;
  1997. /* 终端关联IPC信息 */
  1998. typedef struct tagNET_EHOME_RELATE_IPC_INFO
  1999. {
  2000. DWORD dwIpcNum; //IPC个数,添加了几个IPC
  2001. NET_EHOME_IPC_INFO struIpcInfo[6];
  2002. }NET_EHOME_RELATE_IPC_INFO, *LPNET_EHOME_RELATE_IPC_INFO;
  2003. /* 获取设备工作状态 */
  2004. typedef struct tagNET_EHOME_DEV_WORK_STATUS
  2005. {
  2006. BYTE byIdentifyCode[32]; //终端序列号
  2007. DWORD dwCpuUsage; //cpu利用率
  2008. DWORD dwMemTotal; //内存总大小
  2009. DWORD dwMemUsed;
  2010. DWORD dwDiskTotal; //磁盘总容量
  2011. DWORD dwDiskUsed; //磁盘利用率
  2012. DWORD dwTemperature; //终端温度
  2013. BYTE bySoftwareVersion[32]; //软件版本号
  2014. BYTE byDspwareVersion[32]; //DSP版本号
  2015. BYTE byHardwareVersion[32]; //硬件版本号
  2016. BYTE bySystemVersion[32]; //系统版本号
  2017. BYTE byMacAddress[2][32]; //最大支持2个网卡
  2018. BOOL bySwitchEnable; //定时开关机是否使能
  2019. BOOL byVolumeEnable; //定时音量是否使能
  2020. DWORD dwRelateScheNo; //日程id
  2021. BYTE byScheName[100]; //终端正在播放的日程名字
  2022. BYTE byInstallType[32];//vertical or horizontal,横屏or竖屏
  2023. DWORD byResWidth; //分辨率
  2024. DWORD byResHeight; //分辨率
  2025. }NET_EHOME_DEV_WORK_STATUS, *LPNET_EHOME_DEV_WORK_STATUS;
  2026. //终端截屏
  2027. typedef struct tagNET_EHOME_SCREEN_SHOT
  2028. {
  2029. DWORD dwServerPort; //服务器端口号
  2030. DWORD dwClientFdIndex; //客户端fd索引
  2031. }NET_EHOME_SCREEN_SHOT, *LPNET_EHOME_SCREEN_SHOT;
  2032. /* 升级命令tcp链路协商 */
  2033. typedef struct tagNET_EHOME_UPGRADE_CONN_PARAM
  2034. {
  2035. BYTE szServerIP[32]; //服务器IP地址
  2036. DWORD dwServerPort; //服务器端口号
  2037. }NET_EHOME_UPGRADE_CONN_PARAM, *LPNET_EHOME_UPGRADE_CONN_PARAM;
  2038. //终端回应升级状态结构体
  2039. typedef struct tagNET_EHOME_TERMINAL_UPG_ST_REPORT
  2040. {
  2041. DWORD dwLength; //结构体总长度
  2042. DWORD dwCheckSum; //校验和
  2043. DWORD dwRetVal; //1000升级成功,1001正在升级,1002升级失,1003解压缩失败,1004 APK版本不匹配,1005 ROM版本不匹配
  2044. DWORD dwUpgradPercent;
  2045. }NET_EHOME_TERMINAL_UPG_ST_REPORT, *LPNET_EHOME_TERMINAL_UPG_ST_REPORT;
  2046. /* 终端名称 */
  2047. typedef struct tagNET_EHOME_TERMINAL_NAME
  2048. {
  2049. BYTE szTermName[NET_EHOME_MAX_TERM_NAME_LEN];
  2050. }NET_EHOME_TERMINAL_NAME, *LPNET_EHOME_TERMINAL_NAME;
  2051. /* 终端组件信息 */
  2052. typedef struct tagNET_EHOME_SYSCOMPONENT_REDUCED_ADDR
  2053. {
  2054. BYTE szComponentName[32]; //组件名称,例如:SDK
  2055. BYTE szComponentPkgName[32]; //组件包名,例如:com.hikvision.sdk,不需要在客户端显示
  2056. BYTE szComponentVersion[32]; //组件版本,例如:V2.0.2 build 20180705
  2057. DWORD dwIsEnableAutoStart; //是否开机自启动,暂时不需要在客户端显示
  2058. DWORD dwIsSupportUpgrade; //是否支持远程升级
  2059. BYTE byRes[20];
  2060. }NET_EHOME_SYSCOMPONENT_REDUCED_ADDR, *LPNET_EHOME_SYSCOMPONENT_REDUCED_ADDR;
  2061. typedef struct tagNET_EHOME_COMPONENT_GROUP_INFO
  2062. {
  2063. DWORD dwComponentNum; /*系统组件个数*/
  2064. NET_EHOME_SYSCOMPONENT_REDUCED_ADDR struSysComponentAddr[6]; /*组件信息*/
  2065. BYTE byRes[20];
  2066. }NET_EHOME_COMPONENT_GROUP_INFO, *LPNET_EHOME_COMPONENT_GROUP_INFO;
  2067. //素材替换
  2068. typedef struct tagNET_EHOME_REPLACE_MATERIAL
  2069. {
  2070. BYTE szServerIP[NET_EHOME_MAX_TYPE_LEN]; //服务器IP
  2071. DWORD dwServerPort; //服务器端口
  2072. DWORD dwMaterialId; //素材ID
  2073. DWORD dwMaterialSeq; //素材Seq
  2074. }NET_EHOME_REPLACE_MATERIAL, *LPNET_EHOME_REPLACE_MATERIAL;
  2075. /* IPAG日程、插播、升级XML透传 */
  2076. typedef struct tagNET_EHOME_POST_PUBLISH_XML
  2077. {
  2078. BYTE szServerIP[32]; //服务器IP
  2079. DWORD szServerPort; //服务器的端口号
  2080. DWORD dwTerminalID; //终端ID,返回进度时带上来
  2081. DWORD dwXmlUniqueSeq; //唯一xml标示
  2082. DWORD dwXmlSizeH; //xml大小高32位
  2083. DWORD dwXmlSizeL; //xml大小低32位
  2084. BYTE byStorageId[128]; //xml文件存放位置
  2085. BYTE byRes[16]; //保留字段
  2086. }NET_EHOME_POST_PUBLISH_XML, *LPNET_EHOME_POST_PUBLISH_XML;
  2087. /* 城市天气信息 */
  2088. typedef struct tagNET_EHOME_WEATHER_INFO
  2089. {
  2090. BYTE byCityCode[32]; //城市编码
  2091. BYTE byWeatherData[4 * 1024]; //天气数据
  2092. }NET_EHOME_WEATHER_INFO, *LPNET_EHOME_WEATHER_INFO;
  2093. /* 终端的序列号 */
  2094. typedef struct tagNET_EHOME_IDENTIFICATION
  2095. {
  2096. BYTE bySerialNumber[32]; //这个字段暂时没用
  2097. BYTE byIdentifyCode[32]; //终端的序列号,即特征码
  2098. }NET_EHOME_IDENTIFICATION, *LPNET_EHOME_IDENTIFICATION;
  2099. /* 终端信息 */
  2100. typedef struct tagNET_EHOME_TERMINAL_INFO
  2101. {
  2102. NET_EHOME_IDENTIFICATION struDevIdentify;
  2103. DWORD dwNetUintType;
  2104. BYTE byDeviceID[NET_EHOME_MAX_TYPE_LEN];
  2105. BYTE byPassWord[NET_EHOME_MAX_TYPE_LEN];
  2106. BYTE byFirmWareVersion[NET_EHOME_MAX_TYPE_LEN];
  2107. BYTE byLocalIP[NET_EHOME_MAX_TYPE_LEN]; //终端通信IP
  2108. DWORD dwLocalPort;
  2109. DWORD dwDevType;
  2110. DWORD dwManufacture; //0-hikvision
  2111. BOOL bDetectPackage; //1-探测包,0-注册包
  2112. BOOL bReliableTrans; //1-支持可靠传输,0-不支持可靠传输
  2113. BYTE byServerUserName[NET_EHOME_MAX_NAME_LEN]; //服务器用户名
  2114. BYTE byServerUserPassword[NET_EHOME_MAX_NAME_LEN]; //服务器密码
  2115. BYTE byTerminalName[NET_EHOME_MAX_NAME_LEN]; //来注册的终端的名字
  2116. }NET_EHOME_TERMINAL_INFO, *LPNET_EHOME_TERMINAL_INFO;
  2117. /* 信息发布服务器信息 */
  2118. typedef struct tagNET_EHOME_RELEASE_SERVER_INFO
  2119. {
  2120. DWORD dwKeepAliveSeconds; //保活时间,默认50s
  2121. BYTE byAlarmServerIP[32];
  2122. DWORD dwAlarmServerPort;
  2123. DWORD dwAlarmServerType; //通信类型,0-TCP, 1-UDP,默认为0
  2124. DWORD dwAlarmServerTcpPort; //服务器为终端申请的报警端口
  2125. BYTE byNtpServerIP[32];
  2126. DWORD dwNtpServerPort;
  2127. DWORD dwNtpInterval;
  2128. BYTE byPicServerIP[32];
  2129. DWORD dwPicServerPort;
  2130. DWORD dwPicServerType;
  2131. BYTE byBlackListAddr[32];
  2132. BYTE byBlackListName[32];
  2133. DWORD dwBlackListPort;
  2134. BYTE byBlackListUser[32];
  2135. BYTE byBlackListPasswd[32];
  2136. DWORD dwTranserialSvrPort;
  2137. BOOL bReliableTransmission;
  2138. }NET_EHOME_RELEASE_SERVER_INFO, *LPNET_EHOME_RELEASE_SERVER_INFO;
  2139. //终端截屏(公安平台专用)
  2140. typedef struct tagNET_EHOME_SCREEN_SHOT_EX
  2141. {
  2142. DWORD dwServerPort; //服务器端口号
  2143. DWORD dwClientFdIndex; //客户端fd索引
  2144. BYTE szKmsURL[256]; //终端要上传到KMS的URL地址
  2145. }NET_EHOME_SCREEN_SHOT_EX, *LPNET_EHOME_SCREEN_SHOT_EX;
  2146. //终端截屏返回结构
  2147. typedef struct tagNET_EHOME_SCREEN_SHOT_RET
  2148. {
  2149. unsigned int dwConnfd; //终端和服务器异步通信套接字
  2150. unsigned int dwSeq; //终端和服务器异步交互的标识
  2151. char szUUID[64]; //截屏图片的uuid唯一标示
  2152. char szPicURL[256]; //截图在KMS服务器上的URL地址
  2153. }NET_EHOME_SCREEN_SHOT_RET, *LPNET_EHOME_SCREEN_SHOT_RET;
  2154. NET_DVR_API BOOL CALLBACK NET_ECMS_STDBinaryCfg(LONG lUserID, LONG dwCommand, NET_EHOME_BINARY_SEND_DATA *pSendData, NET_EHOME_BINARY_RECV_DATA *pRecvData);
  2155. NET_DVR_API BOOL CALLBACK NET_ECMS_STDBinaryCtrl(LONG lUserID, LONG dwCommand, NET_EHOME_BINARY_SEND_DATA *pSendData);
  2156. /** 兼容信息发布私有协议 end */
  2157. NET_DVR_API LONG CALLBACK NET_ECMS_LongConfigCreate(LONG lUserlD, LPNET_EHOME_LONG_CFG_INPUT pLongCfgInput);
  2158. NET_DVR_API BOOL CALLBACK NET_ECMS_LongConfigSend(LONG lHandle, LPNET_EHOME_LONG_CFG_SEND pSend);
  2159. NET_DVR_API BOOL CALLBACK NET_ECMS_LongConfigDestory(LONG lHandle);
  2160. NET_DVR_API BOOL CALLBACK NET_ECMS_LongConfigGetSessionId(LONG iHandle, LONG *pSessionId);
  2161. typedef struct tagNET_EHOME_ASYNC_RESP_CB_DATA
  2162. {
  2163. void* pOutBuffer; //设备响应数据
  2164. DWORD dwOutLen; //设备响应数据长度
  2165. DWORD dwErrorNo; //SDK错误码
  2166. DWORD dwHandle; //消息句柄,唯一标识,匹配请求和响应
  2167. LONG lUserID; //用户ID
  2168. char byRes[32];
  2169. }NET_EHOME_ASYNC_RESP_CB_DATA, *LPNET_EHOME_ASYNC_RESP_CB_DATA;
  2170. typedef BOOL(CALLBACK * ASYNC_RESPONSE_CB)(LPNET_EHOME_ASYNC_RESP_CB_DATA lpData, void *pUser);
  2171. NET_DVR_API BOOL CALLBACK NET_ECMS_SetXmlConfigResponseCB(ASYNC_RESPONSE_CB fnCB, void *pUser);
  2172. NET_DVR_API BOOL CALLBACK NET_ECMS_XMLConfigEx(LONG lUserID, NET_EHOME_XML_CFG * pXmlCfg, DWORD *dwHandle);
  2173. #endif //_HC_EHOME_CMS_H_