HCNetSDK.h 167 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171
  1. #ifndef _HC_NET_SDK_H_
  2. #define _HC_NET_SDK_H_
  3. #define NET_DVR_API extern "C"__declspec(dllimport)
  4. //宏定义
  5. #define MAX_NAMELEN 16 //DVR本地登陆名
  6. #define MAX_RIGHT 32 //设备支持的权限(1-12表示本地权限,13-32表示远程权限)
  7. #define NAME_LEN 32 //用户名长度
  8. #define PASSWD_LEN 16 //密码长度
  9. #define SERIALNO_LEN 48 //序列号长度
  10. #define MACADDR_LEN 6 //mac地址长度
  11. #define MAX_ETHERNET 2 //设备可配以太网络
  12. #define PATHNAME_LEN 128 //路径长度
  13. #define MAX_PRESET_V13 16 //预置点
  14. #define MAX_TIMESEGMENT_V30 8 //9000设备最大时间段数
  15. #define MAX_TIMESEGMENT 4 //8000设备最大时间段数
  16. #define MAX_SHELTERNUM 4 //8000设备最大遮挡区域数
  17. #define MAX_DAYS 7 //每周天数
  18. #define PHONENUMBER_LEN 32 //pppoe拨号号码最大长度
  19. #define MAX_DISKNUM_V30 33 //9000设备最大硬盘数/* 最多33个硬盘(包括16个内置SATA硬盘、1个eSATA硬盘和16个NFS盘) */
  20. #define MAX_DISKNUM 16 //8000设备最大硬盘数
  21. #define MAX_DISKNUM_V10 8 //1.2版本之前版本
  22. #define MAX_WINDOW_V30 32 //9000设备本地显示最大播放窗口数
  23. #define MAX_WINDOW 16 //8000设备最大硬盘数
  24. #define MAX_VGA_V30 4 //9000设备最大可接VGA数
  25. #define MAX_VGA 1 //8000设备最大可接VGA数
  26. #define MAX_USERNUM_V30 32 //9000设备最大用户数
  27. #define MAX_USERNUM 16 //8000设备最大用户数
  28. #define MAX_EXCEPTIONNUM_V30 32 //9000设备最大异常处理数
  29. #define MAX_EXCEPTIONNUM 16 //8000设备最大异常处理数
  30. #define MAX_LINK 6 //8000设备单通道最大视频流连接数
  31. #define MAX_DECPOOLNUM 4 //单路解码器每个解码通道最大可循环解码数
  32. #define MAX_DECNUM 4 //单路解码器的最大解码通道数(实际只有一个,其他三个保留)
  33. #define MAX_TRANSPARENTNUM 2 //单路解码器可配置最大透明通道数
  34. #define MAX_CYCLE_CHAN 16 //单路解码器最大轮循通道数
  35. #define MAX_CYCLE_CHAN_V30 64 //最大轮询通道数(扩展)
  36. #define MAX_DIRNAME_LENGTH 80 //最大目录长度
  37. #define MAX_WINDOWS 16 //最大窗口数
  38. #define MAX_STRINGNUM_V30 8 //9000设备最大OSD字符行数数
  39. #define MAX_STRINGNUM 4 //8000设备最大OSD字符行数数
  40. #define MAX_STRINGNUM_EX 8 //8000定制扩展
  41. #define MAX_AUXOUT_V30 16 //9000设备最大辅助输出数
  42. #define MAX_AUXOUT 4 //8000设备最大辅助输出数
  43. #define MAX_HD_GROUP 16 //9000设备最大硬盘组数
  44. #define MAX_NFS_DISK 8 //8000设备最大NFS硬盘数
  45. #define IW_ESSID_MAX_SIZE 32 //WIFI的SSID号长度
  46. #define IW_ENCODING_TOKEN_MAX 32 //WIFI密锁最大字节数
  47. #define MAX_SERIAL_NUM 64 //最多支持的透明通道路数
  48. #define MAX_DDNS_NUMS 10 //9000设备最大可配ddns数
  49. #define MAX_DOMAIN_NAME 64 /* 最大域名长度 */
  50. #define MAX_EMAIL_ADDR_LEN 48 //最大email地址长度
  51. #define MAX_EMAIL_PWD_LEN 32 //最大email密码长度
  52. #define MAXPROGRESS 100 //回放时的最大百分率
  53. #define MAX_SERIALNUM 2 //8000设备支持的串口数 1-232, 2-485
  54. #define CARDNUM_LEN 20 //卡号长度
  55. #define MAX_VIDEOOUT_V30 4 //9000设备的视频输出数
  56. #define MAX_VIDEOOUT 2 //8000设备的视频输出数
  57. #define MAX_PRESET_V30 256 /* 9000设备支持的云台预置点数 */
  58. #define MAX_TRACK_V30 256 /* 9000设备支持的云台轨迹数 */
  59. #define MAX_CRUISE_V30 256 /* 9000设备支持的云台巡航数 */
  60. #define MAX_PRESET 128 /* 8000设备支持的云台预置点数 */
  61. #define MAX_TRACK 128 /* 8000设备支持的云台轨迹数 */
  62. #define MAX_CRUISE 128 /* 8000设备支持的云台巡航数 */
  63. #define CRUISE_MAX_PRESET_NUMS 32 /* 一条巡航最多的巡航点 */
  64. #define MAX_SERIAL_PORT 8 //9000设备支持232串口数
  65. #define MAX_PREVIEW_MODE 8 /* 设备支持最大预览模式数目 1画面,4画面,9画面,16画面.... */
  66. #define MAX_MATRIXOUT 16 /* 最大模拟矩阵输出个数 */
  67. #define LOG_INFO_LEN 11840 /* 日志附加信息 */
  68. #define DESC_LEN 16 /* 云台描述字符串长度 */
  69. #define PTZ_PROTOCOL_NUM 200 /* 9000最大支持的云台协议数 */
  70. #define MAX_AUDIO 1 //8000语音对讲通道数
  71. #define MAX_AUDIO_V30 2 //9000语音对讲通道数
  72. #define MAX_CHANNUM 16 //8000设备最大通道数
  73. #define MAX_ALARMIN 16 //8000设备最大报警输入数
  74. #define MAX_ALARMOUT 4 //8000设备最大报警输出数
  75. //9000 IPC接入
  76. #define MAX_ANALOG_CHANNUM 32 //最大32个模拟通道
  77. #define MAX_ANALOG_ALARMOUT 32 //最大32路模拟报警输出
  78. #define MAX_ANALOG_ALARMIN 32 //最大32路模拟报警输入
  79. #define MAX_IP_DEVICE 32 //允许接入的最大IP设备数
  80. #define MAX_IP_CHANNEL 32 //允许加入的最多IP通道数
  81. #define MAX_IP_ALARMIN 128 //允许加入的最多报警输入数
  82. #define MAX_IP_ALARMOUT 64 //允许加入的最多报警输出数
  83. //SDK_V31 ATM
  84. #define MAX_ACTION_TYPE 12 //自定义协议叠加交易行为最大行为个数
  85. #define MAX_ATM_PROTOCOL_NUM 256 //每种输入方式对应的ATM最大协议数
  86. #define ATM_CUSTOM_PROTO 1025 //自定义协议 值为1025
  87. #define ATM_PROTOCOL_SORT 4 //ATM协议段数
  88. #define ATM_DESC_LEN 32 //ATM描述字符串长度
  89. // SDK_V31 ATM
  90. /* 最大支持的通道数 最大模拟加上最大IP支持 */
  91. #define MAX_CHANNUM_V30 ( MAX_ANALOG_CHANNUM + MAX_IP_CHANNEL )//64
  92. #define MAX_ALARMOUT_V30 ( MAX_ANALOG_ALARMOUT + MAX_IP_ALARMOUT )//96
  93. #define MAX_ALARMIN_V30 ( MAX_ANALOG_ALARMIN + MAX_IP_ALARMIN )//160
  94. /*******************全局错误码 begin**********************/
  95. #define NET_DVR_NOERROR 0 //没有错误
  96. #define NET_DVR_PASSWORD_ERROR 1 //用户名密码错误
  97. #define NET_DVR_NOENOUGHPRI 2 //权限不足
  98. #define NET_DVR_NOINIT 3 //没有初始化
  99. #define NET_DVR_CHANNEL_ERROR 4 //通道号错误
  100. #define NET_DVR_OVER_MAXLINK 5 //连接到DVR的客户端个数超过最大
  101. #define NET_DVR_VERSIONNOMATCH 6 //版本不匹配
  102. #define NET_DVR_NETWORK_FAIL_CONNECT 7 //连接服务器失败
  103. #define NET_DVR_NETWORK_SEND_ERROR 8 //向服务器发送失败
  104. #define NET_DVR_NETWORK_RECV_ERROR 9 //从服务器接收数据失败
  105. #define NET_DVR_NETWORK_RECV_TIMEOUT 10 //从服务器接收数据超时
  106. #define NET_DVR_NETWORK_ERRORDATA 11 //传送的数据有误
  107. #define NET_DVR_ORDER_ERROR 12 //调用次序错误
  108. #define NET_DVR_OPERNOPERMIT 13 //无此权限
  109. #define NET_DVR_COMMANDTIMEOUT 14 //DVR命令执行超时
  110. #define NET_DVR_ERRORSERIALPORT 15 //串口号错误
  111. #define NET_DVR_ERRORALARMPORT 16 //报警端口错误
  112. #define NET_DVR_PARAMETER_ERROR 17 //参数错误
  113. #define NET_DVR_CHAN_EXCEPTION 18 //服务器通道处于错误状态
  114. #define NET_DVR_NODISK 19 //没有硬盘
  115. #define NET_DVR_ERRORDISKNUM 20 //硬盘号错误
  116. #define NET_DVR_DISK_FULL 21 //服务器硬盘满
  117. #define NET_DVR_DISK_ERROR 22 //服务器硬盘出错
  118. #define NET_DVR_NOSUPPORT 23 //服务器不支持
  119. #define NET_DVR_BUSY 24 //服务器忙
  120. #define NET_DVR_MODIFY_FAIL 25 //服务器修改不成功
  121. #define NET_DVR_PASSWORD_FORMAT_ERROR 26 //密码输入格式不正确
  122. #define NET_DVR_DISK_FORMATING 27 //硬盘正在格式化,不能启动操作
  123. #define NET_DVR_DVRNORESOURCE 28 //DVR资源不足
  124. #define NET_DVR_DVROPRATEFAILED 29 //DVR操作失败
  125. #define NET_DVR_OPENHOSTSOUND_FAIL 30 //打开PC声音失败
  126. #define NET_DVR_DVRVOICEOPENED 31 //服务器语音对讲被占用
  127. #define NET_DVR_TIMEINPUTERROR 32 //时间输入不正确
  128. #define NET_DVR_NOSPECFILE 33 //回放时服务器没有指定的文件
  129. #define NET_DVR_CREATEFILE_ERROR 34 //创建文件出错
  130. #define NET_DVR_FILEOPENFAIL 35 //打开文件出错
  131. #define NET_DVR_OPERNOTFINISH 36 //上次的操作还没有完成
  132. #define NET_DVR_GETPLAYTIMEFAIL 37 //获取当前播放的时间出错
  133. #define NET_DVR_PLAYFAIL 38 //播放出错
  134. #define NET_DVR_FILEFORMAT_ERROR 39 //文件格式不正确
  135. #define NET_DVR_DIR_ERROR 40 //路径错误
  136. #define NET_DVR_ALLOC_RESOURCE_ERROR 41 //资源分配错误
  137. #define NET_DVR_AUDIO_MODE_ERROR 42 //声卡模式错误
  138. #define NET_DVR_NOENOUGH_BUF 43 //缓冲区太小
  139. #define NET_DVR_CREATESOCKET_ERROR 44 //创建SOCKET出错
  140. #define NET_DVR_SETSOCKET_ERROR 45 //设置SOCKET出错
  141. #define NET_DVR_MAX_NUM 46 //个数达到最大
  142. #define NET_DVR_USERNOTEXIST 47 //用户不存在
  143. #define NET_DVR_WRITEFLASHERROR 48 //写FLASH出错
  144. #define NET_DVR_UPGRADEFAIL 49 //DVR升级失败
  145. #define NET_DVR_CARDHAVEINIT 50 //解码卡已经初始化过
  146. #define NET_DVR_PLAYERFAILED 51 //调用播放库中某个函数失败
  147. #define NET_DVR_MAX_USERNUM 52 //设备端用户数达到最大
  148. #define NET_DVR_GETLOCALIPANDMACFAIL 53 //获得客户端的IP地址或物理地址失败
  149. #define NET_DVR_NOENCODEING 54 //该通道没有编码
  150. #define NET_DVR_IPMISMATCH 55 //IP地址不匹配
  151. #define NET_DVR_MACMISMATCH 56 //MAC地址不匹配
  152. #define NET_DVR_UPGRADELANGMISMATCH 57 //升级文件语言不匹配
  153. #define NET_DVR_MAX_PLAYERPORT 58 //播放器路数达到最大
  154. #define NET_DVR_NOSPACEBACKUP 59 //备份设备中没有足够空间进行备份
  155. #define NET_DVR_NODEVICEBACKUP 60 //没有找到指定的备份设备
  156. #define NET_DVR_PICTURE_BITS_ERROR 61 //图像素位数不符,限24色
  157. #define NET_DVR_PICTURE_DIMENSION_ERROR 62 //图片高*宽超限, 限128*256
  158. #define NET_DVR_PICTURE_SIZ_ERROR 63 //图片大小超限,限100K
  159. #define NET_DVR_LOADPLAYERSDKFAILED 64 //载入当前目录下Player Sdk出错
  160. #define NET_DVR_LOADPLAYERSDKPROC_ERROR 65 //找不到Player Sdk中某个函数入口
  161. #define NET_DVR_LOADDSSDKFAILED 66 //载入当前目录下DSsdk出错
  162. #define NET_DVR_LOADDSSDKPROC_ERROR 67 //找不到DsSdk中某个函数入口
  163. #define NET_DVR_DSSDK_ERROR 68 //调用硬解码库DsSdk中某个函数失败
  164. #define NET_DVR_VOICEMONOPOLIZE 69 //声卡被独占
  165. #define NET_DVR_JOINMULTICASTFAILED 70 //加入多播组失败
  166. #define NET_DVR_CREATEDIR_ERROR 71 //建立日志文件目录失败
  167. #define NET_DVR_BINDSOCKET_ERROR 72 //绑定套接字失败
  168. #define NET_DVR_SOCKETCLOSE_ERROR 73 //socket连接中断,此错误通常是由于连接中断或目的地不可达
  169. #define NET_DVR_USERID_ISUSING 74 //注销时用户ID正在进行某操作
  170. #define NET_DVR_SOCKETLISTEN_ERROR 75 //监听失败
  171. #define NET_DVR_PROGRAM_EXCEPTION 76 //程序异常
  172. #define NET_DVR_WRITEFILE_FAILED 77 //写文件失败
  173. #define NET_DVR_FORMAT_READONLY 78 //禁止格式化只读硬盘
  174. #define NET_DVR_WITHSAMEUSERNAME 79 //用户配置结构中存在相同的用户名
  175. #define NET_DVR_DEVICETYPE_ERROR 80 /*导入参数时设备型号不匹配*/
  176. #define NET_DVR_LANGUAGE_ERROR 81 /*导入参数时语言不匹配*/
  177. #define NET_DVR_PARAVERSION_ERROR 82 /*导入参数时软件版本不匹配*/
  178. #define NET_DVR_IPCHAN_NOTALIVE 83 /*预览时外接IP通道不在线*/
  179. #define NET_DVR_RTSP_SDK_ERROR 84 /*加载高清IPC通讯库StreamTransClient.dll失败*/
  180. #define NET_DVR_CONVERT_SDK_ERROR 85 /*加载转码库失败*/
  181. #define NET_DVR_IPC_COUNT_OVERFLOW 86 /*超出最大的ip接入通道数*/
  182. #define NET_DVR_PARAMMODE_ERROR 88 //图像增强仪,参数模式错误(用于硬件设置时,客户端进行软件设置时错误值)
  183. #define NET_PLAYM4_NOERROR 500 //no error
  184. #define NET_PLAYM4_PARA_OVER 501 //input parameter is invalid;
  185. #define NET_PLAYM4_ORDER_ERROR 502 //The order of the function to be called is error.
  186. #define NET_PLAYM4_TIMER_ERROR 503 //Create multimedia clock failed;
  187. #define NET_PLAYM4_DEC_VIDEO_ERROR 504 //Decode video data failed.
  188. #define NET_PLAYM4_DEC_AUDIO_ERROR 505 //Decode audio data failed.
  189. #define NET_PLAYM4_ALLOC_MEMORY_ERROR 506 //Allocate memory failed.
  190. #define NET_PLAYM4_OPEN_FILE_ERROR 507 //Open the file failed.
  191. #define NET_PLAYM4_CREATE_OBJ_ERROR 508 //Create thread or event failed
  192. #define NET_PLAYM4_CREATE_DDRAW_ERROR 509 //Create DirectDraw object failed.
  193. #define NET_PLAYM4_CREATE_OFFSCREEN_ERROR 510 //failed when creating off-screen surface.
  194. #define NET_PLAYM4_BUF_OVER 511 //buffer is overflow
  195. #define NET_PLAYM4_CREATE_SOUND_ERROR 512 //failed when creating audio device.
  196. #define NET_PLAYM4_SET_VOLUME_ERROR 513 //Set volume failed
  197. #define NET_PLAYM4_SUPPORT_FILE_ONLY 514 //The function only support play file.
  198. #define NET_PLAYM4_SUPPORT_STREAM_ONLY 515 //The function only support play stream.
  199. #define NET_PLAYM4_SYS_NOT_SUPPORT 516 //System not support.
  200. #define NET_PLAYM4_FILEHEADER_UNKNOWN 517 //No file header.
  201. #define NET_PLAYM4_VERSION_INCORRECT 518 //The version of decoder and encoder is not adapted.
  202. #define NET_PALYM4_INIT_DECODER_ERROR 519 //Initialize decoder failed.
  203. #define NET_PLAYM4_CHECK_FILE_ERROR 520 //The file data is unknown.
  204. #define NET_PLAYM4_INIT_TIMER_ERROR 521 //Initialize multimedia clock failed.
  205. #define NET_PLAYM4_BLT_ERROR 522 //Blt failed.
  206. #define NET_PLAYM4_UPDATE_ERROR 523 //Update failed.
  207. #define NET_PLAYM4_OPEN_FILE_ERROR_MULTI 524 //openfile error, streamtype is multi
  208. #define NET_PLAYM4_OPEN_FILE_ERROR_VIDEO 525 //openfile error, streamtype is video
  209. #define NET_PLAYM4_JPEG_COMPRESS_ERROR 526 //JPEG compress error
  210. #define NET_PLAYM4_EXTRACT_NOT_SUPPORT 527 //Don't support the version of this file.
  211. #define NET_PLAYM4_EXTRACT_DATA_ERROR 528 //extract video data failed.
  212. /*******************全局错误码 end**********************/
  213. /*************************************************
  214. NET_DVR_IsSupport()返回值
  215. 1-9位分别表示以下信息(位与是TRUE)表示支持;
  216. **************************************************/
  217. #define NET_DVR_SUPPORT_DDRAW 0x01//支持DIRECTDRAW,如果不支持,则播放器不能工作;
  218. #define NET_DVR_SUPPORT_BLT 0x02//显卡支持BLT操作,如果不支持,则播放器不能工作;
  219. #define NET_DVR_SUPPORT_BLTFOURCC 0x04//显卡BLT支持颜色转换,如果不支持,播放器会用软件方法作RGB转换;
  220. #define NET_DVR_SUPPORT_BLTSHRINKX 0x08//显卡BLT支持X轴缩小;如果不支持,系统会用软件方法转换;
  221. #define NET_DVR_SUPPORT_BLTSHRINKY 0x10//显卡BLT支持Y轴缩小;如果不支持,系统会用软件方法转换;
  222. #define NET_DVR_SUPPORT_BLTSTRETCHX 0x20//显卡BLT支持X轴放大;如果不支持,系统会用软件方法转换;
  223. #define NET_DVR_SUPPORT_BLTSTRETCHY 0x40//显卡BLT支持Y轴放大;如果不支持,系统会用软件方法转换;
  224. #define NET_DVR_SUPPORT_SSE 0x80//CPU支持SSE指令,Intel Pentium3以上支持SSE指令;
  225. #define NET_DVR_SUPPORT_MMX 0x100//CPU支持MMX指令集,Intel Pentium3以上支持SSE指令;
  226. /**********************云台控制命令 begin*************************/
  227. #define LIGHT_PWRON 2 /* 接通灯光电源 */
  228. #define WIPER_PWRON 3 /* 接通雨刷开关 */
  229. #define FAN_PWRON 4 /* 接通风扇开关 */
  230. #define HEATER_PWRON 5 /* 接通加热器开关 */
  231. #define AUX_PWRON1 6 /* 接通辅助设备开关 */
  232. #define AUX_PWRON2 7 /* 接通辅助设备开关 */
  233. #define SET_PRESET 8 /* 设置预置点 */
  234. #define CLE_PRESET 9 /* 清除预置点 */
  235. #define ZOOM_IN 11 /* 焦距以速度SS变大(倍率变大) */
  236. #define ZOOM_OUT 12 /* 焦距以速度SS变小(倍率变小) */
  237. #define FOCUS_NEAR 13 /* 焦点以速度SS前调 */
  238. #define FOCUS_FAR 14 /* 焦点以速度SS后调 */
  239. #define IRIS_OPEN 15 /* 光圈以速度SS扩大 */
  240. #define IRIS_CLOSE 16 /* 光圈以速度SS缩小 */
  241. #define TILT_UP 21 /* 云台以SS的速度上仰 */
  242. #define TILT_DOWN 22 /* 云台以SS的速度下俯 */
  243. #define PAN_LEFT 23 /* 云台以SS的速度左转 */
  244. #define PAN_RIGHT 24 /* 云台以SS的速度右转 */
  245. #define UP_LEFT 25 /* 云台以SS的速度上仰和左转 */
  246. #define UP_RIGHT 26 /* 云台以SS的速度上仰和右转 */
  247. #define DOWN_LEFT 27 /* 云台以SS的速度下俯和左转 */
  248. #define DOWN_RIGHT 28 /* 云台以SS的速度下俯和右转 */
  249. #define PAN_AUTO 29 /* 云台以SS的速度左右自动扫描 */
  250. #define FILL_PRE_SEQ 30 /* 将预置点加入巡航序列 */
  251. #define SET_SEQ_DWELL 31 /* 设置巡航点停顿时间 */
  252. #define SET_SEQ_SPEED 32 /* 设置巡航速度 */
  253. #define CLE_PRE_SEQ 33 /* 将预置点从巡航序列中删除 */
  254. #define STA_MEM_CRUISE 34 /* 开始记录轨迹 */
  255. #define STO_MEM_CRUISE 35 /* 停止记录轨迹 */
  256. #define RUN_CRUISE 36 /* 开始轨迹 */
  257. #define RUN_SEQ 37 /* 开始巡航 */
  258. #define STOP_SEQ 38 /* 停止巡航 */
  259. #define GOTO_PRESET 39 /* 快球转到预置点 */
  260. /**********************云台控制命令 end*************************/
  261. /*************************************************
  262. 回放时播放控制命令宏定义
  263. NET_DVR_PlayBackControl
  264. NET_DVR_PlayControlLocDisplay
  265. NET_DVR_DecPlayBackCtrl的宏定义
  266. 具体支持查看函数说明和代码
  267. **************************************************/
  268. #define NET_DVR_PLAYSTART 1//开始播放
  269. #define NET_DVR_PLAYSTOP 2//停止播放
  270. #define NET_DVR_PLAYPAUSE 3//暂停播放
  271. #define NET_DVR_PLAYRESTART 4//恢复播放
  272. #define NET_DVR_PLAYFAST 5//快放
  273. #define NET_DVR_PLAYSLOW 6//慢放
  274. #define NET_DVR_PLAYNORMAL 7//正常速度
  275. #define NET_DVR_PLAYFRAME 8//单帧放
  276. #define NET_DVR_PLAYSTARTAUDIO 9//打开声音
  277. #define NET_DVR_PLAYSTOPAUDIO 10//关闭声音
  278. #define NET_DVR_PLAYAUDIOVOLUME 11//调节音量
  279. #define NET_DVR_PLAYSETPOS 12//改变文件回放的进度
  280. #define NET_DVR_PLAYGETPOS 13//获取文件回放的进度
  281. #define NET_DVR_PLAYGETTIME 14//获取当前已经播放的时间(按文件回放的时候有效)
  282. #define NET_DVR_PLAYGETFRAME 15//获取当前已经播放的帧数(按文件回放的时候有效)
  283. #define NET_DVR_GETTOTALFRAMES 16//获取当前播放文件总的帧数(按文件回放的时候有效)
  284. #define NET_DVR_GETTOTALTIME 17//获取当前播放文件总的时间(按文件回放的时候有效)
  285. #define NET_DVR_THROWBFRAME 20//丢B帧
  286. #define NET_DVR_SETSPEED 24//设置码流速度
  287. #define NET_DVR_KEEPALIVE 25//保持与设备的心跳(如果回调阻塞,建议2秒发送一次)
  288. //远程按键定义如下:
  289. /* key value send to CONFIG program */
  290. #define KEY_CODE_1 1
  291. #define KEY_CODE_2 2
  292. #define KEY_CODE_3 3
  293. #define KEY_CODE_4 4
  294. #define KEY_CODE_5 5
  295. #define KEY_CODE_6 6
  296. #define KEY_CODE_7 7
  297. #define KEY_CODE_8 8
  298. #define KEY_CODE_9 9
  299. #define KEY_CODE_0 10
  300. #define KEY_CODE_POWER 11
  301. #define KEY_CODE_MENU 12
  302. #define KEY_CODE_ENTER 13
  303. #define KEY_CODE_CANCEL 14
  304. #define KEY_CODE_UP 15
  305. #define KEY_CODE_DOWN 16
  306. #define KEY_CODE_LEFT 17
  307. #define KEY_CODE_RIGHT 18
  308. #define KEY_CODE_EDIT 19
  309. #define KEY_CODE_ADD 20
  310. #define KEY_CODE_MINUS 21
  311. #define KEY_CODE_PLAY 22
  312. #define KEY_CODE_REC 23
  313. #define KEY_CODE_PAN 24
  314. #define KEY_CODE_M 25
  315. #define KEY_CODE_A 26
  316. #define KEY_CODE_F1 27
  317. #define KEY_CODE_F2 28
  318. /* for PTZ control */
  319. #define KEY_PTZ_UP_START KEY_CODE_UP
  320. #define KEY_PTZ_UP_STOP 32
  321. #define KEY_PTZ_DOWN_START KEY_CODE_DOWN
  322. #define KEY_PTZ_DOWN_STOP 33
  323. #define KEY_PTZ_LEFT_START KEY_CODE_LEFT
  324. #define KEY_PTZ_LEFT_STOP 34
  325. #define KEY_PTZ_RIGHT_START KEY_CODE_RIGHT
  326. #define KEY_PTZ_RIGHT_STOP 35
  327. #define KEY_PTZ_AP1_START KEY_CODE_EDIT /* 光圈+ */
  328. #define KEY_PTZ_AP1_STOP 36
  329. #define KEY_PTZ_AP2_START KEY_CODE_PAN /* 光圈- */
  330. #define KEY_PTZ_AP2_STOP 37
  331. #define KEY_PTZ_FOCUS1_START KEY_CODE_A /* 聚焦+ */
  332. #define KEY_PTZ_FOCUS1_STOP 38
  333. #define KEY_PTZ_FOCUS2_START KEY_CODE_M /* 聚焦- */
  334. #define KEY_PTZ_FOCUS2_STOP 39
  335. #define KEY_PTZ_B1_START 40 /* 变倍+ */
  336. #define KEY_PTZ_B1_STOP 41
  337. #define KEY_PTZ_B2_START 42 /* 变倍- */
  338. #define KEY_PTZ_B2_STOP 43
  339. //9000新增
  340. #define KEY_CODE_11 44
  341. #define KEY_CODE_12 45
  342. #define KEY_CODE_13 46
  343. #define KEY_CODE_14 47
  344. #define KEY_CODE_15 48
  345. #define KEY_CODE_16 49
  346. /*************************参数配置命令 begin*******************************/
  347. //用于NET_DVR_SetDVRConfig和NET_DVR_GetDVRConfig,注意其对应的配置结构
  348. #define NET_DVR_GET_DEVICECFG 100 //获取设备参数
  349. #define NET_DVR_SET_DEVICECFG 101 //设置设备参数
  350. #define NET_DVR_GET_NETCFG 102 //获取网络参数
  351. #define NET_DVR_SET_NETCFG 103 //设置网络参数
  352. #define NET_DVR_GET_PICCFG 104 //获取图象参数
  353. #define NET_DVR_SET_PICCFG 105 //设置图象参数
  354. #define NET_DVR_GET_COMPRESSCFG 106 //获取压缩参数
  355. #define NET_DVR_SET_COMPRESSCFG 107 //设置压缩参数
  356. #define NET_DVR_GET_RECORDCFG 108 //获取录像时间参数
  357. #define NET_DVR_SET_RECORDCFG 109 //设置录像时间参数
  358. #define NET_DVR_GET_DECODERCFG 110 //获取解码器参数
  359. #define NET_DVR_SET_DECODERCFG 111 //设置解码器参数
  360. #define NET_DVR_GET_RS232CFG 112 //获取232串口参数
  361. #define NET_DVR_SET_RS232CFG 113 //设置232串口参数
  362. #define NET_DVR_GET_ALARMINCFG 114 //获取报警输入参数
  363. #define NET_DVR_SET_ALARMINCFG 115 //设置报警输入参数
  364. #define NET_DVR_GET_ALARMOUTCFG 116 //获取报警输出参数
  365. #define NET_DVR_SET_ALARMOUTCFG 117 //设置报警输出参数
  366. #define NET_DVR_GET_TIMECFG 118 //获取DVR时间
  367. #define NET_DVR_SET_TIMECFG 119 //设置DVR时间
  368. #define NET_DVR_GET_PREVIEWCFG 120 //获取预览参数
  369. #define NET_DVR_SET_PREVIEWCFG 121 //设置预览参数
  370. #define NET_DVR_GET_VIDEOOUTCFG 122 //获取视频输出参数
  371. #define NET_DVR_SET_VIDEOOUTCFG 123 //设置视频输出参数
  372. #define NET_DVR_GET_USERCFG 124 //获取用户参数
  373. #define NET_DVR_SET_USERCFG 125 //设置用户参数
  374. #define NET_DVR_GET_EXCEPTIONCFG 126 //获取异常参数
  375. #define NET_DVR_SET_EXCEPTIONCFG 127 //设置异常参数
  376. #define NET_DVR_GET_ZONEANDDST 128 //获取时区和夏时制参数
  377. #define NET_DVR_SET_ZONEANDDST 129 //设置时区和夏时制参数
  378. #define NET_DVR_GET_SHOWSTRING 130 //获取叠加字符参数
  379. #define NET_DVR_SET_SHOWSTRING 131 //设置叠加字符参数
  380. #define NET_DVR_GET_EVENTCOMPCFG 132 //获取事件触发录像参数
  381. #define NET_DVR_SET_EVENTCOMPCFG 133 //设置事件触发录像参数
  382. #define NET_DVR_GET_AUXOUTCFG 140 //获取报警触发辅助输出设置(HS设备辅助输出2006-02-28)
  383. #define NET_DVR_SET_AUXOUTCFG 141 //设置报警触发辅助输出设置(HS设备辅助输出2006-02-28)
  384. #define NET_DVR_GET_PREVIEWCFG_AUX 142 //获取-s系列双输出预览参数(-s系列双输出2006-04-13)
  385. #define NET_DVR_SET_PREVIEWCFG_AUX 143 //设置-s系列双输出预览参数(-s系列双输出2006-04-13)
  386. #define NET_DVR_GET_PICCFG_EX 200 //获取图象参数(SDK_V14扩展命令)
  387. #define NET_DVR_SET_PICCFG_EX 201 //设置图象参数(SDK_V14扩展命令)
  388. #define NET_DVR_GET_USERCFG_EX 202 //获取用户参数(SDK_V15扩展命令)
  389. #define NET_DVR_SET_USERCFG_EX 203 //设置用户参数(SDK_V15扩展命令)
  390. #define NET_DVR_GET_COMPRESSCFG_EX 204 //获取压缩参数(SDK_V15扩展命令2006-05-15)
  391. #define NET_DVR_SET_COMPRESSCFG_EX 205 //设置压缩参数(SDK_V15扩展命令2006-05-15)
  392. #define NET_DVR_GET_NETAPPCFG 222 //获取网络应用参数 NTP/DDNS/EMAIL
  393. #define NET_DVR_SET_NETAPPCFG 223 //设置网络应用参数 NTP/DDNS/EMAIL
  394. #define NET_DVR_GET_NTPCFG 224 //获取网络应用参数 NTP
  395. #define NET_DVR_SET_NTPCFG 225 //设置网络应用参数 NTP
  396. #define NET_DVR_GET_DDNSCFG 226 //获取网络应用参数 DDNS
  397. #define NET_DVR_SET_DDNSCFG 227 //设置网络应用参数 DDNS
  398. //对应NET_DVR_EMAILPARA
  399. #define NET_DVR_GET_EMAILCFG 228 //获取网络应用参数 EMAIL
  400. #define NET_DVR_SET_EMAILCFG 229 //设置网络应用参数 EMAIL
  401. #define NET_DVR_GET_NFSCFG 230 /* NFS disk config */
  402. #define NET_DVR_SET_NFSCFG 231 /* NFS disk config */
  403. #define NET_DVR_GET_SHOWSTRING_EX 238 //获取叠加字符参数扩展(支持8条字符)
  404. #define NET_DVR_SET_SHOWSTRING_EX 239 //设置叠加字符参数扩展(支持8条字符)
  405. #define NET_DVR_GET_NETCFG_OTHER 244 //获取网络参数
  406. #define NET_DVR_SET_NETCFG_OTHER 245 //设置网络参数
  407. //对应NET_DVR_EMAILCFG结构
  408. #define NET_DVR_GET_EMAILPARACFG 250 //Get EMAIL parameters
  409. #define NET_DVR_SET_EMAILPARACFG 251 //Setup EMAIL parameters
  410. #define NET_DVR_GET_DDNSCFG_EX 274 //获取扩展DDNS参数
  411. #define NET_DVR_SET_DDNSCFG_EX 275 //设置扩展DDNS参数
  412. #define NET_DVR_SET_PTZPOS 292 //云台设置PTZ位置
  413. #define NET_DVR_GET_PTZPOS 293 //云台获取PTZ位置
  414. #define NET_DVR_GET_PTZSCOPE 294 //云台获取PTZ范围
  415. /***************************DS9000新增命令(_V30) begin *****************************/
  416. //网络(NET_DVR_NETCFG_V30结构)
  417. #define NET_DVR_GET_NETCFG_V30 1000 //获取网络参数
  418. #define NET_DVR_SET_NETCFG_V30 1001 //设置网络参数
  419. //图象(NET_DVR_PICCFG_V30结构)
  420. #define NET_DVR_GET_PICCFG_V30 1002 //获取图象参数
  421. #define NET_DVR_SET_PICCFG_V30 1003 //设置图象参数
  422. //录像时间(NET_DVR_RECORD_V30结构)
  423. #define NET_DVR_GET_RECORDCFG_V30 1004 //获取录像参数
  424. #define NET_DVR_SET_RECORDCFG_V30 1005 //设置录像参数
  425. //用户(NET_DVR_USER_V30结构)
  426. #define NET_DVR_GET_USERCFG_V30 1006 //获取用户参数
  427. #define NET_DVR_SET_USERCFG_V30 1007 //设置用户参数
  428. //9000DDNS参数配置(NET_DVR_DDNSPARA_V30结构)
  429. #define NET_DVR_GET_DDNSCFG_V30 1010 //获取DDNS(9000扩展)
  430. #define NET_DVR_SET_DDNSCFG_V30 1011 //设置DDNS(9000扩展)
  431. //EMAIL功能(NET_DVR_EMAILCFG_V30结构)
  432. #define NET_DVR_GET_EMAILCFG_V30 1012 //获取EMAIL参数
  433. #define NET_DVR_SET_EMAILCFG_V30 1013 //设置EMAIL参数
  434. //巡航参数 (NET_DVR_CRUISE_PARA结构)
  435. #define NET_DVR_GET_CRUISE 1020
  436. #define NET_DVR_SET_CRUISE 1021
  437. //报警输入结构参数 (NET_DVR_ALARMINCFG_V30结构)
  438. #define NET_DVR_GET_ALARMINCFG_V30 1024
  439. #define NET_DVR_SET_ALARMINCFG_V30 1025
  440. //报警输出结构参数 (NET_DVR_ALARMOUTCFG_V30结构)
  441. #define NET_DVR_GET_ALARMOUTCFG_V30 1026
  442. #define NET_DVR_SET_ALARMOUTCFG_V30 1027
  443. //视频输出结构参数 (NET_DVR_VIDEOOUT_V30结构)
  444. #define NET_DVR_GET_VIDEOOUTCFG_V30 1028
  445. #define NET_DVR_SET_VIDEOOUTCFG_V30 1029
  446. //叠加字符结构参数 (NET_DVR_SHOWSTRING_V30结构)
  447. #define NET_DVR_GET_SHOWSTRING_V30 1030
  448. #define NET_DVR_SET_SHOWSTRING_V30 1031
  449. //异常结构参数 (NET_DVR_EXCEPTION_V30结构)
  450. #define NET_DVR_GET_EXCEPTIONCFG_V30 1034
  451. #define NET_DVR_SET_EXCEPTIONCFG_V30 1035
  452. //串口232结构参数 (NET_DVR_RS232CFG_V30结构)
  453. #define NET_DVR_GET_RS232CFG_V30 1036
  454. #define NET_DVR_SET_RS232CFG_V30 1037
  455. //网络硬盘接入结构参数 (NET_DVR_NET_DISKCFG结构)
  456. #define NET_DVR_GET_NET_DISKCFG 1038 //网络硬盘接入获取
  457. #define NET_DVR_SET_NET_DISKCFG 1039 //网络硬盘接入设置
  458. //压缩参数 (NET_DVR_COMPRESSIONCFG_V30结构)
  459. #define NET_DVR_GET_COMPRESSCFG_V30 1040
  460. #define NET_DVR_SET_COMPRESSCFG_V30 1041
  461. //获取485解码器参数 (NET_DVR_DECODERCFG_V30结构)
  462. #define NET_DVR_GET_DECODERCFG_V30 1042 //获取解码器参数
  463. #define NET_DVR_SET_DECODERCFG_V30 1043 //设置解码器参数
  464. //获取预览参数 (NET_DVR_PREVIEWCFG_V30结构)
  465. #define NET_DVR_GET_PREVIEWCFG_V30 1044 //获取预览参数
  466. #define NET_DVR_SET_PREVIEWCFG_V30 1045 //设置预览参数
  467. //辅助预览参数 (NET_DVR_PREVIEWCFG_AUX_V30结构)
  468. #define NET_DVR_GET_PREVIEWCFG_AUX_V30 1046 //获取辅助预览参数
  469. #define NET_DVR_SET_PREVIEWCFG_AUX_V30 1047 //设置辅助预览参数
  470. //IP接入配置参数 (NET_DVR_IPPARACFG结构)
  471. #define NET_DVR_GET_IPPARACFG 1048 //获取IP接入配置信息
  472. #define NET_DVR_SET_IPPARACFG 1049 //设置IP接入配置信息
  473. //IP报警输入接入配置参数 (NET_DVR_IPALARMINCFG结构)
  474. #define NET_DVR_GET_IPALARMINCFG 1050 //获取IP报警输入接入配置信息
  475. #define NET_DVR_SET_IPALARMINCFG 1051 //设置IP报警输入接入配置信息
  476. //IP报警输出接入配置参数 (NET_DVR_IPALARMOUTCFG结构)
  477. #define NET_DVR_GET_IPALARMOUTCFG 1052 //获取IP报警输出接入配置信息
  478. #define NET_DVR_SET_IPALARMOUTCFG 1053 //设置IP报警输出接入配置信息
  479. //硬盘管理的参数获取 (NET_DVR_HDCFG结构)
  480. #define NET_DVR_GET_HDCFG 1054 //获取硬盘管理配置参数
  481. #define NET_DVR_SET_HDCFG 1055 //设置硬盘管理配置参数
  482. //盘组管理的参数获取 (NET_DVR_HDGROUP_CFG结构)
  483. #define NET_DVR_GET_HDGROUP_CFG 1056 //获取盘组管理配置参数
  484. #define NET_DVR_SET_HDGROUP_CFG 1057 //设置盘组管理配置参数
  485. //设备编码类型配置(NET_DVR_COMPRESSION_AUDIO结构)
  486. #define NET_DVR_GET_COMPRESSCFG_AUD 1058 //获取设备语音对讲编码参数
  487. #define NET_DVR_SET_COMPRESSCFG_AUD 1059 //设置设备语音对讲编码参数
  488. //IP接入配置参数 (NET_DVR_IPPARACFG_V31结构)
  489. #define NET_DVR_GET_IPPARACFG_V31 1060 //获取IP接入配置信息
  490. #define NET_DVR_SET_IPPARACFG_V31 1061 //设置IP接入配置信息
  491. /***************************DS9000新增命令(_V30) end *****************************/
  492. /*************************参数配置命令 end*******************************/
  493. /*******************查找文件和日志函数返回值*************************/
  494. #define NET_DVR_FILE_SUCCESS 1000 //获得文件信息
  495. #define NET_DVR_FILE_NOFIND 1001 //没有文件
  496. #define NET_DVR_ISFINDING 1002 //正在查找文件
  497. #define NET_DVR_NOMOREFILE 1003 //查找文件时没有更多的文件
  498. #define NET_DVR_FILE_EXCEPTION 1004 //查找文件时异常
  499. /*********************回调函数类型 begin************************/
  500. #define COMM_ALARM 0x1100 //8000报警信息主动上传
  501. #define COMM_TRADEINFO 0x1500 //ATMDVR主动上传交易信息
  502. #define COMM_ALARM_V30 0x4000 //9000报警信息主动上传
  503. #define COMM_IPCCFG 0x4001 //9000设备IPC接入配置改变报警信息主动上传
  504. #define COMM_IPCCFG_V31 0x4002 //9000设备IPC接入配置改变报警信息主动上传扩展 9000_1.1
  505. /*************操作异常类型(消息方式, 回调方式(保留))****************/
  506. #define EXCEPTION_EXCHANGE 0x8000 //用户交互时异常
  507. #define EXCEPTION_AUDIOEXCHANGE 0x8001 //语音对讲异常
  508. #define EXCEPTION_ALARM 0x8002 //报警异常
  509. #define EXCEPTION_PREVIEW 0x8003 //网络预览异常
  510. #define EXCEPTION_SERIAL 0x8004 //透明通道异常
  511. #define EXCEPTION_RECONNECT 0x8005 //预览时重连
  512. #define EXCEPTION_ALARMRECONNECT 0x8006 //报警时重连
  513. #define EXCEPTION_SERIALRECONNECT 0x8007 //透明通道重连
  514. #define EXCEPTION_PLAYBACK 0x8010 //回放异常
  515. #define EXCEPTION_DISKFMT 0x8011 //硬盘格式化
  516. /********************预览回调函数*********************/
  517. #define NET_DVR_SYSHEAD 1 //系统头数据
  518. #define NET_DVR_STREAMDATA 2 //视频流数据(包括复合流和音视频分开的视频流数据)
  519. #define NET_DVR_AUDIOSTREAMDATA 3 //音频流数据
  520. #define NET_DVR_STD_VIDEODATA 4 //标准视频流数据
  521. #define NET_DVR_STD_AUDIODATA 5 //标准音频流数据
  522. //设备型号(DVR类型)
  523. /* 设备类型 */
  524. #define DVR 1 /*对尚未定义的dvr类型返回NETRET_DVR*/
  525. #define ATMDVR 2 /*atm dvr*/
  526. #define DVS 3 /*DVS*/
  527. #define DEC 4 /* 6001D */
  528. #define ENC_DEC 5 /* 6001F */
  529. #define DVR_HC 6 /*8000HC*/
  530. #define DVR_HT 7 /*8000HT*/
  531. #define DVR_HF 8 /*8000HF*/
  532. #define DVR_HS 9 /* 8000HS DVR(no audio) */
  533. #define DVR_HTS 10 /* 8016HTS DVR(no audio) */
  534. #define DVR_HB 11 /* HB DVR(SATA HD) */
  535. #define DVR_HCS 12 /* 8000HCS DVR */
  536. #define DVS_A 13 /* 带ATA硬盘的DVS */
  537. #define DVR_HC_S 14 /* 8000HC-S */
  538. #define DVR_HT_S 15 /* 8000HT-S */
  539. #define DVR_HF_S 16 /* 8000HF-S */
  540. #define DVR_HS_S 17 /* 8000HS-S */
  541. #define ATMDVR_S 18 /* ATM-S */
  542. #define LOWCOST_DVR 19 /*7000H系列*/
  543. #define DEC_MAT 20 /*多路解码器*/
  544. #define DVR_MOBILE 21 /* mobile DVR */
  545. #define DVR_HD_S 22 /* 8000HD-S */
  546. #define DVR_HD_SL 23 /* 8000HD-SL */
  547. #define DVR_HC_SL 24 /* 8000HC-SL */
  548. #define DVR_HS_ST 25 /* 8000HS_ST */
  549. #define DVS_HW 26 /* 6000HW */
  550. #define IPCAM 30 /*IP 摄像机*/
  551. #define MEGA_IPCAM 31 /*X52MF系列,752MF,852MF*/
  552. #define IPCAM_X62MF 32 /*X62MF系列可接入9000设备,762MF,862MF*/
  553. #define IPDOME 40 /*IP 标清球机*/
  554. #define IPDOME_MEGA200 41 /*IP 200万高清球机*/
  555. #define IPDOME_MEGA130 42 /*IP 130万高清球机*/
  556. #define IPMOD 50 /*IP 模块*/
  557. #define DS71XX_H 71 /* DS71XXH_S */
  558. #define DS72XX_H_S 72 /* DS72XXH_S */
  559. #define DS73XX_H_S 73 /* DS73XXH_S */
  560. #define DS76XX_H_S 76 /* DS76XX_H_S */
  561. #define DS81XX_HS_S 81 /* DS81XX_HS_S */
  562. #define DS81XX_HL_S 82 /* DS81XX_HL_S */
  563. #define DS81XX_HC_S 83 /* DS81XX_HC_S */
  564. #define DS81XX_HD_S 84 /* DS81XX_HD_S */
  565. #define DS81XX_HE_S 85 /* DS81XX_HE_S */
  566. #define DS81XX_HF_S 86 /* DS81XX_HF_S */
  567. #define DS81XX_AH_S 87 /* DS81XX_AH_S */
  568. #define DS81XX_AHF_S 88 /* DS81XX_AHF_S */
  569. #define DS90XX_HF_S 90 /*DS90XX_HF_S*/
  570. #define DS91XX_HF_S 91 /*DS91XX_HF_S*/
  571. #define DS91XX_HD_S 92 /*91XXHD-S(MD)*/
  572. #define DS_B10_XY 100 /*视频综合平台设备型号(X:编码板片数,Y:解码板片数)*/
  573. #define DS_6504HF_B10 101 /*视频综合平台内部编码器*/
  574. #define DS_6504D_B10 102 /*视频综合平台内部解码器*/
  575. /**********************设备类型 end***********************/
  576. /*************************************************
  577. 参数配置结构、参数(其中_V30为9000新增)
  578. **************************************************/
  579. /////////////////////////////////////////////////////////////////////////
  580. //校时结构参数
  581. typedef struct
  582. {
  583. DWORD dwYear; //年
  584. DWORD dwMonth; //月
  585. DWORD dwDay; //日
  586. DWORD dwHour; //时
  587. DWORD dwMinute; //分
  588. DWORD dwSecond; //秒
  589. }NET_DVR_TIME, *LPNET_DVR_TIME;
  590. //时间段(子结构)
  591. typedef struct
  592. {
  593. //开始时间
  594. BYTE byStartHour;
  595. BYTE byStartMin;
  596. //结束时间
  597. BYTE byStopHour;
  598. BYTE byStopMin;
  599. }NET_DVR_SCHEDTIME, *LPNET_DVR_SCHEDTIME;
  600. /*设备报警和异常处理方式*/
  601. #define NOACTION 0x0 /*无响应*/
  602. #define WARNONMONITOR 0x1 /*监视器上警告*/
  603. #define WARNONAUDIOOUT 0x2 /*声音警告*/
  604. #define UPTOCENTER 0x4 /*上传中心*/
  605. #define TRIGGERALARMOUT 0x8 /*触发报警输出*/
  606. //报警和异常处理结构(子结构)(多处使用)(9000扩展)
  607. typedef struct
  608. {
  609. DWORD dwHandleType; /*处理方式,处理方式的"或"结果*/
  610. /*0x00: 无响应*/
  611. /*0x01: 监视器上警告*/
  612. /*0x02: 声音警告*/
  613. /*0x04: 上传中心*/
  614. /*0x08: 触发报警输出*/
  615. /*0x10: Jpeg抓图并上传EMail*/
  616. BYTE byRelAlarmOut[MAX_ALARMOUT_V30];
  617. //报警触发的输出通道,报警触发的输出,为1表示触发该输出
  618. }NET_DVR_HANDLEEXCEPTION_V30, *LPNET_DVR_HANDLEEXCEPTION_V30;
  619. //报警和异常处理结构(子结构)(多处使用)
  620. typedef struct
  621. {
  622. DWORD dwHandleType; /*处理方式,处理方式的"或"结果*/
  623. /*0x00: 无响应*/
  624. /*0x01: 监视器上警告*/
  625. /*0x02: 声音警告*/
  626. /*0x04: 上传中心*/
  627. /*0x08: 触发报警输出*/
  628. /*0x10: Jpeg抓图并上传EMail*/
  629. BYTE byRelAlarmOut[MAX_ALARMOUT]; //报警触发的输出通道,报警触发的输出,为1表示触发该输出
  630. }NET_DVR_HANDLEEXCEPTION, *LPNET_DVR_HANDLEEXCEPTION;
  631. //DVR设备参数
  632. typedef struct
  633. {
  634. DWORD dwSize;
  635. BYTE sDVRName[NAME_LEN]; //DVR名称
  636. DWORD dwDVRID; //DVR ID,用于遥控器 //V1.4(0-99), V1.5(0-255)
  637. DWORD dwRecycleRecord; //是否循环录像,0:不是; 1:是
  638. //以下不可更改
  639. BYTE sSerialNumber[SERIALNO_LEN]; //序列号
  640. DWORD dwSoftwareVersion; //软件版本号,高16位是主版本,低16位是次版本
  641. DWORD dwSoftwareBuildDate; //软件生成日期,0xYYYYMMDD
  642. DWORD dwDSPSoftwareVersion; //DSP软件版本,高16位是主版本,低16位是次版本
  643. DWORD dwDSPSoftwareBuildDate; // DSP软件生成日期,0xYYYYMMDD
  644. DWORD dwPanelVersion; // 前面板版本,高16位是主版本,低16位是次版本
  645. DWORD dwHardwareVersion; // 硬件版本,高16位是主版本,低16位是次版本
  646. BYTE byAlarmInPortNum; //DVR报警输入个数
  647. BYTE byAlarmOutPortNum; //DVR报警输出个数
  648. BYTE byRS232Num; //DVR 232串口个数
  649. BYTE byRS485Num; //DVR 485串口个数
  650. BYTE byNetworkPortNum; //网络口个数
  651. BYTE byDiskCtrlNum; //DVR 硬盘控制器个数
  652. BYTE byDiskNum; //DVR 硬盘个数
  653. BYTE byDVRType; //DVR类型, 1:DVR 2:ATM DVR 3:DVS ......
  654. BYTE byChanNum; //DVR 通道个数
  655. BYTE byStartChan; //起始通道号,例如DVS-1,DVR - 1
  656. BYTE byDecordChans; //DVR 解码路数
  657. BYTE byVGANum; //VGA口的个数
  658. BYTE byUSBNum; //USB口的个数
  659. BYTE byAuxoutNum; //辅口的个数
  660. BYTE byAudioNum; //语音口的个数
  661. BYTE byIPChanNum; //最大数字通道数
  662. }NET_DVR_DEVICECFG, *LPNET_DVR_DEVICECFG;
  663. /*
  664. IP地址
  665. */
  666. typedef struct
  667. {
  668. char sIpV4[16]; /* IPv4地址 */
  669. BYTE byRes[128]; /* 保留 */
  670. }NET_DVR_IPADDR, *LPNET_DVR_IPADDR;
  671. /*
  672. 网络数据结构(子结构)(9000扩展)
  673. */
  674. typedef struct
  675. {
  676. NET_DVR_IPADDR struDVRIP; //DVR IP地址
  677. NET_DVR_IPADDR struDVRIPMask; //DVR IP地址掩码
  678. DWORD dwNetInterface; //网络接口1-10MBase-T 2-10MBase-T全双工 3-100MBase-TX 4-100M全双工 5-10M/100M自适应
  679. WORD wDVRPort; //端口号
  680. WORD wMTU; //增加MTU设置,默认1500。
  681. BYTE byMACAddr[MACADDR_LEN]; // 物理地址
  682. }NET_DVR_ETHERNET_V30, *LPNET_DVR_ETHERNET_V30;
  683. /*
  684. 网络数据结构(子结构)
  685. */
  686. typedef struct
  687. {
  688. char sDVRIP[16]; //DVR IP地址
  689. char sDVRIPMask[16]; //DVR IP地址掩码
  690. DWORD dwNetInterface; //网络接口 1-10MBase-T 2-10MBase-T全双工 3-100MBase-TX 4-100M全双工 5-10M/100M自适应
  691. WORD wDVRPort; //端口号
  692. BYTE byMACAddr[MACADDR_LEN]; //服务器的物理地址
  693. }NET_DVR_ETHERNET;
  694. //pppoe结构
  695. typedef struct
  696. {
  697. DWORD dwPPPOE; //0-不启用,1-启用
  698. BYTE sPPPoEUser[NAME_LEN]; //PPPoE用户名
  699. char sPPPoEPassword[PASSWD_LEN]; // PPPoE密码
  700. NET_DVR_IPADDR struPPPoEIP; //PPPoE IP地址
  701. }NET_DVR_PPPOECFG, *LPNET_DVR_PPPOECFG;
  702. //网络配置结构(9000扩展)
  703. typedef struct
  704. {
  705. DWORD dwSize;
  706. NET_DVR_ETHERNET_V30 struEtherNet[MAX_ETHERNET]; //以太网口
  707. NET_DVR_IPADDR struRes1[2]; /*保留*/
  708. NET_DVR_IPADDR struAlarmHostIpAddr; /* 报警主机IP地址 */
  709. WORD wRes2[2]; /* 保留 */
  710. WORD wAlarmHostIpPort; /* 报警主机端口号 */
  711. BYTE byUseDhcp; /* 是否启用DHCP 0xff-无效 0-不启用 1-启用*/
  712. BYTE byRes3;
  713. NET_DVR_IPADDR struDnsServer1IpAddr; /* 域名服务器1的IP地址 */
  714. NET_DVR_IPADDR struDnsServer2IpAddr; /* 域名服务器2的IP地址 */
  715. BYTE byIpResolver[MAX_DOMAIN_NAME]; /* IP解析服务器域名或IP地址 */
  716. WORD wIpResolverPort; /* IP解析服务器端口号 */
  717. WORD wHttpPortNo; /* HTTP端口号 */
  718. NET_DVR_IPADDR struMulticastIpAddr; /* 多播组地址 */
  719. NET_DVR_IPADDR struGatewayIpAddr; /* 网关地址 */
  720. NET_DVR_PPPOECFG struPPPoE;
  721. BYTE byRes[64];
  722. } NET_DVR_NETCFG_V30, *LPNET_DVR_NETCFG_V30;
  723. //网络配置结构
  724. typedef struct
  725. {
  726. DWORD dwSize;
  727. NET_DVR_ETHERNET struEtherNet[MAX_ETHERNET]; /* 以太网口 */
  728. char sManageHostIP[16]; //远程管理主机地址
  729. WORD wManageHostPort; //远程管理主机端口号
  730. char sIPServerIP[16]; //IPServer服务器地址
  731. char sMultiCastIP[16]; //多播组地址
  732. char sGatewayIP[16]; //网关地址
  733. char sNFSIP[16]; //NFS主机IP地址
  734. BYTE sNFSDirectory[PATHNAME_LEN];//NFS目录
  735. DWORD dwPPPOE; //0-不启用,1-启用
  736. BYTE sPPPoEUser[NAME_LEN]; //PPPoE用户名
  737. char sPPPoEPassword[PASSWD_LEN];// PPPoE密码
  738. char sPPPoEIP[16]; //PPPoE IP地址(只读)
  739. WORD wHttpPort; //HTTP端口号
  740. }NET_DVR_NETCFG, *LPNET_DVR_NETCFG;
  741. //通道图象结构
  742. //移动侦测(子结构)(9000扩展)
  743. typedef struct
  744. {
  745. BYTE byMotionScope[64][96]; /*侦测区域,0-96位,表示64行,共有96*64个小宏块,为1表示是移动侦测区域,0-表示不是*/
  746. BYTE byMotionSensitive; /*移动侦测灵敏度, 0 - 5,越高越灵敏,oxff关闭*/
  747. BYTE byEnableHandleMotion; /* 是否处理移动侦测 0-否 1-是*/
  748. BYTE byPrecision; /* 移动侦测算法的进度: 0--16*16, 1--32*32, 2--64*64 ... */
  749. char reservedData;
  750. NET_DVR_HANDLEEXCEPTION_V30 struMotionHandleType; /* 处理方式 */
  751. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30]; /*布防时间*/
  752. BYTE byRelRecordChan[MAX_CHANNUM_V30]; /* 报警触发的录象通道*/
  753. }NET_DVR_MOTION_V30, *LPNET_DVR_MOTION_V30;
  754. //移动侦测(子结构)
  755. typedef struct
  756. {
  757. BYTE byMotionScope[18][22]; /*侦测区域,共有22*18个小宏块,为1表示改宏块是移动侦测区域,0-表示不是*/
  758. BYTE byMotionSensitive; /*移动侦测灵敏度, 0 - 5,越高越灵敏,0xff关闭*/
  759. BYTE byEnableHandleMotion; /* 是否处理移动侦测 */
  760. char reservedData[2];
  761. NET_DVR_HANDLEEXCEPTION strMotionHandleType; /* 处理方式 */
  762. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  763. BYTE byRelRecordChan[MAX_CHANNUM]; //报警触发的录象通道,为1表示触发该通道
  764. }NET_DVR_MOTION, *LPNET_DVR_MOTION;
  765. //遮挡报警(子结构)(9000扩展) 区域大小704*576
  766. typedef struct
  767. {
  768. DWORD dwEnableHideAlarm; /* 是否启动遮挡报警 ,0-否,1-低灵敏度 2-中灵敏度 3-高灵敏度*/
  769. WORD wHideAlarmAreaTopLeftX; /* 遮挡区域的x坐标 */
  770. WORD wHideAlarmAreaTopLeftY; /* 遮挡区域的y坐标 */
  771. WORD wHideAlarmAreaWidth; /* 遮挡区域的宽 */
  772. WORD wHideAlarmAreaHeight; /*遮挡区域的高*/
  773. NET_DVR_HANDLEEXCEPTION_V30 strHideAlarmHandleType; /* 处理方式 */
  774. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30];//布防时间
  775. }NET_DVR_HIDEALARM_V30, *LPNET_DVR_HIDEALARM_V30;
  776. //遮挡报警(子结构) 区域大小704*576
  777. typedef struct
  778. {
  779. DWORD dwEnableHideAlarm; /* 是否启动遮挡报警 ,0-否,1-低灵敏度 2-中灵敏度 3-高灵敏度*/
  780. WORD wHideAlarmAreaTopLeftX; /* 遮挡区域的x坐标 */
  781. WORD wHideAlarmAreaTopLeftY; /* 遮挡区域的y坐标 */
  782. WORD wHideAlarmAreaWidth; /* 遮挡区域的宽 */
  783. WORD wHideAlarmAreaHeight; /*遮挡区域的高*/
  784. NET_DVR_HANDLEEXCEPTION strHideAlarmHandleType; /* 处理方式 */
  785. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  786. }NET_DVR_HIDEALARM, *LPNET_DVR_HIDEALARM;
  787. //信号丢失报警(子结构)(9000扩展)
  788. typedef struct
  789. {
  790. BYTE byEnableHandleVILost; /* 是否处理信号丢失报警 */
  791. NET_DVR_HANDLEEXCEPTION_V30 strVILostHandleType; /* 处理方式 */
  792. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30];//布防时间
  793. }NET_DVR_VILOST_V30, *LPNET_DVR_VILOST_V30;
  794. //信号丢失报警(子结构)
  795. typedef struct
  796. {
  797. BYTE byEnableHandleVILost; /* 是否处理信号丢失报警 */
  798. NET_DVR_HANDLEEXCEPTION strVILostHandleType; /* 处理方式 */
  799. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  800. }NET_DVR_VILOST, *LPNET_DVR_VILOST;
  801. //遮挡区域(子结构)
  802. typedef struct
  803. {
  804. WORD wHideAreaTopLeftX; /* 遮挡区域的x坐标 */
  805. WORD wHideAreaTopLeftY; /* 遮挡区域的y坐标 */
  806. WORD wHideAreaWidth; /* 遮挡区域的宽 */
  807. WORD wHideAreaHeight; /*遮挡区域的高*/
  808. }NET_DVR_SHELTER, *LPNET_DVR_SHELTER;
  809. typedef struct
  810. {
  811. BYTE byBrightness; /*亮度,0-255*/
  812. BYTE byContrast; /*对比度,0-255*/
  813. BYTE bySaturation; /*饱和度,0-255*/
  814. BYTE byHue; /*色调,0-255*/
  815. }NET_DVR_COLOR, *LPNET_DVR_COLOR;
  816. //通道图象结构(9000扩展)
  817. typedef struct
  818. {
  819. DWORD dwSize;
  820. BYTE sChanName[NAME_LEN];
  821. DWORD dwVideoFormat; /* 只读 视频制式 1-NTSC 2-PAL*/
  822. NET_DVR_COLOR struColor;// 图像参数
  823. char reservedData [60];/*保留*/
  824. //显示通道名
  825. DWORD dwShowChanName; // 预览的图象上是否显示通道名称,0-不显示,1-显示 区域大小704*576
  826. WORD wShowNameTopLeftX; /* 通道名称显示位置的x坐标 */
  827. WORD wShowNameTopLeftY; /* 通道名称显示位置的y坐标 */
  828. //视频信号丢失报警
  829. NET_DVR_VILOST_V30 struVILost;
  830. NET_DVR_VILOST_V30 struRes; /*保留*/
  831. //移动侦测
  832. NET_DVR_MOTION_V30 struMotion;
  833. //遮挡报警
  834. NET_DVR_HIDEALARM_V30 struHideAlarm;
  835. //遮挡 区域大小704*576
  836. DWORD dwEnableHide; /* 是否启动遮挡 ,0-否,1-是*/
  837. NET_DVR_SHELTER struShelter[MAX_SHELTERNUM];
  838. //OSD
  839. DWORD dwShowOsd;// 预览的图象上是否显示OSD,0-不显示,1-显示 区域大小704*576
  840. WORD wOSDTopLeftX; /* OSD的x坐标 */
  841. WORD wOSDTopLeftY; /* OSD的y坐标 */
  842. BYTE byOSDType; /* OSD类型(主要是年月日格式) */
  843. /* 0: XXXX-XX-XX 年月日 */
  844. /* 1: XX-XX-XXXX 月日年 */
  845. /* 2: XXXX年XX月XX日 */
  846. /* 3: XX月XX日XXXX年 */
  847. /* 4: XX-XX-XXXX 日月年*/
  848. /* 5: XX日XX月XXXX年 */
  849. BYTE byDispWeek; /* 是否显示星期 */
  850. BYTE byOSDAttrib; /* OSD属性:透明,闪烁 */
  851. /* 0: 不显示OSD */
  852. /* 1: 透明,闪烁 */
  853. /* 2: 透明,不闪烁 */
  854. /* 3: 闪烁,不透明 */
  855. /* 4: 不透明,不闪烁 */
  856. BYTE byHourOSDType; /* OSD小时制:0-24小时制,1-12小时制 */
  857. BYTE byRes[64];
  858. }NET_DVR_PICCFG_V30, *LPNET_DVR_PICCFG_V30;
  859. //通道图象结构SDK_V14扩展
  860. typedef struct
  861. {
  862. DWORD dwSize;
  863. BYTE sChanName[NAME_LEN];
  864. DWORD dwVideoFormat; /* 只读 视频制式 1-NTSC 2-PAL*/
  865. BYTE byBrightness; /*亮度,0-255*/
  866. BYTE byContrast; /*对比度,0-255*/
  867. BYTE bySaturation; /*饱和度,0-255 */
  868. BYTE byHue; /*色调,0-255*/
  869. //显示通道名
  870. DWORD dwShowChanName; // 预览的图象上是否显示通道名称,0-不显示,1-显示 区域大小704*576
  871. WORD wShowNameTopLeftX; /* 通道名称显示位置的x坐标 */
  872. WORD wShowNameTopLeftY; /* 通道名称显示位置的y坐标 */
  873. //信号丢失报警
  874. NET_DVR_VILOST struVILost;
  875. //移动侦测
  876. NET_DVR_MOTION struMotion;
  877. //遮挡报警
  878. NET_DVR_HIDEALARM struHideAlarm;
  879. //遮挡 区域大小704*576
  880. DWORD dwEnableHide; /* 是否启动遮挡 ,0-否,1-是*/
  881. NET_DVR_SHELTER struShelter[MAX_SHELTERNUM];
  882. //OSD
  883. DWORD dwShowOsd;// 预览的图象上是否显示OSD,0-不显示,1-显示 区域大小704*576
  884. WORD wOSDTopLeftX; /* OSD的x坐标 */
  885. WORD wOSDTopLeftY; /* OSD的y坐标 */
  886. BYTE byOSDType; /* OSD类型(主要是年月日格式) */
  887. /* 0: XXXX-XX-XX 年月日 */
  888. /* 1: XX-XX-XXXX 月日年 */
  889. /* 2: XXXX年XX月XX日 */
  890. /* 3: XX月XX日XXXX年 */
  891. /* 4: XX-XX-XXXX 日月年*/
  892. /* 5: XX日XX月XXXX年 */
  893. BYTE byDispWeek; /* 是否显示星期 */
  894. BYTE byOSDAttrib; /* OSD属性:透明,闪烁 */
  895. /* 0: 不显示OSD */
  896. /* 1: 透明,闪烁 */
  897. /* 2: 透明,不闪烁 */
  898. /* 3: 闪烁,不透明 */
  899. /* 4: 不透明,不闪烁 */
  900. BYTE byHourOsdType; /* OSD小时制:0-24小时制,1-12小时制 */
  901. }NET_DVR_PICCFG_EX, *LPNET_DVR_PICCFG_EX;
  902. //通道图象结构(SDK_V13及之前版本)
  903. typedef struct
  904. {
  905. DWORD dwSize;
  906. BYTE sChanName[NAME_LEN];
  907. DWORD dwVideoFormat; /* 只读 视频制式 1-NTSC 2-PAL*/
  908. BYTE byBrightness; /*亮度,0-255*/
  909. BYTE byContrast; /*对比度,0-255*/
  910. BYTE bySaturation; /*饱和度,0-255 */
  911. BYTE byHue; /*色调,0-255*/
  912. //显示通道名
  913. DWORD dwShowChanName; // 预览的图象上是否显示通道名称,0-不显示,1-显示 区域大小704*576
  914. WORD wShowNameTopLeftX; /* 通道名称显示位置的x坐标 */
  915. WORD wShowNameTopLeftY; /* 通道名称显示位置的y坐标 */
  916. //信号丢失报警
  917. NET_DVR_VILOST struVILost;
  918. //移动侦测
  919. NET_DVR_MOTION struMotion;
  920. //遮挡报警
  921. NET_DVR_HIDEALARM struHideAlarm;
  922. //遮挡 区域大小704*576
  923. DWORD dwEnableHide; /* 是否启动遮挡 ,0-否,1-是*/
  924. WORD wHideAreaTopLeftX; /* 遮挡区域的x坐标 */
  925. WORD wHideAreaTopLeftY; /* 遮挡区域的y坐标 */
  926. WORD wHideAreaWidth; /* 遮挡区域的宽 */
  927. WORD wHideAreaHeight; /*遮挡区域的高*/
  928. //OSD
  929. DWORD dwShowOsd;// 预览的图象上是否显示OSD,0-不显示,1-显示 区域大小704*576
  930. WORD wOSDTopLeftX; /* OSD的x坐标 */
  931. WORD wOSDTopLeftY; /* OSD的y坐标 */
  932. BYTE byOSDType; /* OSD类型(主要是年月日格式) */
  933. /* 0: XXXX-XX-XX 年月日 */
  934. /* 1: XX-XX-XXXX 月日年 */
  935. /* 2: XXXX年XX月XX日 */
  936. /* 3: XX月XX日XXXX年 */
  937. /* 4: XX-XX-XXXX 日月年*/
  938. /* 5: XX日XX月XXXX年 */
  939. BYTE byDispWeek; /* 是否显示星期 */
  940. BYTE byOSDAttrib; /* OSD属性:透明,闪烁 */
  941. /* 0: 不显示OSD */
  942. /* 1: 透明,闪烁 */
  943. /* 2: 透明,不闪烁 */
  944. /* 3: 闪烁,不透明 */
  945. /* 4: 不透明,不闪烁 */
  946. char reservedData2;
  947. }NET_DVR_PICCFG, *LPNET_DVR_PICCFG;
  948. //码流压缩参数(子结构)(9000扩展)
  949. typedef struct
  950. {
  951. BYTE byStreamType; //码流类型 0-视频流, 1-复合流, 表示事件压缩参数时最高位表示是否启用压缩参数
  952. BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF 5(保留)16-VGA(640*480) 17-UXGA(1600*1200) 18-SVGA (800*600)19-HD720p(1280*720)20-XVGA 21-HD900p
  953. BYTE byBitrateType; //码率类型 0:变码率, 1:定码率
  954. BYTE byPicQuality; //图象质量 0-最好 1-次好 2-较好 3-一般 4-较差 5-差
  955. DWORD dwVideoBitrate; //视频码率 0-保留 1-16K 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
  956. // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
  957. //最高位(31位)置成1表示是自定义码流, 0-30位表示码流值。
  958. DWORD dwVideoFrameRate; //帧率 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; V2.0版本中新加14-15; 15-18; 16-22;
  959. WORD wIntervalFrameI; //I帧间隔
  960. //2006-08-11 增加单P帧的配置接口,可以改善实时流延时问题
  961. BYTE byIntervalBPFrame;//0-BBP帧; 1-BP帧; 2-单P帧
  962. BYTE byres1; //保留
  963. BYTE byVideoEncType; //视频编码类型 0 hik264;1标准h264; 2标准mpeg4;
  964. BYTE byAudioEncType; //音频编码类型 0-OggVorbis
  965. BYTE byres[10];//这里保留音频的压缩参数
  966. }NET_DVR_COMPRESSION_INFO_V30, *LPNET_DVR_COMPRESSION_INFO_V30;
  967. //通道压缩参数(9000扩展)
  968. typedef struct
  969. {
  970. DWORD dwSize;
  971. NET_DVR_COMPRESSION_INFO_V30 struNormHighRecordPara; //录像 对应8000的普通
  972. NET_DVR_COMPRESSION_INFO_V30 struRes;//保留 char reserveData[28];
  973. NET_DVR_COMPRESSION_INFO_V30 struEventRecordPara; //事件触发压缩参数
  974. NET_DVR_COMPRESSION_INFO_V30 struNetPara; //网传(子码流)
  975. }NET_DVR_COMPRESSIONCFG_V30, *LPNET_DVR_COMPRESSIONCFG_V30;
  976. //码流压缩参数(子结构)
  977. typedef struct
  978. {
  979. BYTE byStreamType; //码流类型0-视频流,1-复合流,表示压缩参数时最高位表示是否启用压缩参数
  980. BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF, 5-2QCIF(352X144)(车载专用)
  981. BYTE byBitrateType; //码率类型0:变码率,1:定码率
  982. BYTE byPicQuality; //图象质量 0-最好 1-次好 2-较好 3-一般 4-较差 5-差
  983. DWORD dwVideoBitrate; //视频码率 0-保留 1-16K(保留) 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
  984. // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
  985. //最高位(31位)置成1表示是自定义码流, 0-30位表示码流值(MIN-32K MAX-8192K)。
  986. DWORD dwVideoFrameRate; //帧率 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;
  987. }NET_DVR_COMPRESSION_INFO, *LPNET_DVR_COMPRESSION_INFO;
  988. //通道压缩参数
  989. typedef struct
  990. {
  991. DWORD dwSize;
  992. NET_DVR_COMPRESSION_INFO struRecordPara; //录像/事件触发录像
  993. NET_DVR_COMPRESSION_INFO struNetPara; //网传/保留
  994. }NET_DVR_COMPRESSIONCFG, *LPNET_DVR_COMPRESSIONCFG;
  995. //码流压缩参数(子结构)(扩展) 增加I帧间隔
  996. typedef struct
  997. {
  998. BYTE byStreamType; //码流类型0-视频流, 1-复合流
  999. BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF, 5-2QCIF(352X144)(车载专用)
  1000. BYTE byBitrateType; //码率类型0:变码率,1:定码率
  1001. BYTE byPicQuality; //图象质量 0-最好 1-次好 2-较好 3-一般 4-较差 5-差
  1002. DWORD dwVideoBitrate; //视频码率 0-保留 1-16K(保留) 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
  1003. // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
  1004. //最高位(31位)置成1表示是自定义码流, 0-30位表示码流值(MIN-32K MAX-8192K)。
  1005. DWORD dwVideoFrameRate; //帧率 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, //V2.0增加14-15, 15-18, 16-22;
  1006. WORD wIntervalFrameI; //I帧间隔
  1007. //2006-08-11 增加单P帧的配置接口,可以改善实时流延时问题
  1008. BYTE byIntervalBPFrame;//0-BBP帧; 1-BP帧; 2-单P帧
  1009. BYTE byRes;
  1010. }NET_DVR_COMPRESSION_INFO_EX, *LPNET_DVR_COMPRESSION_INFO_EX;
  1011. //通道压缩参数(扩展)
  1012. typedef struct
  1013. {
  1014. DWORD dwSize;
  1015. NET_DVR_COMPRESSION_INFO_EX struRecordPara; //录像
  1016. NET_DVR_COMPRESSION_INFO_EX struNetPara; //网传
  1017. }NET_DVR_COMPRESSIONCFG_EX, *LPNET_DVR_COMPRESSIONCFG_EX;
  1018. //时间段录像参数配置(子结构)
  1019. typedef struct
  1020. {
  1021. NET_DVR_SCHEDTIME struRecordTime;
  1022. BYTE byRecordType; //0:定时录像,1:移动侦测,2:报警录像,3:动测|报警,4:动测&报警, 5:命令触发, 6: 智能录像
  1023. char reservedData[3];
  1024. }NET_DVR_RECORDSCHED, *LPNET_DVR_RECORDSCHED;
  1025. //全天录像参数配置(子结构)
  1026. typedef struct
  1027. {
  1028. WORD wAllDayRecord; /* 是否全天录像 0-否 1-是*/
  1029. BYTE byRecordType; /* 录象类型 0:定时录像,1:移动侦测,2:报警录像,3:动测|报警,4:动测&报警 5:命令触发, 6: 智能录像*/
  1030. char reservedData;
  1031. }NET_DVR_RECORDDAY, *LPNET_DVR_RECORDDAY;
  1032. //通道录像参数配置(9000扩展)
  1033. typedef struct
  1034. {
  1035. DWORD dwSize;
  1036. DWORD dwRecord; /*是否录像 0-否 1-是*/
  1037. NET_DVR_RECORDDAY struRecAllDay[MAX_DAYS];
  1038. NET_DVR_RECORDSCHED struRecordSched[MAX_DAYS][MAX_TIMESEGMENT_V30];
  1039. DWORD dwRecordTime; /* 录象延时长度 0-5秒, 1-20秒, 2-30秒, 3-1分钟, 4-2分钟, 5-5分钟, 6-10分钟*/
  1040. DWORD dwPreRecordTime; /* 预录时间 0-不预录 1-5秒 2-10秒 3-15秒 4-20秒 5-25秒 6-30秒 7-0xffffffff(尽可能预录) */
  1041. DWORD dwRecorderDuration; /* 录像保存的最长时间 */
  1042. BYTE byRedundancyRec; /*是否冗余录像,重要数据双备份:0/1*/
  1043. BYTE byAudioRec; /*录像时复合流编码时是否记录音频数据:国外有此法规*/
  1044. BYTE byReserve[10];
  1045. }NET_DVR_RECORD_V30, *LPNET_DVR_RECORD_V30;
  1046. //通道录像参数配置
  1047. typedef struct
  1048. {
  1049. DWORD dwSize;
  1050. DWORD dwRecord; /*是否录像 0-否 1-是*/
  1051. NET_DVR_RECORDDAY struRecAllDay[MAX_DAYS];
  1052. NET_DVR_RECORDSCHED struRecordSched[MAX_DAYS][MAX_TIMESEGMENT];
  1053. DWORD dwRecordTime; /* 录象时间长度 */
  1054. DWORD dwPreRecordTime; /* 预录时间 0-不预录 1-5秒 2-10秒 3-15秒 4-20秒 5-25秒 6-30秒 7-0xffffffff(尽可能预录) */
  1055. }NET_DVR_RECORD, *LPNET_DVR_RECORD;
  1056. //云台协议表结构配置
  1057. typedef struct
  1058. {
  1059. DWORD dwType; /*解码器类型值,从1开始连续递增*/
  1060. BYTE byDescribe[DESC_LEN]; /*解码器的描述符,和8000中的一致*/
  1061. }NET_DVR_PTZ_PROTOCOL;
  1062. typedef struct
  1063. {
  1064. DWORD dwSize;
  1065. NET_DVR_PTZ_PROTOCOL struPtz[PTZ_PROTOCOL_NUM];/*最大200中PTZ协议*/
  1066. DWORD dwPtzNum; /*有效的ptz协议数目,从0开始(即计算时加1)*/
  1067. BYTE byRes[8];
  1068. }NET_DVR_PTZCFG, *LPNET_DVR_PTZCFG;
  1069. /***************************云台类型(end)******************************/
  1070. //通道解码器(云台)参数配置(9000扩展)
  1071. typedef struct
  1072. {
  1073. DWORD dwSize;
  1074. DWORD dwBaudRate;//波特率(bps),0-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,9-9600,10-19200, 11-38400,12-57600,13-76800,14-115.2k;
  1075. BYTE byDataBit;// 数据有几位 0-5位,1-6位,2-7位,3-8位;
  1076. BYTE byStopBit;// 停止位 0-1位,1-2位;
  1077. BYTE byParity;// 校验 0-无校验,1-奇校验,2-偶校验;
  1078. BYTE byFlowcontrol;// 0-无,1-软流控,2-硬流控
  1079. WORD wDecoderType;//解码器类型, 从0开始,对应ptz协议列表
  1080. WORD wDecoderAddress; /*解码器地址:0 - 255*/
  1081. BYTE bySetPreset[MAX_PRESET_V30]; /* 预置点是否设置,0-没有设置,1-设置*/
  1082. BYTE bySetCruise[MAX_CRUISE_V30]; /* 巡航是否设置: 0-没有设置,1-设置 */
  1083. BYTE bySetTrack[MAX_TRACK_V30]; /* 轨迹是否设置,0-没有设置,1-设置*/
  1084. }NET_DVR_DECODERCFG_V30, *LPNET_DVR_DECODERCFG_V30;
  1085. //通道解码器(云台)参数配置
  1086. typedef struct
  1087. {
  1088. DWORD dwSize;
  1089. DWORD dwBaudRate; //波特率(bps),0-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,9-9600,10-19200, 11-38400,12-57600,13-76800,14-115.2k;
  1090. BYTE byDataBit; // 数据有几位 0-5位,1-6位,2-7位,3-8位;
  1091. BYTE byStopBit; // 停止位 0-1位,1-2位;
  1092. BYTE byParity; // 校验 0-无校验,1-奇校验,2-偶校验;
  1093. BYTE byFlowcontrol; // 0-无,1-软流控,2-硬流控
  1094. WORD wDecoderType; //解码器类型, 0-YouLi,1-LiLin-1016,2-LiLin-820,3-Pelco-p,4-DM DynaColor,5-HD600,6-JC-4116,7-Pelco-d WX,8-Pelco-d PICO
  1095. WORD wDecoderAddress; /*解码器地址:0 - 255*/
  1096. BYTE bySetPreset[MAX_PRESET]; /* 预置点是否设置,0-没有设置,1-设置*/
  1097. BYTE bySetCruise[MAX_CRUISE]; /* 巡航是否设置: 0-没有设置,1-设置 */
  1098. BYTE bySetTrack[MAX_TRACK]; /* 轨迹是否设置,0-没有设置,1-设置*/
  1099. }NET_DVR_DECODERCFG, *LPNET_DVR_DECODERCFG;
  1100. //ppp参数配置(子结构)
  1101. typedef struct
  1102. {
  1103. NET_DVR_IPADDR struRemoteIP; //远端IP地址
  1104. NET_DVR_IPADDR struLocalIP; //本地IP地址
  1105. char sLocalIPMask[16]; //本地IP地址掩码
  1106. BYTE sUsername[NAME_LEN]; /* 用户名 */
  1107. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1108. BYTE byPPPMode; //PPP模式, 0-主动,1-被动
  1109. BYTE byRedial; //是否回拨 :0-否,1-是
  1110. BYTE byRedialMode; //回拨模式,0-由拨入者指定,1-预置回拨号码
  1111. BYTE byDataEncrypt; //数据加密,0-否,1-是
  1112. DWORD dwMTU; //MTU
  1113. char sTelephoneNumber[PHONENUMBER_LEN]; //电话号码
  1114. }NET_DVR_PPPCFG_V30, *LPNET_DVR_PPPCFG_V30;
  1115. //ppp参数配置(子结构)
  1116. typedef struct
  1117. {
  1118. char sRemoteIP[16]; //远端IP地址
  1119. char sLocalIP[16]; //本地IP地址
  1120. char sLocalIPMask[16]; //本地IP地址掩码
  1121. BYTE sUsername[NAME_LEN]; /* 用户名 */
  1122. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1123. BYTE byPPPMode; //PPP模式, 0-主动,1-被动
  1124. BYTE byRedial; //是否回拨 :0-否,1-是
  1125. BYTE byRedialMode; //回拨模式,0-由拨入者指定,1-预置回拨号码
  1126. BYTE byDataEncrypt; //数据加密,0-否,1-是
  1127. DWORD dwMTU; //MTU
  1128. char sTelephoneNumber[PHONENUMBER_LEN]; //电话号码
  1129. }NET_DVR_PPPCFG, *LPNET_DVR_PPPCFG;
  1130. //RS232串口参数配置(9000扩展)
  1131. typedef struct
  1132. {
  1133. DWORD dwBaudRate; /*波特率(bps),0-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,9-9600,10-19200, 11-38400,12-57600,13-76800,14-115.2k;*/
  1134. BYTE byDataBit; /* 数据有几位 0-5位,1-6位,2-7位,3-8位 */
  1135. BYTE byStopBit; /* 停止位 0-1位,1-2位 */
  1136. BYTE byParity; /* 校验 0-无校验,1-奇校验,2-偶校验 */
  1137. BYTE byFlowcontrol; /* 0-无,1-软流控,2-硬流控 */
  1138. DWORD dwWorkMode; /* 工作模式,0-232串口用于PPP拨号,1-232串口用于参数控制,2-透明通道 */
  1139. }NET_DVR_SINGLE_RS232;
  1140. //RS232串口参数配置(9000扩展)
  1141. typedef struct
  1142. {
  1143. DWORD dwSize;
  1144. NET_DVR_SINGLE_RS232 struRs232;
  1145. BYTE byRes[84];
  1146. NET_DVR_PPPCFG_V30 struPPPConfig;
  1147. }NET_DVR_RS232CFG_V30, *LPNET_DVR_RS232CFG_V30;
  1148. //RS232串口参数配置
  1149. typedef struct
  1150. {
  1151. DWORD dwSize;
  1152. DWORD dwBaudRate;//波特率(bps),0-50,1-75,2-110,3-150,4-300,5-600,6-1200,7-2400,8-4800,9-9600,10-19200, 11-38400,12-57600,13-76800,14-115.2k;
  1153. BYTE byDataBit;// 数据有几位 0-5位,1-6位,2-7位,3-8位;
  1154. BYTE byStopBit;// 停止位 0-1位,1-2位;
  1155. BYTE byParity;// 校验 0-无校验,1-奇校验,2-偶校验;
  1156. BYTE byFlowcontrol;// 0-无,1-软流控,2-硬流控
  1157. DWORD dwWorkMode;// 工作模式,0-窄带传输(232串口用于PPP拨号),1-控制台(232串口用于参数控制),2-透明通道
  1158. NET_DVR_PPPCFG struPPPConfig;
  1159. }NET_DVR_RS232CFG, *LPNET_DVR_RS232CFG;
  1160. //报警输入参数配置(9000扩展)
  1161. typedef struct
  1162. {
  1163. DWORD dwSize;
  1164. BYTE sAlarmInName[NAME_LEN]; /* 名称 */
  1165. BYTE byAlarmType; //报警器类型,0:常开,1:常闭
  1166. BYTE byAlarmInHandle; /* 是否处理 0-不处理 1-处理*/
  1167. BYTE byRes1[2];
  1168. NET_DVR_HANDLEEXCEPTION_V30 struAlarmHandleType; /* 处理方式 */
  1169. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30];//布防时间
  1170. BYTE byRelRecordChan[MAX_CHANNUM_V30]; //报警触发的录象通道,为1表示触发该通道
  1171. BYTE byEnablePreset[MAX_CHANNUM_V30]; /* 是否调用预置点 0-否,1-是*/
  1172. BYTE byPresetNo[MAX_CHANNUM_V30]; /* 调用的云台预置点序号,一个报警输入可以调用多个通道的云台预置点, 0xff表示不调用预置点。*/
  1173. BYTE byRes2[192]; /*保留*/
  1174. BYTE byEnableCruise[MAX_CHANNUM_V30]; /* 是否调用巡航 0-否,1-是*/
  1175. BYTE byCruiseNo[MAX_CHANNUM_V30]; /* 巡航 */
  1176. BYTE byEnablePtzTrack[MAX_CHANNUM_V30]; /* 是否调用轨迹 0-否,1-是*/
  1177. BYTE byPTZTrack[MAX_CHANNUM_V30]; /* 调用的云台的轨迹序号 */
  1178. BYTE byRes3[16];
  1179. }NET_DVR_ALARMINCFG_V30, *LPNET_DVR_ALARMINCFG_V30;
  1180. //报警输入参数配置
  1181. typedef struct
  1182. {
  1183. DWORD dwSize;
  1184. BYTE sAlarmInName[NAME_LEN]; /* 名称 */
  1185. BYTE byAlarmType; //报警器类型,0:常开,1:常闭
  1186. BYTE byAlarmInHandle; /* 是否处理 0-不处理 1-处理*/
  1187. NET_DVR_HANDLEEXCEPTION struAlarmHandleType; /* 处理方式 */
  1188. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  1189. BYTE byRelRecordChan[MAX_CHANNUM]; //报警触发的录象通道,为1表示触发该通道
  1190. BYTE byEnablePreset[MAX_CHANNUM]; /* 是否调用预置点 0-否,1-是*/
  1191. BYTE byPresetNo[MAX_CHANNUM]; /* 调用的云台预置点序号,一个报警输入可以调用多个通道的云台预置点, 0xff表示不调用预置点。*/
  1192. BYTE byEnableCruise[MAX_CHANNUM]; /* 是否调用巡航 0-否,1-是*/
  1193. BYTE byCruiseNo[MAX_CHANNUM]; /* 巡航 */
  1194. BYTE byEnablePtzTrack[MAX_CHANNUM]; /* 是否调用轨迹 0-否,1-是*/
  1195. BYTE byPTZTrack[MAX_CHANNUM]; /* 调用的云台的轨迹序号 */
  1196. }NET_DVR_ALARMINCFG, *LPNET_DVR_ALARMINCFG;
  1197. //上传报警信息(9000扩展)
  1198. typedef struct
  1199. {
  1200. DWORD dwAlarmType;/*0-信号量报警,1-硬盘满,2-信号丢失,3-移动侦测,4-硬盘未格式化,5-读写硬盘出错,6-遮挡报警,7-制式不匹配, 8-非法访问, 9-视频信号异常,10-录像异常 */
  1201. DWORD dwAlarmInputNumber;/*报警输入端口*/
  1202. BYTE byAlarmOutputNumber[MAX_ALARMOUT_V30];/*触发的输出端口,为1表示对应输出*/
  1203. BYTE byAlarmRelateChannel[MAX_CHANNUM_V30];/*触发的录像通道,为1表示对应录像, dwAlarmRelateChannel[0]对应第1个通道*/
  1204. BYTE byChannel[MAX_CHANNUM_V30];/*dwAlarmType为2或3,6,9,10时,表示哪个通道,dwChannel[0]对应第1个通道*/
  1205. BYTE byDiskNumber[MAX_DISKNUM_V30];/*dwAlarmType为1,4,5时,表示哪个硬盘, dwDiskNumber[0]对应第1个硬盘*/
  1206. #ifdef SDK_CHEZAI
  1207. NET_DVR_ADDIT_POSITION GPS_pos; /* GPS定位信息 */
  1208. #endif
  1209. }NET_DVR_ALARMINFO_V30, *LPNET_DVR_ALARMINFO_V30;
  1210. typedef struct
  1211. {
  1212. DWORD dwAlarmType;/*0-信号量报警,1-硬盘满,2-信号丢失,3-移动侦测,4-硬盘未格式化,5-读写硬盘出错,6-遮挡报警,7-制式不匹配, 8-非法访问, 9-串口状态, 0xa-GPS定位信息(车载定制)*/
  1213. DWORD dwAlarmInputNumber;/*报警输入端口, 当报警类型为9时该变量表示串口状态0表示正常, -1表示错误*/
  1214. DWORD dwAlarmOutputNumber[MAX_ALARMOUT];/*触发的输出端口,哪一位为1表示对应哪一个输出*/
  1215. DWORD dwAlarmRelateChannel[MAX_CHANNUM];/*触发的录像通道,哪一位为1表示对应哪一路录像, dwAlarmRelateChannel[0]对应第1个通道*/
  1216. DWORD dwChannel[MAX_CHANNUM];/*dwAlarmType为2或3,6时,表示哪个通道,dwChannel[0]位对应第1个通道*/
  1217. DWORD dwDiskNumber[MAX_DISKNUM];/*dwAlarmType为1,4,5时,表示哪个硬盘, dwDiskNumber[0]位对应第1个硬盘*/
  1218. }NET_DVR_ALARMINFO, *LPNET_DVR_ALARMINFO;
  1219. //////////////////////////////////////////////////////////////////////////////////////
  1220. //IPC接入参数配置
  1221. /* IP设备结构 */
  1222. typedef struct
  1223. {
  1224. DWORD dwEnable; /* 该IP设备是否启用 */
  1225. BYTE sUserName[NAME_LEN]; /* 用户名 */
  1226. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1227. NET_DVR_IPADDR struIP; /* IP地址 */
  1228. WORD wDVRPort; /* 端口号 */
  1229. BYTE byRes[34]; /* 保留 */
  1230. }NET_DVR_IPDEVINFO, *LPNET_DVR_IPDEVINFO;
  1231. //ipc接入设备信息扩展,支持ip设备的域名添加
  1232. typedef struct tagNET_DVR_IPDEVINFO_V31
  1233. {
  1234. BYTE byEnable; //该IP设备是否有效
  1235. BYTE byProType; //协议类型,0-海康协议(default),1-松下协议,2-索尼
  1236. BYTE byRes1[2]; //保留字段,置0
  1237. BYTE sUserName[NAME_LEN]; //用户名
  1238. BYTE sPassword[PASSWD_LEN]; //密码
  1239. BYTE byDomain[MAX_DOMAIN_NAME]; //设备域名
  1240. NET_DVR_IPADDR struIP; //IP地址
  1241. WORD wDVRPort; // 端口号
  1242. BYTE byRes2[34]; //保留字段,置0
  1243. }NET_DVR_IPDEVINFO_V31, *LPNET_DVR_IPDEVINFO_V31;
  1244. /* IP通道匹配参数 */
  1245. typedef struct
  1246. {
  1247. BYTE byEnable; /* 该通道是否在线 */
  1248. BYTE byIPID; /* IP设备ID 取值1- MAX_IP_DEVICE */
  1249. BYTE byChannel; /* 通道号 */
  1250. BYTE byres[33]; //保留,置0
  1251. } NET_DVR_IPCHANINFO, *LPNET_DVR_IPCHANINFO;
  1252. /* IP接入配置结构 */
  1253. typedef struct
  1254. {
  1255. DWORD dwSize; /* 结构大小 */
  1256. NET_DVR_IPDEVINFO struIPDevInfo[MAX_IP_DEVICE]; /* IP设备 */
  1257. BYTE byAnalogChanEnable[MAX_ANALOG_CHANNUM]; /* 模拟通道是否启用,从低到高表示1-32通道,0表示无效 1有效 */
  1258. NET_DVR_IPCHANINFO struIPChanInfo[MAX_IP_CHANNEL]; /* IP通道 */
  1259. }NET_DVR_IPPARACFG, *LPNET_DVR_IPPARACFG;
  1260. /* 扩展IP接入配置结构 */
  1261. typedef struct tagNET_DVR_IPPARACFG_V31
  1262. {
  1263. DWORD dwSize; /* 结构大小 */
  1264. NET_DVR_IPDEVINFO_V31 struIPDevInfo[MAX_IP_DEVICE]; /* IP设备 */
  1265. BYTE byAnalogChanEnable[MAX_ANALOG_CHANNUM]; /* 模拟通道是否启用,从低到高表示1-32通道,0表示无效 1有效 */
  1266. NET_DVR_IPCHANINFO struIPChanInfo[MAX_IP_CHANNEL]; /* IP通道 */
  1267. }NET_DVR_IPPARACFG_V31, *LPNET_DVR_IPPARACFG_V31;
  1268. /* 报警输出参数 */
  1269. typedef struct
  1270. {
  1271. BYTE byIPID; /* IP设备ID取值1- MAX_IP_DEVICE */
  1272. BYTE byAlarmOut; /* 报警输出号 */
  1273. BYTE byRes[18]; /* 保留 */
  1274. }NET_DVR_IPALARMOUTINFO, *LPNET_DVR_IPALARMOUTINFO;
  1275. /* IP报警输出配置结构 */
  1276. typedef struct
  1277. {
  1278. DWORD dwSize; /* 结构大小 */
  1279. NET_DVR_IPALARMOUTINFO struIPAlarmOutInfo[MAX_IP_ALARMOUT];/* IP报警输出 */
  1280. }NET_DVR_IPALARMOUTCFG, *LPNET_DVR_IPALARMOUTCFG;
  1281. /* 报警输入参数 */
  1282. typedef struct
  1283. {
  1284. BYTE byIPID; /* IP设备ID取值1- MAX_IP_DEVICE */
  1285. BYTE byAlarmIn; /* 报警输入号 */
  1286. BYTE byRes[18]; /* 保留 */
  1287. }NET_DVR_IPALARMININFO, *LPNET_DVR_IPALARMININFO;
  1288. /* IP报警输入配置结构 */
  1289. typedef struct
  1290. {
  1291. DWORD dwSize; /* 结构大小 */
  1292. NET_DVR_IPALARMININFO struIPAlarmInInfo[MAX_IP_ALARMIN];/* IP报警输入 */
  1293. }NET_DVR_IPALARMINCFG, *LPNET_DVR_IPALARMINCFG;
  1294. //ipc alarm info
  1295. typedef struct tagNET_DVR_IPALARMINFO
  1296. {
  1297. NET_DVR_IPDEVINFO struIPDevInfo[MAX_IP_DEVICE]; /* IP设备 */
  1298. BYTE byAnalogChanEnable[MAX_ANALOG_CHANNUM]; /* 模拟通道是否启用,0-未启用 1-启用 */
  1299. NET_DVR_IPCHANINFO struIPChanInfo[MAX_IP_CHANNEL]; /* IP通道 */
  1300. NET_DVR_IPALARMININFO struIPAlarmInInfo[MAX_IP_ALARMIN]; /* IP报警输入 */
  1301. NET_DVR_IPALARMOUTINFO struIPAlarmOutInfo[MAX_IP_ALARMOUT]; /* IP报警输出 */
  1302. }NET_DVR_IPALARMINFO, *LPNET_DVR_IPALARMINFO;
  1303. //ipc配置改变报警信息扩展 9000_1.1
  1304. typedef struct tagNET_DVR_IPALARMINFO_V31
  1305. {
  1306. NET_DVR_IPDEVINFO_V31 struIPDevInfo[MAX_IP_DEVICE]; /* IP设备 */
  1307. BYTE byAnalogChanEnable[MAX_ANALOG_CHANNUM]; /* 模拟通道是否启用,0-未启用 1-启用 */
  1308. NET_DVR_IPCHANINFO struIPChanInfo[MAX_IP_CHANNEL]; /* IP通道 */
  1309. NET_DVR_IPALARMININFO struIPAlarmInInfo[MAX_IP_ALARMIN]; /* IP报警输入 */
  1310. NET_DVR_IPALARMOUTINFO struIPAlarmOutInfo[MAX_IP_ALARMOUT]; /* IP报警输出 */
  1311. }NET_DVR_IPALARMINFO_V31, *LPNET_DVR_IPALARMINFO_V31;
  1312. typedef enum _HD_STAT_
  1313. {
  1314. HD_STAT_OK = 0, /* 正常 */
  1315. HD_STAT_UNFORMATTED = 1, /* 未格式化 */
  1316. HD_STAT_ERROR = 2, /* 错误 */
  1317. HD_STAT_SMART_FAILED = 3, /* SMART状态 */
  1318. HD_STAT_MISMATCH = 4, /* 不匹配 */
  1319. HD_STAT_IDLE = 5, /* 休眠*/
  1320. NET_HD_STAT_OFFLINE = 6 /*网络盘处于未连接状态 */
  1321. }HD_STAT;
  1322. //本地硬盘信息配置
  1323. typedef struct
  1324. {
  1325. DWORD dwHDNo; /*硬盘号, 取值0~MAX_DISKNUM_V30-1*/
  1326. DWORD dwCapacity; /*硬盘容量(不可设置)*/
  1327. DWORD dwFreeSpace; /*硬盘剩余空间(不可设置)*/
  1328. DWORD dwHdStatus; /*硬盘状态(不可设置) HD_STAT*/
  1329. BYTE byHDAttr; /*0-默认, 1-冗余; 2-只读*/
  1330. BYTE byHDType; /*0-本地硬盘,1-ESATA硬盘,2-NAS硬盘*/
  1331. BYTE byRes1[2];
  1332. DWORD dwHdGroup; /*属于哪个盘组 1-MAX_HD_GROUP*/
  1333. BYTE byRes2[120];
  1334. }NET_DVR_SINGLE_HD, *LPNET_DVR_SINGLE_HD;
  1335. typedef struct
  1336. {
  1337. DWORD dwSize;
  1338. DWORD dwHDCount; /*硬盘数(不可设置)*/
  1339. NET_DVR_SINGLE_HD struHDInfo[MAX_DISKNUM_V30];//硬盘相关操作都需要重启才能生效;
  1340. }NET_DVR_HDCFG, *LPNET_DVR_HDCFG;
  1341. //本地盘组信息配置
  1342. typedef struct
  1343. {
  1344. DWORD dwHDGroupNo; /*盘组号(不可设置) 1-MAX_HD_GROUP*/
  1345. BYTE byHDGroupChans[64]; /*盘组对应的录像通道, 0-表示该通道不录象到该盘组,1-表示录象到该盘组*/
  1346. BYTE byRes[8];
  1347. }NET_DVR_SINGLE_HDGROUP, *LPNET_DVR_SINGLE_HDGROUP;
  1348. typedef struct
  1349. {
  1350. DWORD dwSize;
  1351. DWORD dwHDGroupCount; /*盘组总数(不可设置)*/
  1352. NET_DVR_SINGLE_HDGROUP struHDGroupAttr[MAX_HD_GROUP];//硬盘相关操作都需要重启才能生效;
  1353. }NET_DVR_HDGROUP_CFG, *LPNET_DVR_HDGROUP_CFG;
  1354. //配置缩放参数的结构
  1355. typedef struct
  1356. {
  1357. DWORD dwSize;
  1358. DWORD dwMajorScale; /* 主显示 0-不缩放,1-缩放*/
  1359. DWORD dwMinorScale; /* 辅显示 0-不缩放,1-缩放*/
  1360. DWORD dwRes[2];
  1361. }NET_DVR_SCALECFG, *LPNET_DVR_SCALECFG;
  1362. //DVR报警输出(9000扩展)
  1363. typedef struct
  1364. {
  1365. DWORD dwSize;
  1366. BYTE sAlarmOutName[NAME_LEN]; /* 名称 */
  1367. DWORD dwAlarmOutDelay; /* 输出保持时间(-1为无限,手动关闭) */
  1368. //0-5秒,1-10秒,2-30秒,3-1分钟,4-2分钟,5-5分钟,6-10分钟,7-手动
  1369. NET_DVR_SCHEDTIME struAlarmOutTime[MAX_DAYS][MAX_TIMESEGMENT_V30];/* 报警输出激活时间段 */
  1370. BYTE byRes[16];
  1371. }NET_DVR_ALARMOUTCFG_V30, *LPNET_DVR_ALARMOUTCFG_V30;
  1372. //DVR报警输出
  1373. typedef struct
  1374. {
  1375. DWORD dwSize;
  1376. BYTE sAlarmOutName[NAME_LEN]; /* 名称 */
  1377. DWORD dwAlarmOutDelay; /* 输出保持时间(-1为无限,手动关闭) */
  1378. //0-5秒,1-10秒,2-30秒,3-1分钟,4-2分钟,5-5分钟,6-10分钟,7-手动
  1379. NET_DVR_SCHEDTIME struAlarmOutTime[MAX_DAYS][MAX_TIMESEGMENT];/* 报警输出激活时间段 */
  1380. }NET_DVR_ALARMOUTCFG, *LPNET_DVR_ALARMOUTCFG;
  1381. //DVR本地预览参数(9000扩展)
  1382. typedef struct
  1383. {
  1384. DWORD dwSize;
  1385. BYTE byPreviewNumber;//预览数目,0-1画面,1-4画面,2-9画面,3-16画面,0xff:最大画面
  1386. BYTE byEnableAudio;//是否声音预览,0-不预览,1-预览
  1387. WORD wSwitchTime;//切换时间,0-不切换,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s
  1388. BYTE bySwitchSeq[MAX_PREVIEW_MODE][MAX_WINDOW_V30];//切换顺序,如果lSwitchSeq[i]为 0xff表示不用
  1389. BYTE byRes[24];
  1390. }NET_DVR_PREVIEWCFG_V30, *LPNET_DVR_PREVIEWCFG_V30;
  1391. //DVR本地预览参数
  1392. typedef struct
  1393. {
  1394. DWORD dwSize;
  1395. BYTE byPreviewNumber;//预览数目,0-1画面,1-4画面,2-9画面,3-16画面,0xff:最大画面
  1396. BYTE byEnableAudio;//是否声音预览,0-不预览,1-预览
  1397. WORD wSwitchTime;//切换时间,0-不切换,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s
  1398. BYTE bySwitchSeq[MAX_WINDOW];//切换顺序,如果lSwitchSeq[i]为 0xff表示不用
  1399. }NET_DVR_PREVIEWCFG, *LPNET_DVR_PREVIEWCFG;
  1400. //DVR视频输出
  1401. typedef struct
  1402. {
  1403. WORD wResolution; /* 分辨率 */
  1404. WORD wFreq; /* 刷新频率 */
  1405. DWORD dwBrightness; /* 亮度 */
  1406. }NET_DVR_VGAPARA;
  1407. /*
  1408. * MATRIX输出参数结构
  1409. */
  1410. typedef struct
  1411. {
  1412. WORD wOrder[MAX_ANALOG_CHANNUM]; /* 预览顺序, 0xff表示相应的窗口不预览 */
  1413. WORD wSwitchTime; /* 预览切换时间 */
  1414. BYTE res[14];
  1415. }NET_DVR_MATRIXPARA_V30, *LPNET_DVR_MATRIXPARA_V30;
  1416. typedef struct
  1417. {
  1418. WORD wDisplayLogo; /* 显示视频通道号 */
  1419. WORD wDisplayOsd; /* 显示时间 */
  1420. }NET_DVR_MATRIXPARA;
  1421. typedef struct
  1422. {
  1423. BYTE byVideoFormat; /* 输出制式,0-PAL,1-NTSC */
  1424. BYTE byMenuAlphaValue; /* 菜单与背景图象对比度 */
  1425. WORD wScreenSaveTime; /* 屏幕保护时间 0-从不,1-1分钟,2-2分钟,3-5分钟,4-10分钟,5-20分钟,6-30分钟 */
  1426. WORD wVOffset; /* 视频输出偏移 */
  1427. WORD wBrightness; /* 视频输出亮度 */
  1428. BYTE byStartMode; /* 启动后视频输出模式(0:菜单,1:预览)*/
  1429. BYTE byEnableScaler; /* 是否启动缩放 (0-不启动, 1-启动)*/
  1430. }NET_DVR_VOOUT;
  1431. //DVR视频输出(9000扩展)
  1432. typedef struct
  1433. {
  1434. DWORD dwSize;
  1435. NET_DVR_VOOUT struVOOut[MAX_VIDEOOUT_V30];
  1436. NET_DVR_VGAPARA struVGAPara[MAX_VGA_V30]; /* VGA参数 */
  1437. NET_DVR_MATRIXPARA_V30 struMatrixPara[MAX_MATRIXOUT]; /* MATRIX参数 */
  1438. BYTE byRes[16];
  1439. }NET_DVR_VIDEOOUT_V30, *LPNET_DVR_VIDEOOUT_V30;
  1440. //DVR视频输出
  1441. typedef struct
  1442. {
  1443. DWORD dwSize;
  1444. NET_DVR_VOOUT struVOOut[MAX_VIDEOOUT];
  1445. NET_DVR_VGAPARA struVGAPara[MAX_VGA]; /* VGA参数 */
  1446. NET_DVR_MATRIXPARA struMatrixPara; /* MATRIX参数 */
  1447. }NET_DVR_VIDEOOUT, *LPNET_DVR_VIDEOOUT;
  1448. //单用户参数(子结构)(9000扩展)
  1449. typedef struct
  1450. {
  1451. BYTE sUserName[NAME_LEN]; /* 用户名 */
  1452. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1453. BYTE byLocalRight[MAX_RIGHT]; /* 本地权限 */
  1454. /*数组0: 本地控制云台*/
  1455. /*数组1: 本地手动录象*/
  1456. /*数组2: 本地回放*/
  1457. /*数组3: 本地设置参数*/
  1458. /*数组4: 本地查看状态、日志*/
  1459. /*数组5: 本地高级操作(升级,格式化,重启,关机)*/
  1460. /*数组6: 本地查看参数 */
  1461. /*数组7: 本地管理模拟和IP camera */
  1462. /*数组8: 本地备份 */
  1463. /*数组9: 本地关机/重启 */
  1464. BYTE byRemoteRight[MAX_RIGHT];/* 远程权限 */
  1465. /*数组0: 远程控制云台*/
  1466. /*数组1: 远程手动录象*/
  1467. /*数组2: 远程回放 */
  1468. /*数组3: 远程设置参数*/
  1469. /*数组4: 远程查看状态、日志*/
  1470. /*数组5: 远程高级操作(升级,格式化,重启,关机)*/
  1471. /*数组6: 远程发起语音对讲*/
  1472. /*数组7: 远程预览*/
  1473. /*数组8: 远程请求报警上传、报警输出*/
  1474. /*数组9: 远程控制,本地输出*/
  1475. /*数组10: 远程控制串口*/
  1476. /*数组11: 远程查看参数 */
  1477. /*数组12: 远程管理模拟和IP camera */
  1478. /*数组13: 远程关机/重启 */
  1479. BYTE byNetPreviewRight[MAX_CHANNUM_V30]; /* 远程可以预览的通道 0-有权限,1-无权限*/
  1480. BYTE byLocalPlaybackRight[MAX_CHANNUM_V30]; /* 本地可以回放的通道 0-有权限,1-无权限*/
  1481. BYTE byNetPlaybackRight[MAX_CHANNUM_V30]; /* 远程可以回放的通道 0-有权限,1-无权限*/
  1482. BYTE byLocalRecordRight[MAX_CHANNUM_V30]; /* 本地可以录像的通道 0-有权限,1-无权限*/
  1483. BYTE byNetRecordRight[MAX_CHANNUM_V30]; /* 远程可以录像的通道 0-有权限,1-无权限*/
  1484. BYTE byLocalPTZRight[MAX_CHANNUM_V30]; /* 本地可以PTZ的通道 0-有权限,1-无权限*/
  1485. BYTE byNetPTZRight[MAX_CHANNUM_V30]; /* 远程可以PTZ的通道 0-有权限,1-无权限*/
  1486. BYTE byLocalBackupRight[MAX_CHANNUM_V30]; /* 本地备份权限通道 0-有权限,1-无权限*/
  1487. NET_DVR_IPADDR struUserIP; /* 用户IP地址(为0时表示允许任何地址) */
  1488. BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
  1489. BYTE byPriority; /* 优先级,0xff-无,0--低,1--中,2--高 */
  1490. /*
  1491. 无……表示不支持优先级的设置
  1492. 低……默认权限:包括本地和远程回放,本地和远程查看日志和状态,本地和远程关机/重启
  1493. 中……包括本地和远程控制云台,本地和远程手动录像,本地和远程回放,语音对讲和远程预览
  1494. 本地备份,本地/远程关机/重启
  1495. 高……管理员
  1496. */
  1497. BYTE byRes[17];
  1498. }NET_DVR_USER_INFO_V30, *LPNET_DVR_USER_INFO_V30;
  1499. //单用户参数(SDK_V15扩展)(子结构)
  1500. typedef struct
  1501. {
  1502. BYTE sUserName[NAME_LEN]; /* 用户名 */
  1503. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1504. DWORD dwLocalRight[MAX_RIGHT]; /* 权限 */
  1505. /*数组0: 本地控制云台*/
  1506. /*数组1: 本地手动录象*/
  1507. /*数组2: 本地回放*/
  1508. /*数组3: 本地设置参数*/
  1509. /*数组4: 本地查看状态、日志*/
  1510. /*数组5: 本地高级操作(升级,格式化,重启,关机)*/
  1511. DWORD dwLocalPlaybackRight; /* 本地可以回放的通道 bit0 -- channel 1*/
  1512. DWORD dwRemoteRight[MAX_RIGHT]; /* 权限 */
  1513. /*数组0: 远程控制云台*/
  1514. /*数组1: 远程手动录象*/
  1515. /*数组2: 远程回放 */
  1516. /*数组3: 远程设置参数*/
  1517. /*数组4: 远程查看状态、日志*/
  1518. /*数组5: 远程高级操作(升级,格式化,重启,关机)*/
  1519. /*数组6: 远程发起语音对讲*/
  1520. /*数组7: 远程预览*/
  1521. /*数组8: 远程请求报警上传、报警输出*/
  1522. /*数组9: 远程控制,本地输出*/
  1523. /*数组10: 远程控制串口*/
  1524. DWORD dwNetPreviewRight; /* 远程可以预览的通道 bit0 -- channel 1*/
  1525. DWORD dwNetPlaybackRight; /* 远程可以回放的通道 bit0 -- channel 1*/
  1526. char sUserIP[16]; /* 用户IP地址(为0时表示允许任何地址) */
  1527. BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
  1528. }NET_DVR_USER_INFO_EX, *LPNET_DVR_USER_INFO_EX;
  1529. //单用户参数(子结构)
  1530. typedef struct
  1531. {
  1532. BYTE sUserName[NAME_LEN]; /* 用户名 */
  1533. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1534. DWORD dwLocalRight[MAX_RIGHT]; /* 权限 */
  1535. /*数组0: 本地控制云台*/
  1536. /*数组1: 本地手动录象*/
  1537. /*数组2: 本地回放*/
  1538. /*数组3: 本地设置参数*/
  1539. /*数组4: 本地查看状态、日志*/
  1540. /*数组5: 本地高级操作(升级,格式化,重启,关机)*/
  1541. DWORD dwRemoteRight[MAX_RIGHT]; /* 权限 */
  1542. /*数组0: 远程控制云台*/
  1543. /*数组1: 远程手动录象*/
  1544. /*数组2: 远程回放 */
  1545. /*数组3: 远程设置参数*/
  1546. /*数组4: 远程查看状态、日志*/
  1547. /*数组5: 远程高级操作(升级,格式化,重启,关机)*/
  1548. /*数组6: 远程发起语音对讲*/
  1549. /*数组7: 远程预览*/
  1550. /*数组8: 远程请求报警上传、报警输出*/
  1551. /*数组9: 远程控制,本地输出*/
  1552. /*数组10: 远程控制串口*/
  1553. char sUserIP[16]; /* 用户IP地址(为0时表示允许任何地址) */
  1554. BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
  1555. }NET_DVR_USER_INFO, *LPNET_DVR_USER_INFO;
  1556. //DVR用户参数(9000扩展)
  1557. typedef struct
  1558. {
  1559. DWORD dwSize;
  1560. NET_DVR_USER_INFO_V30 struUser[MAX_USERNUM_V30];
  1561. }NET_DVR_USER_V30, *LPNET_DVR_USER_V30;
  1562. //DVR用户参数(SDK_V15扩展)
  1563. typedef struct
  1564. {
  1565. DWORD dwSize;
  1566. NET_DVR_USER_INFO_EX struUser[MAX_USERNUM];
  1567. }NET_DVR_USER_EX, *LPNET_DVR_USER_EX;
  1568. //DVR用户参数
  1569. typedef struct
  1570. {
  1571. DWORD dwSize;
  1572. NET_DVR_USER_INFO struUser[MAX_USERNUM];
  1573. }NET_DVR_USER, *LPNET_DVR_USER;
  1574. //DVR异常参数(9000扩展)
  1575. typedef struct
  1576. {
  1577. DWORD dwSize;
  1578. NET_DVR_HANDLEEXCEPTION_V30 struExceptionHandleType[MAX_EXCEPTIONNUM_V30];
  1579. /*数组0-盘满,1- 硬盘出错,2-网线断,3-局域网内IP 地址冲突, 4-非法访问, 5-输入/输出视频制式不匹配, 6-视频信号异常, 7-录像异常*/
  1580. }NET_DVR_EXCEPTION_V30, *LPNET_DVR_EXCEPTION_V30;
  1581. //DVR异常参数
  1582. typedef struct
  1583. {
  1584. DWORD dwSize;
  1585. NET_DVR_HANDLEEXCEPTION struExceptionHandleType[MAX_EXCEPTIONNUM];
  1586. /*数组0-盘满,1- 硬盘出错,2-网线断,3-局域网内IP 地址冲突,4-非法访问, 5-输入/输出视频制式不匹配, 6-视频信号异常*/
  1587. }NET_DVR_EXCEPTION, *LPNET_DVR_EXCEPTION;
  1588. //通道状态(9000扩展)
  1589. typedef struct
  1590. {
  1591. BYTE byRecordStatic; //通道是否在录像,0-不录像,1-录像
  1592. BYTE bySignalStatic; //连接的信号状态,0-正常,1-信号丢失
  1593. BYTE byHardwareStatic;//通道硬件状态,0-正常,1-异常,例如DSP死掉
  1594. BYTE byRes1; //保留
  1595. DWORD dwBitRate;//实际码率
  1596. DWORD dwLinkNum;//客户端连接的个数
  1597. NET_DVR_IPADDR struClientIP[MAX_LINK];//客户端的IP地址
  1598. DWORD dwIPLinkNum;//如果该通道为IP接入,那么表示IP接入当前的连接数
  1599. BYTE byRes[12];
  1600. }NET_DVR_CHANNELSTATE_V30, *LPNET_DVR_CHANNELSTATE_V30;
  1601. //通道状态
  1602. typedef struct
  1603. {
  1604. BYTE byRecordStatic; //通道是否在录像,0-不录像,1-录像
  1605. BYTE bySignalStatic; //连接的信号状态,0-正常,1-信号丢失
  1606. BYTE byHardwareStatic;//通道硬件状态,0-正常,1-异常,例如DSP死掉
  1607. char reservedData; //保留
  1608. DWORD dwBitRate;//实际码率
  1609. DWORD dwLinkNum;//客户端连接的个数
  1610. DWORD dwClientIP[MAX_LINK];//客户端的IP地址
  1611. }NET_DVR_CHANNELSTATE, *LPNET_DVR_CHANNELSTATE;
  1612. //硬盘状态
  1613. typedef struct
  1614. {
  1615. DWORD dwVolume;//硬盘的容量
  1616. DWORD dwFreeSpace;//硬盘的剩余空间
  1617. DWORD dwHardDiskStatic; //硬盘的状态,0-活动,1-休眠,2-不正常
  1618. }NET_DVR_DISKSTATE, *LPNET_DVR_DISKSTATE;
  1619. //DVR工作状态(9000扩展)
  1620. typedef struct
  1621. {
  1622. DWORD dwDeviceStatic; //设备的状态,0-正常,1-CPU占用率太高,超过85%,2-硬件错误,例如串口死掉
  1623. NET_DVR_DISKSTATE struHardDiskStatic[MAX_DISKNUM_V30];
  1624. NET_DVR_CHANNELSTATE_V30 struChanStatic[MAX_CHANNUM_V30];//通道的状态
  1625. BYTE byAlarmInStatic[MAX_ALARMIN_V30]; //报警端口的状态,0-没有报警,1-有报警
  1626. BYTE byAlarmOutStatic[MAX_ALARMOUT_V30]; //报警输出端口的状态,0-没有输出,1-有报警输出
  1627. DWORD dwLocalDisplay;//本地显示状态,0-正常,1-不正常
  1628. BYTE byAudioChanStatus[MAX_AUDIO_V30];//表示语音通道的状态 0-未使用,1-使用中, 0xff无效
  1629. BYTE byRes[10];
  1630. }NET_DVR_WORKSTATE_V30, *LPNET_DVR_WORKSTATE_V30;
  1631. //DVR工作状态
  1632. typedef struct
  1633. {
  1634. DWORD dwDeviceStatic; //设备的状态,0-正常,1-CPU占用率太高,超过85%,2-硬件错误,例如串口死掉
  1635. NET_DVR_DISKSTATE struHardDiskStatic[MAX_DISKNUM];
  1636. NET_DVR_CHANNELSTATE struChanStatic[MAX_CHANNUM];//通道的状态
  1637. BYTE byAlarmInStatic[MAX_ALARMIN]; //报警端口的状态,0-没有报警,1-有报警
  1638. BYTE byAlarmOutStatic[MAX_ALARMOUT]; //报警输出端口的状态,0-没有输出,1-有报警输出
  1639. DWORD dwLocalDisplay;//本地显示状态,0-正常,1-不正常
  1640. }NET_DVR_WORKSTATE, *LPNET_DVR_WORKSTATE;
  1641. /************************DVR日志 begin***************************/
  1642. /* 报警 */
  1643. //主类型
  1644. #define MAJOR_ALARM 0x1
  1645. //次类型
  1646. #define MINOR_ALARM_IN 0x1 /* 报警输入 */
  1647. #define MINOR_ALARM_OUT 0x2 /* 报警输出 */
  1648. #define MINOR_MOTDET_START 0x3 /* 移动侦测报警开始 */
  1649. #define MINOR_MOTDET_STOP 0x4 /* 移动侦测报警结束 */
  1650. #define MINOR_HIDE_ALARM_START 0x5 /* 遮挡报警开始 */
  1651. #define MINOR_HIDE_ALARM_STOP 0x6 /* 遮挡报警结束 */
  1652. #define MINOR_VCA_ALARM_START 0x7 /*智能报警开始*/
  1653. #define MINOR_VCA_ALARM_STOP 0x8 /*智能报警停止*/
  1654. /* 异常 */
  1655. //主类型
  1656. #define MAJOR_EXCEPTION 0x2
  1657. //次类型
  1658. #define MINOR_VI_LOST 0x21 /* 视频信号丢失 */
  1659. #define MINOR_ILLEGAL_ACCESS 0x22 /* 非法访问 */
  1660. #define MINOR_HD_FULL 0x23 /* 硬盘满 */
  1661. #define MINOR_HD_ERROR 0x24 /* 硬盘错误 */
  1662. #define MINOR_DCD_LOST 0x25 /* MODEM 掉线(保留不使用) */
  1663. #define MINOR_IP_CONFLICT 0x26 /* IP地址冲突 */
  1664. #define MINOR_NET_BROKEN 0x27 /* 网络断开*/
  1665. #define MINOR_REC_ERROR 0x28 /* 录像出错 */
  1666. #define MINOR_IPC_NO_LINK 0x29 /* IPC连接异常 */
  1667. #define MINOR_VI_EXCEPTION 0x2a /* 视频输入异常(只针对模拟通道) */
  1668. #define MINOR_IPC_IP_CONFLICT 0x2b /*ipc ip 地址 冲突*/
  1669. /* 操作 */
  1670. //主类型
  1671. #define MAJOR_OPERATION 0x3
  1672. //次类型
  1673. #define MINOR_START_DVR 0x41 /* 开机 */
  1674. #define MINOR_STOP_DVR 0x42 /* 关机 */
  1675. #define MINOR_STOP_ABNORMAL 0x43 /* 异常关机 */
  1676. #define MINOR_REBOOT_DVR 0x44 /*本地重启设备*/
  1677. #define MINOR_LOCAL_LOGIN 0x50 /* 本地登陆 */
  1678. #define MINOR_LOCAL_LOGOUT 0x51 /* 本地注销登陆 */
  1679. #define MINOR_LOCAL_CFG_PARM 0x52 /* 本地配置参数 */
  1680. #define MINOR_LOCAL_PLAYBYFILE 0x53 /* 本地按文件回放或下载 */
  1681. #define MINOR_LOCAL_PLAYBYTIME 0x54 /* 本地按时间回放或下载*/
  1682. #define MINOR_LOCAL_START_REC 0x55 /* 本地开始录像 */
  1683. #define MINOR_LOCAL_STOP_REC 0x56 /* 本地停止录像 */
  1684. #define MINOR_LOCAL_PTZCTRL 0x57 /* 本地云台控制 */
  1685. #define MINOR_LOCAL_PREVIEW 0x58 /* 本地预览 (保留不使用)*/
  1686. #define MINOR_LOCAL_MODIFY_TIME 0x59 /* 本地修改时间(保留不使用) */
  1687. #define MINOR_LOCAL_UPGRADE 0x5a /* 本地升级 */
  1688. #define MINOR_LOCAL_RECFILE_OUTPUT 0x5b /* 本地备份录象文件 */
  1689. #define MINOR_LOCAL_FORMAT_HDD 0x5c /* 本地初始化硬盘 */
  1690. #define MINOR_LOCAL_CFGFILE_OUTPUT 0x5d /* 导出本地配置文件 */
  1691. #define MINOR_LOCAL_CFGFILE_INPUT 0x5e /* 导入本地配置文件 */
  1692. #define MINOR_LOCAL_COPYFILE 0x5f /* 本地备份文件 */
  1693. #define MINOR_LOCAL_LOCKFILE 0x60 /* 本地锁定录像文件 */
  1694. #define MINOR_LOCAL_UNLOCKFILE 0x61 /* 本地解锁录像文件 */
  1695. #define MINOR_LOCAL_DVR_ALARM 0x62 /* 本地手动清除和触发报警*/
  1696. #define MINOR_IPC_ADD 0x63 /* 本地添加IPC */
  1697. #define MINOR_IPC_DEL 0x64 /* 本地删除IPC */
  1698. #define MINOR_IPC_SET 0x65 /* 本地设置IPC */
  1699. #define MINOR_LOCAL_START_BACKUP 0x66 /* 本地开始备份 */
  1700. #define MINOR_LOCAL_STOP_BACKUP 0x67 /* 本地停止备份*/
  1701. #define MINOR_LOCAL_COPYFILE_START_TIME 0x68 /* 本地备份开始时间*/
  1702. #define MINOR_LOCAL_COPYFILE_END_TIME 0x69 /* 本地备份结束时间*/
  1703. #define MINOR_LOCAL_ADD_NAS 0x6a /*本地添加网络硬盘*/
  1704. #define MINOR_LOCAL_DEL_NAS 0x6b /* 本地删除nas盘*/
  1705. #define MINOR_LOCAL_SET_NAS 0x6c /* 本地设置nas盘*/
  1706. #define MINOR_REMOTE_LOGIN 0x70 /* 远程登录 */
  1707. #define MINOR_REMOTE_LOGOUT 0x71 /* 远程注销登陆 */
  1708. #define MINOR_REMOTE_START_REC 0x72 /* 远程开始录像 */
  1709. #define MINOR_REMOTE_STOP_REC 0x73 /* 远程停止录像 */
  1710. #define MINOR_START_TRANS_CHAN 0x74 /* 开始透明传输 */
  1711. #define MINOR_STOP_TRANS_CHAN 0x75 /* 停止透明传输 */
  1712. #define MINOR_REMOTE_GET_PARM 0x76 /* 远程获取参数 */
  1713. #define MINOR_REMOTE_CFG_PARM 0x77 /* 远程配置参数 */
  1714. #define MINOR_REMOTE_GET_STATUS 0x78 /* 远程获取状态 */
  1715. #define MINOR_REMOTE_ARM 0x79 /* 远程布防 */
  1716. #define MINOR_REMOTE_DISARM 0x7a /* 远程撤防 */
  1717. #define MINOR_REMOTE_REBOOT 0x7b /* 远程重启 */
  1718. #define MINOR_START_VT 0x7c /* 开始语音对讲 */
  1719. #define MINOR_STOP_VT 0x7d /* 停止语音对讲 */
  1720. #define MINOR_REMOTE_UPGRADE 0x7e /* 远程升级 */
  1721. #define MINOR_REMOTE_PLAYBYFILE 0x7f /* 远程按文件回放 */
  1722. #define MINOR_REMOTE_PLAYBYTIME 0x80 /* 远程按时间回放 */
  1723. #define MINOR_REMOTE_PTZCTRL 0x81 /* 远程云台控制 */
  1724. #define MINOR_REMOTE_FORMAT_HDD 0x82 /* 远程格式化硬盘 */
  1725. #define MINOR_REMOTE_STOP 0x83 /* 远程关机 */
  1726. #define MINOR_REMOTE_LOCKFILE 0x84 /* 远程锁定文件 */
  1727. #define MINOR_REMOTE_UNLOCKFILE 0x85 /* 远程解锁文件 */
  1728. #define MINOR_REMOTE_CFGFILE_OUTPUT 0x86 /* 远程导出配置文件 */
  1729. #define MINOR_REMOTE_CFGFILE_INTPUT 0x87 /* 远程导入配置文件 */
  1730. #define MINOR_REMOTE_RECFILE_OUTPUT 0x88 /* 远程导出录象文件 */
  1731. #define MINOR_REMOTE_DVR_ALARM 0x89 /* 远程手动清除和触发报警*/
  1732. #define MINOR_REMOTE_IPC_ADD 0x8a /* 远程添加IPC */
  1733. #define MINOR_REMOTE_IPC_DEL 0x8b /* 远程删除IPC */
  1734. #define MINOR_REMOTE_IPC_SET 0x8c /* 远程设置IPC */
  1735. #define MINOR_REBOOT_VCA_LIB 0x8d /*重启智能库*/
  1736. #define MINOR_REMOTE_ADD_NAS 0x8e /* 远程添加nas盘*/
  1737. #define MINOR_REMOTE_DEL_NAS 0x8f /* 远程删除nas盘*/
  1738. #define MINOR_REMOTE_SET_NAS 0x90 /* 远程设置nas盘*/
  1739. /*日志附加信息*/
  1740. //主类型
  1741. #define MAJOR_INFORMATION 0x4 /*附加信息*/
  1742. //次类型
  1743. #define MINOR_HDD_INFO 0xa1 /*硬盘信息*/
  1744. #define MINOR_SMART_INFO 0xa2 /*SMART信息*/
  1745. #define MINOR_REC_START 0xa3 /*开始录像*/
  1746. #define MINOR_REC_STOP 0xa4 /*停止录像*/
  1747. #define MINOR_REC_OVERDUE 0xa5 /*过期录像删除*/
  1748. #define MINOR_LINK_START 0xa6 //连接前端设备
  1749. #define MINOR_LINK_STOP 0xa7 //断开前端设备 
  1750. #define MINOR_NET_DISK_INFO 0xa8 //网络硬盘信息
  1751. //当日志的主类型为MAJOR_OPERATION=03,次类型为MINOR_LOCAL_CFG_PARM=0x52或者MINOR_REMOTE_GET_PARM=0x76或者MINOR_REMOTE_CFG_PARM=0x77时,dwParaType:参数类型有效,其含义如下:
  1752. #define PARA_VIDEOOUT 0x1
  1753. #define PARA_IMAGE 0x2
  1754. #define PARA_ENCODE 0x4
  1755. #define PARA_NETWORK 0x8
  1756. #define PARA_ALARM 0x10
  1757. #define PARA_EXCEPTION 0x20
  1758. #define PARA_DECODER 0x40 /*解码器*/
  1759. #define PARA_RS232 0x80
  1760. #define PARA_PREVIEW 0x100
  1761. #define PARA_SECURITY 0x200
  1762. #define PARA_DATETIME 0x400
  1763. #define PARA_FRAMETYPE 0x800 /*帧格式*/
  1764. //日志信息(9000扩展)
  1765. typedef struct
  1766. {
  1767. NET_DVR_TIME strLogTime;
  1768. DWORD dwMajorType; //主类型 1-报警; 2-异常; 3-操作; 0xff-全部
  1769. DWORD dwMinorType;//次类型 0-全部;
  1770. BYTE sPanelUser[MAX_NAMELEN]; //操作面板的用户名
  1771. BYTE sNetUser[MAX_NAMELEN];//网络操作的用户名
  1772. NET_DVR_IPADDR struRemoteHostAddr;//远程主机地址
  1773. DWORD dwParaType;//参数类型
  1774. DWORD dwChannel;//通道号
  1775. DWORD dwDiskNumber;//硬盘号
  1776. DWORD dwAlarmInPort;//报警输入端口
  1777. DWORD dwAlarmOutPort;//报警输出端口
  1778. DWORD dwInfoLen;
  1779. char sInfo[LOG_INFO_LEN];
  1780. }NET_DVR_LOG_V30, *LPNET_DVR_LOG_V30;
  1781. //日志信息
  1782. typedef struct
  1783. {
  1784. NET_DVR_TIME strLogTime;
  1785. DWORD dwMajorType; //主类型 1-报警; 2-异常; 3-操作; 0xff-全部
  1786. DWORD dwMinorType;//次类型 0-全部;
  1787. BYTE sPanelUser[MAX_NAMELEN]; //操作面板的用户名
  1788. BYTE sNetUser[MAX_NAMELEN];//网络操作的用户名
  1789. char sRemoteHostAddr[16];//远程主机地址
  1790. DWORD dwParaType;//参数类型
  1791. DWORD dwChannel;//通道号
  1792. DWORD dwDiskNumber;//硬盘号
  1793. DWORD dwAlarmInPort;//报警输入端口
  1794. DWORD dwAlarmOutPort;//报警输出端口
  1795. }NET_DVR_LOG, *LPNET_DVR_LOG;
  1796. /************************DVR日志 end***************************/
  1797. //报警输出状态(9000扩展)
  1798. typedef struct
  1799. {
  1800. BYTE Output[MAX_ALARMOUT_V30];
  1801. }NET_DVR_ALARMOUTSTATUS_V30, *LPNET_DVR_ALARMOUTSTATUS_V30;
  1802. //报警输出状态
  1803. typedef struct
  1804. {
  1805. BYTE Output[MAX_ALARMOUT];
  1806. }NET_DVR_ALARMOUTSTATUS, *LPNET_DVR_ALARMOUTSTATUS;
  1807. //交易信息
  1808. typedef struct
  1809. {
  1810. USHORT m_Year;
  1811. USHORT m_Month;
  1812. USHORT m_Day;
  1813. USHORT m_Hour;
  1814. USHORT m_Minute;
  1815. USHORT m_Second;
  1816. BYTE DeviceName[24]; //设备名称
  1817. DWORD dwChannelNumer; //通道号
  1818. BYTE CardNumber[32]; //卡号
  1819. char cTradeType[12]; //交易类型
  1820. DWORD dwCash; //交易金额
  1821. }NET_DVR_TRADEINFO, *LPNET_DVR_TRADEINFO;
  1822. //ATM专用
  1823. /****************************ATM(begin)***************************/
  1824. #define NCR 0
  1825. #define DIEBOLD 1
  1826. #define WINCOR_NIXDORF 2
  1827. #define SIEMENS 3
  1828. #define OLIVETTI 4
  1829. #define FUJITSU 5
  1830. #define HITACHI 6
  1831. #define SMI 7
  1832. #define IBM 8
  1833. #define BULL 9
  1834. #define YiHua 10
  1835. #define LiDe 11
  1836. #define GDYT 12
  1837. #define Mini_Banl 13
  1838. #define GuangLi 14
  1839. #define DongXin 15
  1840. #define ChenTong 16
  1841. #define NanTian 17
  1842. #define XiaoXing 18
  1843. #define GZYY 19
  1844. #define QHTLT 20
  1845. #define DRS918 21
  1846. #define KALATEL 22
  1847. #define NCR_2 23
  1848. #define NXS 24
  1849. /*帧格式*/
  1850. typedef struct
  1851. {
  1852. BYTE code[12]; /* 代码 */
  1853. }NET_DVR_FRAMETYPECODE;
  1854. //ATM参数
  1855. typedef struct
  1856. {
  1857. DWORD dwSize;
  1858. char sATMIP[16]; /* ATM IP地址 */
  1859. DWORD dwATMType; /* ATM类型 */
  1860. DWORD dwInputMode; /* 输入方式 0-网络侦听 1-网络接收 2-串口直接输入 3-串口ATM命令输入*/
  1861. DWORD dwFrameSignBeginPos; /* 报文标志位的起始位置*/
  1862. DWORD dwFrameSignLength; /* 报文标志位的长度 */
  1863. BYTE byFrameSignContent[12]; /* 报文标志位的内容 */
  1864. DWORD dwCardLengthInfoBeginPos; /* 卡号长度信息的起始位置 */
  1865. DWORD dwCardLengthInfoLength; /* 卡号长度信息的长度 */
  1866. DWORD dwCardNumberInfoBeginPos; /* 卡号信息的起始位置 */
  1867. DWORD dwCardNumberInfoLength; /* 卡号信息的长度 */
  1868. DWORD dwBusinessTypeBeginPos; /* 交易类型的起始位置 */
  1869. DWORD dwBusinessTypeLength; /* 交易类型的长度 */
  1870. NET_DVR_FRAMETYPECODE frameTypeCode[10];/* 类型 */
  1871. }NET_DVR_FRAMEFORMAT, *LPNET_DVR_FRAMEFORMAT;
  1872. //SDK_V31 ATM
  1873. /*过滤设置*/
  1874. typedef struct tagNET_DVR_FILTER
  1875. {
  1876. BYTE byEnable; //0,不启用;1,启用
  1877. BYTE byMode; //0,ASCII;1,HEX
  1878. BYTE byFrameBeginPos; // 需要过滤目标字符串起始位置
  1879. BYTE byRes[1]; // 保留字节
  1880. BYTE byFilterText[16]; //过滤字符串
  1881. BYTE byRes2[12]; // 保留字节
  1882. }NET_DVR_FILTER, *LPNET_DVR_FILTER;
  1883. //数据包分析 数据包标识
  1884. typedef struct tagNET_DVR_IDENTIFICAT
  1885. {
  1886. BYTE byStartMode; //起始字符模式:0,ASCII;1,HEX
  1887. BYTE byEndMode; //结束字符模式:0,ASCII;1,HEX
  1888. BYTE byRes[2]; //保留字节
  1889. NET_DVR_FRAMETYPECODE struStartCode; //数据包起始标识字符
  1890. NET_DVR_FRAMETYPECODE struEndCode; //数据包结束标识字符
  1891. BYTE byRes1[12]; //保留字节
  1892. }NET_DVR_IDENTIFICAT, *LPNET_DVR_IDENTIFICAT;
  1893. typedef struct tagNET_DVR_PACKAGE_LOCATION/*报文信息位置*/
  1894. {
  1895. BYTE byOffsetMode; /*报文位置信息模式 0,token(字符标志模式);1,fix(固定模式)*/
  1896. BYTE byRes1[3]; // 保留字节
  1897. DWORD dwOffsetPos; /*mode为1的时候使用,固定偏移大小*/
  1898. NET_DVR_FRAMETYPECODE struTokenCode; /*标志位*/
  1899. BYTE byMultiplierValue; /*标志位多少次出现*/
  1900. BYTE byEternOffset; /*附加字符偏移量*/
  1901. BYTE byCodeMode; /*0,ASCII;1,HEX*/
  1902. BYTE byRes2[9]; //保留字节
  1903. }NET_DVR_PACKAGE_LOCATION, *LPNET_DVR_PACKAGE_LOCATION;
  1904. typedef struct tagNET_DVR_PACKAGE_LENGTH//报文信息长度
  1905. {
  1906. BYTE byLengthMode; //长度类型,0,可变长度;1,固定长度;2,自助长度(从卡号中获取)
  1907. BYTE byRes1[3]; // 保留字节
  1908. DWORD dwFixLength; //mode为1的时候使用,固定长度大小
  1909. DWORD dwMaxLength; //报文信息最大长度 byLengthMode 为0 时使用
  1910. DWORD dwMinLength; //报文信息最小长度 byLengthMode为1时使用
  1911. BYTE byEndMode; //可变长度 终结符模式 0,ASCII;1,HEX
  1912. BYTE byRes2[3]; //保留字节
  1913. NET_DVR_FRAMETYPECODE struEndCode; //可变长度终结符
  1914. DWORD dwLengthPos; //lengthMode为2的时候使用,卡号长度在报文中的位置
  1915. DWORD dwLengthLen; //lengthMode为2的时候使用,卡号长度的长度
  1916. BYTE byRes3[8]; // 保留字节
  1917. }NET_DVR_PACKAGE_LENGTH,* LPNET_DVR_PACKAGE_LENGTH;
  1918. typedef struct tagNET_DVR_OSD_POSITION//OSD 叠加的位置
  1919. {
  1920. BYTE byPositionMode; //叠加风格,共2种;0,不显示;1,自定义
  1921. BYTE byRes1[3]; // 保留字节
  1922. DWORD dwPosX; //x坐标,叠加风格为自定义时使用
  1923. DWORD dwPosY; //y坐标,叠加风格为自定义时使用
  1924. BYTE byRes2[8]; //保留字节
  1925. }NET_DVR_OSD_POSITION, *LPNET_DVR_OSD_POSITION;
  1926. typedef struct tagNET_DVR_DATE_FORMAT//日期显示格式
  1927. {
  1928. BYTE byMonth; //Month,0.mm;1.mmm;2.mmmm
  1929. BYTE byDay; //Day,0.dd;
  1930. BYTE byYear; //Year,0.yy;1.yyyy
  1931. BYTE byDateForm; //0~5,年月日的排列组合
  1932. BYTE byRes[20]; // 保留字节
  1933. char chSeprator[4]; //分隔符
  1934. char chDisplaySeprator[4]; //显示分隔符
  1935. BYTE byDisplayForm; //0~5,3个item的排列组合
  1936. BYTE res[27]; // 保留字节
  1937. }NET_DVR_DATE_FORMAT, *LPNET_DVR_DATE_FORMAT;
  1938. typedef struct tagNET_DVRT_TIME_FORMAT//时间显示格式
  1939. {
  1940. BYTE byTimeForm; //1. HH MM SS;0. HH MM
  1941. BYTE byRes1[23]; // 保留字节
  1942. BYTE byHourMode; //0,12;1,24
  1943. BYTE byRes2[3]; // 保留字节
  1944. char chSeprator[4]; //报文分隔符,暂时没用
  1945. char chDisplaySeprator[4]; //显示分隔符
  1946. BYTE byDisplayForm; //0~5,3个item的排列组合
  1947. BYTE byRes3[3]; // 保留字节
  1948. BYTE byDisplayHourMode; //0,12;1,24
  1949. BYTE byRes4[19]; // 保留字节
  1950. }NET_DVR_TIME_FORMAT, *LPNET_DVR_TIME_FORMAT;
  1951. typedef struct tagNET_DVR_OVERLAY_CHANNEL
  1952. {
  1953. BYTE byChannel[64];//叠加的通道 每个字节标识一个通道, 例如byChannel[0]值为1对应叠加通道1,0表示不叠加通道1。
  1954. DWORD dwDelayTime; //叠加延时时间
  1955. BYTE byEnableDelayTime; //是否启用叠加延时
  1956. BYTE byRes[11]; // 保留字节
  1957. }NET_DVR_OVERLAY_CHANNEL, *LPNET_DVR_OVERLAY_CHANNEL;
  1958. // ATM 报文行为信息
  1959. typedef struct tagNET_DVR_ATM_PACKAGE_ACTION
  1960. {
  1961. NET_DVR_PACKAGE_LOCATION struPackageLocation;// 报文位置信息
  1962. NET_DVR_OSD_POSITION struOsdPosition; // OSD 叠加位置
  1963. NET_DVR_FRAMETYPECODE struActionCode; //交易类型行为码
  1964. NET_DVR_FRAMETYPECODE struPreCode; //叠加字符前的字符
  1965. BYTE byActionCodeMode; //交易类型行为码模式0,ASCII;1,HEX
  1966. BYTE byRes[7]; // 保留字节
  1967. }NET_DVR_ATM_PACKAGE_ACTION, *LPNET_DVR_ATM_PACKAGE_ACTION;
  1968. // ATM 报文DATA信息
  1969. typedef struct tagNET_DVR_ATM_PACKAGE_DATE
  1970. {
  1971. NET_DVR_PACKAGE_LOCATION struPackageLocation;// 日期在报文中的位置信息
  1972. NET_DVR_DATE_FORMAT struDateForm; //日期显示格式
  1973. NET_DVR_OSD_POSITION struOsdPosition; // OSD叠加位置信息
  1974. BYTE res[8]; // 保留字节
  1975. }NET_DVR_ATM_PACKAGE_DATE, *LPNET_DVR_ATM_PACKAGE_DATE;
  1976. //ATM报文时间信息
  1977. typedef struct tagNET_DVR_ATM_PACKAGE_TIME
  1978. {
  1979. NET_DVR_PACKAGE_LOCATION location; // 时间在报文中的位置信息
  1980. NET_DVR_TIME_FORMAT struTimeForm; // 时间显示格式
  1981. NET_DVR_OSD_POSITION struOsdPosition;// OSD 叠加位置信息
  1982. BYTE byRes[8]; // 保留字节
  1983. }NET_DVR_ATM_PACKAGE_TIME, *LPNET_DVR_ATM_PACKAGE_TIME;
  1984. // ATM 其他报文信息(卡号,交易金额,交易序号)
  1985. typedef struct tagNET_DVR_ATM_PACKAGE_OTHERS
  1986. {
  1987. NET_DVR_PACKAGE_LOCATION struPackageLocation; //报文位置信息
  1988. NET_DVR_PACKAGE_LENGTH struPackageLength; //长度信息
  1989. NET_DVR_OSD_POSITION struOsdPosition; // OSD叠加位置信息
  1990. NET_DVR_FRAMETYPECODE struPreCode; //叠加字符前的字符
  1991. BYTE res[8]; //保留字节
  1992. }NET_DVR_ATM_PACKAGE_OTHERS, *LPNET_DVR_ATM_PACKAGE_OTHERS;
  1993. //用户自定义协议
  1994. typedef struct tagNET_DVR_ATM_USER_DEFINE_PROTOCOL
  1995. {
  1996. NET_DVR_IDENTIFICAT struIdentification; //报文标志
  1997. NET_DVR_FILTER struFilter; //数据包过滤设置
  1998. NET_DVR_ATM_PACKAGE_OTHERS struCardNoPara; //叠加卡号设置
  1999. NET_DVR_ATM_PACKAGE_ACTION struTradeActionPara[MAX_ACTION_TYPE]; //叠加交易行为设置 0-9 依次对应InCard OutCard OverLay SetTime GetStatus Query WithDraw Deposit ChanPass Transfer
  2000. NET_DVR_ATM_PACKAGE_OTHERS struAmountPara; //叠加交易金额设置
  2001. NET_DVR_ATM_PACKAGE_OTHERS struSerialNoPara; //叠加交易序号设置
  2002. NET_DVR_OVERLAY_CHANNEL struOverlayChan; //叠加通道设置
  2003. NET_DVR_ATM_PACKAGE_DATE struRes1; //叠加日期,保留
  2004. NET_DVR_ATM_PACKAGE_TIME struRes2; //叠加时间,保留
  2005. BYTE byRes3[124]; //保留
  2006. }NET_DVR_ATM_USER_DEFINE_PROTOCOL, *LPNET_DVR_ATM_USER_DEFINE_PROTOCOL;
  2007. typedef struct tagNET_DVR_ATM_FRAMEFORMAT_V30
  2008. {
  2009. DWORD dwSize; //结构大小
  2010. BYTE byEnable; /*是否启用0,不启用;1,启用*/
  2011. BYTE byInputMode; /**输入方式:0-网络监听、1网络协议、2-串口监听、3-串口协议*/
  2012. BYTE byRes1[34]; //保留字节
  2013. NET_DVR_IPADDR struAtmIp; /*ATM 机IP 网络监听时使用 */
  2014. WORD wAtmPort; /* 网络协议方式时是使用*/
  2015. BYTE byRes2[2]; // 保留字节
  2016. DWORD dwAtmType; /*ATM协议类型,从NET_DVR_ATM_PROTOCOL结构中获取,如果类型为自定义时使用用户自定义协议*/
  2017. NET_DVR_ATM_USER_DEFINE_PROTOCOL struAtmUserDefineProtocol; //用户自定义协议,当ATM类型为自定时需要使用该定义
  2018. BYTE byRes3[8];
  2019. }NET_DVR_ATM_FRAMEFORMAT_V30, *LPNET_DVR_ATM_FRAMEFORMAT_V30;
  2020. typedef struct tagNET_DVR_ATM_PROTO_TYPE
  2021. {
  2022. DWORD dwAtmType; //ATM协议类型,同时作为索引序号 ATM 配置中的dwAtmType 自定义时为1025
  2023. char chDesc[ATM_DESC_LEN]; //ATM协议简单描述
  2024. }NET_DVR_ATM_PROTO_TYPE, *LPNET_DVR_ATM_PROTO_TYPE; //协议信息数据结构
  2025. typedef struct tagNET_DVR_ATM_PROTO_LIST //ATM 协议列表
  2026. {
  2027. DWORD dwAtmProtoNum; // 协议列表的个数
  2028. NET_DVR_ATM_PROTO_TYPE struAtmProtoType[MAX_ATM_PROTOCOL_NUM]; //协议列表信息
  2029. }NET_DVR_ATM_PROTO_LIST, *LPNET_DVR_ATM_PROTO_LIST;
  2030. typedef struct tagNET_DVR_ATM_PROTOCOL
  2031. {
  2032. DWORD dwSize;
  2033. NET_DVR_ATM_PROTO_LIST struNetListenList; // 网络监听协议描述
  2034. NET_DVR_ATM_PROTO_LIST struSerialListenList; //串口监听协议描述
  2035. NET_DVR_ATM_PROTO_LIST struNetProtoList; //网络协议描述
  2036. NET_DVR_ATM_PROTO_LIST struSerialProtoList; //串口协议描述
  2037. NET_DVR_ATM_PROTO_TYPE struCustomProto; //自定义协议
  2038. }NET_DVR_ATM_PROTOCOL, *LPNET_DVR_ATM_PROTOCOL;
  2039. // SDK_V31
  2040. /*****************************DS-6001D/F(begin)***************************/
  2041. //DS-6001D Decoder
  2042. typedef struct
  2043. {
  2044. BYTE byEncoderIP[16]; //解码设备连接的服务器IP
  2045. BYTE byEncoderUser[16]; //解码设备连接的服务器的用户名
  2046. BYTE byEncoderPasswd[16]; //解码设备连接的服务器的密码
  2047. BYTE bySendMode; //解码设备连接服务器的连接模式
  2048. BYTE byEncoderChannel; //解码设备连接的服务器的通道号
  2049. WORD wEncoderPort; //解码设备连接的服务器的端口号
  2050. BYTE reservedData[4]; //保留
  2051. }NET_DVR_DECODERINFO, *LPNET_DVR_DECODERINFO;
  2052. typedef struct
  2053. {
  2054. BYTE byEncoderIP[16]; //解码设备连接的服务器IP
  2055. BYTE byEncoderUser[16]; //解码设备连接的服务器的用户名
  2056. BYTE byEncoderPasswd[16]; //解码设备连接的服务器的密码
  2057. BYTE byEncoderChannel; //解码设备连接的服务器的通道号
  2058. BYTE bySendMode; //解码设备连接的服务器的连接模式
  2059. WORD wEncoderPort; //解码设备连接的服务器的端口号
  2060. DWORD dwConnectState; //解码设备连接服务器的状态
  2061. BYTE reservedData[4]; //保留
  2062. }NET_DVR_DECODERSTATE, *LPNET_DVR_DECODERSTATE;
  2063. /*解码设备控制码定义*/
  2064. #define NET_DEC_STARTDEC 1
  2065. #define NET_DEC_STOPDEC 2
  2066. #define NET_DEC_STOPCYCLE 3
  2067. #define NET_DEC_CONTINUECYCLE 4
  2068. /*连接的通道配置*/
  2069. typedef struct
  2070. {
  2071. char sDVRIP[16]; /* DVR IP地址 */
  2072. WORD wDVRPort; /* 端口号 */
  2073. BYTE sUserName[NAME_LEN]; /* 用户名 */
  2074. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  2075. BYTE byChannel; /* 通道号 */
  2076. BYTE byLinkMode; /* 连接模式 */
  2077. BYTE byLinkType; /* 连接类型 0-主码流 1-子码流 */
  2078. }NET_DVR_DECCHANINFO, *LPNET_DVR_DECCHANINFO;
  2079. /*每个解码通道的配置*/
  2080. typedef struct
  2081. {
  2082. BYTE byPoolChans; /*每路解码通道上的循环通道数量, 最多4通道 0表示没有解码*/
  2083. NET_DVR_DECCHANINFO struchanConInfo[MAX_DECPOOLNUM];
  2084. BYTE byEnablePoll; /*是否轮巡 0-否 1-是*/
  2085. BYTE byPoolTime; /*轮巡时间 0-保留 1-10秒 2-15秒 3-20秒 4-30秒 5-45秒 6-1分钟 7-2分钟 8-5分钟 */
  2086. }NET_DVR_DECINFO, *LPNET_DVR_DECINFO;
  2087. /*整个设备解码配置*/
  2088. typedef struct
  2089. {
  2090. DWORD dwSize;
  2091. DWORD dwDecChanNum; /*解码通道的数量*/
  2092. NET_DVR_DECINFO struDecInfo[MAX_DECNUM];
  2093. }NET_DVR_DECCFG, *LPNET_DVR_DECCFG;
  2094. //2005-08-01
  2095. /* 解码设备透明通道设置 */
  2096. typedef struct
  2097. {
  2098. DWORD dwEnableTransPort; /* 是否启动透明通道 0-不启用 1-启用*/
  2099. char sDecoderIP[16]; /* DVR IP地址 */
  2100. WORD wDecoderPort; /* 端口号 */
  2101. WORD wDVRTransPort; /* 配置前端DVR是从485/232输出,1表示232串口,2表示485串口 */
  2102. char cReserve[4];
  2103. }NET_DVR_PORTINFO, *LPNET_DVR_PORTINFO;
  2104. typedef struct
  2105. {
  2106. DWORD dwSize;
  2107. NET_DVR_PORTINFO struTransPortInfo[MAX_TRANSPARENTNUM]; /* 数组0表示232 数组1表示485 */
  2108. }NET_DVR_PORTCFG, *LPNET_DVR_PORTCFG;
  2109. /* 控制网络文件回放 */
  2110. typedef struct
  2111. {
  2112. DWORD dwSize;
  2113. char sDecoderIP[16]; /* DVR IP地址 */
  2114. WORD wDecoderPort; /* 端口号 */
  2115. WORD wLoadMode; /* 回放下载模式 1-按名字 2-按时间 */
  2116. union
  2117. {
  2118. BYTE byFile[100]; /* 回放的文件名 */
  2119. struct
  2120. {
  2121. DWORD dwChannel;
  2122. BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
  2123. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  2124. NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
  2125. NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
  2126. }bytime;
  2127. }mode_size;
  2128. }NET_DVR_PLAYREMOTEFILE, *LPNET_DVR_PLAYREMOTEFILE;
  2129. /*当前设备解码连接状态*/
  2130. typedef struct
  2131. {
  2132. DWORD dwWorkType; /*工作方式:1:轮巡、2:动态连接解码、3:文件回放下载 4:按时间回放下载*/
  2133. char sDVRIP[16]; /*连接的设备ip*/
  2134. WORD wDVRPort; /*连接端口号*/
  2135. BYTE byChannel; /* 通道号 */
  2136. BYTE byLinkMode; /* 连接模式 */
  2137. DWORD dwLinkType; /*连接类型 0-主码流 1-子码流*/
  2138. union
  2139. {
  2140. struct
  2141. {
  2142. BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
  2143. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  2144. char cReserve[52];
  2145. }userInfo;
  2146. struct
  2147. {
  2148. BYTE fileName[100];
  2149. }fileInfo;
  2150. struct
  2151. {
  2152. DWORD dwChannel;
  2153. BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
  2154. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  2155. NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
  2156. NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
  2157. }timeInfo;
  2158. }objectInfo;
  2159. }NET_DVR_DECCHANSTATUS, *LPNET_DVR_DECCHANSTATUS;
  2160. typedef struct
  2161. {
  2162. DWORD dwSize;
  2163. NET_DVR_DECCHANSTATUS struDecState[MAX_DECNUM];
  2164. }NET_DVR_DECSTATUS, *LPNET_DVR_DECSTATUS;
  2165. /*****************************DS-6001D/F(end)***************************/
  2166. //单字符参数(子结构)
  2167. typedef struct
  2168. {
  2169. WORD wShowString; // 预览的图象上是否显示字符,0-不显示,1-显示 区域大小704*576,单个字符的大小为32*32
  2170. WORD wStringSize; /* 该行字符的长度,不能大于44个字符 */
  2171. WORD wShowStringTopLeftX; /* 字符显示位置的x坐标 */
  2172. WORD wShowStringTopLeftY; /* 字符名称显示位置的y坐标 */
  2173. char sString[44]; /* 要显示的字符内容 */
  2174. }NET_DVR_SHOWSTRINGINFO, *LPNET_DVR_SHOWSTRINGINFO;
  2175. //叠加字符(9000扩展)
  2176. typedef struct
  2177. {
  2178. DWORD dwSize;
  2179. NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM_V30]; /* 要显示的字符内容 */
  2180. }NET_DVR_SHOWSTRING_V30, *LPNET_DVR_SHOWSTRING_V30;
  2181. //叠加字符扩展(8条字符)
  2182. typedef struct
  2183. {
  2184. DWORD dwSize;
  2185. NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM_EX]; /* 要显示的字符内容 */
  2186. }NET_DVR_SHOWSTRING_EX, *LPNET_DVR_SHOWSTRING_EX;
  2187. //叠加字符
  2188. typedef struct
  2189. {
  2190. DWORD dwSize;
  2191. NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM]; /* 要显示的字符内容 */
  2192. }NET_DVR_SHOWSTRING, *LPNET_DVR_SHOWSTRING;
  2193. /****************************DS9000新增结构(begin)******************************/
  2194. /*
  2195. EMAIL参数结构
  2196. */
  2197. typedef struct
  2198. {
  2199. DWORD dwSize;
  2200. BYTE sAccount[NAME_LEN]; /* 账号*/
  2201. BYTE sPassword[MAX_EMAIL_PWD_LEN]; /*密码 */
  2202. struct
  2203. {
  2204. BYTE sName[NAME_LEN]; /* 发件人姓名 */
  2205. BYTE sAddress[MAX_EMAIL_ADDR_LEN]; /* 发件人地址 */
  2206. }struSender;
  2207. BYTE sSmtpServer[MAX_EMAIL_ADDR_LEN]; /* smtp服务器 */
  2208. BYTE sPop3Server[MAX_EMAIL_ADDR_LEN]; /* pop3服务器 */
  2209. struct
  2210. {
  2211. BYTE sName[NAME_LEN]; /* 收件人姓名 */
  2212. BYTE sAddress[MAX_EMAIL_ADDR_LEN]; /* 收件人地址 */
  2213. }struReceiver[3]; /* 最多可以设置3个收件人 */
  2214. BYTE byAttachment; /* 是否带附件 */
  2215. BYTE bySmtpServerVerify; /* 发送服务器要求身份验证 */
  2216. BYTE byMailInterval; /* mail interval */
  2217. BYTE byEnableSSL; //ssl是否启用9000_1.1
  2218. WORD wSmtpPort; //gmail的465,普通的为25
  2219. BYTE byRes[74]; //保留
  2220. } NET_DVR_EMAILCFG_V30, *LPNET_DVR_EMAILCFG_V30;
  2221. /*
  2222. DVR实现巡航数据结构
  2223. */
  2224. typedef struct
  2225. {
  2226. DWORD dwSize;
  2227. BYTE byPresetNo[CRUISE_MAX_PRESET_NUMS]; /* 预置点号 */
  2228. BYTE byCruiseSpeed[CRUISE_MAX_PRESET_NUMS]; /* 巡航速度 */
  2229. WORD wDwellTime[CRUISE_MAX_PRESET_NUMS]; /* 停留时间 */
  2230. BYTE byEnableThisCruise; /* 是否启用 */
  2231. BYTE res[15];
  2232. }NET_DVR_CRUISE_PARA, *LPNET_DVR_CRUISE_PARA;
  2233. /****************************DS9000新增结构(end)******************************/
  2234. //时间点
  2235. typedef struct
  2236. {
  2237. DWORD dwMonth; //月 0-11表示1-12个月
  2238. DWORD dwWeekNo; //第几周 0-第1周 1-第2周 2-第3周 3-第4周 4-最后一周
  2239. DWORD dwWeekDate; //星期几 0-星期日 1-星期一 2-星期二 3-星期三 4-星期四 5-星期五 6-星期六
  2240. DWORD dwHour; //小时 开始时间0-23 结束时间1-23
  2241. DWORD dwMin; //分 0-59
  2242. }NET_DVR_TIMEPOINT;
  2243. //夏令时参数
  2244. typedef struct
  2245. {
  2246. DWORD dwSize;
  2247. BYTE byRes1[16]; //保留
  2248. DWORD dwEnableDST; //是否启用夏时制 0-不启用 1-启用
  2249. BYTE byDSTBias; //夏令时偏移值,30min, 60min, 90min, 120min, 以分钟计,传递原始数值
  2250. BYTE byRes2[3];
  2251. NET_DVR_TIMEPOINT struBeginPoint; //夏时制开始时间
  2252. NET_DVR_TIMEPOINT struEndPoint; //夏时制停止时间
  2253. }NET_DVR_ZONEANDDST, *LPNET_DVR_ZONEANDDST;
  2254. //图片质量
  2255. typedef struct
  2256. {
  2257. /*注意:当图像压缩分辨率为VGA时,支持0=CIF, 1=QCIF, 2=D1抓图,
  2258. 当分辨率为3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA,7=XVGA, 8=HD900p
  2259. 仅支持当前分辨率的抓图*/
  2260. WORD wPicSize; /* 0=CIF, 1=QCIF, 2=D1 3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA*/
  2261. WORD wPicQuality; /* 图片质量系数 0-最好 1-较好 2-一般 */
  2262. }NET_DVR_JPEGPARA, *LPNET_DVR_JPEGPARA;
  2263. /* aux video out parameter */
  2264. //辅助输出参数配置
  2265. typedef struct
  2266. {
  2267. DWORD dwSize;
  2268. DWORD dwAlarmOutChan; /* 选择报警弹出大报警通道切换时间:1画面的输出通道: 0:主输出/1:辅1/2:辅2/3:辅3/4:辅4 */
  2269. DWORD dwAlarmChanSwitchTime; /* :1秒 - 10:10秒 */
  2270. DWORD dwAuxSwitchTime[MAX_AUXOUT]; /* 辅助输出切换时间: 0-不切换,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s */
  2271. BYTE byAuxOrder[MAX_AUXOUT][MAX_WINDOW]; /* 辅助输出预览顺序, 0xff表示相应的窗口不预览 */
  2272. }NET_DVR_AUXOUTCFG, *LPNET_DVR_AUXOUTCFG;
  2273. //ntp
  2274. typedef struct
  2275. {
  2276. BYTE sNTPServer[64]; /* Domain Name or IP addr of NTP server */
  2277. WORD wInterval; /* adjust time interval(hours) */
  2278. BYTE byEnableNTP; /* enable NPT client 0-no,1-yes*/
  2279. signed char cTimeDifferenceH; /* 与国际标准时间的 小时偏移-12 ... +13 */
  2280. signed char cTimeDifferenceM;/* 与国际标准时间的 分钟偏移0, 30, 45*/
  2281. BYTE res1;
  2282. WORD wNtpPort; /* ntp server port 9000新增 设备默认为123*/
  2283. BYTE res2[8];
  2284. }NET_DVR_NTPPARA, *LPNET_DVR_NTPPARA;
  2285. //ddns
  2286. typedef struct
  2287. {
  2288. BYTE sUsername[NAME_LEN]; /* DDNS账号用户名/密码 */
  2289. BYTE sPassword[PASSWD_LEN];
  2290. BYTE sDomainName[64]; /* 域名 */
  2291. BYTE byEnableDDNS; /*是否应用 0-否,1-是*/
  2292. BYTE res[15];
  2293. }NET_DVR_DDNSPARA, *LPNET_DVR_DDNSPARA;
  2294. typedef struct
  2295. {
  2296. BYTE byHostIndex; /* 0-Hikvision DNS 1-Dyndns 2-PeanutHull(花生壳)*/
  2297. BYTE byEnableDDNS; /*是否应用DDNS 0-否,1-是*/
  2298. WORD wDDNSPort; /* DDNS端口号 */
  2299. BYTE sUsername[NAME_LEN]; /* DDNS用户名*/
  2300. BYTE sPassword[PASSWD_LEN]; /* DDNS密码 */
  2301. BYTE sDomainName[MAX_DOMAIN_NAME]; /* 设备配备的域名地址 */
  2302. BYTE sServerName[MAX_DOMAIN_NAME]; /* DDNS 对应的服务器地址,可以是IP地址或域名 */
  2303. BYTE byRes[16];
  2304. }NET_DVR_DDNSPARA_EX, *LPNET_DVR_DDNSPARA_EX;
  2305. //9000扩展
  2306. typedef struct
  2307. {
  2308. BYTE byEnableDDNS;
  2309. BYTE byHostIndex;/* 0-Hikvision DNS(保留) 1-Dyndns 2-PeanutHull(花生壳)*/
  2310. BYTE byRes1[2];
  2311. struct
  2312. {
  2313. BYTE sUsername[NAME_LEN]; /* DDNS账号用户名*/
  2314. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  2315. BYTE sDomainName[MAX_DOMAIN_NAME]; /* 设备配备的域名地址 */
  2316. BYTE sServerName[MAX_DOMAIN_NAME]; /* DDNS协议对应的服务器地址,可以是IP地址或域名 */
  2317. WORD wDDNSPort; /* 端口号 */
  2318. BYTE byRes[10];
  2319. } struDDNS[MAX_DDNS_NUMS];
  2320. BYTE byRes2[16];
  2321. }NET_DVR_DDNSPARA_V30, *LPNET_DVR_DDNSPARA_V30;
  2322. //email
  2323. typedef struct
  2324. {
  2325. BYTE sUsername[64]; /* 邮件账号/密码 */
  2326. BYTE sPassword[64];
  2327. BYTE sSmtpServer[64];
  2328. BYTE sPop3Server[64];
  2329. BYTE sMailAddr[64]; /* email */
  2330. BYTE sEventMailAddr1[64]; /* 上传报警/异常等的email */
  2331. BYTE sEventMailAddr2[64];
  2332. BYTE res[16];
  2333. }NET_DVR_EMAILPARA, *LPNET_DVR_EMAILPARA;
  2334. //网络参数配置
  2335. typedef struct
  2336. {
  2337. DWORD dwSize;
  2338. char sDNSIp[16]; /* DNS服务器地址 */
  2339. NET_DVR_NTPPARA struNtpClientParam; /* NTP参数 */
  2340. NET_DVR_DDNSPARA struDDNSClientParam; /* DDNS参数 */
  2341. BYTE res[464]; /* 保留 */
  2342. }NET_DVR_NETAPPCFG, *LPNET_DVR_NETAPPCFG;
  2343. //nfs结构配置
  2344. typedef struct
  2345. {
  2346. char sNfsHostIPAddr[16];
  2347. BYTE sNfsDirectory[PATHNAME_LEN]; // PATHNAME_LEN = 128
  2348. }NET_DVR_SINGLE_NFS, *LPNET_DVR_SINGLE_NFS;
  2349. typedef struct
  2350. {
  2351. DWORD dwSize;
  2352. NET_DVR_SINGLE_NFS struNfsDiskParam[MAX_NFS_DISK];
  2353. }NET_DVR_NFSCFG, *LPNET_DVR_NFSCFG;
  2354. //巡航点配置(HIK IP快球专用)
  2355. typedef struct
  2356. {
  2357. BYTE PresetNum; //预置点
  2358. BYTE Dwell; //停留时间
  2359. BYTE Speed; //速度
  2360. BYTE Reserve; //保留
  2361. }NET_DVR_CRUISE_POINT, *LPNET_DVR_CRUISE_POINT;
  2362. typedef struct
  2363. {
  2364. NET_DVR_CRUISE_POINT struCruisePoint[32]; //最大支持32个巡航点
  2365. }NET_DVR_CRUISE_RET, *LPNET_DVR_CRUISE_RET;
  2366. /************************************多路解码器(begin)***************************************/
  2367. typedef struct
  2368. {
  2369. DWORD dwSize;
  2370. char sFirstDNSIP[16];
  2371. char sSecondDNSIP[16];
  2372. char sRes[32];
  2373. }NET_DVR_NETCFG_OTHER, *LPNET_DVR_NETCFG_OTHER;
  2374. typedef struct
  2375. {
  2376. char sDVRIP[16]; /* DVR IP地址 */
  2377. WORD wDVRPort; /* 端口号 */
  2378. BYTE byChannel; /* 通道号 */
  2379. BYTE byTransProtocol; /* 传输协议类型 0-TCP, 1-UDP */
  2380. BYTE byTransMode; /* 传输码流模式 0-主码流 1-子码流*/
  2381. BYTE byRes[3];
  2382. BYTE sUserName[NAME_LEN]; /* 监控主机登陆帐号 */
  2383. BYTE sPassword[PASSWD_LEN]; /* 监控主机密码 */
  2384. }NET_DVR_MATRIX_DECINFO, *LPNET_DVR_MATRIX_DECINFO;
  2385. //启动/停止动态解码
  2386. typedef struct
  2387. {
  2388. DWORD dwSize;
  2389. NET_DVR_MATRIX_DECINFO struDecChanInfo; /* 动态解码通道信息 */
  2390. }NET_DVR_MATRIX_DYNAMIC_DEC, *LPNET_DVR_MATRIX_DYNAMIC_DEC;
  2391. typedef struct
  2392. {
  2393. DWORD dwSize;
  2394. DWORD dwIsLinked; /* 解码通道状态 0-休眠 1-正在连接 2-已连接 3-正在解码 */
  2395. DWORD dwStreamCpRate; /* Stream copy rate, X kbits/second */
  2396. char cRes[64]; /* 保留 */
  2397. }NET_DVR_MATRIX_DEC_CHAN_STATUS, *LPNET_DVR_MATRIX_DEC_CHAN_STATUS;
  2398. typedef struct
  2399. {
  2400. DWORD dwSize;
  2401. NET_DVR_MATRIX_DECINFO struDecChanInfo; /* 解码通道信息 */
  2402. DWORD dwDecState; /* 0-动态解码 1-循环解码 2-按时间回放 3-按文件回放 */
  2403. NET_DVR_TIME StartTime; /* 按时间回放开始时间 */
  2404. NET_DVR_TIME StopTime; /* 按时间回放停止时间 */
  2405. char sFileName[128]; /* 按文件回放文件名 */
  2406. }NET_DVR_MATRIX_DEC_CHAN_INFO, *LPNET_DVR_MATRIX_DEC_CHAN_INFO;
  2407. //连接的通道配置 2007-11-05
  2408. typedef struct
  2409. {
  2410. DWORD dwEnable; /* 是否启用 0-否 1-启用*/
  2411. NET_DVR_MATRIX_DECINFO struDecChanInfo; /* 轮循解码通道信息 */
  2412. }NET_DVR_MATRIX_DECCHANINFO, *LPNET_DVR_MATRIX_DECCHANINFO;
  2413. //2007-11-05 新增每个解码通道的配置
  2414. typedef struct
  2415. {
  2416. DWORD dwSize;
  2417. DWORD dwPoolTime; /*轮巡时间 */
  2418. NET_DVR_MATRIX_DECCHANINFO struchanConInfo[MAX_CYCLE_CHAN];
  2419. }NET_DVR_MATRIX_LOOP_DECINFO, *LPNET_DVR_MATRIX_LOOP_DECINFO;
  2420. //2007-12-22
  2421. typedef struct
  2422. {
  2423. BYTE baudrate; /* 波特率 */
  2424. BYTE databits; /* 数据位 */
  2425. BYTE stopbits; /* 停止位 */
  2426. BYTE parity; /* 奇偶校验位 */
  2427. BYTE flowcontrol; /* 流控 */
  2428. BYTE res[3];
  2429. }TTY_CONFIG, *LPTTY_CONFIG;
  2430. typedef struct
  2431. {
  2432. BYTE byTranChanEnable; /* 当前透明通道是否打开 0:关闭 1:打开 */
  2433. /*
  2434. * 多路解码器本地有1个485串口,1个232串口都可以作为透明通道,设备号分配如下:
  2435. * 0 RS485
  2436. * 1 RS232 Console
  2437. */
  2438. BYTE byLocalSerialDevice; /* Local serial device */
  2439. /*
  2440. * 远程串口输出还是两个,一个RS232,一个RS485
  2441. * 1表示232串口
  2442. * 2表示485串口
  2443. */
  2444. BYTE byRemoteSerialDevice; /* Remote output serial device */
  2445. BYTE res1; /* 保留 */
  2446. char sRemoteDevIP[16]; /* Remote Device IP */
  2447. WORD wRemoteDevPort; /* Remote Net Communication Port */
  2448. BYTE res2[2]; /* 保留 */
  2449. TTY_CONFIG RemoteSerialDevCfg;
  2450. }NET_DVR_MATRIX_TRAN_CHAN_INFO, *LPNET_DVR_MATRIX_TRAN_CHAN_INFO;
  2451. typedef struct
  2452. {
  2453. DWORD dwSize;
  2454. BYTE by232IsDualChan; /* 设置哪路232透明通道是全双工的 取值1到MAX_SERIAL_NUM */
  2455. BYTE by485IsDualChan; /* 设置哪路485透明通道是全双工的 取值1到MAX_SERIAL_NUM */
  2456. BYTE res[2]; /* 保留 */
  2457. NET_DVR_MATRIX_TRAN_CHAN_INFO struTranInfo[MAX_SERIAL_NUM];/*同时支持建立MAX_SERIAL_NUM个透明通道*/
  2458. }NET_DVR_MATRIX_TRAN_CHAN_CONFIG, *LPNET_DVR_MATRIX_TRAN_CHAN_CONFIG;
  2459. //2007-12-24 Merry Christmas Eve...
  2460. typedef struct
  2461. {
  2462. DWORD dwSize;
  2463. char sDVRIP[16]; /* DVR IP地址 */
  2464. WORD wDVRPort; /* 端口号 */
  2465. BYTE byChannel; /* 通道号 */
  2466. BYTE byReserve;
  2467. BYTE sUserName[NAME_LEN]; /* 用户名 */
  2468. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  2469. DWORD dwPlayMode; /* 0-按文件 1-按时间*/
  2470. NET_DVR_TIME StartTime;
  2471. NET_DVR_TIME StopTime;
  2472. char sFileName[128];
  2473. }NET_DVR_MATRIX_DEC_REMOTE_PLAY, *LPNET_DVR_MATRIX_DEC_REMOTE_PLAY;
  2474. /* 文件播放命令 */
  2475. #define NET_DVR_PLAYSTART 1//开始播放
  2476. #define NET_DVR_PLAYSTOP 2//停止播放
  2477. #define NET_DVR_PLAYPAUSE 3//暂停播放
  2478. #define NET_DVR_PLAYRESTART 4//恢复播放
  2479. #define NET_DVR_PLAYFAST 5//快放
  2480. #define NET_DVR_PLAYSLOW 6//慢放
  2481. #define NET_DVR_PLAYNORMAL 7//正常速度
  2482. #define NET_DVR_PLAYSTARTAUDIO 9//打开声音
  2483. #define NET_DVR_PLAYSTOPAUDIO 10//关闭声音
  2484. #define NET_DVR_PLAYSETPOS 12//改变文件回放的进度
  2485. typedef struct
  2486. {
  2487. DWORD dwSize;
  2488. DWORD dwPlayCmd; /* 播放命令 见文件播放命令*/
  2489. DWORD dwCmdParam; /* 播放命令参数 */
  2490. }NET_DVR_MATRIX_DEC_REMOTE_PLAY_CONTROL, *LPNET_DVR_MATRIX_DEC_REMOTE_PLAY_CONTROL;
  2491. typedef struct
  2492. {
  2493. DWORD dwSize;
  2494. DWORD dwCurMediaFileLen; /* 当前播放的媒体文件长度 */
  2495. DWORD dwCurMediaFilePosition; /* 当前播放文件的播放位置 */
  2496. DWORD dwCurMediaFileDuration; /* 当前播放文件的总时间 */
  2497. DWORD dwCurPlayTime; /* 当前已经播放的时间 */
  2498. DWORD dwCurMediaFIleFrames; /* 当前播放文件的总帧数 */
  2499. DWORD dwCurDataType; /* 当前传输的数据类型,19-文件头,20-流数据, 21-播放结束标志 */
  2500. BYTE res[72];
  2501. }NET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS, *LPNET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS;
  2502. typedef struct tagDEV_CHAN_INFO
  2503. {
  2504. NET_DVR_IPADDR struIP; /* DVR IP地址 */
  2505. WORD wDVRPort; /* 端口号 */
  2506. BYTE byChannel; /* 通道号 */
  2507. BYTE byTransProtocol; /* 传输协议类型0-TCP,1-UDP */
  2508. BYTE byTransMode; /* 传输码流模式 0-主码流 1-子码流*/
  2509. BYTE byRes[71];
  2510. BYTE sUserName[NAME_LEN]; /* 监控主机登陆帐号 */
  2511. BYTE sPassword[PASSWD_LEN]; /* 监控主机密码 */
  2512. } NET_DVR_DEV_CHAN_INFO,*LPNET_DVR_DEV_CHAN_INFO;
  2513. /*流媒体服务器基本配置*/
  2514. typedef struct
  2515. {
  2516. BYTE byValid; /*是否启用流媒体服务器取流,0表示无效,非0表示有效*/
  2517. BYTE byRes1[3];
  2518. NET_DVR_IPADDR struDevIP;
  2519. WORD wDevPort; /*流媒体服务器端口*/
  2520. BYTE byTransmitType; /*传输协议类型 0-TCP,1-UDP*/
  2521. BYTE byRes2[69];
  2522. }NET_DVR_STREAM_MEDIA_SERVER_CFG,*LPNET_DVR_STREAM_MEDIA_SERVER_CFG;
  2523. typedef struct
  2524. {
  2525. DWORD dwSize;
  2526. NET_DVR_STREAM_MEDIA_SERVER_CFG struStreamMediaSvrCfg;
  2527. NET_DVR_DEV_CHAN_INFO struDevChanInfo;
  2528. }NET_DVR_PU_STREAM_CFG,*LPNET_DVR_PU_STREAM_CFG;
  2529. /************************************多路解码器(end)***************************************/
  2530. typedef struct
  2531. { /* 12 bytes */
  2532. DWORD dwSize;
  2533. char sUserName[32];
  2534. char sPassWord[32];
  2535. char sFromName[32]; /* Sender *///字符串中的第一个字符和最后一个字符不能是"@",并且字符串中要有"@"字符
  2536. char sFromAddr[48]; /* Sender address */
  2537. char sToName1[32]; /* Receiver1 */
  2538. char sToName2[32]; /* Receiver2 */
  2539. char sToAddr1[48]; /* Receiver address1 */
  2540. char sToAddr2[48]; /* Receiver address2 */
  2541. char sEmailServer[32]; /* Email server address */
  2542. BYTE byServerType; /* Email server type: 0-SMTP, 1-POP, 2-IMTP…*/
  2543. BYTE byUseAuthen; /* Email server authentication method: 1-enable, 0-disable */
  2544. BYTE byAttachment; /* enable attachment */
  2545. BYTE byMailinterval; /* mail interval 0-2s, 1-3s, 2-4s. 3-5s*/
  2546. } NET_DVR_EMAILCFG, *LPNET_DVR_EMAILCFG;
  2547. typedef struct
  2548. {
  2549. DWORD dwSize;
  2550. NET_DVR_COMPRESSION_INFO_EX struLowCompression; //定时录像
  2551. NET_DVR_COMPRESSION_INFO_EX struEventCompression; //事件触发录像
  2552. }NET_DVR_COMPRESSIONCFG_NEW, *LPNET_DVR_COMPRESSIONCFG_NEW;
  2553. //球机位置信息
  2554. typedef struct
  2555. {
  2556. WORD wAction;//获取时该字段无效
  2557. WORD wPanPos;//水平参数
  2558. WORD wTiltPos;//垂直参数
  2559. WORD wZoomPos;//变倍参数
  2560. }NET_DVR_PTZPOS, *LPNET_DVR_PTZPOS;
  2561. //球机范围信息
  2562. typedef struct
  2563. {
  2564. WORD wPanPosMin;//水平参数min
  2565. WORD wPanPosMax;//水平参数max
  2566. WORD wTiltPosMin;//垂直参数min
  2567. WORD wTiltPosMax;//垂直参数max
  2568. WORD wZoomPosMin;//变倍参数min
  2569. WORD wZoomPosMax;//变倍参数max
  2570. }NET_DVR_PTZSCOPE, *LPNET_DVR_PTZSCOPE;
  2571. //rtsp配置 ipcamera专用
  2572. typedef struct
  2573. {
  2574. DWORD dwSize; //长度
  2575. WORD wPort; //rtsp服务器侦听端口
  2576. BYTE byReserve[54]; //预留
  2577. }NET_DVR_RTSPCFG, *LPNET_DVR_RTSPCFG;
  2578. /********************************接口参数结构(begin)*********************************/
  2579. //NET_DVR_Login()参数结构
  2580. typedef struct
  2581. {
  2582. BYTE sSerialNumber[SERIALNO_LEN]; //序列号
  2583. BYTE byAlarmInPortNum; //DVR报警输入个数
  2584. BYTE byAlarmOutPortNum; //DVR报警输出个数
  2585. BYTE byDiskNum; //DVR硬盘个数
  2586. BYTE byDVRType; //DVR类型, 1:DVR 2:ATM DVR 3:DVS ......
  2587. BYTE byChanNum; //DVR 通道个数
  2588. BYTE byStartChan; //起始通道号,例如DVS-1,DVR - 1
  2589. }NET_DVR_DEVICEINFO, *LPNET_DVR_DEVICEINFO;
  2590. //NET_DVR_Login_V30()参数结构
  2591. typedef struct
  2592. {
  2593. BYTE sSerialNumber[SERIALNO_LEN]; //序列号
  2594. BYTE byAlarmInPortNum; //报警输入个数
  2595. BYTE byAlarmOutPortNum; //报警输出个数
  2596. BYTE byDiskNum; //硬盘个数
  2597. BYTE byDVRType; //设备类型, 1:DVR 2:ATM DVR 3:DVS ......
  2598. BYTE byChanNum; //模拟通道个数
  2599. BYTE byStartChan; //起始通道号,例如DVS-1,DVR - 1
  2600. BYTE byAudioChanNum; //语音通道数
  2601. BYTE byIPChanNum; //最大数字通道个数
  2602. BYTE byRes1[24]; //保留
  2603. }NET_DVR_DEVICEINFO_V30, *LPNET_DVR_DEVICEINFO_V30;
  2604. //sdk网络环境枚举变量,用于远程升级
  2605. typedef enum _SDK_NET_ENV
  2606. {
  2607. LOCAL_AREA_NETWORK = 0,
  2608. WIDE_AREA_NETWORK
  2609. }SDK_NETWORK_ENVIRONMENT;
  2610. //显示模式
  2611. typedef enum
  2612. {
  2613. NORMALMODE = 0,
  2614. OVERLAYMODE
  2615. }DISPLAY_MODE;
  2616. //发送模式
  2617. typedef enum
  2618. {
  2619. PTOPTCPMODE = 0,
  2620. PTOPUDPMODE,
  2621. MULTIMODE,
  2622. RTPMODE,
  2623. RESERVEDMODE
  2624. }SEND_MODE;
  2625. //抓图模式
  2626. typedef enum
  2627. {
  2628. BMP_MODE = 0, //BMP模式
  2629. JPEG_MODE = 1 //JPEG模式
  2630. }CAPTURE_MODE;
  2631. //实时声音模式
  2632. typedef enum
  2633. {
  2634. MONOPOLIZE_MODE = 1,//独占模式
  2635. SHARE_MODE = 2 //共享模式
  2636. }REALSOUND_MODE;
  2637. //软解码预览参数
  2638. typedef struct
  2639. {
  2640. LONG lChannel;//通道号
  2641. LONG lLinkMode;//最高位(31)为0表示主码流,为1表示子,0-30位表示码流连接方式: 0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-音视频分开(TCP)
  2642. HWND hPlayWnd;//播放窗口的句柄,为NULL表示不播放图象
  2643. char* sMultiCastIP;//多播组地址
  2644. }NET_DVR_CLIENTINFO, *LPNET_DVR_CLIENTINFO;
  2645. //SDK状态信息(9000新增)
  2646. typedef struct
  2647. {
  2648. DWORD dwTotalLoginNum; //当前login用户数
  2649. DWORD dwTotalRealPlayNum; //当前realplay路数
  2650. DWORD dwTotalPlayBackNum; //当前回放或下载路数
  2651. DWORD dwTotalAlarmChanNum; //当前建立报警通道路数
  2652. DWORD dwTotalFormatNum; //当前硬盘格式化路数
  2653. DWORD dwTotalFileSearchNum; //当前日志或文件搜索路数
  2654. DWORD dwTotalLogSearchNum; //当前日志或文件搜索路数
  2655. DWORD dwTotalSerialNum; //当前透明通道路数
  2656. DWORD dwTotalUpgradeNum; //当前升级路数
  2657. DWORD dwTotalVoiceComNum; //当前语音转发路数
  2658. DWORD dwTotalBroadCastNum; //当前语音广播路数
  2659. DWORD dwRes[10];
  2660. }NET_DVR_SDKSTATE, *LPNET_DVR_SDKSTATE;
  2661. //SDK功能支持信息(9000新增)
  2662. typedef struct
  2663. {
  2664. DWORD dwMaxLoginNum; //最大login用户数 MAX_LOGIN_USERS
  2665. DWORD dwMaxRealPlayNum; //最大realplay路数 WATCH_NUM
  2666. DWORD dwMaxPlayBackNum; //最大回放或下载路数 WATCH_NUM
  2667. DWORD dwMaxAlarmChanNum; //最大建立报警通道路数 ALARM_NUM
  2668. DWORD dwMaxFormatNum; //最大硬盘格式化路数 SERVER_NUM
  2669. DWORD dwMaxFileSearchNum; //最大文件搜索路数 SERVER_NUM
  2670. DWORD dwMaxLogSearchNum; //最大日志搜索路数 SERVER_NUM
  2671. DWORD dwMaxSerialNum; //最大透明通道路数 SERVER_NUM
  2672. DWORD dwMaxUpgradeNum; //最大升级路数 SERVER_NUM
  2673. DWORD dwMaxVoiceComNum; //最大语音转发路数 SERVER_NUM
  2674. DWORD dwMaxBroadCastNum; //最大语音广播路数 MAX_CASTNUM
  2675. DWORD dwRes[10];
  2676. }NET_DVR_SDKABL, *LPNET_DVR_SDKABL;
  2677. //报警设备信息
  2678. typedef struct
  2679. {
  2680. BYTE byUserIDValid; /* userid是否有效 0-无效,1-有效 */
  2681. BYTE bySerialValid; /* 序列号是否有效 0-无效,1-有效 */
  2682. BYTE byVersionValid; /* 版本号是否有效 0-无效,1-有效 */
  2683. BYTE byDeviceNameValid; /* 设备名字是否有效 0-无效,1-有效 */
  2684. BYTE byMacAddrValid; /* MAC地址是否有效 0-无效,1-有效 */
  2685. BYTE byLinkPortValid; /* login端口是否有效 0-无效,1-有效 */
  2686. BYTE byDeviceIPValid; /* 设备IP是否有效 0-无效,1-有效 */
  2687. BYTE bySocketIPValid; /* socket ip是否有效 0-无效,1-有效 */
  2688. LONG lUserID; /* NET_DVR_Login()返回值, 布防时有效 */
  2689. BYTE sSerialNumber[SERIALNO_LEN]; /* 序列号 */
  2690. DWORD dwDeviceVersion; /* 版本信息 高16位表示主版本,低16位表示次版本*/
  2691. char sDeviceName[NAME_LEN]; /* 设备名字 */
  2692. BYTE byMacAddr[MACADDR_LEN]; /* MAC地址 */
  2693. WORD wLinkPort; /* link port */
  2694. char sDeviceIP[128]; /* IP地址 */
  2695. char sSocketIP[128]; /* 报警主动上传时的socket IP地址 */
  2696. BYTE byIpProtocol; /* Ip协议 0-IPV4, 1-IPV6 */
  2697. BYTE byRes2[11];
  2698. }NET_DVR_ALARMER, *LPNET_DVR_ALARMER;
  2699. //硬解码显示区域参数(子结构)
  2700. typedef struct
  2701. {
  2702. long bToScreen;
  2703. long bToVideoOut;
  2704. long nLeft;
  2705. long nTop;
  2706. long nWidth;
  2707. long nHeight;
  2708. long nReserved;
  2709. }NET_DVR_DISPLAY_PARA, *LPNET_DVR_DISPLAY_PARA;
  2710. //硬解码预览参数
  2711. typedef struct
  2712. {
  2713. LONG lChannel;//通道号
  2714. LONG lLinkMode; //最高位(31)为0表示主码流,为1表示子,0-30位表示码流连接方式:0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-电话线,5-128k宽带,6-256k宽带,7-384k宽带,8-512k宽带;
  2715. char* sMultiCastIP;
  2716. NET_DVR_DISPLAY_PARA struDisplayPara;
  2717. }NET_DVR_CARDINFO, *LPNET_DVR_CARDINFO;
  2718. //录象文件参数
  2719. typedef struct
  2720. {
  2721. char sFileName[100];//文件名
  2722. NET_DVR_TIME struStartTime;//文件的开始时间
  2723. NET_DVR_TIME struStopTime;//文件的结束时间
  2724. DWORD dwFileSize;//文件的大小
  2725. }NET_DVR_FIND_DATA, *LPNET_DVR_FIND_DATA;
  2726. //录象文件参数(9000)
  2727. typedef struct
  2728. {
  2729. char sFileName[100];//文件名
  2730. NET_DVR_TIME struStartTime;//文件的开始时间
  2731. NET_DVR_TIME struStopTime;//文件的结束时间
  2732. DWORD dwFileSize;//文件的大小
  2733. char sCardNum[32];
  2734. BYTE byLocked;//9000设备支持,1表示此文件已经被锁定,0表示正常的文件
  2735. BYTE byRes[3];
  2736. }NET_DVR_FINDDATA_V30, *LPNET_DVR_FINDDATA_V30;
  2737. //录象文件参数(带卡号)
  2738. typedef struct
  2739. {
  2740. char sFileName[100];//文件名
  2741. NET_DVR_TIME struStartTime;//文件的开始时间
  2742. NET_DVR_TIME struStopTime;//文件的结束时间
  2743. DWORD dwFileSize;//文件的大小
  2744. char sCardNum[32];
  2745. }NET_DVR_FINDDATA_CARD, *LPNET_DVR_FINDDATA_CARD;
  2746. //录象文件查找条件结构
  2747. typedef struct
  2748. {
  2749. LONG lChannel;//通道号
  2750. DWORD dwFileType;//录象文件类型0xff-全部,0-定时录像,1-移动侦测 ,2-报警触发,
  2751. //3-报警|移动侦测 4-报警&移动侦测 5-命令触发 6-手动录像
  2752. DWORD dwIsLocked;//是否锁定 0-正常文件,1-锁定文件, 0xff表示所有文件
  2753. DWORD dwUseCardNo;//是否使用卡号
  2754. BYTE sCardNumber[32];//卡号
  2755. NET_DVR_TIME struStartTime;//开始时间
  2756. NET_DVR_TIME struStopTime;//结束时间
  2757. }NET_DVR_FILECOND, *LPNET_DVR_FILECOND;
  2758. //云台区域选择放大缩小(HIK 快球专用)
  2759. typedef struct
  2760. {
  2761. int xTop; //方框起始点的x坐标
  2762. int yTop; //方框结束点的y坐标
  2763. int xBottom; //方框结束点的x坐标
  2764. int yBottom; //方框结束点的y坐标
  2765. int bCounter; //保留
  2766. }NET_DVR_POINT_FRAME, *LPNET_DVR_POINT_FRAME;
  2767. //语音对讲参数
  2768. typedef struct tagNET_DVR_COMPRESSION_AUDIO
  2769. {
  2770. BYTE byAudioEncType; //音频编码类型 0-G722; 1-G711
  2771. BYTE byres[7];//这里保留音频的压缩参数
  2772. }NET_DVR_COMPRESSION_AUDIO, *LPNET_DVR_COMPRESSION_AUDIO;
  2773. /********************************接口参数结构(end)*********************************/
  2774. /********************************SDK接口函数声明*********************************/
  2775. NET_DVR_API BOOL __stdcall NET_DVR_Init();
  2776. NET_DVR_API BOOL __stdcall NET_DVR_Cleanup();
  2777. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessage(UINT nMessage,HWND hWnd);
  2778. //NET_DVR_SetDVRMessage的扩展
  2779. NET_DVR_API BOOL __stdcall NET_DVR_SetExceptionCallBack_V30(UINT nMessage, HWND hWnd, void (CALLBACK* fExceptionCallBack)(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser), void *pUser);
  2780. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack(BOOL (CALLBACK *fMessCallBack)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen));
  2781. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack_EX(BOOL (CALLBACK *fMessCallBack_EX)(LONG lCommand,LONG lUserID,char *pBuf,DWORD dwBufLen));
  2782. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack_NEW(BOOL (CALLBACK *fMessCallBack_NEW)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen, WORD dwLinkDVRPort));
  2783. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessageCallBack(BOOL (CALLBACK *fMessageCallBack)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen, DWORD dwUser), DWORD dwUser);
  2784. typedef void (CALLBACK *MSGCallBack)(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD dwBufLen, void* pUser);
  2785. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessageCallBack_V30(MSGCallBack fMessageCallBack, void* pUser);
  2786. NET_DVR_API BOOL __stdcall NET_DVR_SetConnectTime(DWORD dwWaitTime = 5000, DWORD dwTryTimes = 3);
  2787. NET_DVR_API BOOL __stdcall NET_DVR_SetReconnect(DWORD dwInterval = 30000, BOOL bEnableRecon = TRUE);
  2788. NET_DVR_API DWORD __stdcall NET_DVR_GetSDKVersion();
  2789. NET_DVR_API DWORD __stdcall NET_DVR_GetSDKBuildVersion();
  2790. NET_DVR_API int __stdcall NET_DVR_IsSupport();
  2791. NET_DVR_API BOOL __stdcall NET_DVR_StartListen(char *sLocalIP,WORD wLocalPort);
  2792. NET_DVR_API BOOL __stdcall NET_DVR_StopListen();
  2793. NET_DVR_API LONG __stdcall NET_DVR_StartListen_V30(char *sLocalIP, WORD wLocalPort, MSGCallBack DataCallback, void* pUserData = NULL);
  2794. NET_DVR_API BOOL __stdcall NET_DVR_StopListen_V30(LONG lListenHandle);
  2795. NET_DVR_API LONG __stdcall NET_DVR_Login(char *sDVRIP,WORD wDVRPort,char *sUserName,char *sPassword,LPNET_DVR_DEVICEINFO lpDeviceInfo);
  2796. NET_DVR_API LONG __stdcall NET_DVR_Login_V30(char *sDVRIP, WORD wDVRPort, char *sUserName, char *sPassword, LPNET_DVR_DEVICEINFO_V30 lpDeviceInfo);
  2797. NET_DVR_API BOOL __stdcall NET_DVR_Logout(LONG lUserID);
  2798. NET_DVR_API BOOL __stdcall NET_DVR_Logout_V30(LONG lUserID);
  2799. NET_DVR_API DWORD __stdcall NET_DVR_GetLastError();
  2800. NET_DVR_API char* __stdcall NET_DVR_GetErrorMsg(LONG *pErrorNo = NULL);
  2801. NET_DVR_API BOOL __stdcall NET_DVR_SetShowMode(DWORD dwShowType,COLORREF colorKey);
  2802. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRIPByResolveSvr(char *sServerIP, WORD wServerPort, BYTE *sDVRName,WORD wDVRNameLen,BYTE *sDVRSerialNumber,WORD wDVRSerialLen,char* sGetIP);
  2803. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRIPByResolveSvr_EX(char *sServerIP, WORD wServerPort, unsigned char *sDVRName, WORD wDVRNameLen, BYTE *sDVRSerialNumber, WORD wDVRSerialLen, char* sGetIP, DWORD *dwPort);
  2804. //预览相关接口
  2805. NET_DVR_API LONG __stdcall NET_DVR_RealPlay(LONG lUserID,LPNET_DVR_CLIENTINFO lpClientInfo);
  2806. NET_DVR_API LONG __stdcall NET_DVR_RealPlay_V30(LONG lUserID, LPNET_DVR_CLIENTINFO lpClientInfo, void(CALLBACK *fRealDataCallBack_V30) (LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, void* pUser) = NULL, void* pUser = NULL, BOOL bBlocked = FALSE);
  2807. NET_DVR_API BOOL __stdcall NET_DVR_StopRealPlay(LONG lRealHandle);
  2808. NET_DVR_API BOOL __stdcall NET_DVR_RigisterDrawFun(LONG lRealHandle,void (CALLBACK* fDrawFun)(LONG lRealHandle,HDC hDc,DWORD dwUser),DWORD dwUser);
  2809. NET_DVR_API BOOL __stdcall NET_DVR_SetPlayerBufNumber(LONG lRealHandle,DWORD dwBufNum);
  2810. NET_DVR_API BOOL __stdcall NET_DVR_ThrowBFrame(LONG lRealHandle,DWORD dwNum);
  2811. NET_DVR_API BOOL __stdcall NET_DVR_SetAudioMode(DWORD dwMode);
  2812. NET_DVR_API BOOL __stdcall NET_DVR_OpenSound(LONG lRealHandle);
  2813. NET_DVR_API BOOL __stdcall NET_DVR_CloseSound();
  2814. NET_DVR_API BOOL __stdcall NET_DVR_OpenSoundShare(LONG lRealHandle);
  2815. NET_DVR_API BOOL __stdcall NET_DVR_CloseSoundShare(LONG lRealHandle);
  2816. NET_DVR_API BOOL __stdcall NET_DVR_Volume(LONG lRealHandle,WORD wVolume);
  2817. NET_DVR_API BOOL __stdcall NET_DVR_SaveRealData(LONG lRealHandle,char *sFileName);
  2818. NET_DVR_API BOOL __stdcall NET_DVR_StopSaveRealData(LONG lRealHandle);
  2819. NET_DVR_API BOOL __stdcall NET_DVR_SetRealDataCallBack(LONG lRealHandle,void(CALLBACK *fRealDataCallBack) (LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);
  2820. NET_DVR_API BOOL __stdcall NET_DVR_SetStandardDataCallBack(LONG lRealHandle,void(CALLBACK *fStdDataCallBack) (LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);
  2821. NET_DVR_API BOOL __stdcall NET_DVR_CapturePicture(LONG lRealHandle,char *sPicFileName);//bmp
  2822. //动态生成I帧
  2823. NET_DVR_API BOOL __stdcall NET_DVR_MakeKeyFrame(LONG lUserID, LONG lChannel);//主码流
  2824. NET_DVR_API BOOL __stdcall NET_DVR_MakeKeyFrameSub(LONG lUserID, LONG lChannel);//子码流
  2825. //云台控制相关接口
  2826. NET_DVR_API BOOL __stdcall NET_DVR_PTZControl(LONG lRealHandle,DWORD dwPTZCommand,DWORD dwStop);
  2827. NET_DVR_API BOOL __stdcall NET_DVR_PTZControl_Other(LONG lUserID,LONG lChannel,DWORD dwPTZCommand,DWORD dwStop);
  2828. NET_DVR_API BOOL __stdcall NET_DVR_TransPTZ(LONG lRealHandle,char *pPTZCodeBuf,DWORD dwBufSize);
  2829. NET_DVR_API BOOL __stdcall NET_DVR_TransPTZ_Other(LONG lUserID,LONG lChannel,char *pPTZCodeBuf,DWORD dwBufSize);
  2830. NET_DVR_API BOOL __stdcall NET_DVR_PTZPreset(LONG lRealHandle,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);
  2831. NET_DVR_API BOOL __stdcall NET_DVR_PTZPreset_Other(LONG lUserID,LONG lChannel,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);
  2832. NET_DVR_API BOOL __stdcall NET_DVR_TransPTZ_EX(LONG lRealHandle,char *pPTZCodeBuf,DWORD dwBufSize);
  2833. NET_DVR_API BOOL __stdcall NET_DVR_PTZControl_EX(LONG lRealHandle,DWORD dwPTZCommand,DWORD dwStop);
  2834. NET_DVR_API BOOL __stdcall NET_DVR_PTZPreset_EX(LONG lRealHandle,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);
  2835. NET_DVR_API BOOL __stdcall NET_DVR_PTZCruise(LONG lRealHandle,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);
  2836. NET_DVR_API BOOL __stdcall NET_DVR_PTZCruise_Other(LONG lUserID,LONG lChannel,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);
  2837. NET_DVR_API BOOL __stdcall NET_DVR_PTZCruise_EX(LONG lRealHandle,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);
  2838. NET_DVR_API BOOL __stdcall NET_DVR_PTZTrack(LONG lRealHandle, DWORD dwPTZTrackCmd);
  2839. NET_DVR_API BOOL __stdcall NET_DVR_PTZTrack_Other(LONG lUserID, LONG lChannel, DWORD dwPTZTrackCmd);
  2840. NET_DVR_API BOOL __stdcall NET_DVR_PTZTrack_EX(LONG lRealHandle, DWORD dwPTZTrackCmd);
  2841. NET_DVR_API BOOL __stdcall NET_DVR_PTZControlWithSpeed(LONG lRealHandle, DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);
  2842. NET_DVR_API BOOL __stdcall NET_DVR_PTZControlWithSpeed_Other(LONG lUserID, LONG lChannel, DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);
  2843. NET_DVR_API BOOL __stdcall NET_DVR_PTZControlWithSpeed_EX(LONG lRealHandle, DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);
  2844. NET_DVR_API BOOL __stdcall NET_DVR_GetPTZCruise(LONG lUserID,LONG lChannel,LONG lCruiseRoute, LPNET_DVR_CRUISE_RET lpCruiseRet);
  2845. NET_DVR_API BOOL __stdcall NET_DVR_PTZMltTrack(LONG lRealHandle,DWORD dwPTZTrackCmd, DWORD dwTrackIndex);
  2846. NET_DVR_API BOOL __stdcall NET_DVR_PTZMltTrack_Other(LONG lUserID,LONG lChannel,DWORD dwPTZTrackCmd, DWORD dwTrackIndex);
  2847. NET_DVR_API BOOL __stdcall NET_DVR_PTZMltTrack_EX(LONG lRealHandle,DWORD dwPTZTrackCmd, DWORD dwTrackIndex);
  2848. //文件查找与回放
  2849. NET_DVR_API LONG __stdcall NET_DVR_FindFile(LONG lUserID,LONG lChannel,DWORD dwFileType, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  2850. NET_DVR_API LONG __stdcall NET_DVR_FindNextFile(LONG lFindHandle,LPNET_DVR_FIND_DATA lpFindData);
  2851. NET_DVR_API BOOL __stdcall NET_DVR_FindClose(LONG lFindHandle);
  2852. NET_DVR_API LONG __stdcall NET_DVR_FindNextFile_V30(LONG lFindHandle, LPNET_DVR_FINDDATA_V30 lpFindData);
  2853. NET_DVR_API LONG __stdcall NET_DVR_FindFile_V30(LONG lUserID, LPNET_DVR_FILECOND pFindCond);
  2854. NET_DVR_API BOOL __stdcall NET_DVR_FindClose_V30(LONG lFindHandle);
  2855. //2007-04-16增加查询结果带卡号的文件查找
  2856. NET_DVR_API LONG __stdcall NET_DVR_FindNextFile_Card(LONG lFindHandle, LPNET_DVR_FINDDATA_CARD lpFindData);
  2857. NET_DVR_API LONG __stdcall NET_DVR_FindFile_Card(LONG lUserID, LONG lChannel, DWORD dwFileType, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  2858. NET_DVR_API BOOL __stdcall NET_DVR_LockFileByName(LONG lUserID, char *sLockFileName);
  2859. NET_DVR_API BOOL __stdcall NET_DVR_UnlockFileByName(LONG lUserID, char *sUnlockFileName);
  2860. NET_DVR_API LONG __stdcall NET_DVR_PlayBackByName(LONG lUserID,char *sPlayBackFileName, HWND hWnd);
  2861. NET_DVR_API LONG __stdcall NET_DVR_PlayBackByTime(LONG lUserID,LONG lChannel, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime, HWND hWnd);
  2862. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackControl(LONG lPlayHandle,DWORD dwControlCode,DWORD dwInValue,DWORD *LPOutValue);
  2863. NET_DVR_API BOOL __stdcall NET_DVR_StopPlayBack(LONG lPlayHandle);
  2864. NET_DVR_API BOOL __stdcall NET_DVR_SetPlayDataCallBack(LONG lPlayHandle,void(CALLBACK *fPlayDataCallBack) (LONG lPlayHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);
  2865. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackSaveData(LONG lPlayHandle,char *sFileName);
  2866. NET_DVR_API BOOL __stdcall NET_DVR_StopPlayBackSave(LONG lPlayHandle);
  2867. NET_DVR_API BOOL __stdcall NET_DVR_GetPlayBackOsdTime(LONG lPlayHandle, LPNET_DVR_TIME lpOsdTime);
  2868. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackCaptureFile(LONG lPlayHandle,char *sFileName);
  2869. NET_DVR_API LONG __stdcall NET_DVR_GetFileByName(LONG lUserID,char *sDVRFileName,char *sSavedFileName);
  2870. NET_DVR_API LONG __stdcall NET_DVR_GetFileByTime(LONG lUserID,LONG lChannel, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime, char *sSavedFileName);
  2871. NET_DVR_API BOOL __stdcall NET_DVR_StopGetFile(LONG lFileHandle);
  2872. NET_DVR_API int __stdcall NET_DVR_GetDownloadPos(LONG lFileHandle);
  2873. NET_DVR_API int __stdcall NET_DVR_GetPlayBackPos(LONG lPlayHandle);
  2874. //升级
  2875. NET_DVR_API LONG __stdcall NET_DVR_Upgrade(LONG lUserID, char *sFileName);
  2876. NET_DVR_API int __stdcall NET_DVR_GetUpgradeState(LONG lUpgradeHandle);
  2877. NET_DVR_API int __stdcall NET_DVR_GetUpgradeProgress(LONG lUpgradeHandle);
  2878. NET_DVR_API BOOL __stdcall NET_DVR_CloseUpgradeHandle(LONG lUpgradeHandle);
  2879. NET_DVR_API BOOL __stdcall NET_DVR_SetNetworkEnvironment(DWORD dwEnvironmentLevel);
  2880. //远程格式化硬盘
  2881. NET_DVR_API LONG __stdcall NET_DVR_FormatDisk(LONG lUserID,LONG lDiskNumber);
  2882. NET_DVR_API BOOL __stdcall NET_DVR_GetFormatProgress(LONG lFormatHandle, LONG *pCurrentFormatDisk,LONG *pCurrentDiskPos,LONG *pFormatStatic);
  2883. NET_DVR_API BOOL __stdcall NET_DVR_CloseFormatHandle(LONG lFormatHandle);
  2884. //报警
  2885. NET_DVR_API LONG __stdcall NET_DVR_SetupAlarmChan(LONG lUserID);
  2886. NET_DVR_API BOOL __stdcall NET_DVR_CloseAlarmChan(LONG lAlarmHandle);
  2887. NET_DVR_API LONG __stdcall NET_DVR_SetupAlarmChan_V30(LONG lUserID);
  2888. NET_DVR_API BOOL __stdcall NET_DVR_CloseAlarmChan_V30(LONG lAlarmHandle);
  2889. //语音对讲
  2890. NET_DVR_API LONG __stdcall NET_DVR_StartVoiceCom(LONG lUserID, void(CALLBACK *fVoiceDataCallBack)(LONG lVoiceComHandle, char *pRecvDataBuffer, DWORD dwBufSize, BYTE byAudioFlag, DWORD dwUser), DWORD dwUser);
  2891. NET_DVR_API LONG __stdcall NET_DVR_StartVoiceCom_V30(LONG lUserID, DWORD dwVoiceChan, BOOL bNeedCBNoEncData, void(CALLBACK *fVoiceDataCallBack)(LONG lVoiceComHandle, char *pRecvDataBuffer, DWORD dwBufSize, BYTE byAudioFlag, void* pUser), void* pUser);
  2892. NET_DVR_API BOOL __stdcall NET_DVR_SetVoiceComClientVolume(LONG lVoiceComHandle, WORD wVolume);
  2893. NET_DVR_API BOOL __stdcall NET_DVR_StopVoiceCom(LONG lVoiceComHandle);
  2894. //语音转发
  2895. NET_DVR_API LONG __stdcall NET_DVR_StartVoiceCom_MR(LONG lUserID, void(CALLBACK *fVoiceDataCallBack)(LONG lVoiceComHandle, char *pRecvDataBuffer, DWORD dwBufSize, BYTE byAudioFlag, DWORD dwUser), DWORD dwUser);
  2896. NET_DVR_API LONG __stdcall NET_DVR_StartVoiceCom_MR_V30(LONG lUserID, DWORD dwVoiceChan, void(CALLBACK *fVoiceDataCallBack)(LONG lVoiceComHandle, char *pRecvDataBuffer, DWORD dwBufSize, BYTE byAudioFlag, void* pUser), void* pUser);
  2897. NET_DVR_API BOOL __stdcall NET_DVR_VoiceComSendData(LONG lVoiceComHandle, char *pSendBuf, DWORD dwBufSize);
  2898. //语音广播
  2899. NET_DVR_API BOOL __stdcall NET_DVR_ClientAudioStart();
  2900. NET_DVR_API BOOL __stdcall NET_DVR_ClientAudioStart_V30(void(CALLBACK *fVoiceDataCallBack)(char *pRecvDataBuffer, DWORD dwBufSize, void * pUser), void *pUser);
  2901. NET_DVR_API BOOL __stdcall NET_DVR_ClientAudioStop();
  2902. NET_DVR_API BOOL __stdcall NET_DVR_AddDVR(LONG lUserID);
  2903. NET_DVR_API LONG __stdcall NET_DVR_AddDVR_V30(LONG lUserID, DWORD dwVoiceChan);
  2904. NET_DVR_API BOOL __stdcall NET_DVR_DelDVR(LONG lUserID);
  2905. NET_DVR_API BOOL __stdcall NET_DVR_DelDVR_V30(LONG lVoiceHandle);
  2906. ////////////////////////////////////////////////////////////
  2907. //透明通道设置
  2908. NET_DVR_API LONG __stdcall NET_DVR_SerialStart(LONG lUserID,LONG lSerialPort,void(CALLBACK *fSerialDataCallBack)(LONG lSerialHandle,char *pRecvDataBuffer,DWORD dwBufSize,DWORD dwUser),DWORD dwUser);
  2909. //485作为透明通道时,需要指明通道号,因为不同通道号485的设置可以不同(比如波特率)
  2910. NET_DVR_API BOOL __stdcall NET_DVR_SerialSend(LONG lSerialHandle, LONG lChannel, char *pSendBuf,DWORD dwBufSize);
  2911. NET_DVR_API BOOL __stdcall NET_DVR_SerialStop(LONG lSerialHandle);
  2912. NET_DVR_API BOOL __stdcall NET_DVR_SendTo232Port(LONG lUserID, char *pSendBuf, DWORD dwBufSize);
  2913. NET_DVR_API BOOL __stdcall NET_DVR_SendToSerialPort(LONG lUserID, DWORD dwSerialPort, DWORD dwSerialIndex, char *pSendBuf, DWORD dwBufSize);
  2914. //解码 nBitrate = 16000
  2915. NET_DVR_API void* __stdcall NET_DVR_InitG722Decoder(int nBitrate = 16000);
  2916. NET_DVR_API void __stdcall NET_DVR_ReleaseG722Decoder(void *pDecHandle);
  2917. NET_DVR_API BOOL __stdcall NET_DVR_DecodeG722Frame(void *pDecHandle, unsigned char* pInBuffer, unsigned char* pOutBuffer);
  2918. //编码
  2919. NET_DVR_API void* __stdcall NET_DVR_InitG722Encoder();
  2920. NET_DVR_API BOOL __stdcall NET_DVR_EncodeG722Frame(void *pEncodeHandle,unsigned char* pInBuffer, unsigned char* pOutBuffer);
  2921. NET_DVR_API void __stdcall NET_DVR_ReleaseG722Encoder(void *pEncodeHandle);
  2922. //远程控制本地显示
  2923. NET_DVR_API BOOL __stdcall NET_DVR_ClickKey(LONG lUserID, LONG lKeyIndex);
  2924. //远程控制设备端手动录像
  2925. NET_DVR_API BOOL __stdcall NET_DVR_StartDVRRecord(LONG lUserID,LONG lChannel,LONG lRecordType);
  2926. NET_DVR_API BOOL __stdcall NET_DVR_StopDVRRecord(LONG lUserID,LONG lChannel);
  2927. //解码卡
  2928. NET_DVR_API BOOL __stdcall NET_DVR_InitDevice_Card(long *pDeviceTotalChan);
  2929. NET_DVR_API BOOL __stdcall NET_DVR_ReleaseDevice_Card();
  2930. NET_DVR_API BOOL __stdcall NET_DVR_InitDDraw_Card(HWND hParent,COLORREF colorKey);
  2931. NET_DVR_API BOOL __stdcall NET_DVR_ReleaseDDraw_Card();
  2932. NET_DVR_API LONG __stdcall NET_DVR_RealPlay_Card(LONG lUserID,LPNET_DVR_CARDINFO lpCardInfo,long lChannelNum);
  2933. NET_DVR_API BOOL __stdcall NET_DVR_ResetPara_Card(LONG lRealHandle,LPNET_DVR_DISPLAY_PARA lpDisplayPara);
  2934. NET_DVR_API BOOL __stdcall NET_DVR_RefreshSurface_Card();
  2935. NET_DVR_API BOOL __stdcall NET_DVR_ClearSurface_Card();
  2936. NET_DVR_API BOOL __stdcall NET_DVR_RestoreSurface_Card();
  2937. NET_DVR_API BOOL __stdcall NET_DVR_OpenSound_Card(LONG lRealHandle);
  2938. NET_DVR_API BOOL __stdcall NET_DVR_CloseSound_Card(LONG lRealHandle);
  2939. NET_DVR_API BOOL __stdcall NET_DVR_SetVolume_Card(LONG lRealHandle,WORD wVolume);
  2940. NET_DVR_API BOOL __stdcall NET_DVR_AudioPreview_Card(LONG lRealHandle,BOOL bEnable);
  2941. NET_DVR_API LONG __stdcall NET_DVR_GetCardLastError_Card();
  2942. NET_DVR_API HANDLE __stdcall NET_DVR_GetChanHandle_Card(LONG lRealHandle);
  2943. NET_DVR_API BOOL __stdcall NET_DVR_CapturePicture_Card(LONG lRealHandle, char *sPicFileName);
  2944. //获取解码卡序列号此接口无效,改用GetBoardDetail接口获得(2005-12-08支持)
  2945. NET_DVR_API BOOL __stdcall NET_DVR_GetSerialNum_Card(long lChannelNum,DWORD *pDeviceSerialNo);
  2946. //日志
  2947. NET_DVR_API LONG __stdcall NET_DVR_FindDVRLog(LONG lUserID, LONG lSelectMode, DWORD dwMajorType,DWORD dwMinorType, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  2948. NET_DVR_API LONG __stdcall NET_DVR_FindNextLog(LONG lLogHandle, LPNET_DVR_LOG lpLogData);
  2949. NET_DVR_API BOOL __stdcall NET_DVR_FindLogClose(LONG lLogHandle);
  2950. NET_DVR_API LONG __stdcall NET_DVR_FindDVRLog_V30(LONG lUserID, LONG lSelectMode, DWORD dwMajorType,DWORD dwMinorType, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime, BOOL bOnlySmart = FALSE);
  2951. NET_DVR_API LONG __stdcall NET_DVR_FindNextLog_V30(LONG lLogHandle, LPNET_DVR_LOG_V30 lpLogData);
  2952. NET_DVR_API BOOL __stdcall NET_DVR_FindLogClose_V30(LONG lLogHandle);
  2953. //截止2004年8月5日,共113个接口
  2954. //ATM DVR
  2955. NET_DVR_API LONG __stdcall NET_DVR_FindFileByCard(LONG lUserID,LONG lChannel,DWORD dwFileType, int nFindType, BYTE *sCardNumber, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  2956. //截止2004年10月5日,共116个接口
  2957. //编码
  2958. NET_DVR_API void* __stdcall NET_DVR_InitG722Encoder();
  2959. NET_DVR_API BOOL __stdcall NET_DVR_EncodeG722Frame(void *pEncodeHandle,unsigned char* pInBuffer, unsigned char* pOutBuffer);
  2960. NET_DVR_API void __stdcall NET_DVR_ReleaseG722Encoder(void *pEncodeHandle);
  2961. //2005-09-15
  2962. NET_DVR_API BOOL __stdcall NET_DVR_CaptureJPEGPicture(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, char *sPicFileName);
  2963. //JPEG抓图到内存
  2964. NET_DVR_API BOOL __stdcall NET_DVR_CaptureJPEGPicture_NEW(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, char *sJpegPicBuffer, DWORD dwPicSize, LPDWORD lpSizeReturned);
  2965. //2006-02-16
  2966. NET_DVR_API int __stdcall NET_DVR_GetRealPlayerIndex(LONG lRealHandle);
  2967. NET_DVR_API int __stdcall NET_DVR_GetPlayBackPlayerIndex(LONG lPlayHandle);
  2968. //2006-08-28 704-640 缩放配置
  2969. NET_DVR_API BOOL __stdcall NET_DVR_SetScaleCFG(LONG lUserID, DWORD dwScale);
  2970. NET_DVR_API BOOL __stdcall NET_DVR_GetScaleCFG(LONG lUserID, DWORD *lpOutScale);
  2971. NET_DVR_API BOOL __stdcall NET_DVR_SetScaleCFG_V30(LONG lUserID, LPNET_DVR_SCALECFG pScalecfg);
  2972. NET_DVR_API BOOL __stdcall NET_DVR_GetScaleCFG_V30(LONG lUserID, LPNET_DVR_SCALECFG pScalecfg);
  2973. //2006-08-28 ATM机端口设置
  2974. NET_DVR_API BOOL __stdcall NET_DVR_SetATMPortCFG(LONG lUserID, WORD wATMPort);
  2975. NET_DVR_API BOOL __stdcall NET_DVR_GetATMPortCFG(LONG lUserID, WORD *LPOutATMPort);
  2976. //2006-11-10 支持显卡辅助输出
  2977. NET_DVR_API BOOL __stdcall NET_DVR_InitDDrawDevice();
  2978. NET_DVR_API BOOL __stdcall NET_DVR_ReleaseDDrawDevice();
  2979. NET_DVR_API LONG __stdcall NET_DVR_GetDDrawDeviceTotalNums();
  2980. NET_DVR_API BOOL __stdcall NET_DVR_SetDDrawDevice(LONG lPlayPort, DWORD nDeviceNum);
  2981. NET_DVR_API BOOL __stdcall NET_DVR_PTZSelZoomIn(LONG lRealHandle, LPNET_DVR_POINT_FRAME pStruPointFrame);
  2982. NET_DVR_API BOOL __stdcall NET_DVR_PTZSelZoomIn_EX(LONG lUserID, LONG lChannel, LPNET_DVR_POINT_FRAME pStruPointFrame);
  2983. //解码设备DS-6001D/DS-6001F
  2984. NET_DVR_API BOOL __stdcall NET_DVR_StartDecode(LONG lUserID, LONG lChannel, LPNET_DVR_DECODERINFO lpDecoderinfo);
  2985. NET_DVR_API BOOL __stdcall NET_DVR_StopDecode(LONG lUserID, LONG lChannel);
  2986. NET_DVR_API BOOL __stdcall NET_DVR_GetDecoderState(LONG lUserID, LONG lChannel, LPNET_DVR_DECODERSTATE lpDecoderState);
  2987. //2005-08-01
  2988. NET_DVR_API BOOL __stdcall NET_DVR_SetDecInfo(LONG lUserID, LONG lChannel, LPNET_DVR_DECCFG lpDecoderinfo);
  2989. NET_DVR_API BOOL __stdcall NET_DVR_GetDecInfo(LONG lUserID, LONG lChannel, LPNET_DVR_DECCFG lpDecoderinfo);
  2990. NET_DVR_API BOOL __stdcall NET_DVR_SetDecTransPort(LONG lUserID, LPNET_DVR_PORTCFG lpTransPort);
  2991. NET_DVR_API BOOL __stdcall NET_DVR_GetDecTransPort(LONG lUserID, LPNET_DVR_PORTCFG lpTransPort);
  2992. NET_DVR_API BOOL __stdcall NET_DVR_DecPlayBackCtrl(LONG lUserID, LONG lChannel, DWORD dwControlCode, DWORD dwInValue,DWORD *LPOutValue, LPNET_DVR_PLAYREMOTEFILE lpRemoteFileInfo);
  2993. NET_DVR_API BOOL __stdcall NET_DVR_StartDecSpecialCon(LONG lUserID, LONG lChannel, LPNET_DVR_DECCHANINFO lpDecChanInfo);
  2994. NET_DVR_API BOOL __stdcall NET_DVR_StopDecSpecialCon(LONG lUserID, LONG lChannel, LPNET_DVR_DECCHANINFO lpDecChanInfo);
  2995. NET_DVR_API BOOL __stdcall NET_DVR_DecCtrlDec(LONG lUserID, LONG lChannel, DWORD dwControlCode);
  2996. NET_DVR_API BOOL __stdcall NET_DVR_DecCtrlScreen(LONG lUserID, LONG lChannel, DWORD dwControl);
  2997. NET_DVR_API BOOL __stdcall NET_DVR_GetDecCurLinkStatus(LONG lUserID, LONG lChannel, LPNET_DVR_DECSTATUS lpDecStatus);
  2998. //多路解码器
  2999. //2007-11-30 V211支持以下接口 //11
  3000. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStartDynamic(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DYNAMIC_DEC lpDynamicInfo);
  3001. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStopDynamic(LONG lUserID, DWORD dwDecChanNum);
  3002. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanInfo(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_CHAN_INFO lpInter);
  3003. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetLoopDecChanInfo(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO lpInter);
  3004. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecChanInfo(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO lpInter);
  3005. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetLoopDecChanEnable(LONG lUserID, DWORD dwDecChanNum, DWORD dwEnable);
  3006. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecChanEnable(LONG lUserID, DWORD dwDecChanNum, LPDWORD lpdwEnable);
  3007. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecEnable(LONG lUserID, LPDWORD lpdwEnable);
  3008. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetDecChanEnable(LONG lUserID, DWORD dwDecChanNum, DWORD dwEnable);
  3009. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanEnable(LONG lUserID, DWORD dwDecChanNum, LPDWORD lpdwEnable);
  3010. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanStatus(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_CHAN_STATUS lpInter);
  3011. //2007-12-22 增加支持接口 //18
  3012. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetTranInfo(LONG lUserID, LPNET_DVR_MATRIX_TRAN_CHAN_CONFIG lpTranInfo);
  3013. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetTranInfo(LONG lUserID, LPNET_DVR_MATRIX_TRAN_CHAN_CONFIG lpTranInfo);
  3014. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetRemotePlay(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_REMOTE_PLAY lpInter);
  3015. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetRemotePlayControl(LONG lUserID, DWORD dwDecChanNum, DWORD dwControlCode, DWORD dwInValue, DWORD *LPOutValue);
  3016. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetRemotePlayStatus(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS lpOuter);
  3017. //end
  3018. NET_DVR_API BOOL __stdcall NET_DVR_RefreshPlay(LONG lPlayHandle);
  3019. //恢复默认值
  3020. NET_DVR_API BOOL __stdcall NET_DVR_RestoreConfig(LONG lUserID);
  3021. //保存参数
  3022. NET_DVR_API BOOL __stdcall NET_DVR_SaveConfig(LONG lUserID);
  3023. //重启
  3024. NET_DVR_API BOOL __stdcall NET_DVR_RebootDVR(LONG lUserID);
  3025. //关闭DVR
  3026. NET_DVR_API BOOL __stdcall NET_DVR_ShutDownDVR(LONG lUserID);
  3027. //参数配置 begin
  3028. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned);
  3029. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize);
  3030. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRWorkState_V30(LONG lUserID, LPNET_DVR_WORKSTATE_V30 lpWorkState);
  3031. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRWorkState(LONG lUserID, LPNET_DVR_WORKSTATE lpWorkState);
  3032. NET_DVR_API BOOL __stdcall NET_DVR_SetVideoEffect(LONG lUserID, LONG lChannel, DWORD dwBrightValue, DWORD dwContrastValue, DWORD dwSaturationValue, DWORD dwHueValue);
  3033. NET_DVR_API BOOL __stdcall NET_DVR_GetVideoEffect(LONG lUserID, LONG lChannel, DWORD *pBrightValue, DWORD *pContrastValue, DWORD *pSaturationValue, DWORD *pHueValue);
  3034. NET_DVR_API BOOL __stdcall NET_DVR_ClientGetframeformat(LONG lUserID, LPNET_DVR_FRAMEFORMAT lpFrameFormat);
  3035. NET_DVR_API BOOL __stdcall NET_DVR_ClientSetframeformat(LONG lUserID, LPNET_DVR_FRAMEFORMAT lpFrameFormat);
  3036. NET_DVR_API BOOL __stdcall NET_DVR_GetAtmFrameFormat_V30(LONG lUserID, LONG lAtmChannel, LPNET_DVR_ATM_FRAMEFORMAT_V30 lpFrameFormat);
  3037. NET_DVR_API BOOL __stdcall NET_DVR_SetAtmFrameFormat_V30(LONG lUserID, LONG lAtmChannel, LPNET_DVR_ATM_FRAMEFORMAT_V30 lpFrameFormat);
  3038. NET_DVR_API BOOL __stdcall NET_DVR_GetAtmProtocol(LONG lUserID, LPNET_DVR_ATM_PROTOCOL lpAtmProtocol);
  3039. NET_DVR_API BOOL __stdcall NET_DVR_GetAlarmOut_V30(LONG lUserID, LPNET_DVR_ALARMOUTSTATUS_V30 lpAlarmOutState);
  3040. NET_DVR_API BOOL __stdcall NET_DVR_GetAlarmOut(LONG lUserID, LPNET_DVR_ALARMOUTSTATUS lpAlarmOutState);
  3041. NET_DVR_API BOOL __stdcall NET_DVR_SetAlarmOut(LONG lUserID, LONG lAlarmOutPort,LONG lAlarmOutStatic);
  3042. //视频参数调节
  3043. NET_DVR_API BOOL __stdcall NET_DVR_ClientSetVideoEffect(LONG lRealHandle,DWORD dwBrightValue,DWORD dwContrastValue, DWORD dwSaturationValue,DWORD dwHueValue);
  3044. NET_DVR_API BOOL __stdcall NET_DVR_ClientGetVideoEffect(LONG lRealHandle,DWORD *pBrightValue,DWORD *pContrastValue, DWORD *pSaturationValue,DWORD *pHueValue);
  3045. //配置文件
  3046. NET_DVR_API BOOL __stdcall NET_DVR_GetConfigFile(LONG lUserID, char *sFileName);
  3047. NET_DVR_API BOOL __stdcall NET_DVR_SetConfigFile(LONG lUserID, char *sFileName);
  3048. NET_DVR_API BOOL __stdcall NET_DVR_GetConfigFile_V30(LONG lUserID, char *sOutBuffer, DWORD dwOutSize, DWORD *pReturnSize);
  3049. NET_DVR_API BOOL __stdcall NET_DVR_GetConfigFile_EX(LONG lUserID, char *sOutBuffer, DWORD dwOutSize);
  3050. NET_DVR_API BOOL __stdcall NET_DVR_SetConfigFile_EX(LONG lUserID, char *sInBuffer, DWORD dwInSize);
  3051. //启用日志文件写入接口
  3052. NET_DVR_API BOOL __stdcall NET_DVR_SetLogToFile(BOOL bLogEnable = FALSE, char * strLogDir = NULL, BOOL bAutoDel = TRUE);
  3053. NET_DVR_API BOOL __stdcall NET_DVR_GetSDKState(LPNET_DVR_SDKSTATE pSDKState);
  3054. NET_DVR_API BOOL __stdcall NET_DVR_GetSDKAbility(LPNET_DVR_SDKABL pSDKAbl);
  3055. NET_DVR_API BOOL __stdcall NET_DVR_GetPTZProtocol(LONG lUserID, NET_DVR_PTZCFG *pPtzcfg);
  3056. //前面板锁定
  3057. NET_DVR_API BOOL __stdcall NET_DVR_LockPanel(LONG lUserID);
  3058. NET_DVR_API BOOL __stdcall NET_DVR_UnLockPanel(LONG lUserID);
  3059. NET_DVR_API BOOL __stdcall NET_DVR_SetRtspConfig(LONG lUserID, DWORD dwCommand, LPNET_DVR_RTSPCFG lpInBuffer, DWORD dwInBufferSize);
  3060. NET_DVR_API BOOL __stdcall NET_DVR_GetRtspConfig(LONG lUserID, DWORD dwCommand, LPNET_DVR_RTSPCFG lpOutBuffer, DWORD dwOutBufferSize);
  3061. //SDK_V222
  3062. //智能设备类型
  3063. #define IDS6002_HF_B 62//双机跟踪:DS6002-HF/B
  3064. #define IDS6101_HF_B 63//行为分析:DS6101-HF/B
  3065. #define IDS52XX 64//智能分析仪IVMS
  3066. //能力获取命令
  3067. #define VCA_DEV_ABILITY 0x100 //设备智能分析的总能力
  3068. #define VCA_CHAN_ABILITY 0x110 //行为分析能力
  3069. #define MATRIXDECODER_ABILITY 0x200 //多路解码器显示、解码能力
  3070. //获取/设置大接口参数配置命令
  3071. //行为对应(NET_VCA_RULECFG)
  3072. #define NET_DVR_SET_RULECFG 152 //设置行为分析规则
  3073. #define NET_DVR_GET_RULECFG 153 //获取行为分析规则,
  3074. //球机标定参数(NET_DVR_TRACK_CFG )
  3075. #define NET_DVR_SET_TRACK_CFG 160//设置球机的配置参数
  3076. #define NET_DVR_GET_TRACK_CFG 161//获取球机的配置参数
  3077. //智能分析仪取流配置结构
  3078. #define NET_DVR_SET_IVMS_STREAMCFG 162 //设置智能分析仪取流参数
  3079. #define NET_DVR_GET_IVMS_STREAMCFG 163 //获取智能分析仪取流参数
  3080. //智能控制参数结构
  3081. #define NET_DVR_SET_VCA_CTRLCFG 164 //设置智能控制参数
  3082. #define NET_DVR_GET_VCA_CTRLCFG 165 //获取智能控制参数
  3083. //屏蔽区域NET_VCA_MASK_REGION_LIST
  3084. #define NET_DVR_SET_VCA_MASK_REGION 166 //设置屏蔽区域参数
  3085. #define NET_DVR_GET_VCA_MASK_REGION 167 //获取屏蔽区域参数
  3086. //ATM进入区域 NET_VCA_ENTER_REGION
  3087. #define NET_DVR_SET_VCA_ENTER_REGION 168 //设置进入区域参数
  3088. #define NET_DVR_GET_VCA_ENTER_REGION 169 //获取进入区域参数
  3089. //标定线配置NET_VCA_LINE_SEGMENT_LIST
  3090. #define NET_DVR_SET_VCA_LINE_SEGMENT 170 //设置标定线
  3091. #define NET_DVR_GET_VCA_LINE_SEGMENT 171 //获取标定线
  3092. // ivms屏蔽区域NET_IVMS_MASK_REGION_LIST
  3093. #define NET_DVR_SET_IVMS_MASK_REGION 172 //设置IVMS屏蔽区域参数
  3094. #define NET_DVR_GET_IVMS_MASK_REGION 173 //获取IVMS屏蔽区域参数
  3095. // ivms进入检测区域NET_IVMS_ENTER_REGION
  3096. #define NET_DVR_SET_IVMS_ENTER_REGION 174 //设置IVMS进入区域参数
  3097. #define NET_DVR_GET_IVMS_ENTER_REGION 175 //获取IVMS进入区域参数
  3098. #define NET_DVR_SET_IVMS_BEHAVIORCFG 176 //设置智能分析仪行为规则参数
  3099. #define NET_DVR_GET_IVMS_BEHAVIORCFG 177 //获取智能分析仪行为规则参数
  3100. // IVMS 回放检索
  3101. #define NET_DVR_IVMS_SET_SEARCHCFG 178 //设置IVMS回放检索参数
  3102. #define NET_DVR_IVMS_GET_SEARCHCFG 179 //获取IVMS回放检索参数
  3103. //对应NET_VCA_RULE_ALARM
  3104. #define COMM_ALARM_RULE 0x1102 //行为分析报警信息
  3105. //结构参数宏定义
  3106. #define VCA_MAX_POLYGON_POINT_NUM 10 //检测区域最多支持10个点的多边形
  3107. #define MAX_RULE_NUM 8 //最多规则条数
  3108. #define MAX_TARGET_NUM 30 //最多目标个数
  3109. #define MAX_CALIB_PT 6 //最大标定点个数
  3110. #define MIN_CALIB_PT 4 //最小标定点个数
  3111. #define MAX_TIMESEGMENT_2 2 //最大时间段数
  3112. #define MAX_MASK_REGION_NUM 4 //最多四个屏蔽区域
  3113. #define MAX_SEGMENT_NUM 6 //摄像机标定最大样本线数目
  3114. #define MIN_SEGMENT_NUM 3 //摄像机标定最小样本线数目
  3115. //智能控制信息
  3116. #define MAX_VCA_CHAN 16//最大智能通道数
  3117. typedef struct tagNET_VCA_CTRLINFO
  3118. {
  3119. BYTE byVCAEnable; //是否开启智能
  3120. BYTE byVCAType; //智能能力类型,VCA_CHAN_ABILITY_TYPE
  3121. BYTE byStreamWithVCA; //码流中是否带智能信息
  3122. BYTE byMode; //模式,VCA_CHAN_MODE_TYPE ,atm能力的时候需要配置
  3123. BYTE byRes[4]; //保留,设置为0
  3124. }NET_VCA_CTRLINFO, * LPNET_VCA_CTRLINFO;
  3125. //智能控制信息结构
  3126. typedef struct tagNET_VCA_CTRLCFG
  3127. {
  3128. DWORD dwSize;
  3129. NET_VCA_CTRLINFO struCtrlInfo[MAX_VCA_CHAN]; //控制信息,数组0对应设备的起始通道
  3130. BYTE byRes[16];
  3131. }NET_VCA_CTRLCFG, * LPNET_VCA_CTRLCFG;
  3132. //智能设备能力集
  3133. typedef struct tagNET_VCA_DEV_ABILITY
  3134. {
  3135. DWORD dwSize; //结构长度
  3136. BYTE byVCAChanNum; //智能通道个数
  3137. BYTE byPlateChanNum; //车牌通道个数
  3138. BYTE byBBaseChanNum; //行为基本版个数
  3139. BYTE byBAdvanceChanNum; //行为高级版个数
  3140. BYTE byBFullChanNum; //行为完整版个数
  3141. BYTE byATMChanNum; //智能ATM个数
  3142. BYTE byRes[34];
  3143. }NET_VCA_DEV_ABILITY, *LPNET_VCA_DEV_ABILITY;
  3144. //行为分析能力类型
  3145. typedef enum _VCA_ABILITY_TYPE_
  3146. {
  3147. TRAVERSE_PLANE_ABILITY = 0x01, //穿越警戒面
  3148. ENTER_AREA_ABILITY = 0x02, //进入区域
  3149. EXIT_AREA_ABILITY = 0x04, //离开区域
  3150. INTRUSION_ABILITY = 0x08, //入侵
  3151. LOITER_ABILITY = 0x10, //徘徊
  3152. LEFT_TAKE_ABILITY = 0x20, //丢包捡包
  3153. PARKING_ABILITY = 0x40, //停车
  3154. RUN_ABILITY = 0x80, //奔跑
  3155. HIGH_DENSITY_ABILITY = 0x100, //内人员密度
  3156. LF_TRACK_ABILITY = 0x200, //球机跟踪
  3157. // STICK_UP_ABILITY = 0x40000000, //贴纸条
  3158. // INSTALL_SCANNER_ABILITY = 0x80000000 //安装读卡器
  3159. }VCA_ABILITY_TYPE;
  3160. //智能通道类型
  3161. typedef enum _VCA_CHAN_ABILITY_TYPE_
  3162. {
  3163. VCA_BEHAVIOR_BASE = 1, //行为分析基本版
  3164. VCA_BEHAVIOR_ADVANCE = 2, //行为分析高级版
  3165. VCA_BEHAVIOR_FULL = 3, //行为分析完整版
  3166. VCA_PLATE = 4, //车牌能力
  3167. VCA_ATM = 5 //ATM能力
  3168. }VCA_CHAN_ABILITY_TYPE;
  3169. //智能ATM模式类型(ATM能力特有)
  3170. typedef enum _VCA_CHAN_MODE_TYPE_
  3171. {
  3172. VCA_ATM_PANEL = 0, //ATM面板
  3173. VCA_ATM_SURROUND = 1 //ATM环境
  3174. }VCA_CHAN_MODE_TYPE;
  3175. //通道能力输入参数
  3176. typedef struct tagNET_VCA_CHAN_IN_PARAM
  3177. {
  3178. BYTE byVCAType; //VCA_CHAN_ABILITY_TYPE枚举值
  3179. BYTE byMode; //模式,VCA_CHAN_MODE_TYPE ,atm能力的时候需要配置
  3180. BYTE byRes[2]; //保留,设置为0
  3181. }NET_VCA_CHAN_IN_PARAM, *LPNET_VCA_CHAN_IN_PARAM;
  3182. //行为能力集结构
  3183. typedef struct tagNET_VCA_BEHAVIOR_ABILITY
  3184. {
  3185. DWORD dwSize; //结构长度
  3186. DWORD dwAbilityType; //支持的能力类型,按位表示,见VCA_ABILITY_TYPE定义
  3187. BYTE byMaxRuleNum; //最大规则数
  3188. BYTE byMaxTargetNum; //最大目标数
  3189. BYTE byRes[10]; //保留,设置为0
  3190. }NET_VCA_BEHAVIOR_ABILITY, *LPNET_VCA_BEHAVIOR_ABILITY;
  3191. NET_DVR_API BOOL __stdcall NET_DVR_GetDeviceAbility(LONG lUserID, DWORD dwAbilityType, char* pInBuf, DWORD dwInLength, char* pOutBuf, DWORD dwOutLength);
  3192. //智能共用结构
  3193. //坐标值归一化,浮点数值为当前画面的百分比大小, 精度为小数点后三位
  3194. //点坐标结构
  3195. typedef struct tagNET_VCA_POINT
  3196. {
  3197. float fX; // X轴坐标, 0.001~1
  3198. float fY; //Y轴坐标, 0.001~1
  3199. }NET_VCA_POINT, *LPNET_VCA_POINT;
  3200. //区域框结构
  3201. typedef struct tagNET_VCA_RECT
  3202. {
  3203. float fX; //边界框左上角点的X轴坐标, 0.001~1
  3204. float fY; //边界框左上角点的Y轴坐标, 0.001~1
  3205. float fWidth; //边界框的宽度, 0.001~1
  3206. float fHeight; //边界框的高度, 0.001~1
  3207. }NET_VCA_RECT, *LPNET_VCA_RECT;
  3208. //行为分析事件类型
  3209. typedef enum _VCA_EVENT_TYPE_
  3210. {
  3211. VCA_TRAVERSE_PLANE = 0x1, //穿越警戒面
  3212. VCA_ENTER_AREA = 0x2, //目标进入区域,支持区域规则
  3213. VCA_EXIT_AREA = 0x4, //目标离开区域,支持区域规则
  3214. VCA_INTRUSION = 0x8, //周界入侵,支持区域规则
  3215. VCA_LOITER = 0x10, //徘徊,支持区域规则
  3216. VCA_LEFT_TAKE = 0x20, //丢包捡包,支持区域规则
  3217. VCA_PARKING = 0x40, //停车,支持区域规则
  3218. VCA_RUN = 0x80, //奔跑,支持区域规则
  3219. VCA_HIGH_DENSITY = 0x100, //区域内人员密度,支持区域规则
  3220. VCA_STICK_UP = 0x40000000, //贴纸条,支持区域规则
  3221. VCA_INSTALL_SCANNER = 0x80000000 //安装读卡器,支持区域规则
  3222. }VCA_EVENT_TYPE;
  3223. //警戒面穿越方向类型
  3224. typedef enum _VCA_CROSS_DIRECTION_
  3225. {
  3226. VCA_BOTH_DIRECTION, // 双向
  3227. VCA_LEFT_GO_RIGHT, // 由左至右
  3228. VCA_RIGHT_GO_LEFT // 由右至左
  3229. }VCA_CROSS_DIRECTION;
  3230. //线结构
  3231. typedef struct tagNET_VCA_LINE
  3232. {
  3233. NET_VCA_POINT struStart; //起点
  3234. NET_VCA_POINT struEnd; //终点
  3235. }NET_VCA_LINE, *LPNET_VCA_LINE;
  3236. //多边型结构体
  3237. typedef struct tagNET_VCA_POLYGON
  3238. {
  3239. DWORD dwPointNum; //有效点 大于等于3,若是3点在一条线上认为是无效区域,线交叉认为是无效区域
  3240. NET_VCA_POINT struPos[VCA_MAX_POLYGON_POINT_NUM]; //多边形边界点,最多十个
  3241. }NET_VCA_POLYGON, *LPNET_VCA_POLYGON;
  3242. //警戒面参数
  3243. typedef struct tagNET_VCA_TRAVERSE_PLANE
  3244. {
  3245. NET_VCA_LINE struPlaneBottom; //警戒面底边
  3246. VCA_CROSS_DIRECTION dwCrossDirection; //穿越方向: 0-双向,1-从左到右,2-从右到左
  3247. BYTE byRes1; //保留
  3248. BYTE byPlaneHeight; //警戒面高度
  3249. BYTE byRes2[38]; //保留
  3250. }NET_VCA_TRAVERSE_PLANE, *LPNET_VCA_TRAVERSE_PLANE;
  3251. //进入/离开区域参数
  3252. typedef struct tagNET_VCA_AREA
  3253. {
  3254. NET_VCA_POLYGON struRegion;//区域范围
  3255. BYTE byRes[8];
  3256. }NET_VCA_AREA, *LPNET_VCA_AREA;
  3257. //根据报警延迟时间来标识报警中带图片,报警间隔和IO报警一致,1秒发送一个。
  3258. //入侵参数
  3259. typedef struct tagNET_VCA_INTRUSION
  3260. {
  3261. NET_VCA_POLYGON struRegion;//区域范围
  3262. WORD wDuration; //报警延迟时间: 1-120秒,建议5秒,判断是有效报警的时间
  3263. BYTE byRes[6];
  3264. }NET_VCA_INTRUSION, *LPNET_VCA_INTRUSION;
  3265. //徘徊参数
  3266. typedef struct tagNET_VCA_PARAM_LOITER
  3267. {
  3268. NET_VCA_POLYGON struRegion;//区域范围
  3269. WORD wDuration; //触发徘徊报警的持续时间:1-120秒,建议10秒
  3270. BYTE byRes[6];
  3271. }NET_VCA_LOITER, *LPNET_VCA_LOITER;
  3272. //丢包/捡包参数
  3273. typedef struct tagNET_VCA_TAKE_LEFT
  3274. {
  3275. NET_VCA_POLYGON struRegion;//区域范围
  3276. WORD wDuration; //触发丢包/捡包报警的持续时间:1-120秒,建议10秒
  3277. BYTE byRes[6];
  3278. }NET_VCA_TAKE_LEFT, *LPNET_VCA_TAKE_LEFT;
  3279. //停车参数
  3280. typedef struct tagNET_VCA_PARKING
  3281. {
  3282. NET_VCA_POLYGON struRegion; //区域范围
  3283. WORD wDuration; //触发停车报警持续时间:1-120秒,建议10秒
  3284. BYTE byRes[6];
  3285. }NET_VCA_PARKING, *LPNET_VCA_PARKING;
  3286. //奔跑参数
  3287. typedef struct tagNET_VCA_RUN
  3288. {
  3289. NET_VCA_POLYGON struRegion; //区域范围
  3290. float fRunDistance; //人奔跑最大距离, 范围: [0.1, 1.00]
  3291. BYTE byRes[4];
  3292. }NET_VCA_RUN, *LPNET_VCA_RUN;
  3293. //人员聚集参数
  3294. typedef struct tagNET_VCA_HIGH_DENSITY
  3295. {
  3296. NET_VCA_POLYGON struRegion;//区域范围
  3297. float fDensity; //密度比率, 范围: [0.1, 1.0]
  3298. BYTE byRes[4];
  3299. }NET_VCA_HIGH_DENSITY, *LPNET_VCA_HIGH_DENSITY;
  3300. //贴纸条参数
  3301. typedef struct tagNET_VCA_STICK_UP
  3302. {
  3303. NET_VCA_POLYGON struRegion;//区域范围
  3304. WORD wDuration; //报警持续时间:10-60秒,建议10秒
  3305. BYTE bySensitivity; //灵敏度参数,范围[1,5]
  3306. BYTE byRes[5];
  3307. }NET_VCA_STICK_UP, *LPNET_VCA_STICK_UP;
  3308. //读卡器参数
  3309. typedef struct tagNET_VCA_SCANNER
  3310. {
  3311. NET_VCA_POLYGON struRegion;//区域范围
  3312. WORD wDuration; //读卡持续时间:10-60秒
  3313. BYTE bySensitivity; //灵敏度参数,范围[1,5]
  3314. BYTE byRes[5];
  3315. }NET_VCA_SCANNER, *LPNET_VCA_SCANNER;
  3316. //警戒事件参数
  3317. typedef union tagNET_VCA_EVENT_UNION
  3318. {
  3319. DWORD uLen[23]; //参数
  3320. NET_VCA_TRAVERSE_PLANE struTraversePlane; //穿越警戒面参数
  3321. NET_VCA_AREA struArea; //进入/离开区域参数
  3322. NET_VCA_INTRUSION struIntrusion; //入侵参数
  3323. NET_VCA_LOITER struLoiter; //徘徊参数
  3324. NET_VCA_TAKE_LEFT struTakeTeft; //丢包/捡包参数
  3325. NET_VCA_PARKING struParking; //停车参数
  3326. NET_VCA_RUN struRun; //奔跑参数
  3327. NET_VCA_HIGH_DENSITY struHighDensity; //人员聚集参数
  3328. NET_VCA_STICK_UP struStickUp; //贴纸条
  3329. NET_VCA_SCANNER struScanner; //读卡器参数
  3330. }NET_VCA_EVENT_UNION, *LPNET_VCA_EVENT_UNION;
  3331. // 尺寸过滤器类型
  3332. typedef enum _VCA_SIZE_FILTER_MODE_
  3333. {
  3334. IMAGE_PIX_MODE, //根据像素大小设置
  3335. REAL_WORLD_MODE //根据实际大小设置
  3336. }SIZE_FILTER_MODE;
  3337. //尺寸过滤器
  3338. typedef struct tagNET_VCA_SIZE_FILTER
  3339. {
  3340. BYTE byActive; //是否激活尺寸过滤器 0-否 非0-是
  3341. BYTE byMode; //过滤器模式SIZE_FILTER_MODE
  3342. BYTE byRes[2]; //保留,置0
  3343. NET_VCA_RECT struMiniRect; //最小目标框,全0表示不设置
  3344. NET_VCA_RECT struMaxRect; //最大目标框,全0表示不设置
  3345. }NET_VCA_SIZE_FILTER, *LPNET_VCA_SIZE_FILTER;
  3346. //警戒规则结构
  3347. typedef struct tagNET_VCA_ONE_RULE
  3348. {
  3349. BYTE byActive; //是否激活规则,0-否,非0-是
  3350. BYTE byRes[7]; //保留,设置为0字段
  3351. BYTE byRuleName[NAME_LEN]; //规则名称
  3352. VCA_EVENT_TYPE dwEventType; //行为分析事件类型
  3353. NET_VCA_EVENT_UNION uEventParam; //行为分析事件参数
  3354. NET_VCA_SIZE_FILTER struSizeFilter; //尺寸过滤器
  3355. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_2];//布防时间
  3356. NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //处理方式
  3357. BYTE byRelRecordChan[MAX_CHANNUM_V30]; //报警触发的录象通道,为1表示触发该通道
  3358. }NET_VCA_ONE_RULE, *LPNET_VCA_ONE_RULE;
  3359. //行为分析配置结构体
  3360. typedef struct tagNET_VCA_RULECFG
  3361. {
  3362. DWORD dwSize; //结构长度
  3363. BYTE byPicProType; //报警时图片处理方式 0-不处理 非0-上传
  3364. BYTE byRes[3];
  3365. NET_DVR_JPEGPARA struPictureParam; //图片规格结构
  3366. NET_VCA_ONE_RULE struRule[MAX_RULE_NUM]; //规则数组
  3367. }NET_VCA_RULECFG, *LPNET_VCA_RULECFG;
  3368. //简化目标结构体
  3369. typedef struct tagNET_VCA_TARGET_INFO
  3370. {
  3371. DWORD dwID; //目标ID ,人员密度过高报警时为0
  3372. NET_VCA_RECT struRect; //目标边界框
  3373. BYTE byRes[4]; //保留
  3374. }NET_VCA_TARGET_INFO, *LPNET_VCA_TARGET_INFO;
  3375. //简化的规则信息, 包含规则的基本信息
  3376. typedef struct tagNET_VCA_RULE_INFO
  3377. {
  3378. BYTE byRuleID; //规则ID,0-7
  3379. BYTE byRes[3]; //保留
  3380. BYTE byRuleName[NAME_LEN]; //规则名称
  3381. VCA_EVENT_TYPE dwEventType; //警戒事件类型
  3382. NET_VCA_EVENT_UNION uEventParam;//事件参数
  3383. }NET_VCA_RULE_INFO, *LPNET_VCA_RULE_INFO;
  3384. //前端设备地址信息,智能分析仪表示的是前端设备的地址信息,其他设备表示本机的地址
  3385. typedef struct tagNET_VCA_DEV_INFO
  3386. {
  3387. NET_DVR_IPADDR struDevIP; //前端设备地址,
  3388. WORD wPort; //前端设备端口号,
  3389. BYTE byChannel; //前端设备通道,
  3390. BYTE byRes; // 保留字节
  3391. } NET_VCA_DEV_INFO, *LPNET_VCA_DEV_INFO;
  3392. //行为分析结果上报结构
  3393. typedef struct tagNET_VCA_RULE_ALARM
  3394. {
  3395. DWORD dwSize; //结构长度
  3396. DWORD dwRelativeTime; //相对时标
  3397. DWORD dwAbsTime; //绝对时标
  3398. NET_VCA_RULE_INFO struRuleInfo; //事件规则信息
  3399. NET_VCA_TARGET_INFO struTargetInfo; //报警目标信息
  3400. NET_VCA_DEV_INFO struDevInfo; //前端设备信息
  3401. DWORD dwPicDataLen; //返回图片的长度 为0表示没有图片,大于0表示该结构后面紧跟图片数据*/
  3402. DWORD dwRes[4]; //保留,设置为0
  3403. BYTE *pImage; //指向图片的指针
  3404. }NET_VCA_RULE_ALARM, *LPNET_VCA_RULE_ALARM;
  3405. //行为分析规则DSP信息叠加结构
  3406. typedef struct tagNET_VCA_DRAW_MODE
  3407. {
  3408. DWORD dwSize;
  3409. BYTE byDspAddTarget; //编码是否叠加目标
  3410. BYTE byDspAddRule; //编码是否叠加规则
  3411. BYTE byDspPicAddTarget; //抓图是否叠加目标
  3412. BYTE byDspPicAddRule; //抓图是否叠加规则
  3413. BYTE byRes[4];
  3414. }NET_VCA_DRAW_MODE, *LPNET_VCA_DRAW_MODE;
  3415. //获取/设置行为分析目标叠加接口
  3416. NET_DVR_API BOOL __stdcall NET_DVR_GetVCADrawMode(LONG lUserID, LONG lChannel, LPNET_VCA_DRAW_MODE lpDrawMode);
  3417. NET_DVR_API BOOL __stdcall NET_DVR_SetVCADrawMode(LONG lUserID, LONG lChannel, LPNET_VCA_DRAW_MODE lpDrawMode);
  3418. //标定点子结构
  3419. typedef struct tagNET_DVR_CB_POINT
  3420. {
  3421. NET_VCA_POINT struPoint; //标定点,主摄像机(枪机)
  3422. NET_DVR_PTZPOS struPtzPos; //球机输入的PTZ坐标
  3423. BYTE byRes[8];
  3424. }NET_DVR_CB_POINT, LPNET_DVR_CB_POINT;
  3425. //标定参数配置结构
  3426. typedef struct tagNET_DVR_TRACK_CALIBRATION_PARAM
  3427. {
  3428. BYTE byPointNum; //有效标定点个数
  3429. BYTE byRes[3];
  3430. NET_DVR_CB_POINT struCBPoint[MAX_CALIB_PT]; //标定点组
  3431. }NET_DVR_TRACK_CALIBRATION_PARAM, *LPNET_DVR_TRACK_CALIBRATION_PARAM;
  3432. //球机配置结构
  3433. typedef struct tagNET_DVR_TRACK_CFG
  3434. {
  3435. DWORD dwSize; //结构长度
  3436. BYTE byEnable; //标定使能
  3437. BYTE byFollowChan; // 被控制的从通道
  3438. BYTE byRes[2];
  3439. NET_DVR_TRACK_CALIBRATION_PARAM struCalParam; //标定点组
  3440. }NET_DVR_TRACK_CFG, *LPNET_DVR_TRACK_CFG;
  3441. //跟踪模式
  3442. typedef enum _TRACK_MODE_
  3443. {
  3444. MANUAL_CTRL = 0, //手动跟踪
  3445. ALARM_TRACK //报警触发跟踪
  3446. }TRACK_MODE;
  3447. //手动控制结构
  3448. typedef struct tagNET_DVR_MANUAL_CTRL_INFO
  3449. {
  3450. NET_VCA_POINT struCtrlPoint;
  3451. BYTE byRes[8];
  3452. }NET_DVR_MANUAL_CTRL_INFO , *LPNET_DVR_MANUAL_CTRL_INFO ;
  3453. //跟踪模式结构
  3454. typedef struct tagNET_DVR_TRACK_MODE
  3455. {
  3456. DWORD dwSize; //结构长度
  3457. BYTE byTrackMode; //跟踪模式
  3458. BYTE byRes[3]; //保留,置0
  3459. union
  3460. {
  3461. DWORD dwULen[4];
  3462. NET_DVR_MANUAL_CTRL_INFO struManualCtrl;//手动跟踪结构
  3463. }uModeParam;
  3464. }NET_DVR_TRACK_MODE,*LPNET_DVR_TRACK_MODE;
  3465. //球机跟踪模式设置接口
  3466. NET_DVR_API BOOL __stdcall NET_DVR_SetTrackMode(LONG lUserID, LONG lChannel, LPNET_DVR_TRACK_MODE lpTrackMode);
  3467. NET_DVR_API BOOL __stdcall NET_DVR_GetTrackMode(LONG lUserID, LONG lChannel, LPNET_DVR_TRACK_MODE lpTrackMode);
  3468. //分析仪行为分析规则结构
  3469. //警戒规则结构
  3470. typedef struct tagNET_IVMS_ONE_RULE_
  3471. {
  3472. BYTE byActive; /* 是否激活规则,0-否, 非0-是 */
  3473. BYTE byRes1[7]; //保留,设置为0字段
  3474. BYTE byRuleName[NAME_LEN]; //规则名称
  3475. VCA_EVENT_TYPE dwEventType; //行为分析事件类型
  3476. NET_VCA_EVENT_UNION uEventParam;//行为分析事件参数
  3477. NET_VCA_SIZE_FILTER struSizeFilter; //尺寸过滤器
  3478. BYTE byRes2[68]; /*保留,设置为0*/
  3479. }NET_IVMS_ONE_RULE, *LPNET_IVMS_ONE_RULE;
  3480. // 分析仪规则结构
  3481. typedef struct tagNET_IVMS_RULECFG
  3482. {
  3483. NET_IVMS_ONE_RULE struRule[MAX_RULE_NUM]; //规则数组
  3484. }NET_IVMS_RULECFG, *LPNET_IVMS_RULECFG;
  3485. // IVMS行为分析配置结构
  3486. typedef struct tagNET_IVMS_BEHAVIORCFG
  3487. {
  3488. DWORD dwSize;
  3489. BYTE byPicProType; //报警时图片处理方式 0-不处理 非0-上传
  3490. BYTE byRes[3];
  3491. NET_DVR_JPEGPARA struPicParam; //图片规格结构
  3492. NET_IVMS_RULECFG struRuleCfg[MAX_DAYS][MAX_TIMESEGMENT];//每个时间段对应规则
  3493. } NET_IVMS_BEHAVIORCFG, *LPNET_IVMS_BEHAVIORCFG;
  3494. //智能分析仪取流计划子结构
  3495. typedef struct tagNET_IVMS_DEVSCHED
  3496. {
  3497. NET_DVR_SCHEDTIME struTime; //时间参数
  3498. NET_DVR_PU_STREAM_CFG struPUStream; //前端取流参数
  3499. }NET_IVMS_DEVSCHED, *LPNET_IVMS_DEVSCHED;
  3500. //智能分析仪参数配置结构
  3501. typedef struct tagNET_IVMS_STREAMCFG
  3502. {
  3503. DWORD dwSize;
  3504. NET_IVMS_DEVSCHED struDevSched[MAX_DAYS][MAX_TIMESEGMENT];//按时间段配置前端取流以及规则信息
  3505. } NET_IVMS_STREAMCFG, *LPNET_IVMS_STREAMCFG;
  3506. //屏蔽区域
  3507. typedef struct tagNET_VCA_MASK_REGION
  3508. {
  3509. BYTE byEnable; //是否激活, 0-否,非0-是
  3510. BYTE byRes[3]; //保留,置0
  3511. NET_VCA_POLYGON struPolygon; //屏蔽多边形
  3512. }NET_VCA_MASK_REGION, * LPNET_VCA_MASK_REGION;
  3513. //屏蔽区域链表结构
  3514. typedef struct tagNET_VCA_MASK_REGION_LIST
  3515. {
  3516. DWORD dwSize; //结构长度
  3517. BYTE byRes[4]; //保留,置0
  3518. NET_VCA_MASK_REGION struMask[MAX_MASK_REGION_NUM]; //屏蔽区域数组
  3519. }NET_VCA_MASK_REGION_LIST, *LPNET_VCA_MASK_REGION_LIST;
  3520. //ATM进入区域参数
  3521. typedef struct tagNET_VCA_ENTER_REGION//用于屏蔽进入的人,防止干扰ATM检测
  3522. {
  3523. DWORD dwSize;
  3524. BYTE byEnable; //是否激活,0-否,非0-是
  3525. BYTE byRes1[3];
  3526. NET_VCA_POLYGON struPolygon; //进入区域
  3527. BYTE byRes2[16];
  3528. }NET_VCA_ENTER_REGION, * LPNET_VCA_ENTER_REGION;
  3529. // 重启智能库
  3530. NET_DVR_API BOOL __stdcall NET_VCA_RestartLib(LONG lUserID, LONG lChannel);
  3531. //IVMS屏蔽区域链表
  3532. typedef struct tagNET_IVMS_MASK_REGION_LIST
  3533. {
  3534. DWORD dwSize; //结构长度
  3535. NET_VCA_MASK_REGION_LIST struList[MAX_DAYS][ MAX_TIMESEGMENT];
  3536. }NET_IVMS_MASK_REGION_LIST, *LPNET_IVMS_MASK_REGION_LIST;
  3537. //IVMS的ATM进入区域参数
  3538. typedef struct tagNET_IVMS_ENTER_REGION
  3539. {
  3540. DWORD dwSize;
  3541. NET_VCA_ENTER_REGION struEnter[MAX_DAYS][ MAX_TIMESEGMENT]; //进入区域
  3542. }NET_IVMS_ENTER_REGION, *LPNET_IVMS_ENTER_REGION;
  3543. // ivms 报警图片上传结构
  3544. typedef struct tagNET_IVMS_ALARM_JPEG
  3545. {
  3546. BYTE byPicProType;
  3547. BYTE byRes[3];
  3548. NET_DVR_JPEGPARA struPicParam;
  3549. }NET_IVMS_ALARM_JPEG, *LPNET_IVMS_ALARM_JPEG;
  3550. // IVMS 后检索配置
  3551. typedef struct tagNET_IVMS_SEARCHCFG
  3552. {
  3553. DWORD dwSize;
  3554. NET_DVR_MATRIX_DEC_REMOTE_PLAY struRemotePlay;// 远程回放
  3555. NET_IVMS_ALARM_JPEG struAlarmJpeg; // 报警上传图片配置
  3556. NET_IVMS_RULECFG struRuleCfg; //IVMS 行为规则配置
  3557. }NET_IVMS_SEARCHCFG, *LPNET_IVMS_SEARCHCFG;
  3558. //2009-7-22
  3559. #define NET_DVR_GET_AP_INFO_LIST 305//获取无线网络资源参数
  3560. #define NET_DVR_SET_WIFI_CFG 306 //设置IP监控设备无线参数
  3561. #define NET_DVR_GET_WIFI_CFG 307 //获取IP监控设备无线参数
  3562. #define NET_DVR_SET_WIFI_WORKMODE 308 //设置IP监控设备网口工作模式参数
  3563. #define NET_DVR_GET_WIFI_WORKMODE 309 //获取IP监控设备网口工作模式参数
  3564. #define IW_ESSID_MAX_SIZE 32
  3565. #define WIFI_WEP_MAX_KEY_COUNT 4
  3566. #define WIFI_WEP_MAX_KEY_LENGTH 33
  3567. #define WIFI_WPA_PSK_MAX_KEY_LENGTH 63
  3568. #define WIFI_WPA_PSK_MIN_KEY_LENGTH 8
  3569. #define WIFI_MAX_AP_COUNT 20
  3570. typedef struct tagNET_DVR_AP_INFO
  3571. {
  3572. char sSsid[IW_ESSID_MAX_SIZE];
  3573. DWORD dwMode; /* 0 mange 模式;1 ad-hoc模式,参见NICMODE */
  3574. DWORD dwSecurity; /*0 不加密;1 wep加密;2 wpa-psk;3 wpa-Enterprise,参见WIFISECURITY*/
  3575. DWORD dwChannel; /*1-11表示11个通道*/
  3576. DWORD dwSignalStrength; /*0-100信号由最弱变为最强*/
  3577. DWORD dwSpeed; /*速率,单位是0.01mbps*/
  3578. }NET_DVR_AP_INFO,*LPNET_DVR_AP_INFO;
  3579. typedef struct tagNET_DVR_AP_INFO_LIST
  3580. {
  3581. DWORD dwSize;
  3582. DWORD dwCount; /*无线AP数量,不超过20*/
  3583. NET_DVR_AP_INFO struApInfo[WIFI_MAX_AP_COUNT];
  3584. }NET_DVR_AP_INFO_LIST,*LPNET_DVR_AP_INFO_LIST;
  3585. typedef struct tagNET_DVR_WIFIETHERNET
  3586. {
  3587. char sIpAddress[16]; /*IP地址*/
  3588. char sIpMask[16]; /*掩码*/
  3589. BYTE byMACAddr[MACADDR_LEN]; /*物理地址,只用来显示*/
  3590. BYTE bRes[2];
  3591. DWORD dwEnableDhcp; /*是否启动dhcp 0不启动 1启动*/
  3592. DWORD dwAutoDns; /*如果启动dhcp是否自动获取dns,0不自动获取 1自动获取;对于有线如果启动dhcp目前自动获取dns*/
  3593. char sFirstDns[16]; /*第一个dns域名*/
  3594. char sSecondDns[16]; /*第二个dns域名*/
  3595. char sGatewayIpAddr[16]; /* 网关地址*/
  3596. BYTE bRes2[8];
  3597. }NET_DVR_WIFIETHERNET,*LPNET_DVR_WIFIETHERNET;
  3598. typedef struct tagNET_DVR__WIFI_CFG_EX
  3599. {
  3600. NET_DVR_WIFIETHERNET struEtherNet; /*wifi网口*/
  3601. char sEssid[IW_ESSID_MAX_SIZE]; /*SSID*/
  3602. DWORD dwMode; /* 0 mange 模式;1 ad-hoc模式,参见*/
  3603. DWORD dwSecurity; /*0 不加密;1 wep加密;2 wpa-psk; */
  3604. union
  3605. {
  3606. struct
  3607. {
  3608. DWORD dwAuthentication;/*0 -开放式 1-共享式*/
  3609. DWORD dwKeyLength;/* 0 -64位;1- 128位;2-152位*/
  3610. DWORD dwKeyType;/*0 16进制;1 ASCI */
  3611. DWORD dwActive;/*0 索引:0---3表示用哪一个密钥*/
  3612. char sKeyInfo[WIFI_WEP_MAX_KEY_COUNT][WIFI_WEP_MAX_KEY_LENGTH];
  3613. }wep;
  3614. struct
  3615. {
  3616. DWORD dwKeyLength;/*8-63个ASCII字符*/
  3617. char sKeyInfo[WIFI_WPA_PSK_MAX_KEY_LENGTH];
  3618. char sRes;
  3619. }wpa_psk;
  3620. }key;
  3621. }NET_DVR_WIFI_CFG_EX,*LPNET_DVR_WIFI_CFG_EX;
  3622. //wifi配置结构
  3623. typedef struct tagNET_DVR_WIFI_CFG
  3624. {
  3625. DWORD dwSize;
  3626. NET_DVR_WIFI_CFG_EX struWifiCfg;
  3627. }NET_DVR_WIFI_CFG,*LPNET_DVR_WIFI_CFG;
  3628. //wifi工作模式
  3629. typedef struct tagNET_DVR_WIFI_WORKMODE
  3630. {
  3631. DWORD dwSize;
  3632. DWORD dwNetworkInterfaceMode; /*0 自动切换模式 1 有线模式*/
  3633. }NET_DVR_WIFI_WORKMODE,*LPNET_DVR_WIFI_WORKMODE;
  3634. NET_DVR_API BOOL __stdcall NET_DVR_SaveRealData_V30(LONG lRealHandle, DWORD dwTransType, char *sFileName);
  3635. NET_DVR_API BOOL __stdcall NET_DVR_EncodeG711Frame(unsigned int iType, unsigned char *pInBuffer, unsigned char *pOutBuffer);
  3636. NET_DVR_API BOOL __stdcall NET_DVR_DecodeG711Frame(unsigned int iType, unsigned char *pInBuffer, unsigned char *pOutBuffer);
  3637. //2009-7-22 end
  3638. //网络硬盘结构配置
  3639. typedef struct tagNET_DVR_SINGLE_NET_DISK_INFO
  3640. {
  3641. BYTE byRes1[4]; //保留
  3642. NET_DVR_IPADDR struNetDiskAddr; //网络硬盘地址
  3643. BYTE sDirectory[PATHNAME_LEN]; // PATHNAME_LEN = 128
  3644. BYTE byRes2[68]; //保留
  3645. }NET_DVR_SINGLE_NET_DISK_INFO, *LPNET_DVR_SINGLE_NET_DISK_INFO;
  3646. #define MAX_NET_DISK 16//最大网络硬盘个数
  3647. typedef struct tagNET_DVR_NET_DISKCFG
  3648. {
  3649. DWORD dwSize;
  3650. NET_DVR_SINGLE_NET_DISK_INFO struNetDiskParam[MAX_NET_DISK];
  3651. }NET_DVR_NET_DISKCFG, *LPNET_DVR_NET_DISKCFG;
  3652. //事件类型
  3653. //主类型
  3654. typedef enum _MAIN_EVENT_TYPE_
  3655. {
  3656. EVENT_MOT_DET = 0, //移动侦测
  3657. EVENT_ALARM_IN = 1, //报警输入
  3658. EVENT_VCA_BEHAVIOR = 2 //行为分析
  3659. }MAIN_EVENT_TYPE;
  3660. //行为分析主类型对应的此类型, 0xffff表示全部
  3661. typedef enum _BEHAVIOR_MINOR_TYPE_
  3662. {
  3663. EVENT_TRAVERSE_PLANE = 0, // 穿越警戒面,
  3664. EVENT_ENTER_AREA, //目标进入区域,支持区域规则
  3665. EVENT_EXIT_AREA, //目标离开区域,支持区域规则
  3666. EVENT_INTRUSION, // 周界入侵,支持区域规则
  3667. EVENT_LOITER, //徘徊,支持区域规则
  3668. EVENT_LEFT_TAKE, //丢包捡包,支持区域规则
  3669. EVENT_PARKING, //停车,支持区域规则
  3670. EVENT_RUN, //奔跑,支持区域规则
  3671. EVENT_HIGH_DENSITY
  3672. }BEHAVIOR_MINOR_TYPE;
  3673. #define SEARCH_EVENT_INFO_LEN 300 //事件信息长度
  3674. //事件搜索条件
  3675. typedef struct tagNET_DVR_SEARCH_EVENT_PARAM
  3676. {
  3677. WORD wMajorType; //0-移动侦测,1-报警输入, 2-智能事件
  3678. WORD wMinorType; //搜索次类型- 根据主类型变化,0xffff表示全部
  3679. NET_DVR_TIME struStartTime; //搜索的开始时间,停止时间: 同时为(0, 0) 表示从最早的时间开始,到最后,最前面的4000个事件
  3680. NET_DVR_TIME struEndTime; //
  3681. BYTE byRes[132]; //保留
  3682. union
  3683. {
  3684. BYTE byLen[SEARCH_EVENT_INFO_LEN];
  3685. struct//报警输入
  3686. {
  3687. BYTE byAlarmInNo[MAX_ALARMIN_V30]; //报警输入号,byAlarmInNo[0]若置1则表示查找由报警输入1触发的事件
  3688. BYTE byRes[SEARCH_EVENT_INFO_LEN - MAX_ALARMIN_V30];
  3689. }struAlarmParam;
  3690. struct//移动侦测
  3691. {
  3692. BYTE byMotDetChanNo[MAX_CHANNUM_V30];//移动侦测通道,byMotDetChanNo[0]若置1则表示查找由通道1发生移动侦测触发的事件
  3693. BYTE byRes[SEARCH_EVENT_INFO_LEN - MAX_CHANNUM_V30];
  3694. }struMotionParam;
  3695. struct//行为分析
  3696. {
  3697. BYTE byChanNo[MAX_CHANNUM_V30]; //触发事件的通道
  3698. BYTE byRuleID; //规则ID,0xff表示全部
  3699. BYTE byRes1[43]; //保留
  3700. }struVcaParam;
  3701. }uSeniorParam;
  3702. }NET_DVR_SEARCH_EVENT_PARAM, *LPNET_DVR_SEARCH_EVENT_PARAM;
  3703. //查找返回结果
  3704. typedef struct tagNET_DVR_SEARCH_EVENT_RET
  3705. {
  3706. WORD wMajorType; //主类型
  3707. WORD wMinorType; //次类型
  3708. NET_DVR_TIME struStartTime; //事件开始的时间
  3709. NET_DVR_TIME struEndTime; //事件停止的时间,脉冲事件时和开始时间一样
  3710. BYTE byChan[MAX_CHANNUM_V30];
  3711. BYTE byRes[36];
  3712. union
  3713. {
  3714. struct//报警输入结果
  3715. {
  3716. DWORD dwAlarmInNo; //报警输入号
  3717. BYTE byRes[SEARCH_EVENT_INFO_LEN];
  3718. }struAlarmRet;
  3719. struct//移动侦测结果
  3720. {
  3721. DWORD dwMotDetNo; //移动侦测通道
  3722. BYTE byRes[SEARCH_EVENT_INFO_LEN];
  3723. }struMotionRet;
  3724. struct//行为分析结果
  3725. {
  3726. DWORD dwChanNo; //触发事件的通道号
  3727. BYTE byRuleID; //规则ID
  3728. BYTE byRes1[3]; //保留
  3729. BYTE byRuleName[NAME_LEN]; //规则名称
  3730. NET_VCA_EVENT_UNION uEvent; //行为事件参数,wMinorType = VCA_EVENT_TYPE决定事件类型
  3731. }struVcaRet;
  3732. }uSeniorRet;
  3733. }NET_DVR_SEARCH_EVENT_RET, *LPNET_DVR_SEARCH_EVENT_RET;
  3734. NET_DVR_API LONG __stdcall NET_DVR_FindFileByEvent(LONG lUserID, LPNET_DVR_SEARCH_EVENT_PARAM lpSearchEventParam);
  3735. NET_DVR_API LONG __stdcall NET_DVR_FindNextEvent(LONG lSearchHandle, LPNET_DVR_SEARCH_EVENT_RET lpSearchEventRet);
  3736. //停止采用 NET_DVR_FindClose
  3737. #endif //