HCNetSDK.h 516 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754
  1. #ifndef _HC_NET_SDK_H_
  2. #define _HC_NET_SDK_H_
  3. #ifndef __PLAYRECT_defined
  4. #define __PLAYRECT_defined
  5. typedef struct __PLAYRECT
  6. {
  7. int x;
  8. int y;
  9. int uWidth;
  10. int uHeight;
  11. }PLAYRECT;
  12. #endif
  13. #if (defined(_WIN32)) //windows
  14. #define NET_DVR_API extern "C"__declspec(dllimport)
  15. typedef unsigned _int64 UINT64;
  16. #elif defined(__linux__) || defined(__APPLE__) //linux
  17. typedef unsigned int DWORD;
  18. typedef unsigned short WORD;
  19. typedef unsigned short USHORT;
  20. typedef int LONG;
  21. typedef unsigned char BYTE ;
  22. #define BOOL int
  23. typedef unsigned int UINT;
  24. typedef void* LPVOID;
  25. typedef void* HANDLE;
  26. typedef unsigned int* LPDWORD;
  27. typedef unsigned long long UINT64;
  28. #ifndef TRUE
  29. #define TRUE 1
  30. #endif
  31. #ifndef FALSE
  32. #define FALSE 0
  33. #endif
  34. #ifndef NULL
  35. #define NULL 0
  36. #endif
  37. #define __stdcall
  38. #define CALLBACK
  39. #define NET_DVR_API extern "C"
  40. typedef unsigned int COLORKEY;
  41. typedef unsigned int COLORREF;
  42. #ifndef __HWND_defined
  43. #define __HWND_defined
  44. #if defined(__linux__)
  45. typedef PLAYRECT HWND;
  46. #else
  47. typedef void* HWND;
  48. #endif
  49. #endif
  50. #define NET_DVR_API extern "C"
  51. typedef unsigned int COLORKEY;
  52. typedef unsigned int COLORREF;
  53. #ifndef __HDC_defined
  54. #define __HDC_defined
  55. #if defined(__linux__)
  56. typedef struct __DC
  57. {
  58. void* surface; //SDL Surface
  59. HWND hWnd; // HDC window handle
  60. }DC;
  61. typedef DC* HDC;
  62. #else
  63. typedef void* HDC;
  64. #endif
  65. #endif
  66. typedef struct tagInitInfo
  67. {
  68. int uWidth;
  69. int uHeight;
  70. }INITINFO;
  71. #endif
  72. //宏定义
  73. #define MAX_NAMELEN 16 //DVR本地登陆名
  74. #define MAX_RIGHT 32 //设备支持的权限(1-12表示本地权限,13-32表示远程权限)
  75. #define NAME_LEN 32 //用户名长度
  76. #define PASSWD_LEN 16 //密码长度
  77. #define SERIALNO_LEN 48 //序列号长度
  78. #define MACADDR_LEN 6 //mac地址长度
  79. #define MAX_ETHERNET 2 //设备可配以太网络
  80. #define MAX_NETWORK_CARD 4 //设备可配最大网卡数目
  81. #define PATHNAME_LEN 128 //路径长度
  82. #define MAX_PRESET_V13 16 //预置点
  83. #define MAX_TIMESEGMENT_V30 8 //9000设备最大时间段数
  84. #define MAX_TIMESEGMENT 4 //8000设备最大时间段数
  85. #define MAX_SHELTERNUM 4 //8000设备最大遮挡区域数
  86. #define MAX_DAYS 7 //每周天数
  87. #define PHONENUMBER_LEN 32 //pppoe拨号号码最大长度
  88. #define MAX_DISKNUM_V30 33 //9000设备最大硬盘数/* 最多33个硬盘(包括16个内置SATA硬盘、1个eSATA硬盘和16个NFS盘) */
  89. #define MAX_DISKNUM 16 //8000设备最大硬盘数
  90. #define MAX_DISKNUM_V10 8 //1.2版本之前版本
  91. #define MAX_WINDOW_V30 32 //9000设备本地显示最大播放窗口数
  92. #define MAX_WINDOW 16 //8000设备最大硬盘数
  93. #define MAX_VGA_V30 4 //9000设备最大可接VGA数
  94. #define MAX_VGA 1 //8000设备最大可接VGA数
  95. #define MAX_USERNUM_V30 32 //9000设备最大用户数
  96. #define MAX_USERNUM 16 //8000设备最大用户数
  97. #define MAX_EXCEPTIONNUM_V30 32 //9000设备最大异常处理数
  98. #define MAX_EXCEPTIONNUM 16 //8000设备最大异常处理数
  99. #define MAX_LINK 6 //8000设备单通道最大视频流连接数
  100. #define MAX_DECPOOLNUM 4 //单路解码器每个解码通道最大可循环解码数
  101. #define MAX_DECNUM 4 //单路解码器的最大解码通道数(实际只有一个,其他三个保留)
  102. #define MAX_TRANSPARENTNUM 2 //单路解码器可配置最大透明通道数
  103. #define MAX_CYCLE_CHAN 16 //单路解码器最大轮巡通道数
  104. #define MAX_CYCLE_CHAN_V30 64 //最大轮巡通道数(扩展)
  105. #define MAX_DIRNAME_LENGTH 80 //最大目录长度
  106. #define MAX_WINDOWS 16 //最大窗口数
  107. #define MAX_STRINGNUM_V30 8 //9000设备最大OSD字符行数数
  108. #define MAX_STRINGNUM 4 //8000设备最大OSD字符行数数
  109. #define MAX_STRINGNUM_EX 8 //8000定制扩展
  110. #define MAX_AUXOUT_V30 16 //9000设备最大辅助输出数
  111. #define MAX_AUXOUT 4 //8000设备最大辅助输出数
  112. #define MAX_HD_GROUP 16 //9000设备最大硬盘组数
  113. #define MAX_NFS_DISK 8 //8000设备最大NFS硬盘数
  114. #define IW_ESSID_MAX_SIZE 32 //WIFI的SSID号长度
  115. #define IW_ENCODING_TOKEN_MAX 32 //WIFI密锁最大字节数
  116. #define MAX_SERIAL_NUM 64 //最多支持的透明通道路数
  117. #define MAX_DDNS_NUMS 10 //9000设备最大可配ddns数
  118. #define MAX_DOMAIN_NAME 64 /* 最大域名长度 */
  119. #define MAX_EMAIL_ADDR_LEN 48 //最大email地址长度
  120. #define MAX_EMAIL_PWD_LEN 32 //最大email密码长度
  121. #define MAXPROGRESS 100 //回放时的最大百分率
  122. #define MAX_SERIALNUM 2 //8000设备支持的串口数 1-232, 2-485
  123. #define CARDNUM_LEN 20 //卡号长度
  124. #define MAX_VIDEOOUT_V30 4 //9000设备的视频输出数
  125. #define MAX_VIDEOOUT 2 //8000设备的视频输出数
  126. #define MAX_PRESET_V30 256 /* 9000设备支持的云台预置点数 */
  127. #define MAX_TRACK_V30 256 /* 9000设备支持的云台轨迹数 */
  128. #define MAX_CRUISE_V30 256 /* 9000设备支持的云台巡航数 */
  129. #define MAX_PRESET 128 /* 8000设备支持的云台预置点数 */
  130. #define MAX_TRACK 128 /* 8000设备支持的云台轨迹数 */
  131. #define MAX_CRUISE 128 /* 8000设备支持的云台巡航数 */
  132. #define CRUISE_MAX_PRESET_NUMS 32 /* 一条巡航最多的巡航点 */
  133. #define MAX_SERIAL_PORT 8 //9000设备支持232串口数
  134. #define MAX_PREVIEW_MODE 8 /* 设备支持最大预览模式数目 1画面,4画面,9画面,16画面.... */
  135. #define MAX_MATRIXOUT 16 /* 最大模拟矩阵输出个数 */
  136. #define LOG_INFO_LEN 11840 /* 日志附加信息 */
  137. #define DESC_LEN 16 /* 云台描述字符串长度 */
  138. #define PTZ_PROTOCOL_NUM 200 /* 9000最大支持的云台协议数 */
  139. #define MAX_AUDIO 1 //8000语音对讲通道数
  140. #define MAX_AUDIO_V30 2 //9000语音对讲通道数
  141. #define MAX_CHANNUM 16 //8000设备最大通道数
  142. #define MAX_ALARMIN 16 //8000设备最大报警输入数
  143. #define MAX_ALARMOUT 4 //8000设备最大报警输出数
  144. //9000 IPC接入
  145. #define MAX_ANALOG_CHANNUM 32 //最大32个模拟通道
  146. #define MAX_ANALOG_ALARMOUT 32 //最大32路模拟报警输出
  147. #define MAX_ANALOG_ALARMIN 32 //最大32路模拟报警输入
  148. #define MAX_IP_DEVICE 32 //允许接入的最大IP设备数
  149. #define MAX_IP_DEVICE_V40 64 // 允许接入的最大IP设备数 最多可添加64个 IVMS 2000等新设备
  150. #define MAX_IP_CHANNEL 32 //允许加入的最多IP通道数
  151. #define MAX_IP_ALARMIN 128 //允许加入的最多报警输入数
  152. #define MAX_IP_ALARMOUT 64 //允许加入的最多报警输出数
  153. #define MAX_RECORD_FILE_NUM 20 // 每次删除或者刻录的最大文件数
  154. //SDK_V31 ATM
  155. #define MAX_ACTION_TYPE 12 //自定义协议叠加交易行为最大行为个数
  156. #define MAX_ATM_PROTOCOL_NUM 256 //每种输入方式对应的ATM最大协议数
  157. #define ATM_CUSTOM_PROTO 1025 //自定义协议 值为1025
  158. #define ATM_PROTOCOL_SORT 4 //ATM协议段数
  159. #define ATM_DESC_LEN 32 //ATM描述字符串长度
  160. // SDK_V31 ATM
  161. /* 最大支持的通道数 最大模拟加上最大IP支持 */
  162. #define MAX_CHANNUM_V30 ( MAX_ANALOG_CHANNUM + MAX_IP_CHANNEL )//64
  163. #define MAX_ALARMOUT_V30 ( MAX_ANALOG_ALARMOUT + MAX_IP_ALARMOUT )//96
  164. #define MAX_ALARMIN_V30 ( MAX_ANALOG_ALARMIN + MAX_IP_ALARMIN )//160
  165. #define MAX_LANERECT_NUM 5 //最大车牌识别区域数
  166. #define MAX_FORTIFY_NUM 10 //最大布防个数
  167. #define MAX_INTERVAL_NUM 4 //最大时间间隔个数
  168. #define MAX_CHJC_NUM 3 //最大车辆省份简称字符个数
  169. #define MAX_VL_NUM 5 //最大虚拟线圈个数
  170. #define MAX_DRIVECHAN_NUM 16 //最大车道数
  171. #define MAX_COIL_NUM 3 //最大线圈个数
  172. #define MAX_SIGNALLIGHT_NUM 6 //最大信号灯个数
  173. /*******************全局错误码 begin**********************/
  174. #define NET_DVR_NOERROR 0 //没有错误
  175. #define NET_DVR_PASSWORD_ERROR 1 //用户名密码错误
  176. #define NET_DVR_NOENOUGHPRI 2 //权限不足
  177. #define NET_DVR_NOINIT 3 //没有初始化
  178. #define NET_DVR_CHANNEL_ERROR 4 //通道号错误
  179. #define NET_DVR_OVER_MAXLINK 5 //连接到DVR的客户端个数超过最大
  180. #define NET_DVR_VERSIONNOMATCH 6 //版本不匹配
  181. #define NET_DVR_NETWORK_FAIL_CONNECT 7 //连接服务器失败
  182. #define NET_DVR_NETWORK_SEND_ERROR 8 //向服务器发送失败
  183. #define NET_DVR_NETWORK_RECV_ERROR 9 //从服务器接收数据失败
  184. #define NET_DVR_NETWORK_RECV_TIMEOUT 10 //从服务器接收数据超时
  185. #define NET_DVR_NETWORK_ERRORDATA 11 //传送的数据有误
  186. #define NET_DVR_ORDER_ERROR 12 //调用次序错误
  187. #define NET_DVR_OPERNOPERMIT 13 //无此权限
  188. #define NET_DVR_COMMANDTIMEOUT 14 //DVR命令执行超时
  189. #define NET_DVR_ERRORSERIALPORT 15 //串口号错误
  190. #define NET_DVR_ERRORALARMPORT 16 //报警端口错误
  191. #define NET_DVR_PARAMETER_ERROR 17 //参数错误
  192. #define NET_DVR_CHAN_EXCEPTION 18 //服务器通道处于错误状态
  193. #define NET_DVR_NODISK 19 //没有硬盘
  194. #define NET_DVR_ERRORDISKNUM 20 //硬盘号错误
  195. #define NET_DVR_DISK_FULL 21 //服务器硬盘满
  196. #define NET_DVR_DISK_ERROR 22 //服务器硬盘出错
  197. #define NET_DVR_NOSUPPORT 23 //服务器不支持
  198. #define NET_DVR_BUSY 24 //服务器忙
  199. #define NET_DVR_MODIFY_FAIL 25 //服务器修改不成功
  200. #define NET_DVR_PASSWORD_FORMAT_ERROR 26 //密码输入格式不正确
  201. #define NET_DVR_DISK_FORMATING 27 //硬盘正在格式化,不能启动操作
  202. #define NET_DVR_DVRNORESOURCE 28 //DVR资源不足
  203. #define NET_DVR_DVROPRATEFAILED 29 //DVR操作失败
  204. #define NET_DVR_OPENHOSTSOUND_FAIL 30 //打开PC声音失败
  205. #define NET_DVR_DVRVOICEOPENED 31 //服务器语音对讲被占用
  206. #define NET_DVR_TIMEINPUTERROR 32 //时间输入不正确
  207. #define NET_DVR_NOSPECFILE 33 //回放时服务器没有指定的文件
  208. #define NET_DVR_CREATEFILE_ERROR 34 //创建文件出错
  209. #define NET_DVR_FILEOPENFAIL 35 //打开文件出错
  210. #define NET_DVR_OPERNOTFINISH 36 //上次的操作还没有完成
  211. #define NET_DVR_GETPLAYTIMEFAIL 37 //获取当前播放的时间出错
  212. #define NET_DVR_PLAYFAIL 38 //播放出错
  213. #define NET_DVR_FILEFORMAT_ERROR 39 //文件格式不正确
  214. #define NET_DVR_DIR_ERROR 40 //路径错误
  215. #define NET_DVR_ALLOC_RESOURCE_ERROR 41 //资源分配错误
  216. #define NET_DVR_AUDIO_MODE_ERROR 42 //声卡模式错误
  217. #define NET_DVR_NOENOUGH_BUF 43 //缓冲区太小
  218. #define NET_DVR_CREATESOCKET_ERROR 44 //创建SOCKET出错
  219. #define NET_DVR_SETSOCKET_ERROR 45 //设置SOCKET出错
  220. #define NET_DVR_MAX_NUM 46 //个数达到最大
  221. #define NET_DVR_USERNOTEXIST 47 //用户不存在
  222. #define NET_DVR_WRITEFLASHERROR 48 //写FLASH出错
  223. #define NET_DVR_UPGRADEFAIL 49 //DVR升级失败
  224. #define NET_DVR_CARDHAVEINIT 50 //解码卡已经初始化过
  225. #define NET_DVR_PLAYERFAILED 51 //调用播放库中某个函数失败
  226. #define NET_DVR_MAX_USERNUM 52 //设备端用户数达到最大
  227. #define NET_DVR_GETLOCALIPANDMACFAIL 53 //获得客户端的IP地址或物理地址失败
  228. #define NET_DVR_NOENCODEING 54 //该通道没有编码
  229. #define NET_DVR_IPMISMATCH 55 //IP地址不匹配
  230. #define NET_DVR_MACMISMATCH 56 //MAC地址不匹配
  231. #define NET_DVR_UPGRADELANGMISMATCH 57 //升级文件语言不匹配
  232. #define NET_DVR_MAX_PLAYERPORT 58 //播放器路数达到最大
  233. #define NET_DVR_NOSPACEBACKUP 59 //备份设备中没有足够空间进行备份
  234. #define NET_DVR_NODEVICEBACKUP 60 //没有找到指定的备份设备
  235. #define NET_DVR_PICTURE_BITS_ERROR 61 //图像素位数不符,限24色
  236. #define NET_DVR_PICTURE_DIMENSION_ERROR 62 //图片高*宽超限, 限128*256
  237. #define NET_DVR_PICTURE_SIZ_ERROR 63 //图片大小超限,限100K
  238. #define NET_DVR_LOADPLAYERSDKFAILED 64 //载入当前目录下Player Sdk出错
  239. #define NET_DVR_LOADPLAYERSDKPROC_ERROR 65 //找不到Player Sdk中某个函数入口
  240. #define NET_DVR_LOADDSSDKFAILED 66 //载入当前目录下DSsdk出错
  241. #define NET_DVR_LOADDSSDKPROC_ERROR 67 //找不到DsSdk中某个函数入口
  242. #define NET_DVR_DSSDK_ERROR 68 //调用硬解码库DsSdk中某个函数失败
  243. #define NET_DVR_VOICEMONOPOLIZE 69 //声卡被独占
  244. #define NET_DVR_JOINMULTICASTFAILED 70 //加入多播组失败
  245. #define NET_DVR_CREATEDIR_ERROR 71 //建立日志文件目录失败
  246. #define NET_DVR_BINDSOCKET_ERROR 72 //绑定套接字失败
  247. #define NET_DVR_SOCKETCLOSE_ERROR 73 //socket连接中断,此错误通常是由于连接中断或目的地不可达
  248. #define NET_DVR_USERID_ISUSING 74 //注销时用户ID正在进行某操作
  249. #define NET_DVR_SOCKETLISTEN_ERROR 75 //监听失败
  250. #define NET_DVR_PROGRAM_EXCEPTION 76 //程序异常
  251. #define NET_DVR_WRITEFILE_FAILED 77 //写文件失败
  252. #define NET_DVR_FORMAT_READONLY 78 //禁止格式化只读硬盘
  253. #define NET_DVR_WITHSAMEUSERNAME 79 //用户配置结构中存在相同的用户名
  254. #define NET_DVR_DEVICETYPE_ERROR 80 /*导入参数时设备型号不匹配*/
  255. #define NET_DVR_LANGUAGE_ERROR 81 /*导入参数时语言不匹配*/
  256. #define NET_DVR_PARAVERSION_ERROR 82 /*导入参数时软件版本不匹配*/
  257. #define NET_DVR_IPCHAN_NOTALIVE 83 /*预览时外接IP通道不在线*/
  258. #define NET_DVR_RTSP_SDK_ERROR 84 /*加载高清IPC通讯库StreamTransClient.dll失败*/
  259. #define NET_DVR_CONVERT_SDK_ERROR 85 /*加载转码库失败*/
  260. #define NET_DVR_IPC_COUNT_OVERFLOW 86 /*超出最大的ip接入通道数*/
  261. #define NET_DVR_MAX_ADD_NUM 87 /*添加标签(一个文件片段64)等个数达到最大*/
  262. #define NET_DVR_PARAMMODE_ERROR 88 //图像增强仪,参数模式错误(用于硬件设置时,客户端进行软件设置时错误值)
  263. #define NET_DVR_CODESPITTER_OFFLINE 89 //视频综合平台,码分器不在线
  264. #define NET_DVR_BACKUP_COPYING 90 //设备正在备份
  265. #define NET_DVR_CHAN_NOTSUPPORT 91 // 通道不支持该操作
  266. #define NET_DVR_CALLINEINVALID 92 // 高度线位置太集中或长度线不够倾斜
  267. #define NET_DVR_CALCANCELCONFLICT 93 // 取消标定冲突,如果设置了规则及全局的实际大小尺寸过滤
  268. #define NET_DVR_CALPOINTOUTRANGE 94 // 标定点超出范围
  269. #define NET_DVR_FILTERRECTINVALID 95 // 尺寸过滤器不符合要求
  270. #define NET_DVR_DDNS_DEVOFFLINE 96 //设备没有注册到ddns上
  271. #define NET_DVR_DDNS_INTER_ERROR 97 //DDNS 服务器内部错误
  272. #define NET_DVR_ALIAS_DUPLICATE 150 //别名重复 //2011-08-31 通过别名或者序列号来访问设备的新版本ddns的配置
  273. // 2010-5-28
  274. // 阵列错误码
  275. #define RAID_ERROR_INDEX 200
  276. #define NET_DVR_NAME_NOT_ONLY (RAID_ERROR_INDEX + 0) // 名称已存在
  277. #define NET_DVR_OVER_MAX_ARRAY (RAID_ERROR_INDEX + 1 ) // 阵列达到上限
  278. #define NET_DVR_OVER_MAX_VD (RAID_ERROR_INDEX + 2 ) // 虚拟磁盘达到上限
  279. #define NET_DVR_VD_SLOT_EXCEED (RAID_ERROR_INDEX + 3 ) // 虚拟磁盘槽位已满
  280. #define NET_DVR_PD_STATUS_INVALID (RAID_ERROR_INDEX + 4 ) // 重建阵列所需物理磁盘状态错误
  281. #define NET_DVR_PD_BE_DEDICATE_SPARE (RAID_ERROR_INDEX + 5 ) // 重建阵列所需物理磁盘为指定热备
  282. #define NET_DVR_PD_NOT_FREE (RAID_ERROR_INDEX + 6 ) // 重建阵列所需物理磁盘非空闲
  283. #define NET_DVR_CANNOT_MIG2NEWMODE (RAID_ERROR_INDEX + 7 ) // 不能从当前的阵列类型迁移到新的阵列类型
  284. #define NET_DVR_MIG_PAUSE (RAID_ERROR_INDEX + 8 ) // 迁移操作已暂停
  285. #define NET_DVR_MIG_CANCEL (RAID_ERROR_INDEX + 9 ) // 正在执行的迁移操作已取消
  286. #define NET_DVR_EXIST_VD (RAID_ERROR_INDEX + 10) // 阵列上阵列上存在虚拟磁盘,无法删除阵列
  287. #define NET_DVR_TARGET_IN_LD_FUNCTIONAL (RAID_ERROR_INDEX + 11) // 对象物理磁盘为虚拟磁盘组成部分且工作正常
  288. #define NET_DVR_HD_IS_ASSIGNED_ALREADY (RAID_ERROR_INDEX + 12) // 指定的物理磁盘被分配为虚拟磁盘
  289. #define NET_DVR_INVALID_HD_COUNT (RAID_ERROR_INDEX + 13) // 物理磁盘数量与指定的RAID等级不匹配
  290. #define NET_DVR_LD_IS_FUNCTIONAL (RAID_ERROR_INDEX + 14) // 阵列正常,无法重建
  291. #define NET_DVR_BGA_RUNNING (RAID_ERROR_INDEX + 15) // 存在正在执行的后台任务
  292. #define NET_DVR_LD_NO_ATAPI (RAID_ERROR_INDEX + 16) // 无法用ATAPI盘创建虚拟磁盘
  293. #define NET_DVR_MIGRATION_NOT_NEED (RAID_ERROR_INDEX + 17) // 阵列无需迁移
  294. #define NET_DVR_HD_TYPE_MISMATCH (RAID_ERROR_INDEX + 18) // 物理磁盘不属于同意类型
  295. #define NET_DVR_NO_LD_IN_DG (RAID_ERROR_INDEX + 19) // 无虚拟磁盘,无法进行此项操作
  296. #define NET_DVR_NO_ROOM_FOR_SPARE (RAID_ERROR_INDEX + 20) // 磁盘空间过小,无法被指定为热备盘
  297. #define NET_DVR_SPARE_IS_IN_MULTI_DG (RAID_ERROR_INDEX + 21) // 磁盘已被分配为某阵列热备盘
  298. #define NET_DVR_DG_HAS_MISSING_PD (RAID_ERROR_INDEX + 22) // 阵列缺少盘
  299. // 智能错误码
  300. #define VCA_ERROR_INDEX 300 // 智能错误码索引
  301. #define NET_DVR_ID_ERROR (VCA_ERROR_INDEX + 0) // 配置ID不合理
  302. #define NET_DVR_POLYGON_ERROR (VCA_ERROR_INDEX + 1) // 多边形不符合要求
  303. #define NET_DVR_RULE_PARAM_ERROR (VCA_ERROR_INDEX + 2) // 规则参数不合理
  304. #define NET_DVR_RULE_CFG_CONFLICT (VCA_ERROR_INDEX + 3) // 配置信息冲突
  305. #define NET_DVR_CALIBRATE_NOT_READY (VCA_ERROR_INDEX + 4) // 当前没有标定信息
  306. #define NET_DVR_CAMERA_DATA_ERROR (VCA_ERROR_INDEX + 5) // 摄像机参数不合理
  307. #define NET_DVR_CALIBRATE_DATA_UNFIT (VCA_ERROR_INDEX + 6) // 长度不够倾斜,不利于标定
  308. #define NET_DVR_CALIBRATE_DATA_CONFLICT (VCA_ERROR_INDEX + 7) // 标定出错,以为所有点共线或者位置太集中
  309. #define NET_DVR_CALIBRATE_CALC_FAIL (VCA_ERROR_INDEX + 8) // 摄像机标定参数值计算失败
  310. #define NET_DVR_CALIBRATE_LINE_OUT_RECT (VCA_ERROR_INDEX + 9) // 输入的样本标定线超出了样本外接矩形框
  311. #define NET_DVR_ENTER_RULE_NOT_READY (VCA_ERROR_INDEX + 10) // 没有设置进入区域
  312. #define NET_DVR_AID_RULE_NO_INCLUDE_LANE (VCA_ERROR_INDEX + 11) // 交通事件规则中没有包括车道(特值拥堵和逆行)
  313. #define NET_DVR_LANE_NOT_READY (VCA_ERROR_INDEX + 12) // 当前没有设置车道
  314. #define NET_DVR_RULE_INCLUDE_TWO_WAY (VCA_ERROR_INDEX + 13) // 事件规则中包含2种不同方向
  315. #define NET_DVR_LANE_TPS_RULE_CONFLICT (VCA_ERROR_INDEX + 14) // 车道和数据规则冲突
  316. #define NET_DVR_NOT_SUPPORT_EVENT_TYPE (VCA_ERROR_INDEX + 15) // 不支持的事件类型
  317. #define NET_DVR_LANE_NO_WAY (VCA_ERROR_INDEX + 16) // 车道没有方向
  318. #define NET_DVR_SIZE_FILTER_ERROR (VCA_ERROR_INDEX + 17) // 尺寸过滤框不合理
  319. #define NET_DVR_LIB_FFL_NO_FACE (VCA_ERROR_INDEX + 18) // 特征点定位时输入的图像没有人脸
  320. #define NET_DVR_LIB_FFL_IMG_TOO_SMALL (VCA_ERROR_INDEX + 19) // 特征点定位时输入的图像太小
  321. #define NET_DVR_LIB_FD_IMG_NO_FACE (VCA_ERROR_INDEX + 20) // 单张图像人脸检测时输入的图像没有人脸
  322. #define NET_DVR_LIB_FACE_TOO_SMALL (VCA_ERROR_INDEX + 21) // 建模时人脸太小
  323. #define NET_DVR_LIB_FACE_QUALITY_TOO_BAD (VCA_ERROR_INDEX + 22) // 建模时人脸图像质量太差
  324. #define NET_DVR_KEY_PARAM_ERR (VCA_ERROR_INDEX + 23) //高级参数设置错误
  325. #define NET_DVR_CALIBRATE_DATA_ERR (VCA_ERROR_INDEX + 24) //标定样本数目错误,或数据值错误,或样本点超出地平线
  326. #define NET_DVR_CALIBRATE_DISABLE_FAIL (VCA_ERROR_INDEX + 25) //所配置规则不允许取消标定
  327. #define NET_DVR_RTSP_GETPORTFAILED 407 //rtsp 得到端口错误
  328. #define NET_DVR_RTSP_DESCRIBESENDTIMEOUT 411 //rtsp decribe 发送超时
  329. #define NET_DVR_RTSP_DESCRIBESENDERROR 412 //rtsp decribe 发送失败
  330. #define NET_DVR_RTSP_DESCRIBERECVTIMEOUT 413 //rtsp decribe 接收超时
  331. #define NET_DVR_RTSP_DESCRIBERECVDATALOST 414 //rtsp decribe 接收数据错误
  332. #define NET_DVR_RTSP_DESCRIBERECVERROR 415 //rtsp decribe 接收失败
  333. #define NET_DVR_RTSP_DESCRIBESERVERERR 416 //rtsp decribe 服务器返回401:用户名密码错误或者无权限,或者 501:设备内部资源分配失败
  334. #define NET_DVR_RTSP_SETUPSENDTIMEOUT 421 //rtsp setup 发送超时
  335. #define NET_DVR_RTSP_SETUPSENDERROR 422 //rtsp setup 发送错误
  336. #define NET_DVR_RTSP_SETUPRECVTIMEOUT 423 //rtsp setup 接收超时
  337. #define NET_DVR_RTSP_SETUPRECVDATALOST 424 //rtsp setup 接收数据错误
  338. #define NET_DVR_RTSP_SETUPRECVERROR 425 //rtsp setup 接收失败
  339. #define NET_DVR_RTSP_OVER_MAX_CHAN 426 //rtsp setup 服务器返回401,501等错误,超过最大连接数
  340. #define NET_DVR_RTSP_PLAYSENDTIMEOUT 431 //rtsp play 发送超时
  341. #define NET_DVR_RTSP_PLAYSENDERROR 432 //rtsp play 发送错误
  342. #define NET_DVR_RTSP_PLAYRECVTIMEOUT 433 //rtsp play 接收超时
  343. #define NET_DVR_RTSP_PLAYRECVDATALOST 434 //rtsp play 接收数据错误
  344. #define NET_DVR_RTSP_PLAYRECVERROR 435 //rtsp play 接收失败
  345. #define NET_DVR_RTSP_PLAYSERVERERR 436 //rtsp play 服务器返回401,501等错误
  346. #define NET_DVR_RTSP_TEARDOWNSENDTIMEOUT 441 //rtsp teardown 发送超时
  347. #define NET_DVR_RTSP_TEARDOWNSENDERROR 442 //rtsp teardown 发送错误
  348. #define NET_DVR_RTSP_TEARDOWNRECVTIMEOUT 443 //rtsp teardown 接收超时
  349. #define NET_DVR_RTSP_TEARDOWNRECVDATALOST 444 //rtsp teardown 接收数据错误
  350. #define NET_DVR_RTSP_TEARDOWNRECVERROR 445 //rtsp teardown 接收失败
  351. #define NET_DVR_RTSP_TEARDOWNSERVERERR 446 //rtsp teardown 服务器返回401,501等错误
  352. #define NET_PLAYM4_NOERROR 500 //no error
  353. #define NET_PLAYM4_PARA_OVER 501 //input parameter is invalid;
  354. #define NET_PLAYM4_ORDER_ERROR 502 //The order of the function to be called is error.
  355. #define NET_PLAYM4_TIMER_ERROR 503 //Create multimedia clock failed;
  356. #define NET_PLAYM4_DEC_VIDEO_ERROR 504 //Decode video data failed.
  357. #define NET_PLAYM4_DEC_AUDIO_ERROR 505 //Decode audio data failed.
  358. #define NET_PLAYM4_ALLOC_MEMORY_ERROR 506 //Allocate memory failed.
  359. #define NET_PLAYM4_OPEN_FILE_ERROR 507 //Open the file failed.
  360. #define NET_PLAYM4_CREATE_OBJ_ERROR 508 //Create thread or event failed
  361. #define NET_PLAYM4_CREATE_DDRAW_ERROR 509 //Create DirectDraw object failed.
  362. #define NET_PLAYM4_CREATE_OFFSCREEN_ERROR 510 //failed when creating off-screen surface.
  363. #define NET_PLAYM4_BUF_OVER 511 //buffer is overflow
  364. #define NET_PLAYM4_CREATE_SOUND_ERROR 512 //failed when creating audio device.
  365. #define NET_PLAYM4_SET_VOLUME_ERROR 513 //Set volume failed
  366. #define NET_PLAYM4_SUPPORT_FILE_ONLY 514 //The function only support play file.
  367. #define NET_PLAYM4_SUPPORT_STREAM_ONLY 515 //The function only support play stream.
  368. #define NET_PLAYM4_SYS_NOT_SUPPORT 516 //System not support.
  369. #define NET_PLAYM4_FILEHEADER_UNKNOWN 517 //No file header.
  370. #define NET_PLAYM4_VERSION_INCORRECT 518 //The version of decoder and encoder is not adapted.
  371. #define NET_PALYM4_INIT_DECODER_ERROR 519 //Initialize decoder failed.
  372. #define NET_PLAYM4_CHECK_FILE_ERROR 520 //The file data is unknown.
  373. #define NET_PLAYM4_INIT_TIMER_ERROR 521 //Initialize multimedia clock failed.
  374. #define NET_PLAYM4_BLT_ERROR 522 //Blt failed.
  375. #define NET_PLAYM4_UPDATE_ERROR 523 //Update failed.
  376. #define NET_PLAYM4_OPEN_FILE_ERROR_MULTI 524 //openfile error, streamtype is multi
  377. #define NET_PLAYM4_OPEN_FILE_ERROR_VIDEO 525 //openfile error, streamtype is video
  378. #define NET_PLAYM4_JPEG_COMPRESS_ERROR 526 //JPEG compress error
  379. #define NET_PLAYM4_EXTRACT_NOT_SUPPORT 527 //Don't support the version of this file.
  380. #define NET_PLAYM4_EXTRACT_DATA_ERROR 528 //extract video data failed.
  381. #define NET_QOS_OK 700 //no error
  382. #define NET_QOS_ERROR (NET_QOS_OK - 1) //qos error
  383. #define NET_QOS_ERR_INVALID_ARGUMENTS (NET_QOS_OK - 2) //invalid arguments
  384. #define NET_QOS_ERR_SESSION_NOT_FOUND (NET_QOS_OK - 3) //session net found
  385. #define NET_QOS_ERR_LIB_NOT_INITIALIZED (NET_QOS_OK - 4) //lib not initialized
  386. #define NET_QOS_ERR_OUTOFMEM (NET_QOS_OK - 5) //outtofmem
  387. #define NET_QOS_ERR_PACKET_UNKNOW (NET_QOS_OK - 10) //packet unknow
  388. #define NET_QOS_ERR_PACKET_VERSION (NET_QOS_OK - 11) //packet version error
  389. #define NET_QOS_ERR_PACKET_LENGTH (NET_QOS_OK - 12) //packet length error
  390. #define NET_QOS_ERR_PACKET_TOO_BIG (NET_QOS_OK - 13) //packet too big
  391. #define NET_QOS_ERR_SCHEDPARAMS_INVALID_BANDWIDTH (NET_QOS_OK - 20) //schedparams invalid bandwidth
  392. #define NET_QOS_ERR_SCHEDPARAMS_BAD_FRACTION (NET_QOS_OK - 21) //schedparams bad fraction
  393. #define NET_QOS_ERR_SCHEDPARAMS_BAD_MINIMUM_INTERVAL (NET_QOS_OK - 22) //schedparams bad minimum interval
  394. #define NET_DVR_DEV_NET_OVERFLOW 800 //网络流量超过设备能力上限
  395. #define NET_DVR_STATUS_RECORDFILE_WRITING_NOT_LOCK 801 //录像文件在录像,无法被锁定
  396. #define NET_DVR_STATUS_CANT_FORMAT_LITTLE_DISK 802 //由于硬盘太小无法格式化
  397. /*******************全局错误码 end**********************/
  398. /*************************************************
  399. NET_DVR_IsSupport()返回值
  400. 1-9位分别表示以下信息(位与是TRUE)表示支持;
  401. **************************************************/
  402. #define NET_DVR_SUPPORT_DDRAW 0x01//支持DIRECTDRAW,如果不支持,则播放器不能工作;
  403. #define NET_DVR_SUPPORT_BLT 0x02//显卡支持BLT操作,如果不支持,则播放器不能工作;
  404. #define NET_DVR_SUPPORT_BLTFOURCC 0x04//显卡BLT支持颜色转换,如果不支持,播放器会用软件方法作RGB转换;
  405. #define NET_DVR_SUPPORT_BLTSHRINKX 0x08//显卡BLT支持X轴缩小;如果不支持,系统会用软件方法转换;
  406. #define NET_DVR_SUPPORT_BLTSHRINKY 0x10//显卡BLT支持Y轴缩小;如果不支持,系统会用软件方法转换;
  407. #define NET_DVR_SUPPORT_BLTSTRETCHX 0x20//显卡BLT支持X轴放大;如果不支持,系统会用软件方法转换;
  408. #define NET_DVR_SUPPORT_BLTSTRETCHY 0x40//显卡BLT支持Y轴放大;如果不支持,系统会用软件方法转换;
  409. #define NET_DVR_SUPPORT_SSE 0x80//CPU支持SSE指令,Intel Pentium3以上支持SSE指令;
  410. #define NET_DVR_SUPPORT_MMX 0x100//CPU支持MMX指令集,Intel Pentium3以上支持SSE指令;
  411. /**********************云台控制命令 begin*************************/
  412. #define LIGHT_PWRON 2 /* 接通灯光电源 */
  413. #define WIPER_PWRON 3 /* 接通雨刷开关 */
  414. #define FAN_PWRON 4 /* 接通风扇开关 */
  415. #define HEATER_PWRON 5 /* 接通加热器开关 */
  416. #define AUX_PWRON1 6 /* 接通辅助设备开关 */
  417. #define AUX_PWRON2 7 /* 接通辅助设备开关 */
  418. #define SET_PRESET 8 /* 设置预置点 */
  419. #define CLE_PRESET 9 /* 清除预置点 */
  420. #define ZOOM_IN 11 /* 焦距以速度SS变大(倍率变大) */
  421. #define ZOOM_OUT 12 /* 焦距以速度SS变小(倍率变小) */
  422. #define FOCUS_NEAR 13 /* 焦点以速度SS前调 */
  423. #define FOCUS_FAR 14 /* 焦点以速度SS后调 */
  424. #define IRIS_OPEN 15 /* 光圈以速度SS扩大 */
  425. #define IRIS_CLOSE 16 /* 光圈以速度SS缩小 */
  426. #define TILT_UP 21 /* 云台以SS的速度上仰 */
  427. #define TILT_DOWN 22 /* 云台以SS的速度下俯 */
  428. #define PAN_LEFT 23 /* 云台以SS的速度左转 */
  429. #define PAN_RIGHT 24 /* 云台以SS的速度右转 */
  430. #define UP_LEFT 25 /* 云台以SS的速度上仰和左转 */
  431. #define UP_RIGHT 26 /* 云台以SS的速度上仰和右转 */
  432. #define DOWN_LEFT 27 /* 云台以SS的速度下俯和左转 */
  433. #define DOWN_RIGHT 28 /* 云台以SS的速度下俯和右转 */
  434. #define PAN_AUTO 29 /* 云台以SS的速度左右自动扫描 */
  435. #define FILL_PRE_SEQ 30 /* 将预置点加入巡航序列 */
  436. #define SET_SEQ_DWELL 31 /* 设置巡航点停顿时间 */
  437. #define SET_SEQ_SPEED 32 /* 设置巡航速度 */
  438. #define CLE_PRE_SEQ 33 /* 将预置点从巡航序列中删除 */
  439. #define STA_MEM_CRUISE 34 /* 开始记录轨迹 */
  440. #define STO_MEM_CRUISE 35 /* 停止记录轨迹 */
  441. #define RUN_CRUISE 36 /* 开始轨迹 */
  442. #define RUN_SEQ 37 /* 开始巡航 */
  443. #define STOP_SEQ 38 /* 停止巡航 */
  444. #define GOTO_PRESET 39 /* 快球转到预置点 */
  445. /**********************云台控制命令 end*************************/
  446. /*************************************************
  447. 回放时播放控制命令宏定义
  448. NET_DVR_PlayBackControl
  449. NET_DVR_PlayControlLocDisplay
  450. NET_DVR_DecPlayBackCtrl的宏定义
  451. 具体支持查看函数说明和代码
  452. **************************************************/
  453. #define NET_DVR_PLAYSTART 1//开始播放
  454. #define NET_DVR_PLAYSTOP 2//停止播放
  455. #define NET_DVR_PLAYPAUSE 3//暂停播放
  456. #define NET_DVR_PLAYRESTART 4//恢复播放
  457. #define NET_DVR_PLAYFAST 5//快放
  458. #define NET_DVR_PLAYSLOW 6//慢放
  459. #define NET_DVR_PLAYNORMAL 7//正常速度
  460. #define NET_DVR_PLAYFRAME 8//单帧放
  461. #define NET_DVR_PLAYSTARTAUDIO 9//打开声音
  462. #define NET_DVR_PLAYSTOPAUDIO 10//关闭声音
  463. #define NET_DVR_PLAYAUDIOVOLUME 11//调节音量
  464. #define NET_DVR_PLAYSETPOS 12//改变文件回放的进度
  465. #define NET_DVR_PLAYGETPOS 13//获取文件回放的进度
  466. #define NET_DVR_PLAYGETTIME 14//获取当前已经播放的时间(按文件回放的时候有效)
  467. #define NET_DVR_PLAYGETFRAME 15//获取当前已经播放的帧数(按文件回放的时候有效)
  468. #define NET_DVR_GETTOTALFRAMES 16//获取当前播放文件总的帧数(按文件回放的时候有效)
  469. #define NET_DVR_GETTOTALTIME 17//获取当前播放文件总的时间(按文件回放的时候有效)
  470. #define NET_DVR_THROWBFRAME 20//丢B帧
  471. #define NET_DVR_SETSPEED 24//设置码流速度
  472. #define NET_DVR_KEEPALIVE 25//保持与设备的心跳(如果回调阻塞,建议2秒发送一次)
  473. #define NET_DVR_PLAYSETTIME 26//按绝对时间定位
  474. #define NET_DVR_PLAYGETTOTALLEN 27//获取按时间回放对应时间段内的所有文件的总长度
  475. #define NET_DVR_PLAY_FORWARD 29 //倒放切换为正放
  476. #define NET_DVR_PLAY_REVERSE 30 //倒放切换为正放
  477. //远程按键定义如下:
  478. /* key value send to CONFIG program */
  479. #define KEY_CODE_1 1
  480. #define KEY_CODE_2 2
  481. #define KEY_CODE_3 3
  482. #define KEY_CODE_4 4
  483. #define KEY_CODE_5 5
  484. #define KEY_CODE_6 6
  485. #define KEY_CODE_7 7
  486. #define KEY_CODE_8 8
  487. #define KEY_CODE_9 9
  488. #define KEY_CODE_0 10
  489. #define KEY_CODE_POWER 11
  490. #define KEY_CODE_MENU 12
  491. #define KEY_CODE_ENTER 13
  492. #define KEY_CODE_CANCEL 14
  493. #define KEY_CODE_UP 15
  494. #define KEY_CODE_DOWN 16
  495. #define KEY_CODE_LEFT 17
  496. #define KEY_CODE_RIGHT 18
  497. #define KEY_CODE_EDIT 19
  498. #define KEY_CODE_ADD 20
  499. #define KEY_CODE_MINUS 21
  500. #define KEY_CODE_PLAY 22
  501. #define KEY_CODE_REC 23
  502. #define KEY_CODE_PAN 24
  503. #define KEY_CODE_M 25
  504. #define KEY_CODE_A 26
  505. #define KEY_CODE_F1 27
  506. #define KEY_CODE_F2 28
  507. /* for PTZ control */
  508. #define KEY_PTZ_UP_START KEY_CODE_UP
  509. #define KEY_PTZ_UP_STOP 32
  510. #define KEY_PTZ_DOWN_START KEY_CODE_DOWN
  511. #define KEY_PTZ_DOWN_STOP 33
  512. #define KEY_PTZ_LEFT_START KEY_CODE_LEFT
  513. #define KEY_PTZ_LEFT_STOP 34
  514. #define KEY_PTZ_RIGHT_START KEY_CODE_RIGHT
  515. #define KEY_PTZ_RIGHT_STOP 35
  516. #define KEY_PTZ_AP1_START KEY_CODE_EDIT /* 光圈+ */
  517. #define KEY_PTZ_AP1_STOP 36
  518. #define KEY_PTZ_AP2_START KEY_CODE_PAN /* 光圈- */
  519. #define KEY_PTZ_AP2_STOP 37
  520. #define KEY_PTZ_FOCUS1_START KEY_CODE_A /* 聚焦+ */
  521. #define KEY_PTZ_FOCUS1_STOP 38
  522. #define KEY_PTZ_FOCUS2_START KEY_CODE_M /* 聚焦- */
  523. #define KEY_PTZ_FOCUS2_STOP 39
  524. #define KEY_PTZ_B1_START 40 /* 变倍+ */
  525. #define KEY_PTZ_B1_STOP 41
  526. #define KEY_PTZ_B2_START 42 /* 变倍- */
  527. #define KEY_PTZ_B2_STOP 43
  528. //9000新增
  529. #define KEY_CODE_11 44
  530. #define KEY_CODE_12 45
  531. #define KEY_CODE_13 46
  532. #define KEY_CODE_14 47
  533. #define KEY_CODE_15 48
  534. #define KEY_CODE_16 49
  535. #define AUDIOTALKTYPE_G722 0
  536. #define AUDIOTALKTYPE_G711_MU 1
  537. /*************************参数配置命令 begin*******************************/
  538. //用于NET_DVR_SetDVRConfig和NET_DVR_GetDVRConfig,注意其对应的配置结构
  539. #define NET_DVR_GET_DEVICECFG 100 //获取设备参数
  540. #define NET_DVR_SET_DEVICECFG 101 //设置设备参数
  541. #define NET_DVR_GET_NETCFG 102 //获取网络参数
  542. #define NET_DVR_SET_NETCFG 103 //设置网络参数
  543. #define NET_DVR_GET_PICCFG 104 //获取图象参数
  544. #define NET_DVR_SET_PICCFG 105 //设置图象参数
  545. #define NET_DVR_GET_COMPRESSCFG 106 //获取压缩参数
  546. #define NET_DVR_SET_COMPRESSCFG 107 //设置压缩参数
  547. #define NET_DVR_GET_RECORDCFG 108 //获取录像时间参数
  548. #define NET_DVR_SET_RECORDCFG 109 //设置录像时间参数
  549. #define NET_DVR_GET_DECODERCFG 110 //获取解码器参数
  550. #define NET_DVR_SET_DECODERCFG 111 //设置解码器参数
  551. #define NET_DVR_GET_RS232CFG 112 //获取232串口参数
  552. #define NET_DVR_SET_RS232CFG 113 //设置232串口参数
  553. #define NET_DVR_GET_ALARMINCFG 114 //获取报警输入参数
  554. #define NET_DVR_SET_ALARMINCFG 115 //设置报警输入参数
  555. #define NET_DVR_GET_ALARMOUTCFG 116 //获取报警输出参数
  556. #define NET_DVR_SET_ALARMOUTCFG 117 //设置报警输出参数
  557. #define NET_DVR_GET_TIMECFG 118 //获取DVR时间
  558. #define NET_DVR_SET_TIMECFG 119 //设置DVR时间
  559. #define NET_DVR_GET_PREVIEWCFG 120 //获取预览参数
  560. #define NET_DVR_SET_PREVIEWCFG 121 //设置预览参数
  561. #define NET_DVR_GET_VIDEOOUTCFG 122 //获取视频输出参数
  562. #define NET_DVR_SET_VIDEOOUTCFG 123 //设置视频输出参数
  563. #define NET_DVR_GET_USERCFG 124 //获取用户参数
  564. #define NET_DVR_SET_USERCFG 125 //设置用户参数
  565. #define NET_DVR_GET_EXCEPTIONCFG 126 //获取异常参数
  566. #define NET_DVR_SET_EXCEPTIONCFG 127 //设置异常参数
  567. #define NET_DVR_GET_ZONEANDDST 128 //获取时区和夏时制参数
  568. #define NET_DVR_SET_ZONEANDDST 129 //设置时区和夏时制参数
  569. #define NET_DVR_GET_SHOWSTRING 130 //获取叠加字符参数
  570. #define NET_DVR_SET_SHOWSTRING 131 //设置叠加字符参数
  571. #define NET_DVR_GET_EVENTCOMPCFG 132 //获取事件触发录像参数
  572. #define NET_DVR_SET_EVENTCOMPCFG 133 //设置事件触发录像参数
  573. #define NET_DVR_GET_FTPCFG 134 //获取抓图的FTP参数(基线)
  574. #define NET_DVR_SET_FTPCFG 135 //设置抓图的FTP参数(基线)
  575. #define NET_DVR_GET_AUXOUTCFG 140 //获取报警触发辅助输出设置(HS设备辅助输出2006-02-28)
  576. #define NET_DVR_SET_AUXOUTCFG 141 //设置报警触发辅助输出设置(HS设备辅助输出2006-02-28)
  577. #define NET_DVR_GET_PREVIEWCFG_AUX 142 //获取-s系列双输出预览参数(-s系列双输出2006-04-13)
  578. #define NET_DVR_SET_PREVIEWCFG_AUX 143 //设置-s系列双输出预览参数(-s系列双输出2006-04-13)
  579. /*********************************智能部分接口 begin***************************************/
  580. //行为对应(NET_VCA_RULECFG)
  581. #define NET_DVR_SET_RULECFG 152 //设置行为分析规则
  582. #define NET_DVR_GET_RULECFG 153 //获取行为分析规则
  583. //球机标定参数(NET_DVR_TRACK_CFG )
  584. #define NET_DVR_SET_TRACK_CFG 160//设置球机的配置参数
  585. #define NET_DVR_GET_TRACK_CFG 161//获取球机的配置参数
  586. //智能分析仪取流配置结构
  587. #define NET_DVR_SET_IVMS_STREAMCFG 162 //设置智能分析仪取流参数
  588. #define NET_DVR_GET_IVMS_STREAMCFG 163 //获取智能分析仪取流参数
  589. //智能控制参数结构
  590. #define NET_DVR_SET_VCA_CTRLCFG 164 //设置智能控制参数
  591. #define NET_DVR_GET_VCA_CTRLCFG 165 //获取智能控制参数
  592. //屏蔽区域NET_VCA_MASK_REGION_LIST
  593. #define NET_DVR_SET_VCA_MASK_REGION 166 //设置屏蔽区域参数
  594. #define NET_DVR_GET_VCA_MASK_REGION 167 //获取屏蔽区域参数
  595. //ATM进入区域 NET_VCA_ENTER_REGION
  596. #define NET_DVR_SET_VCA_ENTER_REGION 168 //设置进入区域参数
  597. #define NET_DVR_GET_VCA_ENTER_REGION 169 //获取进入区域参数
  598. //标定线配置NET_VCA_LINE_SEGMENT_LIST
  599. #define NET_DVR_SET_VCA_LINE_SEGMENT 170 //设置标定线
  600. #define NET_DVR_GET_VCA_LINE_SEGMENT 171 //获取标定线
  601. // ivms屏蔽区域NET_IVMS_MASK_REGION_LIST
  602. #define NET_DVR_SET_IVMS_MASK_REGION 172 //设置IVMS屏蔽区域参数
  603. #define NET_DVR_GET_IVMS_MASK_REGION 173 //获取IVMS屏蔽区域参数
  604. // ivms进入检测区域NET_IVMS_ENTER_REGION
  605. #define NET_DVR_SET_IVMS_ENTER_REGION 174 //设置IVMS进入区域参数
  606. #define NET_DVR_GET_IVMS_ENTER_REGION 175 //获取IVMS进入区域参数
  607. #define NET_DVR_SET_IVMS_BEHAVIORCFG 176 //设置智能分析仪行为规则参数
  608. #define NET_DVR_GET_IVMS_BEHAVIORCFG 177 //获取智能分析仪行为规则参数
  609. // IVMS 回放检索
  610. #define NET_DVR_IVMS_SET_SEARCHCFG 178 //设置IVMS回放检索参数
  611. #define NET_DVR_IVMS_GET_SEARCHCFG 179 //获取IVMS回放检索参数
  612. #define NET_DVR_SET_POSITION_TRACK 180 // 设置场景跟踪配置信息
  613. #define NET_DVR_GET_POSITION_TRACK 181 // 获取场景跟踪配置信息
  614. #define NET_DVR_SET_CALIBRATION 182 // 设置标定信息
  615. #define NET_DVR_GET_CALIBRATION 183 // 获取标定信息
  616. #define NET_DVR_SET_PDC_RULECFG 184 // 设置人流量统计规则
  617. #define NET_DVR_GET_PDC_RULECFG 185 // 获取人流量统计规则
  618. #define NET_DVR_SET_PU_STREAMCFG 186 // 设置前段取流设备信息
  619. #define NET_DVR_GET_PU_STREAMCFG 187 // 获取前段取流设备信息
  620. #define NET_VCA_SET_SIZE_FILTER 194 // 设置全局尺寸过滤器
  621. #define NET_VCA_GET_SIZE_FILTER 195 // 获取全局尺寸过滤器
  622. #define NET_DVR_SET_TRACK_PARAMCFG 196 // 设置球机本地菜单规则
  623. #define NET_DVR_GET_TRACK_PARAMCFG 197 // 获取球机本地菜单规则
  624. #define NET_DVR_SET_DOME_MOVEMENT_PARAM 198 // 设置球机机芯参数
  625. #define NET_DVR_GET_DOME_MOVEMENT_PARAM 199 // 获取球机机芯参数
  626. /**************************************智能部分接口 begin**********************************/
  627. #define NET_DVR_GET_PICCFG_EX 200 //获取图象参数(SDK_V14扩展命令)
  628. #define NET_DVR_SET_PICCFG_EX 201 //设置图象参数(SDK_V14扩展命令)
  629. #define NET_DVR_GET_USERCFG_EX 202 //获取用户参数(SDK_V15扩展命令)
  630. #define NET_DVR_SET_USERCFG_EX 203 //设置用户参数(SDK_V15扩展命令)
  631. #define NET_DVR_GET_COMPRESSCFG_EX 204 //获取压缩参数(SDK_V15扩展命令2006-05-15)
  632. #define NET_DVR_SET_COMPRESSCFG_EX 205 //设置压缩参数(SDK_V15扩展命令2006-05-15)
  633. #define NET_DVR_GET_NETAPPCFG 222 //获取网络应用参数 NTP/DDNS/EMAIL
  634. #define NET_DVR_SET_NETAPPCFG 223 //设置网络应用参数 NTP/DDNS/EMAIL
  635. #define NET_DVR_GET_NTPCFG 224 //获取网络应用参数 NTP
  636. #define NET_DVR_SET_NTPCFG 225 //设置网络应用参数 NTP
  637. #define NET_DVR_GET_DDNSCFG 226 //获取网络应用参数 DDNS
  638. #define NET_DVR_SET_DDNSCFG 227 //设置网络应用参数 DDNS
  639. //对应NET_DVR_EMAILPARA
  640. #define NET_DVR_GET_EMAILCFG 228 //获取网络应用参数 EMAIL
  641. #define NET_DVR_SET_EMAILCFG 229 //设置网络应用参数 EMAIL
  642. #define NET_DVR_GET_NFSCFG 230 /* NFS disk config */
  643. #define NET_DVR_SET_NFSCFG 231 /* NFS disk config */
  644. #define NET_DVR_GET_SHOWSTRING_EX 238 //获取叠加字符参数扩展(支持8条字符)
  645. #define NET_DVR_SET_SHOWSTRING_EX 239 //设置叠加字符参数扩展(支持8条字符)
  646. #define NET_DVR_GET_NETCFG_OTHER 244 //获取网络参数
  647. #define NET_DVR_SET_NETCFG_OTHER 245 //设置网络参数
  648. //对应NET_DVR_EMAILCFG结构
  649. #define NET_DVR_GET_EMAILPARACFG 250 //Get EMAIL parameters
  650. #define NET_DVR_SET_EMAILPARACFG 251 //Setup EMAIL parameters
  651. #define NET_DVR_GET_DDNSCFG_EX 274 //获取扩展DDNS参数
  652. #define NET_DVR_SET_DDNSCFG_EX 275 //设置扩展DDNS参数
  653. #define NET_DVR_SET_PTZPOS 292 //云台设置PTZ位置
  654. #define NET_DVR_GET_PTZPOS 293 //云台获取PTZ位置
  655. #define NET_DVR_GET_PTZSCOPE 294 //云台获取PTZ范围
  656. #define NET_DVR_GET_AP_INFO_LIST 305//获取无线网络资源参数
  657. #define NET_DVR_SET_WIFI_CFG 306 //设置IP监控设备无线参数
  658. #define NET_DVR_GET_WIFI_CFG 307 //获取IP监控设备无线参数
  659. #define NET_DVR_SET_WIFI_WORKMODE 308 //设置IP监控设备网口工作模式参数
  660. #define NET_DVR_GET_WIFI_WORKMODE 309 //获取IP监控设备网口工作模式参数
  661. /*********************************智能交通事件begin***************************************/
  662. #define NET_DVR_GET_REFERENCE_REGION 400 // 获取参考区域
  663. #define NET_DVR_SET_REFERENCE_REGION 401 // 设置参考区域
  664. #define NET_DVR_GET_TRAFFIC_MASK_REGION 402 // 获取交通事件屏蔽区域
  665. #define NET_DVR_SET_TRAFFIC_MASK_REGION 403 // 设置交通事件屏蔽区域
  666. #define NET_DVR_SET_AID_RULECFG 404 // 设置交通事件规则参数
  667. #define NET_DVR_GET_AID_RULECFG 405 // 获取交通事件规则参数
  668. #define NET_DVR_SET_TPS_RULECFG 406 // 设置交通统计规则参数
  669. #define NET_DVR_GET_TPS_RULECFG 407 // 获取交通统计规则参数
  670. #define NET_DVR_SET_LANECFG 408 // 设置车道规则
  671. #define NET_DVR_GET_LANECFG 409 // 获取车道规则
  672. /*********************************智能交通事件end***************************************/
  673. #define NET_DVR_SET_FACEDETECT_RULECFG 420 // 设置人脸检测规则
  674. #define NET_DVR_GET_FACEDETECT_RULECFG 421 // 获取人脸检测规则
  675. /***************************DS9000新增命令(_V30) begin *****************************/
  676. //网络(NET_DVR_NETCFG_V30结构)
  677. #define NET_DVR_GET_NETCFG_V30 1000 //获取网络参数
  678. #define NET_DVR_SET_NETCFG_V30 1001 //设置网络参数
  679. //图象(NET_DVR_PICCFG_V30结构)
  680. #define NET_DVR_GET_PICCFG_V30 1002 //获取图象参数
  681. #define NET_DVR_SET_PICCFG_V30 1003 //设置图象参数
  682. //录像时间(NET_DVR_RECORD_V30结构)
  683. #define NET_DVR_GET_RECORDCFG_V30 1004 //获取录像参数
  684. #define NET_DVR_SET_RECORDCFG_V30 1005 //设置录像参数
  685. //用户(NET_DVR_USER_V30结构)
  686. #define NET_DVR_GET_USERCFG_V30 1006 //获取用户参数
  687. #define NET_DVR_SET_USERCFG_V30 1007 //设置用户参数
  688. //9000DDNS参数配置(NET_DVR_DDNSPARA_V30结构)
  689. #define NET_DVR_GET_DDNSCFG_V30 1010 //获取DDNS(9000扩展)
  690. #define NET_DVR_SET_DDNSCFG_V30 1011 //设置DDNS(9000扩展)
  691. //EMAIL功能(NET_DVR_EMAILCFG_V30结构)
  692. #define NET_DVR_GET_EMAILCFG_V30 1012 //获取EMAIL参数
  693. #define NET_DVR_SET_EMAILCFG_V30 1013 //设置EMAIL参数
  694. //巡航参数 (NET_DVR_CRUISE_PARA结构)
  695. #define NET_DVR_GET_CRUISE 1020
  696. #define NET_DVR_SET_CRUISE 1021
  697. //报警输入结构参数 (NET_DVR_ALARMINCFG_V30结构)
  698. #define NET_DVR_GET_ALARMINCFG_V30 1024
  699. #define NET_DVR_SET_ALARMINCFG_V30 1025
  700. //报警输出结构参数 (NET_DVR_ALARMOUTCFG_V30结构)
  701. #define NET_DVR_GET_ALARMOUTCFG_V30 1026
  702. #define NET_DVR_SET_ALARMOUTCFG_V30 1027
  703. //视频输出结构参数 (NET_DVR_VIDEOOUT_V30结构)
  704. #define NET_DVR_GET_VIDEOOUTCFG_V30 1028
  705. #define NET_DVR_SET_VIDEOOUTCFG_V30 1029
  706. //叠加字符结构参数 (NET_DVR_SHOWSTRING_V30结构)
  707. #define NET_DVR_GET_SHOWSTRING_V30 1030
  708. #define NET_DVR_SET_SHOWSTRING_V30 1031
  709. //异常结构参数 (NET_DVR_EXCEPTION_V30结构)
  710. #define NET_DVR_GET_EXCEPTIONCFG_V30 1034
  711. #define NET_DVR_SET_EXCEPTIONCFG_V30 1035
  712. //串口232结构参数 (NET_DVR_RS232CFG_V30结构)
  713. #define NET_DVR_GET_RS232CFG_V30 1036
  714. #define NET_DVR_SET_RS232CFG_V30 1037
  715. //网络硬盘接入结构参数 (NET_DVR_NET_DISKCFG结构)
  716. #define NET_DVR_GET_NET_DISKCFG 1038 //网络硬盘接入获取
  717. #define NET_DVR_SET_NET_DISKCFG 1039 //网络硬盘接入设置
  718. //压缩参数 (NET_DVR_COMPRESSIONCFG_V30结构)
  719. #define NET_DVR_GET_COMPRESSCFG_V30 1040
  720. #define NET_DVR_SET_COMPRESSCFG_V30 1041
  721. //获取485解码器参数 (NET_DVR_DECODERCFG_V30结构)
  722. #define NET_DVR_GET_DECODERCFG_V30 1042 //获取解码器参数
  723. #define NET_DVR_SET_DECODERCFG_V30 1043 //设置解码器参数
  724. //获取预览参数 (NET_DVR_PREVIEWCFG_V30结构)
  725. #define NET_DVR_GET_PREVIEWCFG_V30 1044 //获取预览参数
  726. #define NET_DVR_SET_PREVIEWCFG_V30 1045 //设置预览参数
  727. //辅助预览参数 (NET_DVR_PREVIEWCFG_AUX_V30结构)
  728. #define NET_DVR_GET_PREVIEWCFG_AUX_V30 1046 //获取辅助预览参数
  729. #define NET_DVR_SET_PREVIEWCFG_AUX_V30 1047 //设置辅助预览参数
  730. //IP接入配置参数 (NET_DVR_IPPARACFG结构)
  731. #define NET_DVR_GET_IPPARACFG 1048 //获取IP接入配置信息
  732. #define NET_DVR_SET_IPPARACFG 1049 //设置IP接入配置信息
  733. //IP报警输入接入配置参数 (NET_DVR_IPALARMINCFG结构)
  734. #define NET_DVR_GET_IPALARMINCFG 1050 //获取IP报警输入接入配置信息
  735. #define NET_DVR_SET_IPALARMINCFG 1051 //设置IP报警输入接入配置信息
  736. //IP报警输出接入配置参数 (NET_DVR_IPALARMOUTCFG结构)
  737. #define NET_DVR_GET_IPALARMOUTCFG 1052 //获取IP报警输出接入配置信息
  738. #define NET_DVR_SET_IPALARMOUTCFG 1053 //设置IP报警输出接入配置信息
  739. //硬盘管理的参数获取 (NET_DVR_HDCFG结构)
  740. #define NET_DVR_GET_HDCFG 1054 //获取硬盘管理配置参数
  741. #define NET_DVR_SET_HDCFG 1055 //设置硬盘管理配置参数
  742. //盘组管理的参数获取 (NET_DVR_HDGROUP_CFG结构)
  743. #define NET_DVR_GET_HDGROUP_CFG 1056 //获取盘组管理配置参数
  744. #define NET_DVR_SET_HDGROUP_CFG 1057 //设置盘组管理配置参数
  745. //设备编码类型配置(NET_DVR_COMPRESSION_AUDIO结构)
  746. #define NET_DVR_GET_COMPRESSCFG_AUD 1058 //获取设备语音对讲编码参数
  747. #define NET_DVR_SET_COMPRESSCFG_AUD 1059 //设置设备语音对讲编码参数
  748. //IP接入配置参数 (NET_DVR_IPPARACFG_V31结构)
  749. #define NET_DVR_GET_IPPARACFG_V31 1060 //获取IP接入配置信息
  750. #define NET_DVR_SET_IPPARACFG_V31 1061 //设置IP接入配置信息
  751. // 通道资源配置 (NET_DVR_IPPARACFG_V40结构)
  752. #define NET_DVR_GET_IPPARACFG_V40 1062 // 获取IP接入配置
  753. #define NET_DVR_SET_IPPARACFG_V40 1063 // 设置IP接入配置
  754. #define NET_DVR_GET_CCDPARAMCFG 1067 //IPC获取CCD参数配置
  755. #define NET_DVR_SET_CCDPARAMCFG 1068 //IPC设置CCD参数配置
  756. #define NET_DVR_GET_IOINCFG 1070 //获取抓拍机IO输入参数
  757. #define NET_DVR_SET_IOINCFG 1071 //设置抓拍机IO输入参数
  758. #define NET_DVR_GET_IOOUTCFG 1072 //获取抓拍机IO输出参数
  759. #define NET_DVR_SET_IOOUTCFG 1073 //设置抓拍机IO输出参数
  760. #define NET_DVR_GET_FLASHCFG 1074 //获取IO闪光灯输出参数
  761. #define NET_DVR_SET_FLASHCFG 1075 //设置IO闪光灯输出参数
  762. #define NET_DVR_GET_LIGHTSNAPCFG 1076 //获取抓拍机红绿灯参数
  763. #define NET_DVR_SET_LIGHTSNAPCFG 1077 //设置抓拍机红绿灯参数
  764. #define NET_DVR_GET_MEASURESPEEDCFG 1078 //获取抓拍机测速参数
  765. #define NET_DVR_SET_MEASURESPEEDCFG 1079 //设置抓拍机测速参数
  766. #define NET_DVR_GET_IMAGEOVERLAYCFG 1080//获取抓拍机图像叠加信息参数
  767. #define NET_DVR_SET_IMAGEOVERLAYCFG 1081//设置抓拍机图像叠加信息参数
  768. #define NET_DVR_GET_SNAPCFG 1082//获取单IO触发抓拍功能配置
  769. #define NET_DVR_SET_SNAPCFG 1083//设置单IO触发抓拍功能配置
  770. #define NET_DVR_GET_VTPPARAM 1084//获取虚拟线圈参数
  771. #define NET_DVR_SET_VTPPARAM 1085//设置虚拟线圈参数
  772. #define NET_DVR_GET_SNAPENABLECFG 1086//获取抓拍机使能参数
  773. #define NET_DVR_SET_SNAPENABLECFG 1087//设置抓拍机使能参数
  774. #define NET_DVR_GET_POSTEPOLICECFG 1088//获取卡口电警参数
  775. #define NET_DVR_SET_POSTEPOLICECFG 1089//设置卡口电警参数
  776. #define NET_DVR_GET_JPEGCFG_V30 1090 //获取抓图的JPEG参数(基线)
  777. #define NET_DVR_SET_JPEGCFG_V30 1091 //设置抓图的JPEG参数(基线)
  778. #define NET_DVR_GET_SPRCFG 1092 //获取车牌识别参数
  779. #define NET_DVR_SET_SPRCFG 1093 //设置车牌识别参数
  780. #define NET_DVR_GET_PLCCFG 1094 //获取车牌亮度补偿参数
  781. #define NET_DVR_SET_PLCCFG 1095 //设置车牌亮度补偿参数
  782. #define NET_DVR_GET_DEVICESTATECFG 1096 //获取设备当前状态参数
  783. #define NET_DVR_GET_DEVICECFG_V40 1100//获取扩展设备参数
  784. #define NET_DVR_SET_DEVICECFG_V40 1101//设置扩展设备参数
  785. #define NET_DVR_GET_ZEROCHANCFG 1102 //获取零通道压缩参数
  786. #define NET_DVR_SET_ZEROCHANCFG 1103 //设置零通道压缩参数
  787. #define NET_DVR_GET_ZERO_PREVIEWCFG_V30 1104 // 获取零通道预览参数配置
  788. #define NET_DVR_SET_ZERO_PREVIEWCFG_V30 1105 // 设置零通道预览参数配置
  789. #define NET_DVR_SET_ZERO_ZOOM 1106 //设置零通道的缩放配置
  790. #define NET_DVR_GET_ZERO_ZOOM 1107 //获取零通道的缩放配置
  791. #define NET_DVR_NATASSOCIATECFG_GET 1110 //获取NAT功能相关信息
  792. #define NET_DVR_NATASSOCIATECFG_SET 1111 //设置NAT功能相关信息
  793. #define NET_DVR_GET_SNMPCFG 1112 //获取SNMP参数
  794. #define NET_DVR_SET_SNMPCFG 1113 //设置SNMP参数
  795. #define NET_DVR_GET_SNMPCFG_V30 1114 //获取SNMPv30参数
  796. #define NET_DVR_SET_SNMPCFG_V30 1115 //设置SNMPv30参数
  797. #define NET_DVR_VIDEOPLATFORMALARMCFG_GET 1130 //获取视频综合平台报警配置
  798. #define NET_DVR_VIDEOPLATFORMALARMCFG_SET 1131 //设置视频综合平台报警配置
  799. #define NET_DVR_GET_RAID_ADAPTER_INFO 1134 // 获取适配器信息
  800. #define NET_DVR_SET_RAID_ADAPTER_INFO 1135 // 设置适配器信息
  801. //多网卡配置
  802. #define NET_DVR_GET_NETCFG_MULTI 1161 //获取多网卡配置
  803. #define NET_DVR_SET_NETCFG_MULTI 1162 //设置多网卡配置
  804. #define NET_DVR_SET_SENSOR_CFG 1180 // 设置模拟量参数
  805. #define NET_DVR_GET_SENSOR_CFG 1181 // 获取模拟量参数
  806. #define NET_DVR_SET_ALARMIN_PARAM 1182 // 设置报警输入参数
  807. #define NET_DVR_GET_ALARMIN_PARAM 1183 // 获取报警输入参数
  808. #define NET_DVR_SET_ALARMOUT_PARAM 1184 // 设置报警输出参数
  809. #define NET_DVR_GET_ALARMOUT_PARAM 1185 // 获取报警输出参数
  810. #define NET_DVR_SET_SIREN_PARAM 1186 // 设置警号参数
  811. #define NET_DVR_GET_SIREN_PARAM 1187 // 获取警号参数
  812. #define NET_DVR_SET_ALARM_RS485CFG 1188 // 设置报警主机485参数
  813. #define NET_DVR_GET_ALARM_RS485CFG 1189 // 获取报警主机485参数
  814. #define NET_DVR_GET_ALARMHOST_MAIN_STATUS 1190 // 获取报警主机主要状态
  815. #define NET_DVR_GET_ALARMHOST_OTHER_STATUS 1191 // 获取报警主机其他状态
  816. #define NET_DVR_SET_ALARMHOST_ENABLECFG 1192 //获取报警主机使能状态
  817. #define NET_DVR_GET_ALARMHOST_ENABLECFG 1193 //设置报警主机使能状态
  818. #define NET_DVR_SET_ALARM_CAMCFG 1194 // 设置视频综合平台报警触发CAM操作配置
  819. #define NET_DVR_GET_ALARM_CAMCFG 1195 // 设置视频综合平台报警触发CAM操作配置
  820. #define NET_DVR_GET_GATEWAY_CFG 1196 // 获取门禁参数配置
  821. #define NET_DVR_SET_GATEWAY_CFG 1197 // 设置门禁参数配置
  822. #define NET_DVR_GET_POS_TEXT_CFG 1198 //获取POS参数配置
  823. #define NET_DVR_SET_POS_TEXT_CFG 1199 //设置POS参数配置
  824. #define NET_DVR_GET_ALARMDIALMODECFG 1198 //获取报警主机拨号参数
  825. #define NET_DVR_SET_ALARMDIALMODECFG 1199 //设置报警主机拨号参数
  826. #define NET_DVR_GET_ALARMHOSTDIALSETUPMODE 1204 //获取报警主机拨号启用方式
  827. #define NET_DVR_SET_ALARMHOSTDIALSETUPMODE 1205 //设置报警主机拨号启用方式
  828. #define NET_DVR_GET_CMSPARA 1170//获取平台参数
  829. #define NET_DVR_SET_CMSPARA 1171//设置平台参数
  830. #define NET_DVR_GET_DIALSTATUS 1172//获取拨号状态参数
  831. #define NET_DVR_GET_SMSRELATIVEPARA 1173//获取短信相关参数
  832. #define NET_DVR_SET_SMSRELATIVEPARA 1174//设置短信相关参数
  833. #define NET_DVR_GET_PINSTATUS 1175//获取Pin状态
  834. #define NET_DVR_SET_PINCMD 1176//设置PIN命令
  835. #define NET_DVR_SET_WINCFG 1202 //窗口参数设置
  836. #define NET_DVR_GET_HOLIDAY_PARAM_CFG 1240 // 获取节假日参数
  837. #define NET_DVR_SET_HOLIDAY_PARAM_CFG 1241 // 设置节假日参数
  838. #define NET_DVR_GET_MOTION_HOLIDAY_HANDLE 1242 // 获取移动侦测假日报警处理方式
  839. #define NET_DVR_SET_MOTION_HOLIDAY_HANDLE 1243 // 获取移动侦测假日报警处理方式
  840. #define NET_DVR_GET_VILOST_HOLIDAY_HANDLE 1244 // 获取视频信号丢失假日报警处理方式
  841. #define NET_DVR_SET_VILOST_HOLIDAY_HANDLE 1245 // 获取视频信号丢失假日报警处理方式
  842. #define NET_DVR_GET_HIDE_HOLIDAY_HANDLE 1246 // 获取遮盖假日报警处理方式
  843. #define NET_DVR_SET_HIDE_HOLIDAY_HANDLE 1247 // 设置遮盖假日报警处理方式
  844. #define NET_DVR_GET_ALARMIN_HOLIDAY_HANDLE 1248 // 获取报警输入假日报警处理方式
  845. #define NET_DVR_SET_ALARMIN_HOLIDAY_HANDLE 1249 // 设置报警输入假日报警处理方式
  846. #define NET_DVR_GET_ALARMOUT_HOLIDAY_HANDLE 1250 // 获取报警输出假日报警处理方式
  847. #define NET_DVR_SET_ALARMOUT_HOLIDAY_HANDLE 1251 // 设置报警输出假日报警处理方式
  848. #define NET_DVR_GET_HOLIDAY_RECORD 1252 // 获取假日录像参数
  849. #define NET_DVR_SET_HOLIDAY_RECORD 1253 // 设置假日录像参数
  850. #define NET_DVR_GET_NETWORK_BONDING 1254 // 获取BONDING网络参数
  851. #define NET_DVR_SET_NETWORK_BONDING 1255 // 设置BONDING网络参数
  852. #define NET_DVR_GET_LINK_STATUS 1256 // 获取通道IP工作状态
  853. #define NET_DVR_GET_DISK_QUOTA_CFG 1278 // 获取磁盘配额信息
  854. #define NET_DVR_SET_DISK_QUOTA_CFG 1279 // 设置磁盘配额信息
  855. #define NET_DVR_GET_JPEG_CAPTURE_CFG 1280 // 获取DVR抓图配置
  856. #define NET_DVR_SET_JPEG_CAPTURE_CFG 1281 // 设置DVR抓图配置
  857. #define NET_DVR_GET_SCHED_CAPTURECFG 1282 // 获取抓图计划
  858. #define NET_DVR_SET_SCHED_CAPTURECFG 1283 // 设置抓图计划
  859. #define NET_DVR_GET_VGA_PREVIEWCFG 1284 // 获取VGA预览配置
  860. #define NET_DVR_SET_VGA_PREVIEWCFG 1285 // 设置VGA预览配置
  861. #define NET_DVR_GET_VIDEO_INPUT_EFFECT 1286 //获取通道视频输入图像参数
  862. #define NET_DVR_SET_VIDEO_INPUT_EFFECT 1287 //设置通道视频输入图像参数
  863. #define NET_DVR_GET_ALLWINCFG 1503 //窗口参数获取
  864. #define NET_DVR_GETSCREENINFO 1601 //获取大屏信息配置
  865. #define NET_DVR_SETSCREENINFO 1602 //设置大屏信息配置
  866. #define NET_DVR_GET_SCREEN_WINCFG 1603//单个窗口参数获取
  867. #define NET_DVR_LAYOUTLIST_GET 1605//获取布局列表
  868. #define NET_DVR_SET_LAYOUTCFG 1606 //布局设置
  869. #define NET_DVR_LAYOUTCTRL 1607//布局控制,1-open,2-close
  870. #define NET_DVR_INPUTLIST_GET 1608 //获取输入信号源列表
  871. #define NET_DVR_SET_INPUTSTREAMCFG 1609 //输入信号源设置
  872. #define NET_DVR_OUTPUT_SET 1610 //输出参数设置
  873. #define NET_DVR_OUTPUT_GET 1611 //输出参数获取
  874. #define NET_DVR_GET_REDAREACFG 3100 //获取红绿灯区域参数
  875. #define NET_DVR_SET_REDAREACFG 3101 //设置红绿灯区域参数
  876. /********************************智能人脸识别****************************/
  877. #define NET_DVR_GET_FACESNAPCFG 5001 //获取人脸抓拍参数
  878. #define NET_DVR_SET_FACESNAPCFG 5002 //设置人脸抓拍参数
  879. /********************************智能人脸识别 end****************************/
  880. #define NET_DVR_GET_DISK_RAID_INFO 6001 //获取磁盘Raid信息
  881. #define NET_DVR_SET_DISK_RAID_INFO 6002 //设置磁盘Raid信息
  882. #define NET_DVR_GET_DVR_SYNCHRONOUS_IPC 6005 //获取:是否为前端IPC同步设备参数
  883. #define NET_DVR_SET_DVR_SYNCHRONOUS_IPC 6006 //设置:是否为前端IPC同步设备参数
  884. #define NET_DVR_SET_DVR_IPC_PASSWD 6008 //设置:IPC用户名密码
  885. #define NET_DVR_GET_DEVICE_NET_USING_INFO 6009 //获取:当前设备网络资源使用情况
  886. #define NET_DVR_SET_DVR_IPC_NET 6012 //设置:设置前端IPC的网络地址
  887. #define NET_DVR_GET_RECORD_CHANNEL_INFO 6013 //获取:录像通道信息
  888. #define NET_DVR_SET_RECORD_CHANNEL_INFO 6014 //设置:录像通道信息
  889. //******操作设备命令 begin****//
  890. #define NET_DVR_SECURE_PULL_RAID_DISK 6015 //安全拔出Raid中的硬盘
  891. #define NET_DVR_SCAN_RAID 6016 //扫描阵列
  892. //******操作设备命令 end****//
  893. //NVR:96xx
  894. #define NET_DVR_GET_IP_ALARM_GROUP_NUM 6100 //获取:IP通道报警输入输出组数
  895. #define NET_DVR_GET_IP_ALARM_IN 6101 //获取:IP通道报警输入信息
  896. #define NET_DVR_GET_IP_ALARM_OUT 6102 //获取:IP通道报警输出信息
  897. //9000 v2.2
  898. #define NET_DVR_GET_FTPCFG_SECOND 6103 //获取图片上传FTP参数
  899. #define NET_DVR_SET_FTPCFG_SECOND 6104 //设置图片上传FTP参数
  900. #define NET_DVR_GET_DRAWFRAME_DISK_QUOTA_CFG 6109 //获取抽帧通道磁盘配额
  901. #define NET_DVR_SET_DRAWFRAME_DISK_QUOTA_CFG 6110 //设置抽帧通道磁盘配额
  902. #define NET_DVR_GET_UPNP_CFG 6111 //获取UPNP参数
  903. #define NET_DVR_SET_UPNP_CFG 6112 //设置UPNP参数
  904. #define NET_DVR_GET_AES_KEY 6113 //获取设备AES加密密钥
  905. #define NET_DVR_GET_POE_CFG 6114 //获取POE参数
  906. #define NET_DVR_SET_POE_CFG 6115 //设置POE参数
  907. #define NET_DVR_GET_CUSTOM_PRO_CFG 6116 //获取自定义协议参数
  908. #define NET_DVR_SET_CUSTOM_PRO_CFG 6117 //设置自定义协议参数
  909. //91系列HD-SDI高清DVR
  910. #define NET_DVR_GET_ACCESS_CAMERA_INFO 6201 // 获取前端相机信息
  911. #define NET_DVR_SET_ACCESS_CAMERA_INFO 6202 // 设置前端相机信息
  912. #define NET_DVR_GET_MB_POWERCTRLPARA 8000//获取启动控制参数
  913. #define NET_DVR_SET_MB_POWERCTRLPARA 8001 //设置启动控制参数
  914. #define NET_DVR_GET_AUTOBACKUPPARA 8002//获取自动备份参数
  915. #define NET_DVR_SET_AUTOBACKUPPARA 8003 //设置自动备份参数
  916. #define NET_DVR_GET_MB_GPSPARA 8004//获取GPS参数
  917. #define NET_DVR_SET_MB_GPSPARA 8005 //设置GPS参数
  918. #define NET_DVR_GET_MB_SENSORINPARA 8006//获取SENSOR参数
  919. #define NET_DVR_SET_MB_SENSORINPARA 8007 //设置SENSOR参数
  920. #define NET_DVR_GET_GSENSORPARA 8008//获取GSENSOR参数
  921. #define NET_DVR_SET_GSENSORPARA 8009 //设置GSENSOR参数
  922. #define NET_DVR_GET_MB_DOWNLOADSVRPARA 8010//获取下载服务器参数
  923. #define NET_DVR_SET_MB_DOWNLOADSVRPARA 8011//设置下载服务器参数
  924. #define NET_DVR_GET_PLATERECOG_PARA 8012//获取车牌识别参数
  925. #define NET_DVR_SET_PLATERECOG_PARA 8013//设置车牌识别参数
  926. #define NET_DVR_GET_ENFORCESYS_PARA 8014//获取车辆稽查参数
  927. #define NET_DVR_SET_ENFORCESYS_PARA 8015//设置车辆稽查参数
  928. #define NET_DVR_GET_ISCSI_CFG 11070 // 获取ISCSI存储配置协议
  929. #define NET_DVR_SET_ISCSI_CFG 11071 // 获取ISCSI存储配置协议
  930. /***************************DS9000新增命令(_V30) end *****************************/
  931. /*************************参数配置命令 end*******************************/
  932. /*******************查找文件和日志函数返回值*************************/
  933. #define NET_DVR_FILE_SUCCESS 1000 //获得文件信息
  934. #define NET_DVR_FILE_NOFIND 1001 //没有文件
  935. #define NET_DVR_ISFINDING 1002 //正在查找文件
  936. #define NET_DVR_NOMOREFILE 1003 //查找文件时没有更多的文件
  937. #define NET_DVR_FILE_EXCEPTION 1004 //查找文件时异常
  938. /*********************回调函数类型 begin************************/
  939. #define COMM_ALARM 0x1100 //8000报警信息主动上传
  940. #define COMM_TRADEINFO 0x1500 //ATMDVR主动上传交易信息
  941. #define COMM_ALARM_V30 0x4000 //9000报警信息主动上传
  942. #define COMM_IPCCFG 0x4001 //9000设备IPC接入配置改变报警信息主动上传
  943. #define COMM_IPCCFG_V31 0x4002 //9000设备IPC接入配置改变报警信息主动上传扩展 9000_1.1
  944. #define COMM_IPCCFG_V40 0x4003 // IVMS 2000 编码服务器 NVR IPC接入配置改变时报警信息上传
  945. /*************操作异常类型(消息方式, 回调方式(保留))****************/
  946. #define EXCEPTION_EXCHANGE 0x8000 //用户交互时异常
  947. #define EXCEPTION_AUDIOEXCHANGE 0x8001 //语音对讲异常
  948. #define EXCEPTION_ALARM 0x8002 //报警异常
  949. #define EXCEPTION_PREVIEW 0x8003 //网络预览异常
  950. #define EXCEPTION_SERIAL 0x8004 //透明通道异常
  951. #define EXCEPTION_RECONNECT 0x8005 //预览时重连
  952. #define EXCEPTION_ALARMRECONNECT 0x8006 //报警时重连
  953. #define EXCEPTION_SERIALRECONNECT 0x8007 //透明通道重连
  954. #define SERIAL_RECONNECTSUCCESS 0x8008 //透明通道重连成功
  955. #define EXCEPTION_PLAYBACK 0x8010 //回放异常
  956. #define EXCEPTION_DISKFMT 0x8011 //硬盘格式化
  957. #define EXCEPTION_PASSIVEDECODE 0x8012 //被动解码异常
  958. #define EXCEPTION_EMAILTEST 0x8013 // 邮件测试异常
  959. #define EXCEPTION_BACKUP 0x8014 // 备份异常
  960. #define PREVIEW_RECONNECTSUCCESS 0x8015 //预览时重连成功
  961. #define ALARM_RECONNECTSUCCESS 0x8016 //报警时重连成功
  962. #define RESUME_EXCHANGE 0x8017 //用户交互恢复
  963. /********************预览回调函数*********************/
  964. #define NET_DVR_SYSHEAD 1 //系统头数据
  965. #define NET_DVR_STREAMDATA 2 //视频流数据(包括复合流和音视频分开的视频流数据)
  966. #define NET_DVR_AUDIOSTREAMDATA 3 //音频流数据
  967. #define NET_DVR_STD_VIDEODATA 4 //标准视频流数据
  968. #define NET_DVR_STD_AUDIODATA 5 //标准音频流数据
  969. #define NET_DVR_CHANGE_FORWARD 10 //码流改变为正放
  970. #define NET_DVR_CHANGE_REVERSE 11 //码流改变为倒放
  971. #define NET_DVR_PRIVATE_DATA 112 //私有数据,包括智能信息
  972. //设备型号(DVR类型)
  973. /* 设备类型 */
  974. #define DVR 1 /*对尚未定义的dvr类型返回NETRET_DVR*/
  975. #define ATMDVR 2 /*atm dvr*/
  976. #define DVS 3 /*DVS*/
  977. #define DEC 4 /* 6001D */
  978. #define ENC_DEC 5 /* 6001F */
  979. #define DVR_HC 6 /*8000HC*/
  980. #define DVR_HT 7 /*8000HT*/
  981. #define DVR_HF 8 /*8000HF*/
  982. #define DVR_HS 9 /* 8000HS DVR(no audio) */
  983. #define DVR_HTS 10 /* 8016HTS DVR(no audio) */
  984. #define DVR_HB 11 /* HB DVR(SATA HD) */
  985. #define DVR_HCS 12 /* 8000HCS DVR */
  986. #define DVS_A 13 /* 带ATA硬盘的DVS */
  987. #define DVR_HC_S 14 /* 8000HC-S */
  988. #define DVR_HT_S 15 /* 8000HT-S */
  989. #define DVR_HF_S 16 /* 8000HF-S */
  990. #define DVR_HS_S 17 /* 8000HS-S */
  991. #define ATMDVR_S 18 /* ATM-S */
  992. #define LOWCOST_DVR 19 /*7000H系列*/
  993. #define DEC_MAT 20 /*多路解码器*/
  994. #define DVR_MOBILE 21 /* mobile DVR */
  995. #define DVR_HD_S 22 /* 8000HD-S */
  996. #define DVR_HD_SL 23 /* 8000HD-SL */
  997. #define DVR_HC_SL 24 /* 8000HC-SL */
  998. #define DVR_HS_ST 25 /* 8000HS_ST */
  999. #define DVS_HW 26 /* 6000HW */
  1000. #define DS630X_D 27 /* 多路解码器 */
  1001. #define DS640X_HD 28 /*640X高清解码器*/
  1002. #define DS610X_D 29 /*610X解码器*/
  1003. #define IPCAM 30 /*IP 摄像机*/
  1004. #define MEGA_IPCAM 31 /*852F&852MF*/
  1005. #define IPCAM_X62MF 32 /*862MF可以接入9000设备*/
  1006. #define ITCCAM 35 /*智能高清网络摄像机*/
  1007. #define IVS_IPCAM 36 /*智能分析高清网络摄像机*/
  1008. #define ZOOMCAM 38 /*一体机*/
  1009. #define IPDOME 40 /*IP 标清球机*/
  1010. #define IPDOME_MEGA200 41 /*IP 200万高清球机*/
  1011. #define IPDOME_MEGA130 42 /*IP 130万高清球机*/
  1012. #define IPDOME_AI 43 /*IP 高清智能快球*/
  1013. #define TII_IPCAM 44 /*红外热成像摄像机*/
  1014. #define IPMOD 50 /*IP 模块*/
  1015. #define IDS6501_HF_P 60 // 6501 车牌
  1016. #define IDS6101_HF_A 61 //智能ATM
  1017. #define IDS6002_HF_B 62 //双机跟踪:DS6002-HF/B
  1018. #define IDS6101_HF_B 63 //行为分析:DS6101-HF/B DS6101-HF/B_SATA
  1019. #define IDS52XX 64 //智能分析仪IVMS
  1020. #define IDS90XX 65 // 9000智能
  1021. #define IDS8104_AHL_S_HX 66 // 海鑫人脸识别 ATM
  1022. #define IDS8104_AHL_S_H 67 // 私有人脸识别 ATM
  1023. #define IDS91XX 68 // 9100智能
  1024. #define IIP_CAM_B 69 // 智能行为IP摄像机
  1025. #define DS71XX_H 71 /* DS71XXH_S */
  1026. #define DS72XX_H_S 72 /* DS72XXH_S */
  1027. #define DS73XX_H_S 73 /* DS73XXH_S */
  1028. #define DS72XX_HF_S 74 //DS72XX_HF_S
  1029. #define DS73XX_HFI_S 75 //DS73XX_HFI_S
  1030. #define DS76XX_H_S 76 /* DVR,e.g. DS7604_HI_S */
  1031. #define DS76XX_N_S 77 /* NVR,e.g. DS7604_NI_S */
  1032. #define DS81XX_HS_S 81 /* DS81XX_HS_S */
  1033. #define DS81XX_HL_S 82 /* DS81XX_HL_S */
  1034. #define DS81XX_HC_S 83 /* DS81XX_HC_S */
  1035. #define DS81XX_HD_S 84 /* DS81XX_HD_S */
  1036. #define DS81XX_HE_S 85 /* DS81XX_HE_S */
  1037. #define DS81XX_HF_S 86 /* DS81XX_HF_S */
  1038. #define DS81XX_AH_S 87 /* DS81XX_AH_S */
  1039. #define DS81XX_AHF_S 88 /* DS81XX_AHF_S */
  1040. #define DS90XX_HF_S 90 /*DS90XX_HF_S*/
  1041. #define DS91XX_HF_S 91 /*DS91XX_HF_S*/
  1042. #define DS91XX_HD_S 92 /*91XXHD-S(MD)*/
  1043. #define IDS90XX_A 93 // 9000智能 ATM
  1044. #define IDS91XX_A 94 // 9100智能 ATM
  1045. #define DS95XX_N_S 95 /*DS95XX_N_S NVR 不带任何输出*/
  1046. #define DS96XX_N_SH 96 /*DS96XX_N_SH NVR*/
  1047. #define DS90XX_HF_SH 97 /*DS90XX_HF_SH */
  1048. #define DS91XX_HF_SH 98 /*DS91XX_HF_SH */
  1049. #define DS_B10_XY 100 /*视频综合平台设备型号(X:编码板片数,Y:解码板片数)*/
  1050. #define DS_6504HF_B10 101 /*视频综合平台内部编码器*/
  1051. #define DS_6504D_B10 102 /*视频综合平台内部解码器*/
  1052. #define DS_1832_B10 103 /*视频综合平台内部码分器*/
  1053. #define DS_6401HFH_B10 104 /*视频综合平台内部光纤板*/
  1054. #define DS_65XXHC 105 //65XXHC DVS
  1055. #define DS_65XXHC_S 106 //65XXHC-SATA DVS
  1056. #define DS_65XXHF 107 //65XXHF DVS
  1057. #define DS_65XXHF_S 108 //65XXHF-SATA DVS
  1058. #define DS_6500HF_B 109 //65 rack DVS
  1059. #define IVMS_6200_C 110 // iVMS-6200(/C)
  1060. #define IVMS_6200_B 111 // iVMS-6200(/B)
  1061. #define DS_72XXHV_ST15 112 //72XXHV_ST15 DVR
  1062. #define DS_72XXHV_ST20 113 //72XXHV_ST20 DVR
  1063. #define IVMS_6200_T 114 // IVMS-6200(/T)
  1064. #define IVMS_6200_BP 115 // IVMS-6200(/BP)
  1065. #define DS_81XXHC_ST 116 //DS_81XXHC_ST
  1066. #define DS_81XXHS_ST 117 //DS_81XXHS_ST
  1067. #define DS_81XXAH_ST 118 //DS_81XXAH_ST
  1068. #define DS_81XXAHF_ST 119 //DS_81XXAHF_ST
  1069. #define DS_66XXDVS 120 //66XX DVS
  1070. #define DS_1964_B10 121 /*视频综合平台内部报警器*/
  1071. #define DS_B10N04_IN 122 /*视频综合平台内部级联输入*/
  1072. #define DS_B10N04_OUT 123 /*视频综合平台内部级联输出*/
  1073. #define DS_B10N04_INTEL 124 /*视频综合平台内部智能*/
  1074. #define DS_6408HFH_B10E_RM 125 //V6高清
  1075. #define DS_B10N64F1_RTM 126 //V6级联不带DSP
  1076. #define DS_B10N64F1D_RTM 127 //V6级联带DSP
  1077. #define DS_B10_SDS 128 //视频综合平台子域控制器
  1078. #define DS_B10_DS 129 //视频综合平台域控制器
  1079. #define DS_6401HFH_B10V 130 //VGA高清编码器
  1080. #define DS_6504D_B10B 131 /*视频综合平台内部标清解码器*/
  1081. #define DS_6504D_B10H 132 /*视频综合平台内部高清解码器*/
  1082. #define DS_6504D_B10V 133 /*视频综合平台内部VGA解码器*/
  1083. #define DS_6408HFH_B10S 134 //视频综合平台SDI子板
  1084. #define DS_18XX_N 135 /* 矩阵接入网关*/
  1085. #define DS_18XX_PTZ 141 /*网络码分类产品*/
  1086. #define DS_19AXX 142 /*通用报警主机类产品*/
  1087. #define DS_19BXX 143 /*家用报警主机*/
  1088. #define DS_19CXX 144 /*自助银行报警主机*/
  1089. #define DS_19DXX 145 /*动环监控报警主机*/
  1090. #define DS_19XX 146 /*1900系列报警主机*/
  1091. //2011-11-30
  1092. #define DS_C10H 161 /*多屏控制器*/
  1093. #define IDS_8104_AHFL_S_H 171 // 8104ATM
  1094. #define IDS_65XX_HF_A 172 // 65 ATM
  1095. #define IDS90XX_HF_RH 173 // 9000 智能RH
  1096. #define IDS91XX_HF_RH 174 // 9100 智能RH设备
  1097. #define IDS_65XX_HF_B 175 // 65 行为分析
  1098. #define IDS_65XX_HF_P 176 // 65 车牌识别
  1099. #define IVMS_6200_F 177 // IVMS-6200(/F)
  1100. #define IVMS_6200_A 178 //iVMS-6200(/A)
  1101. #define DS90XX_HF_RH 181 // 9000 RH 648
  1102. #define DS91XX_HF_RH 182 // 9100 RH设备 648
  1103. #define DS78XX_S 183 // 78系列设备 6446
  1104. #define DS81XXHW_S 185 // 81 Resolution 960 KY2011
  1105. #define DS81XXHW_ST 186 // DS81XXHW_ST KY2011
  1106. #define DS91XXHW_ST 187 // DS91XXHW_ST KY2011
  1107. #define DS91XX_ST 188 // DS91XX_ST netra
  1108. #define DS81XX_ST 189 // DS81XX_ST netra
  1109. #define DS81XXHX_ST 190 // DS81XXHDI_ST,DS81XXHE_ST ky2012
  1110. #define DS73XXHX_ST 191 // DS73XXHI_ST ky2012
  1111. #define DS81XX_SH 192 // 审讯81SH,81SHF
  1112. #define DS81XX_SN 193 // 审讯81SNL
  1113. #define DS96xxN_ST 194 //NVR:DS96xxN_ST
  1114. #define DS86xxN_ST 195 //NVR:DS86xxN_ST
  1115. #define DS80xxHF_ST 196 //DVR:DS80xxHF_ST
  1116. #define DS90xxHF_ST 197 //DVR:DS90xxHF_ST
  1117. #define DS76xxN_ST 198 //NVR:DS76xxN_ST
  1118. #define DS_9664N_RX 199 //NVR:DS_9664N_RX
  1119. #define ENCODER_SERVER 200 // 编码卡服务器
  1120. #define DECODER_SERVER 201 // 解码卡服务器
  1121. #define PCNVR_SERVER 202 // PCNVR存储服务器
  1122. #define CVR_SERVER 203 // 邦诺CVR,他给自己定的类型为DVR_S-1
  1123. #define DS_91XXHFH_ST 204 // 91系列HD-SDI高清DVR
  1124. #define DS_66XXHFH 205 // 66高清编码器
  1125. #define DS_B11_M_CLASS 301 /*视频综合平台设备型号*/
  1126. #define DS_B12_M_CLASS 302 /*视频综合平台设备型号*/
  1127. #define DS_6504HF_B11_CLASS 303 /*视频综合平台内部编码器*/
  1128. #define DS_6504HF_B12_CLASS 304 /*视频综合平台内部编码器*/
  1129. #define DS_6401HFH_B11V_CLASS 305 //VGA高清
  1130. #define DS_6401HFH_B12V_CLASS 306 //VGA高清
  1131. #define DS_6408HFH_B11S_CLASS 307 //SDI
  1132. #define DS_6408HFH_B12S_CLASS 308 //SDI
  1133. #define DS_6504D_B11H_CLASS 309 /*视频综合平台内部高清解码器*/
  1134. #define DS_6504D_B11B_CLASS 310 /*视频综合平台内部标清解码器*/
  1135. #define DS_6504D_B12B_CLASS 311 /*视频综合平台内部标清解码器*/
  1136. #define DS_6504D_B11V_CLASS 312 /*视频综合平台内部VGA解码器*/
  1137. #define DS_6504D_B12V_CLASS 313 /*视频综合平台内部VGA解码器*/
  1138. //B10新增
  1139. #define DS_6401HFH_B10R_CLASS 314 //B10 RGB高清
  1140. #define DS_6401HFH_B10D_CLASS 315 //B10 DVI高清
  1141. #define DS_6401HFH_B10H_CLASS 316 //B10 HDMI高清
  1142. //B11新增
  1143. #define DS_6401HFH_B11R_CLASS 317 //B11 RGB高清
  1144. #define DS_6401HFH_B11D_CLASS 318 //B11 DVI高清
  1145. #define DS_6401HFH_B11H_CLASS 319 //B11 HDMI高清
  1146. //B12新增
  1147. #define DS_6401HFH_B12R_CLASS 320 //B12 RGB高清
  1148. #define DS_6401HFH_B12D_CLASS 321 //B12 DVI高清
  1149. #define DS_6401HFH_B12H_CLASS 322 //B12 HDMI高清
  1150. //2011-11-14 扩展为2字节后的设备类型
  1151. #define DS64XXHD_T 701 //64-T高清解码器
  1152. #define DS_6516D_B10 702 //65系列万能解码板
  1153. /**********************设备类型 end***********************/
  1154. /*************************************************
  1155. 参数配置结构、参数(其中_V30为9000新增)
  1156. **************************************************/
  1157. /////////////////////////////////////////////////////////////////////////
  1158. //校时结构参数
  1159. typedef struct
  1160. {
  1161. DWORD dwYear; //年
  1162. DWORD dwMonth; //月
  1163. DWORD dwDay; //日
  1164. DWORD dwHour; //时
  1165. DWORD dwMinute; //分
  1166. DWORD dwSecond; //秒
  1167. }NET_DVR_TIME, *LPNET_DVR_TIME;
  1168. typedef struct tagNET_DVR_TIME_EX
  1169. {
  1170. WORD wYear;
  1171. BYTE byMonth;
  1172. BYTE byDay;
  1173. BYTE byHour;
  1174. BYTE byMinute;
  1175. BYTE bySecond;
  1176. BYTE byRes;
  1177. }NET_DVR_TIME_EX,*LPNET_DVR_TIME_EX;
  1178. //时间段(子结构)
  1179. typedef struct
  1180. {
  1181. //开始时间
  1182. BYTE byStartHour;
  1183. BYTE byStartMin;
  1184. //结束时间
  1185. BYTE byStopHour;
  1186. BYTE byStopMin;
  1187. }NET_DVR_SCHEDTIME, *LPNET_DVR_SCHEDTIME;
  1188. /*设备报警和异常处理方式*/
  1189. /*设备报警和异常处理方式*/
  1190. #define NOACTION 0x0 /*无响应*/
  1191. #define WARNONMONITOR 0x1 /*监视器上警告*/
  1192. #define WARNONAUDIOOUT 0x2 /*声音警告*/
  1193. #define UPTOCENTER 0x4 /*上传中心*/
  1194. #define TRIGGERALARMOUT 0x8 /*触发报警输出*/
  1195. #define TRIGGERCATPIC 0x10 /*触发抓图并上传E-mail*/
  1196. #define SEND_PIC_FTP 0x200 /*抓图并上传ftp*/
  1197. //报警和异常处理结构(子结构)(多处使用)(9000扩展)
  1198. typedef struct
  1199. {
  1200. DWORD dwHandleType; /*处理方式,处理方式的"或"结果*/
  1201. /*0x00: 无响应*/
  1202. /*0x01: 监视器上警告*/
  1203. /*0x02: 声音警告*/
  1204. /*0x04: 上传中心*/
  1205. /*0x08: 触发报警输出*/
  1206. /*0x10: Jpeg抓图并上传EMail*/
  1207. BYTE byRelAlarmOut[MAX_ALARMOUT_V30];
  1208. //报警触发的输出通道,报警触发的输出,为1表示触发该输出
  1209. }NET_DVR_HANDLEEXCEPTION_V30, *LPNET_DVR_HANDLEEXCEPTION_V30;
  1210. //报警和异常处理结构(子结构)(多处使用)
  1211. typedef struct
  1212. {
  1213. DWORD dwHandleType; /*处理方式,处理方式的"或"结果*/
  1214. /*0x00: 无响应*/
  1215. /*0x01: 监视器上警告*/
  1216. /*0x02: 声音警告*/
  1217. /*0x04: 上传中心*/
  1218. /*0x08: 触发报警输出*/
  1219. /*0x10: Jpeg抓图并上传EMail*/
  1220. BYTE byRelAlarmOut[MAX_ALARMOUT]; //报警触发的输出通道,报警触发的输出,为1表示触发该输出
  1221. }NET_DVR_HANDLEEXCEPTION, *LPNET_DVR_HANDLEEXCEPTION;
  1222. //DVR设备参数
  1223. typedef struct
  1224. {
  1225. DWORD dwSize;
  1226. BYTE sDVRName[NAME_LEN]; //DVR名称
  1227. DWORD dwDVRID; //DVR ID,用于遥控器 //V1.4(0-99), V1.5(0-255)
  1228. DWORD dwRecycleRecord; //是否循环录像,0:不是; 1:是
  1229. //以下不可更改
  1230. BYTE sSerialNumber[SERIALNO_LEN]; //序列号
  1231. DWORD dwSoftwareVersion; //软件版本号,高16位是主版本,低16位是次版本
  1232. DWORD dwSoftwareBuildDate; //软件生成日期,0xYYYYMMDD
  1233. DWORD dwDSPSoftwareVersion; //DSP软件版本,高16位是主版本,低16位是次版本
  1234. DWORD dwDSPSoftwareBuildDate; // DSP软件生成日期,0xYYYYMMDD
  1235. DWORD dwPanelVersion; // 前面板版本,高16位是主版本,低16位是次版本
  1236. DWORD dwHardwareVersion; // 硬件版本,高16位是主版本,低16位是次版本
  1237. BYTE byAlarmInPortNum; //DVR报警输入个数
  1238. BYTE byAlarmOutPortNum; //DVR报警输出个数
  1239. BYTE byRS232Num; //DVR 232串口个数
  1240. BYTE byRS485Num; //DVR 485串口个数
  1241. BYTE byNetworkPortNum; //网络口个数
  1242. BYTE byDiskCtrlNum; //DVR 硬盘控制器个数
  1243. BYTE byDiskNum; //DVR 硬盘个数
  1244. BYTE byDVRType; //DVR类型, 1:DVR 2:ATM DVR 3:DVS ......
  1245. BYTE byChanNum; //DVR 通道个数
  1246. BYTE byStartChan; //起始通道号,例如DVS-1,DVR - 1
  1247. BYTE byDecordChans; //DVR 解码路数
  1248. BYTE byVGANum; //VGA口的个数
  1249. BYTE byUSBNum; //USB口的个数
  1250. BYTE byAuxoutNum; //辅口的个数
  1251. BYTE byAudioNum; //语音口的个数
  1252. BYTE byIPChanNum; //最大数字通道数
  1253. }NET_DVR_DEVICECFG, *LPNET_DVR_DEVICECFG;
  1254. /*
  1255. IP地址
  1256. */
  1257. typedef struct
  1258. {
  1259. char sIpV4[16]; /* IPv4地址 */
  1260. BYTE byIPv6[128]; /* 保留 */
  1261. }NET_DVR_IPADDR, *LPNET_DVR_IPADDR;
  1262. /*
  1263. 网络数据结构(子结构)(9000扩展)
  1264. */
  1265. typedef struct
  1266. {
  1267. NET_DVR_IPADDR struDVRIP; //DVR IP地址
  1268. NET_DVR_IPADDR struDVRIPMask; //DVR IP地址掩码
  1269. DWORD dwNetInterface; //网络接口1-10MBase-T 2-10MBase-T全双工 3-100MBase-TX 4-100M全双工 5-10M/100M自适应
  1270. WORD wDVRPort; //端口号
  1271. WORD wMTU; //增加MTU设置,默认1500。
  1272. BYTE byMACAddr[MACADDR_LEN]; // 物理地址
  1273. BYTE byRes[2]; //保留
  1274. }NET_DVR_ETHERNET_V30, *LPNET_DVR_ETHERNET_V30;
  1275. /*
  1276. 网络数据结构(子结构)
  1277. */
  1278. typedef struct
  1279. {
  1280. char sDVRIP[16]; //DVR IP地址
  1281. char sDVRIPMask[16]; //DVR IP地址掩码
  1282. DWORD dwNetInterface; //网络接口 1-10MBase-T 2-10MBase-T全双工 3-100MBase-TX 4-100M全双工 5-10M/100M自适应
  1283. WORD wDVRPort; //端口号
  1284. BYTE byMACAddr[MACADDR_LEN]; //服务器的物理地址
  1285. }NET_DVR_ETHERNET;
  1286. //pppoe结构
  1287. typedef struct
  1288. {
  1289. DWORD dwPPPOE; //0-不启用,1-启用
  1290. BYTE sPPPoEUser[NAME_LEN]; //PPPoE用户名
  1291. char sPPPoEPassword[PASSWD_LEN]; // PPPoE密码
  1292. NET_DVR_IPADDR struPPPoEIP; //PPPoE IP地址
  1293. }NET_DVR_PPPOECFG, *LPNET_DVR_PPPOECFG;
  1294. //网络配置结构(9000扩展)
  1295. typedef struct
  1296. {
  1297. DWORD dwSize;
  1298. NET_DVR_ETHERNET_V30 struEtherNet[MAX_ETHERNET]; //以太网口
  1299. NET_DVR_IPADDR struRes1[2]; /*保留*/
  1300. NET_DVR_IPADDR struAlarmHostIpAddr; /* 报警主机IP地址 */
  1301. WORD wRes2[2]; /* 保留 */
  1302. WORD wAlarmHostIpPort; /* 报警主机端口号 */
  1303. BYTE byUseDhcp; /* 是否启用DHCP 0xff-无效 0-不启用 1-启用*/
  1304. BYTE byRes3;
  1305. NET_DVR_IPADDR struDnsServer1IpAddr; /* 域名服务器1的IP地址 */
  1306. NET_DVR_IPADDR struDnsServer2IpAddr; /* 域名服务器2的IP地址 */
  1307. BYTE byIpResolver[MAX_DOMAIN_NAME]; /* IP解析服务器域名或IP地址 */
  1308. WORD wIpResolverPort; /* IP解析服务器端口号 */
  1309. WORD wHttpPortNo; /* HTTP端口号 */
  1310. NET_DVR_IPADDR struMulticastIpAddr; /* 多播组地址 */
  1311. NET_DVR_IPADDR struGatewayIpAddr; /* 网关地址 */
  1312. NET_DVR_PPPOECFG struPPPoE;
  1313. BYTE byRes[64];
  1314. } NET_DVR_NETCFG_V30, *LPNET_DVR_NETCFG_V30;
  1315. //多网卡配置网卡结构
  1316. typedef struct
  1317. {
  1318. NET_DVR_IPADDR struDVRIP; //DVR IP地址
  1319. NET_DVR_IPADDR struDVRIPMask; //DVR IP地址掩码
  1320. DWORD dwNetInterface; //网络接口1-10MBase-T 2-10MBase-T全双工 3-100MBase-TX 4-100M全双工 5-10M/100M/1000M自适应
  1321. BYTE byRes1[2];
  1322. WORD wMTU; //增加MTU设置,默认1500。
  1323. BYTE byMACAddr[MACADDR_LEN]; //物理地址,只用于显示
  1324. BYTE byRes2[2]; //保留
  1325. BYTE byUseDhcp; /* 是否启用DHCP */
  1326. BYTE byRes3[3];
  1327. NET_DVR_IPADDR struGatewayIpAddr; /* 网关地址 */
  1328. NET_DVR_IPADDR struDnsServer1IpAddr; /* 域名服务器1的IP地址 */
  1329. NET_DVR_IPADDR struDnsServer2IpAddr; /* 域名服务器2的IP地址 */
  1330. }NET_DVR_ETHERNET_MULTI, *LPNET_DVR_ETHERNET_MULTI;
  1331. //多网卡网络配置结构
  1332. typedef struct
  1333. {
  1334. DWORD dwSize;
  1335. BYTE byDefaultRoute; //默认路由,0表示struEtherNet[0],1表示struEtherNet[1]
  1336. BYTE byNetworkCardNum; //设备实际可配置的网卡数目
  1337. BYTE byRes[2]; //保留
  1338. NET_DVR_ETHERNET_MULTI struEtherNet[MAX_NETWORK_CARD]; //以太网口
  1339. NET_DVR_IPADDR struManageHost1IpAddr; /* 主管理主机IP地址 */
  1340. NET_DVR_IPADDR struManageHost2IpAddr; /* 辅管理主机IP地址 */
  1341. NET_DVR_IPADDR struAlarmHostIpAddr; /* 报警主机IP地址 */
  1342. WORD wManageHost1Port; /* 主管理主机端口号 */
  1343. WORD wManageHost2Port; /* 辅管理主机端口号 */
  1344. WORD wAlarmHostIpPort; /* 报警主机端口号 */
  1345. BYTE byIpResolver[MAX_DOMAIN_NAME]; /* IP解析服务器域名或IP地址 */
  1346. WORD wIpResolverPort; /* IP解析服务器端口号 */
  1347. WORD wDvrPort; //通讯端口 默认8000
  1348. WORD wHttpPortNo; /* HTTP端口号 */
  1349. BYTE byRes2[6];
  1350. NET_DVR_IPADDR struMulticastIpAddr; /* 多播组地址 */
  1351. NET_DVR_PPPOECFG struPPPoE;
  1352. BYTE byRes3[24];
  1353. }NET_DVR_NETCFG_MULTI, *LPNET_DVR_NETCFG_MULTI;
  1354. //网络配置结构
  1355. typedef struct
  1356. {
  1357. DWORD dwSize;
  1358. NET_DVR_ETHERNET struEtherNet[MAX_ETHERNET]; /* 以太网口 */
  1359. char sManageHostIP[16]; //远程管理主机地址
  1360. WORD wManageHostPort; //远程管理主机端口号
  1361. char sIPServerIP[16]; //IPServer服务器地址
  1362. char sMultiCastIP[16]; //多播组地址
  1363. char sGatewayIP[16]; //网关地址
  1364. char sNFSIP[16]; //NFS主机IP地址
  1365. BYTE sNFSDirectory[PATHNAME_LEN];//NFS目录
  1366. DWORD dwPPPOE; //0-不启用,1-启用
  1367. BYTE sPPPoEUser[NAME_LEN]; //PPPoE用户名
  1368. char sPPPoEPassword[PASSWD_LEN];// PPPoE密码
  1369. char sPPPoEIP[16]; //PPPoE IP地址(只读)
  1370. WORD wHttpPort; //HTTP端口号
  1371. }NET_DVR_NETCFG, *LPNET_DVR_NETCFG;
  1372. //通道图象结构
  1373. //移动侦测(子结构)(9000扩展)
  1374. typedef struct
  1375. {
  1376. BYTE byMotionScope[64][96]; /*侦测区域,0-96位,表示64行,共有96*64个小宏块,为1表示是移动侦测区域,0-表示不是*/
  1377. BYTE byMotionSensitive; /*移动侦测灵敏度, 0 - 5,越高越灵敏,oxff关闭*/
  1378. BYTE byEnableHandleMotion; /* 是否处理移动侦测 0-否 1-是*/
  1379. BYTE byRes; /* 保留 */
  1380. char reservedData;
  1381. NET_DVR_HANDLEEXCEPTION_V30 struMotionHandleType; /* 处理方式 */
  1382. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30]; /*布防时间*/
  1383. BYTE byRelRecordChan[MAX_CHANNUM_V30]; /* 报警触发的录象通道*/
  1384. }NET_DVR_MOTION_V30, *LPNET_DVR_MOTION_V30;
  1385. //移动侦测(子结构)
  1386. typedef struct
  1387. {
  1388. BYTE byMotionScope[18][22]; /*侦测区域,共有22*18个小宏块,为1表示改宏块是移动侦测区域,0-表示不是*/
  1389. BYTE byMotionSensitive; /*移动侦测灵敏度, 0 - 5,越高越灵敏,0xff关闭*/
  1390. BYTE byEnableHandleMotion; /* 是否处理移动侦测 */
  1391. char reservedData[2];
  1392. NET_DVR_HANDLEEXCEPTION strMotionHandleType; /* 处理方式 */
  1393. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  1394. BYTE byRelRecordChan[MAX_CHANNUM]; //报警触发的录象通道,为1表示触发该通道
  1395. }NET_DVR_MOTION, *LPNET_DVR_MOTION;
  1396. //遮挡报警(子结构)(9000扩展) 区域大小704*576
  1397. typedef struct
  1398. {
  1399. DWORD dwEnableHideAlarm; /* 是否启动遮挡报警 ,0-否,1-低灵敏度 2-中灵敏度 3-高灵敏度*/
  1400. WORD wHideAlarmAreaTopLeftX; /* 遮挡区域的x坐标 */
  1401. WORD wHideAlarmAreaTopLeftY; /* 遮挡区域的y坐标 */
  1402. WORD wHideAlarmAreaWidth; /* 遮挡区域的宽 */
  1403. WORD wHideAlarmAreaHeight; /*遮挡区域的高*/
  1404. NET_DVR_HANDLEEXCEPTION_V30 strHideAlarmHandleType; /* 处理方式 */
  1405. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30];//布防时间
  1406. }NET_DVR_HIDEALARM_V30, *LPNET_DVR_HIDEALARM_V30;
  1407. //遮挡报警(子结构) 区域大小704*576
  1408. typedef struct
  1409. {
  1410. DWORD dwEnableHideAlarm; /* 是否启动遮挡报警 ,0-否,1-低灵敏度 2-中灵敏度 3-高灵敏度*/
  1411. WORD wHideAlarmAreaTopLeftX; /* 遮挡区域的x坐标 */
  1412. WORD wHideAlarmAreaTopLeftY; /* 遮挡区域的y坐标 */
  1413. WORD wHideAlarmAreaWidth; /* 遮挡区域的宽 */
  1414. WORD wHideAlarmAreaHeight; /*遮挡区域的高*/
  1415. NET_DVR_HANDLEEXCEPTION strHideAlarmHandleType; /* 处理方式 */
  1416. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  1417. }NET_DVR_HIDEALARM, *LPNET_DVR_HIDEALARM;
  1418. //信号丢失报警(子结构)(9000扩展)
  1419. typedef struct
  1420. {
  1421. BYTE byEnableHandleVILost; /* 是否处理信号丢失报警 */
  1422. NET_DVR_HANDLEEXCEPTION_V30 strVILostHandleType; /* 处理方式 */
  1423. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30];//布防时间
  1424. }NET_DVR_VILOST_V30, *LPNET_DVR_VILOST_V30;
  1425. //信号丢失报警(子结构)
  1426. typedef struct
  1427. {
  1428. BYTE byEnableHandleVILost; /* 是否处理信号丢失报警 */
  1429. NET_DVR_HANDLEEXCEPTION strVILostHandleType; /* 处理方式 */
  1430. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  1431. }NET_DVR_VILOST, *LPNET_DVR_VILOST;
  1432. //遮挡区域(子结构)
  1433. typedef struct
  1434. {
  1435. WORD wHideAreaTopLeftX; /* 遮挡区域的x坐标 */
  1436. WORD wHideAreaTopLeftY; /* 遮挡区域的y坐标 */
  1437. WORD wHideAreaWidth; /* 遮挡区域的宽 */
  1438. WORD wHideAreaHeight; /*遮挡区域的高*/
  1439. }NET_DVR_SHELTER, *LPNET_DVR_SHELTER;
  1440. typedef struct
  1441. {
  1442. BYTE byBrightness; /*亮度,0-255*/
  1443. BYTE byContrast; /*对比度,0-255*/
  1444. BYTE bySaturation; /*饱和度,0-255*/
  1445. BYTE byHue; /*色调,0-255*/
  1446. }NET_DVR_COLOR, *LPNET_DVR_COLOR;
  1447. //通道图象结构(9000扩展)
  1448. typedef struct
  1449. {
  1450. DWORD dwSize;
  1451. BYTE sChanName[NAME_LEN];
  1452. DWORD dwVideoFormat; /* 只读 视频制式 1-NTSC 2-PAL*/
  1453. char reservedData [64];/*保留*/
  1454. //显示通道名
  1455. DWORD dwShowChanName; // 预览的图象上是否显示通道名称,0-不显示,1-显示 区域大小704*576
  1456. WORD wShowNameTopLeftX; /* 通道名称显示位置的x坐标 */
  1457. WORD wShowNameTopLeftY; /* 通道名称显示位置的y坐标 */
  1458. //视频信号丢失报警
  1459. NET_DVR_VILOST_V30 struVILost;
  1460. NET_DVR_VILOST_V30 struRes; /*保留*/
  1461. // BYTE byRes1[328];
  1462. //移动侦测
  1463. NET_DVR_MOTION_V30 struMotion;
  1464. //遮挡报警
  1465. NET_DVR_HIDEALARM_V30 struHideAlarm;
  1466. //遮挡 区域大小704*576
  1467. DWORD dwEnableHide; /* 是否启动遮挡 ,0-否,1-是*/
  1468. NET_DVR_SHELTER struShelter[MAX_SHELTERNUM];
  1469. //OSD
  1470. DWORD dwShowOsd;// 预览的图象上是否显示OSD,0-不显示,1-显示 区域大小704*576
  1471. WORD wOSDTopLeftX; /* OSD的x坐标 */
  1472. WORD wOSDTopLeftY; /* OSD的y坐标 */
  1473. BYTE byOSDType; /* OSD类型(主要是年月日格式) */
  1474. /* 0: XXXX-XX-XX 年月日 */
  1475. /* 1: XX-XX-XXXX 月日年 */
  1476. /* 2: XXXX年XX月XX日 */
  1477. /* 3: XX月XX日XXXX年 */
  1478. /* 4: XX-XX-XXXX 日月年*/
  1479. /* 5: XX日XX月XXXX年 */
  1480. BYTE byDispWeek; /* 是否显示星期 */
  1481. BYTE byOSDAttrib; /* OSD属性:透明,闪烁 */
  1482. /* 1: 透明,闪烁 */
  1483. /* 2: 透明,不闪烁 */
  1484. /* 3: 闪烁,不透明 */
  1485. /* 4: 不透明,不闪烁 */
  1486. BYTE byHourOSDType; /* OSD小时制:0-24小时制,1-12小时制 */
  1487. BYTE byFontSize;
  1488. BYTE byRes[63];
  1489. }NET_DVR_PICCFG_V30, *LPNET_DVR_PICCFG_V30;
  1490. //通道图象结构SDK_V14扩展
  1491. typedef struct
  1492. {
  1493. DWORD dwSize;
  1494. BYTE sChanName[NAME_LEN];
  1495. DWORD dwVideoFormat; /* 只读 视频制式 1-NTSC 2-PAL*/
  1496. BYTE byRes[4]; /* 保留 */
  1497. //显示通道名
  1498. DWORD dwShowChanName; // 预览的图象上是否显示通道名称,0-不显示,1-显示 区域大小704*576
  1499. WORD wShowNameTopLeftX; /* 通道名称显示位置的x坐标 */
  1500. WORD wShowNameTopLeftY; /* 通道名称显示位置的y坐标 */
  1501. //信号丢失报警
  1502. NET_DVR_VILOST struVILost;
  1503. //移动侦测
  1504. NET_DVR_MOTION struMotion;
  1505. //遮挡报警
  1506. NET_DVR_HIDEALARM struHideAlarm;
  1507. //遮挡 区域大小704*576
  1508. DWORD dwEnableHide; /* 是否启动遮挡 ,0-否,1-是*/
  1509. NET_DVR_SHELTER struShelter[MAX_SHELTERNUM];
  1510. //OSD
  1511. DWORD dwShowOsd;// 预览的图象上是否显示OSD,0-不显示,1-显示 区域大小704*576
  1512. WORD wOSDTopLeftX; /* OSD的x坐标 */
  1513. WORD wOSDTopLeftY; /* OSD的y坐标 */
  1514. BYTE byOSDType; /* OSD类型(主要是年月日格式) */
  1515. /* 0: XXXX-XX-XX 年月日 */
  1516. /* 1: XX-XX-XXXX 月日年 */
  1517. /* 2: XXXX年XX月XX日 */
  1518. /* 3: XX月XX日XXXX年 */
  1519. /* 4: XX-XX-XXXX 日月年*/
  1520. /* 5: XX日XX月XXXX年 */
  1521. BYTE byDispWeek; /* 是否显示星期 */
  1522. BYTE byOSDAttrib; /* OSD属性:透明,闪烁 */
  1523. /* 1: 透明,闪烁 */
  1524. /* 2: 透明,不闪烁 */
  1525. /* 3: 闪烁,不透明 */
  1526. /* 4: 不透明,不闪烁 */
  1527. BYTE byHourOsdType; /* OSD小时制:0-24小时制,1-12小时制 */
  1528. }NET_DVR_PICCFG_EX, *LPNET_DVR_PICCFG_EX;
  1529. //通道图象结构(SDK_V13及之前版本)
  1530. typedef struct
  1531. {
  1532. DWORD dwSize;
  1533. BYTE sChanName[NAME_LEN];
  1534. DWORD dwVideoFormat; /* 只读 视频制式 1-NTSC 2-PAL*/
  1535. BYTE byRes[4]; /* 保留 */
  1536. //显示通道名
  1537. DWORD dwShowChanName; // 预览的图象上是否显示通道名称,0-不显示,1-显示 区域大小704*576
  1538. WORD wShowNameTopLeftX; /* 通道名称显示位置的x坐标 */
  1539. WORD wShowNameTopLeftY; /* 通道名称显示位置的y坐标 */
  1540. //信号丢失报警
  1541. NET_DVR_VILOST struVILost;
  1542. //移动侦测
  1543. NET_DVR_MOTION struMotion;
  1544. //遮挡报警
  1545. NET_DVR_HIDEALARM struHideAlarm;
  1546. //遮挡 区域大小704*576
  1547. DWORD dwEnableHide; /* 是否启动遮挡 ,0-否,1-是*/
  1548. WORD wHideAreaTopLeftX; /* 遮挡区域的x坐标 */
  1549. WORD wHideAreaTopLeftY; /* 遮挡区域的y坐标 */
  1550. WORD wHideAreaWidth; /* 遮挡区域的宽 */
  1551. WORD wHideAreaHeight; /*遮挡区域的高*/
  1552. //OSD
  1553. DWORD dwShowOsd;// 预览的图象上是否显示OSD,0-不显示,1-显示 区域大小704*576
  1554. WORD wOSDTopLeftX; /* OSD的x坐标 */
  1555. WORD wOSDTopLeftY; /* OSD的y坐标 */
  1556. BYTE byOSDType; /* OSD类型(主要是年月日格式) */
  1557. /* 0: XXXX-XX-XX 年月日 */
  1558. /* 1: XX-XX-XXXX 月日年 */
  1559. /* 2: XXXX年XX月XX日 */
  1560. /* 3: XX月XX日XXXX年 */
  1561. /* 4: XX-XX-XXXX 日月年*/
  1562. /* 5: XX日XX月XXXX年 */
  1563. BYTE byDispWeek; /* 是否显示星期 */
  1564. BYTE byOSDAttrib; /* OSD属性:透明,闪烁 */
  1565. /* 1: 透明,闪烁 */
  1566. /* 2: 透明,不闪烁 */
  1567. /* 3: 闪烁,不透明 */
  1568. /* 4: 不透明,不闪烁 */
  1569. char reservedData2;
  1570. }NET_DVR_PICCFG, *LPNET_DVR_PICCFG;
  1571. //码流压缩参数(子结构)(9000扩展)
  1572. typedef struct
  1573. {
  1574. BYTE byStreamType; //码流类型 0-视频流, 1-复合流, 表示事件压缩参数时最高位表示是否启用压缩参数
  1575. BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF 5(保留),6-QVGA(320*240),
  1576. //16-VGA(640*480), 17-UXGA(1600*1200), 18-SVGA (800*600),
  1577. //19-HD720p(1280*720),20-XVGA, 21-HD900p, 27-1920*1080(1080p),
  1578. //28-2560*1920, 29-1600*304, 30-2048*1536, 31-2448*2048,32-2448*1200,
  1579. //33-2448*800,34-XGA(1024*768),35-SXGA(1280*1024),36-WD1(960*576/960*480),37-1080i
  1580. //0xff-Auto(使用当前码流分辨率)
  1581. BYTE byBitrateType; //码率类型 0:变码率, 1:定码率
  1582. BYTE byPicQuality; //图象质量 0-最好 1-次好 2-较好 3-一般 4-较差 5-差
  1583. 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
  1584. // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K 24-2560K 25-3072K 26-4096K 27-5120K 28-6144K 29-7168K 30-8192K 31-16384k
  1585. //最高位(31位)置成1表示是自定义码流, 0-30位表示码流值。
  1586. 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;
  1587. WORD wIntervalFrameI; //I帧间隔
  1588. //2006-08-11 增加单P帧的配置接口,可以改善实时流延时问题
  1589. BYTE byIntervalBPFrame;//0-BBP帧; 1-BP帧; 2-单P帧
  1590. BYTE byres1; //保留
  1591. BYTE byVideoEncType; //视频编码类型 0 私有h264;1标准h264; 2标准mpeg4; 3-M-JPEG
  1592. BYTE byAudioEncType; //音频编码类型 0-OggVorbis;1-G711_U;2-G711_A
  1593. BYTE byVideoEncComplexity; //视频编码复杂度,0-低,1-中,2高
  1594. BYTE byres[9];//这里保留音频的压缩参数
  1595. }NET_DVR_COMPRESSION_INFO_V30, *LPNET_DVR_COMPRESSION_INFO_V30;
  1596. //通道压缩参数(9000扩展)
  1597. typedef struct
  1598. {
  1599. DWORD dwSize;
  1600. NET_DVR_COMPRESSION_INFO_V30 struNormHighRecordPara; //录像 对应8000的普通
  1601. NET_DVR_COMPRESSION_INFO_V30 struRes;//保留 char reserveData[28];
  1602. NET_DVR_COMPRESSION_INFO_V30 struEventRecordPara; //事件触发压缩参数
  1603. NET_DVR_COMPRESSION_INFO_V30 struNetPara; //网传(子码流)
  1604. }NET_DVR_COMPRESSIONCFG_V30, *LPNET_DVR_COMPRESSIONCFG_V30;
  1605. //码流压缩参数(子结构)
  1606. typedef struct
  1607. {
  1608. BYTE byStreamType; //码流类型0-视频流,1-复合流,表示压缩参数时最高位表示是否启用压缩参数
  1609. BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF, 5-2QCIF(352X144)(车载专用)
  1610. BYTE byBitrateType; //码率类型0:变码率,1:定码率
  1611. BYTE byPicQuality; //图象质量 0-最好 1-次好 2-较好 3-一般 4-较差 5-差
  1612. 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
  1613. // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
  1614. //最高位(31位)置成1表示是自定义码流, 0-30位表示码流值(MIN-32K MAX-8192K)。
  1615. 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;
  1616. }NET_DVR_COMPRESSION_INFO, *LPNET_DVR_COMPRESSION_INFO;
  1617. //通道压缩参数
  1618. typedef struct
  1619. {
  1620. DWORD dwSize;
  1621. NET_DVR_COMPRESSION_INFO struRecordPara; //录像/事件触发录像
  1622. NET_DVR_COMPRESSION_INFO struNetPara; //网传/保留
  1623. }NET_DVR_COMPRESSIONCFG, *LPNET_DVR_COMPRESSIONCFG;
  1624. //码流压缩参数(子结构)(扩展) 增加I帧间隔
  1625. typedef struct
  1626. {
  1627. BYTE byStreamType; //码流类型0-视频流, 1-复合流
  1628. BYTE byResolution; //分辨率0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF, 5-2QCIF(352X144)(车载专用)
  1629. BYTE byBitrateType; //码率类型0:变码率,1:定码率
  1630. BYTE byPicQuality; //图象质量 0-最好 1-次好 2-较好 3-一般 4-较差 5-差
  1631. 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
  1632. // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
  1633. //最高位(31位)置成1表示是自定义码流, 0-30位表示码流值(MIN-32K MAX-8192K)。
  1634. 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;
  1635. WORD wIntervalFrameI; //I帧间隔
  1636. //2006-08-11 增加单P帧的配置接口,可以改善实时流延时问题
  1637. BYTE byIntervalBPFrame;//0-BBP帧; 1-BP帧; 2-单P帧
  1638. BYTE byRes;
  1639. }NET_DVR_COMPRESSION_INFO_EX, *LPNET_DVR_COMPRESSION_INFO_EX;
  1640. //通道压缩参数(扩展)
  1641. typedef struct
  1642. {
  1643. DWORD dwSize;
  1644. NET_DVR_COMPRESSION_INFO_EX struRecordPara; //录像
  1645. NET_DVR_COMPRESSION_INFO_EX struNetPara; //网传
  1646. }NET_DVR_COMPRESSIONCFG_EX, *LPNET_DVR_COMPRESSIONCFG_EX;
  1647. //时间段录像参数配置(子结构)
  1648. typedef struct
  1649. {
  1650. NET_DVR_SCHEDTIME struRecordTime;
  1651. BYTE byRecordType; //0:定时录像,1:移动侦测,2:报警录像,3:动测|报警,4:动测&报警, 5:命令触发, 6: 智能录像
  1652. char reservedData[3];
  1653. }NET_DVR_RECORDSCHED, *LPNET_DVR_RECORDSCHED;
  1654. //全天录像参数配置(子结构)
  1655. typedef struct
  1656. {
  1657. WORD wAllDayRecord; /* 是否全天录像 0-否 1-是*/
  1658. BYTE byRecordType; /* 录象类型 0:定时录像,1:移动侦测,2:报警录像,3:动测|报警,4:动测&报警 5:命令触发, 6: 智能录像*/
  1659. char reservedData;
  1660. }NET_DVR_RECORDDAY, *LPNET_DVR_RECORDDAY;
  1661. //通道录像参数配置(9000扩展)
  1662. typedef struct
  1663. {
  1664. DWORD dwSize;
  1665. DWORD dwRecord; /*是否录像 0-否 1-是*/
  1666. NET_DVR_RECORDDAY struRecAllDay[MAX_DAYS];
  1667. NET_DVR_RECORDSCHED struRecordSched[MAX_DAYS][MAX_TIMESEGMENT_V30];
  1668. DWORD dwRecordTime; /* 录象延时长度 0-5秒, 1-20秒, 2-30秒, 3-1分钟, 4-2分钟, 5-5分钟, 6-10分钟*/
  1669. DWORD dwPreRecordTime; /* 预录时间 0-不预录 1-5秒 2-10秒 3-15秒 4-20秒 5-25秒 6-30秒 7-0xffffffff(尽可能预录) */
  1670. DWORD dwRecorderDuration; /* 录像保存的最长时间 */
  1671. BYTE byRedundancyRec; /*是否冗余录像,重要数据双备份:0/1*/
  1672. BYTE byAudioRec; /*录像时复合流编码时是否记录音频数据:国外有此法规*/
  1673. BYTE byReserve[10];
  1674. }NET_DVR_RECORD_V30, *LPNET_DVR_RECORD_V30;
  1675. //通道录像参数配置
  1676. typedef struct
  1677. {
  1678. DWORD dwSize;
  1679. DWORD dwRecord; /*是否录像 0-否 1-是*/
  1680. NET_DVR_RECORDDAY struRecAllDay[MAX_DAYS];
  1681. NET_DVR_RECORDSCHED struRecordSched[MAX_DAYS][MAX_TIMESEGMENT];
  1682. DWORD dwRecordTime; /* 录象时间长度 */
  1683. DWORD dwPreRecordTime; /* 预录时间 0-不预录 1-5秒 2-10秒 3-15秒 4-20秒 5-25秒 6-30秒 7-0xffffffff(尽可能预录) */
  1684. }NET_DVR_RECORD, *LPNET_DVR_RECORD;
  1685. //云台协议表结构配置
  1686. typedef struct
  1687. {
  1688. DWORD dwType; /*解码器类型值*/
  1689. BYTE byDescribe[DESC_LEN]; /*解码器的描述符,和8000中的一致*/
  1690. }NET_DVR_PTZ_PROTOCOL;
  1691. typedef struct
  1692. {
  1693. DWORD dwSize;
  1694. NET_DVR_PTZ_PROTOCOL struPtz[PTZ_PROTOCOL_NUM];/*最大200中PTZ协议*/
  1695. DWORD dwPtzNum; /*有效的ptz协议数目,从0开始(即计算时加1)*/
  1696. BYTE byRes[8];
  1697. }NET_DVR_PTZCFG, *LPNET_DVR_PTZCFG;
  1698. /***************************云台类型(end)******************************/
  1699. //通道解码器(云台)参数配置(9000扩展)
  1700. typedef struct
  1701. {
  1702. DWORD dwSize;
  1703. 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;
  1704. BYTE byDataBit;// 数据有几位 0-5位,1-6位,2-7位,3-8位;
  1705. BYTE byStopBit;// 停止位 0-1位,1-2位;
  1706. BYTE byParity;// 校验 0-无校验,1-奇校验,2-偶校验;
  1707. BYTE byFlowcontrol;// 0-无,1-软流控,2-硬流控
  1708. WORD wDecoderType;//解码器类型, 从0开始,对应ptz协议列表从NET_DVR_IPC_PROTO_LIST得到
  1709. WORD wDecoderAddress; /*解码器地址:0 - 255*/
  1710. BYTE bySetPreset[MAX_PRESET_V30]; /* 预置点是否设置,0-没有设置,1-设置*/
  1711. BYTE bySetCruise[MAX_CRUISE_V30]; /* 巡航是否设置: 0-没有设置,1-设置 */
  1712. BYTE bySetTrack[MAX_TRACK_V30]; /* 轨迹是否设置,0-没有设置,1-设置*/
  1713. }NET_DVR_DECODERCFG_V30, *LPNET_DVR_DECODERCFG_V30;
  1714. //通道解码器(云台)参数配置
  1715. typedef struct
  1716. {
  1717. DWORD dwSize;
  1718. 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;
  1719. BYTE byDataBit; // 数据有几位 0-5位,1-6位,2-7位,3-8位;
  1720. BYTE byStopBit; // 停止位 0-1位,1-2位;
  1721. BYTE byParity; // 校验 0-无校验,1-奇校验,2-偶校验;
  1722. BYTE byFlowcontrol; // 0-无,1-软流控,2-硬流控
  1723. WORD wDecoderType; //解码器类型 NET_DVR_IPC_PROTO_LIST中得到
  1724. WORD wDecoderAddress; /*解码器地址:0 - 255*/
  1725. BYTE bySetPreset[MAX_PRESET]; /* 预置点是否设置,0-没有设置,1-设置*/
  1726. BYTE bySetCruise[MAX_CRUISE]; /* 巡航是否设置: 0-没有设置,1-设置 */
  1727. BYTE bySetTrack[MAX_TRACK]; /* 轨迹是否设置,0-没有设置,1-设置*/
  1728. }NET_DVR_DECODERCFG, *LPNET_DVR_DECODERCFG;
  1729. //ppp参数配置(子结构)
  1730. typedef struct
  1731. {
  1732. NET_DVR_IPADDR struRemoteIP; //远端IP地址
  1733. NET_DVR_IPADDR struLocalIP; //本地IP地址
  1734. char sLocalIPMask[16]; //本地IP地址掩码
  1735. BYTE sUsername[NAME_LEN]; /* 用户名 */
  1736. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1737. BYTE byPPPMode; //PPP模式, 0-主动,1-被动
  1738. BYTE byRedial; //是否回拨 :0-否,1-是
  1739. BYTE byRedialMode; //回拨模式,0-由拨入者指定,1-预置回拨号码
  1740. BYTE byDataEncrypt; //数据加密,0-否,1-是
  1741. DWORD dwMTU; //MTU
  1742. char sTelephoneNumber[PHONENUMBER_LEN]; //电话号码
  1743. }NET_DVR_PPPCFG_V30, *LPNET_DVR_PPPCFG_V30;
  1744. //ppp参数配置(子结构)
  1745. typedef struct
  1746. {
  1747. char sRemoteIP[16]; //远端IP地址
  1748. char sLocalIP[16]; //本地IP地址
  1749. char sLocalIPMask[16]; //本地IP地址掩码
  1750. BYTE sUsername[NAME_LEN]; /* 用户名 */
  1751. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1752. BYTE byPPPMode; //PPP模式, 0-主动,1-被动
  1753. BYTE byRedial; //是否回拨 :0-否,1-是
  1754. BYTE byRedialMode; //回拨模式,0-由拨入者指定,1-预置回拨号码
  1755. BYTE byDataEncrypt; //数据加密,0-否,1-是
  1756. DWORD dwMTU; //MTU
  1757. char sTelephoneNumber[PHONENUMBER_LEN]; //电话号码
  1758. }NET_DVR_PPPCFG, *LPNET_DVR_PPPCFG;
  1759. //RS232串口参数配置(9000扩展)
  1760. typedef struct
  1761. {
  1762. 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;*/
  1763. BYTE byDataBit; /* 数据有几位 0-5位,1-6位,2-7位,3-8位 */
  1764. BYTE byStopBit; /* 停止位 0-1位,1-2位 */
  1765. BYTE byParity; /* 校验 0-无校验,1-奇校验,2-偶校验 */
  1766. BYTE byFlowcontrol; /* 0-无,1-软流控,2-硬流控 */
  1767. DWORD dwWorkMode; /* 工作模式,0-232串口用于PPP拨号,1-232串口用于参数控制,2-透明通道 3- ptz模式,审讯温湿度传感器 4-报警盒模式*/
  1768. }NET_DVR_SINGLE_RS232;
  1769. //RS232串口参数配置(9000扩展)
  1770. typedef struct
  1771. {
  1772. DWORD dwSize;
  1773. NET_DVR_SINGLE_RS232 struRs232[MAX_SERIAL_PORT];/*注意:此结构修改了,原来是单个结构,现在修改为了数组结构*/
  1774. NET_DVR_PPPCFG_V30 struPPPConfig;
  1775. }NET_DVR_RS232CFG_V30, *LPNET_DVR_RS232CFG_V30;
  1776. //RS232串口参数配置
  1777. typedef struct
  1778. {
  1779. DWORD dwSize;
  1780. 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;
  1781. BYTE byDataBit;// 数据有几位 0-5位,1-6位,2-7位,3-8位;
  1782. BYTE byStopBit;// 停止位 0-1位,1-2位;
  1783. BYTE byParity;// 校验 0-无校验,1-奇校验,2-偶校验;
  1784. BYTE byFlowcontrol;// 0-无,1-软流控,2-硬流控
  1785. DWORD dwWorkMode;// 工作模式,0-窄带传输(232串口用于PPP拨号),1-控制台(232串口用于参数控制),2-透明通道
  1786. NET_DVR_PPPCFG struPPPConfig;
  1787. }NET_DVR_RS232CFG, *LPNET_DVR_RS232CFG;
  1788. //报警输入参数配置(9000扩展)
  1789. typedef struct
  1790. {
  1791. DWORD dwSize;
  1792. BYTE sAlarmInName[NAME_LEN]; /* 名称 */
  1793. BYTE byAlarmType; //报警器类型,0:常开,1:常闭
  1794. BYTE byAlarmInHandle; /* 是否处理 0-不处理 1-处理*/
  1795. BYTE byChannel; // 报警输入触发智能识别通道
  1796. BYTE byRes1[1];
  1797. NET_DVR_HANDLEEXCEPTION_V30 struAlarmHandleType; /* 处理方式 */
  1798. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30];//布防时间
  1799. BYTE byRelRecordChan[MAX_CHANNUM_V30]; //报警触发的录象通道,为1表示触发该通道
  1800. BYTE byEnablePreset[MAX_CHANNUM_V30]; /* 是否调用预置点 0-否,1-是*/
  1801. BYTE byPresetNo[MAX_CHANNUM_V30]; /* 调用的云台预置点序号,一个报警输入可以调用多个通道的云台预置点, 0xff表示不调用预置点。*/
  1802. BYTE byRes2[192]; /*保留*/
  1803. BYTE byEnableCruise[MAX_CHANNUM_V30]; /* 是否调用巡航 0-否,1-是*/
  1804. BYTE byCruiseNo[MAX_CHANNUM_V30]; /* 巡航 */
  1805. BYTE byEnablePtzTrack[MAX_CHANNUM_V30]; /* 是否调用轨迹 0-否,1-是*/
  1806. BYTE byPTZTrack[MAX_CHANNUM_V30]; /* 调用的云台的轨迹序号 */
  1807. BYTE byRes3[16];
  1808. }NET_DVR_ALARMINCFG_V30, *LPNET_DVR_ALARMINCFG_V30;
  1809. //报警输入参数配置
  1810. typedef struct
  1811. {
  1812. DWORD dwSize;
  1813. BYTE sAlarmInName[NAME_LEN]; /* 名称 */
  1814. BYTE byAlarmType; //报警器类型,0:常开,1:常闭
  1815. BYTE byAlarmInHandle; /* 是否处理 0-不处理 1-处理*/
  1816. BYTE byChannel; // 报警输入触发智能识别通道
  1817. BYTE byRes;
  1818. NET_DVR_HANDLEEXCEPTION struAlarmHandleType; /* 处理方式 */
  1819. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  1820. BYTE byRelRecordChan[MAX_CHANNUM]; //报警触发的录象通道,为1表示触发该通道
  1821. BYTE byEnablePreset[MAX_CHANNUM]; /* 是否调用预置点 0-否,1-是*/
  1822. BYTE byPresetNo[MAX_CHANNUM]; /* 调用的云台预置点序号,一个报警输入可以调用多个通道的云台预置点, 0xff表示不调用预置点。*/
  1823. BYTE byEnableCruise[MAX_CHANNUM]; /* 是否调用巡航 0-否,1-是*/
  1824. BYTE byCruiseNo[MAX_CHANNUM]; /* 巡航 */
  1825. BYTE byEnablePtzTrack[MAX_CHANNUM]; /* 是否调用轨迹 0-否,1-是*/
  1826. BYTE byPTZTrack[MAX_CHANNUM]; /* 调用的云台的轨迹序号 */
  1827. }NET_DVR_ALARMINCFG, *LPNET_DVR_ALARMINCFG;
  1828. //上传报警信息(9000扩展)
  1829. typedef struct
  1830. {
  1831. DWORD dwAlarmType;/*0-信号量报警,1-硬盘满,2-信号丢失,3-移动侦测,4-硬盘未格式化,5-读写硬盘出错,6-遮挡报警,7-制式不匹配, 8-非法访问, 9-视频信号异常,
  1832. 10-录像异常 11- 智能场景变化 12-阵列异常 13-前端/录像分辨率不匹配*/
  1833. DWORD dwAlarmInputNumber;/*报警输入端口*/
  1834. BYTE byAlarmOutputNumber[MAX_ALARMOUT_V30];/*触发的输出端口,为1表示对应输出*/
  1835. BYTE byAlarmRelateChannel[MAX_CHANNUM_V30];/*触发的录像通道,为1表示对应录像, dwAlarmRelateChannel[0]对应第1个通道*/
  1836. BYTE byChannel[MAX_CHANNUM_V30];/*dwAlarmType为2或3,6,9,10时,表示哪个通道,dwChannel[0]对应第1个通道*/
  1837. BYTE byDiskNumber[MAX_DISKNUM_V30];/*dwAlarmType为1,4,5时,表示哪个硬盘, dwDiskNumber[0]对应第1个硬盘*/
  1838. #ifdef SDK_CHEZAI
  1839. NET_DVR_ADDIT_POSITION GPS_pos; /* GPS定位信息 */
  1840. #endif
  1841. }NET_DVR_ALARMINFO_V30, *LPNET_DVR_ALARMINFO_V30;
  1842. typedef struct
  1843. {
  1844. DWORD dwAlarmType;/*0-信号量报警,1-硬盘满,2-信号丢失,3-移动侦测,4-硬盘未格式化,5-读写硬盘出错,6-遮挡报警,7-制式不匹配, 8-非法访问, 9-视频信号异常,10-录像异常 11- 智能场景变化*/
  1845. DWORD dwAlarmInputNumber;/*报警输入端口*/
  1846. DWORD dwAlarmOutputNumber[MAX_ALARMOUT];/*触发的输出端口,哪一位为1表示对应哪一个输出*/
  1847. DWORD dwAlarmRelateChannel[MAX_CHANNUM];/*触发的录像通道,哪一位为1表示对应哪一路录像, dwAlarmRelateChannel[0]对应第1个通道*/
  1848. DWORD dwChannel[MAX_CHANNUM];/*dwAlarmType为2或3,6,9,10时,表示哪个通道,dwChannel[0]位对应第1个通道*/
  1849. DWORD dwDiskNumber[MAX_DISKNUM];/*dwAlarmType为1,4,5时,表示哪个硬盘, dwDiskNumber[0]位对应第1个硬盘*/
  1850. }NET_DVR_ALARMINFO, *LPNET_DVR_ALARMINFO;
  1851. //////////////////////////////////////////////////////////////////////////////////////
  1852. //IPC接入参数配置
  1853. /* IP设备结构 */
  1854. typedef struct
  1855. {
  1856. DWORD dwEnable; /* 该IP设备是否启用 */
  1857. BYTE sUserName[NAME_LEN]; /* 用户名 */
  1858. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  1859. NET_DVR_IPADDR struIP; /* IP地址 */
  1860. WORD wDVRPort; /* 端口号 */
  1861. BYTE byRes[34]; /* 保留 */
  1862. }NET_DVR_IPDEVINFO, *LPNET_DVR_IPDEVINFO;
  1863. //ipc接入设备信息扩展,支持ip设备的域名添加
  1864. typedef struct tagNET_DVR_IPDEVINFO_V31
  1865. {
  1866. BYTE byEnable; //该IP设备是否有效
  1867. BYTE byProType; //协议类型,0-私有协议,1-松下协议,2-索尼
  1868. BYTE byEnableQuickAdd; // 0 不支持快速添加 1 使用快速添加
  1869. // 快速添加需要设备IP和协议类型,其他信息由设备默认指定
  1870. BYTE byRes1; //保留字段,置0
  1871. BYTE sUserName[NAME_LEN]; //用户名
  1872. BYTE sPassword[PASSWD_LEN]; //密码
  1873. BYTE byDomain[MAX_DOMAIN_NAME]; //设备域名
  1874. NET_DVR_IPADDR struIP; //IP地址
  1875. WORD wDVRPort; // 端口号
  1876. BYTE byRes2[34]; //保留字段,置0
  1877. }NET_DVR_IPDEVINFO_V31, *LPNET_DVR_IPDEVINFO_V31;
  1878. /* IP通道匹配参数 */
  1879. typedef struct
  1880. {
  1881. BYTE byEnable; /* 该通道是否在线 */
  1882. BYTE byIPID; //IP设备ID低8位,当设备ID为0时表示通道不可用
  1883. BYTE byChannel; /* 通道号 */
  1884. BYTE byIPIDHigh; // IP设备ID的高8位
  1885. BYTE byres[32]; //保留,置0
  1886. } NET_DVR_IPCHANINFO, *LPNET_DVR_IPCHANINFO;
  1887. /* IP接入配置结构 */
  1888. typedef struct
  1889. {
  1890. DWORD dwSize; /* 结构大小 */
  1891. NET_DVR_IPDEVINFO struIPDevInfo[MAX_IP_DEVICE]; /* IP设备 */
  1892. BYTE byAnalogChanEnable[MAX_ANALOG_CHANNUM]; /* 模拟通道是否启用,从低到高表示1-32通道,0表示无效 1有效 */
  1893. NET_DVR_IPCHANINFO struIPChanInfo[MAX_IP_CHANNEL]; /* IP通道 */
  1894. }NET_DVR_IPPARACFG, *LPNET_DVR_IPPARACFG;
  1895. /* 扩展IP接入配置结构 */
  1896. typedef struct tagNET_DVR_IPPARACFG_V31
  1897. {
  1898. DWORD dwSize; /* 结构大小 */
  1899. NET_DVR_IPDEVINFO_V31 struIPDevInfo[MAX_IP_DEVICE]; /* IP设备 */
  1900. BYTE byAnalogChanEnable[MAX_ANALOG_CHANNUM]; /* 模拟通道是否启用,从低到高表示1-32通道,0表示无效 1有效 */
  1901. NET_DVR_IPCHANINFO struIPChanInfo[MAX_IP_CHANNEL]; /* IP通道 */
  1902. }NET_DVR_IPPARACFG_V31, *LPNET_DVR_IPPARACFG_V31;
  1903. typedef struct tagNET_DVR_IPSERVER_STREAM
  1904. {
  1905. BYTE byEnable; // 是否在线
  1906. BYTE byRes[3]; // 保留字节
  1907. NET_DVR_IPADDR struIPServer; //IPServer 地址
  1908. WORD wPort; //IPServer 端口
  1909. WORD wDvrNameLen; // DVR 名称长度
  1910. BYTE byDVRName[NAME_LEN]; // DVR名称
  1911. WORD wDVRSerialLen; // 序列号长度
  1912. WORD byRes1[2]; // 保留字节
  1913. BYTE byDVRSerialNumber[SERIALNO_LEN]; // DVR序列号长度
  1914. BYTE byUserName[NAME_LEN]; // DVR 登陆用户名
  1915. BYTE byPassWord[PASSWD_LEN]; // DVR登陆密码
  1916. BYTE byChannel; // DVR 通道
  1917. BYTE byRes2[11]; // 保留字节
  1918. }NET_DVR_IPSERVER_STREAM, *LPNET_DVR_IPSERVER_STREAM;
  1919. //流媒体服务器基本配置
  1920. typedef struct tagNET_DVR_STREAM_MEDIA_SERVER_CFG
  1921. {
  1922. BYTE byValid; /*是否可用*/
  1923. BYTE byRes1[3];
  1924. NET_DVR_IPADDR struDevIP;
  1925. WORD wDevPort; /*流媒体服务器端口*/
  1926. BYTE byTransmitType; /*传输协议类型 0-TCP,1-UDP*/
  1927. BYTE byRes2[69];
  1928. }NET_DVR_STREAM_MEDIA_SERVER_CFG,*LPNET_DVR_STREAM_MEDIA_SERVER_CFG;
  1929. //设备通道信息
  1930. typedef struct tagNET_DVR_DEV_CHAN_INFO
  1931. {
  1932. NET_DVR_IPADDR struIP; //DVR IP地址
  1933. WORD wDVRPort; //端口号
  1934. BYTE byChannel; //通道号
  1935. BYTE byTransProtocol; //传输协议类型0-TCP,1-UDP
  1936. BYTE byTransMode; //传输码流模式 0-主码流 1-子码流
  1937. BYTE byFactoryType; /*前端设备厂家类型,通过接口获取*/
  1938. BYTE byDeviceType; //设备类型(视频综合平台使用),1-IPC,2- ENCODER
  1939. BYTE byDispChan;//显示通道号,智能配置使用,根据能力集决定使用解码通道还是显示通道
  1940. BYTE bySubDispChan;//显示通道子通道号,智能配置时使用
  1941. BYTE byRes[3];
  1942. BYTE byDomain[MAX_DOMAIN_NAME]; //设备域名
  1943. BYTE sUserName[NAME_LEN]; //监控主机登陆帐号
  1944. BYTE sPassword[PASSWD_LEN]; //监控主机密码
  1945. }NET_DVR_DEV_CHAN_INFO,*LPNET_DVR_DEV_CHAN_INFO;
  1946. //直接通过流媒体取流
  1947. typedef struct tagNET_DVR_PU_STREAM_CFG
  1948. {
  1949. DWORD dwSize;
  1950. NET_DVR_STREAM_MEDIA_SERVER_CFG struStreamMediaSvrCfg;
  1951. NET_DVR_DEV_CHAN_INFO struDevChanInfo;
  1952. }NET_DVR_PU_STREAM_CFG,*LPNET_DVR_PU_STREAM_CFG;
  1953. typedef struct tagNET_DVR_DDNS_STREAM_CFG
  1954. {
  1955. BYTE byEnable; // 是否启用
  1956. BYTE byRes1[3];
  1957. NET_DVR_IPADDR struStreamServer; //流媒体服务器地址
  1958. WORD wStreamServerPort; //流媒体服务器端口
  1959. BYTE byStreamServerTransmitType; //流媒体传输协议类型 0-TCP,1-UDP
  1960. BYTE byRes2;
  1961. NET_DVR_IPADDR struIPServer; //IPSERVER地址
  1962. WORD wIPServerPort; //IPserver端口号
  1963. BYTE byRes3[2];
  1964. BYTE sDVRName[NAME_LEN]; //DVR名称
  1965. WORD wDVRNameLen; // DVR名称长度
  1966. WORD wDVRSerialLen; // 序列号长度
  1967. BYTE sDVRSerialNumber[SERIALNO_LEN]; // DVR序列号
  1968. BYTE sUserName[NAME_LEN]; // DVR 登陆用户名
  1969. BYTE sPassWord[PASSWD_LEN]; // DVR登陆密码
  1970. WORD wDVRPort; //DVR端口号
  1971. BYTE byRes4[2];
  1972. BYTE byChannel; // DVR 通道
  1973. BYTE byTransProtocol; //传输协议类型0-TCP,1-UDP
  1974. BYTE byTransMode; //传输码流模式 0-主码流 1-子码流
  1975. BYTE byFactoryType; //前端设备厂家类型,通过接口获取
  1976. }NET_DVR_DDNS_STREAM_CFG, *LPNET_DVR_DDNS_STREAM_CFG;
  1977. typedef struct tagNET_DVR_PU_STREAM_URL
  1978. {
  1979. BYTE byEnable;
  1980. BYTE strURL[240];
  1981. BYTE byRes[11];
  1982. }NET_DVR_PU_STREAM_URL, *LPNET_DVR_PU_STREAM_URL;
  1983. typedef union tagNET_DVR_GET_STREAM_UNION
  1984. {
  1985. NET_DVR_IPCHANINFO struChanInfo; /*IP通道信息*/
  1986. NET_DVR_IPSERVER_STREAM struIPServerStream; // IPServer去流
  1987. NET_DVR_PU_STREAM_CFG struPUStream; // 通过前端设备获取流媒体去流
  1988. NET_DVR_DDNS_STREAM_CFG struDDNSStream; //通过IPServer和流媒体取流
  1989. NET_DVR_PU_STREAM_URL struStreamUrl; //通过流媒体到url取流
  1990. }NET_DVR_GET_STREAM_UNION, *LPNET_DVR_GET_STREAM_UNION;
  1991. typedef enum
  1992. {
  1993. IP_DEVICE = 0,
  1994. STREAM_MEDIA,
  1995. IPSERVER,
  1996. DDNS_STREAM_CFG,
  1997. STREAM_MEDIA_URL
  1998. }GET_STREAM_TYPE;
  1999. typedef struct tagNET_DVR_STREAM_MODE
  2000. {
  2001. BYTE byGetStreamType; //取流方式GET_STREAM_TYPE,0-直接从设备取流,1-从流媒体取流、2-通过IPServer获得ip地址后取流,3.通过IPServer找到设备,再通过流媒体去设备的流
  2002. //4-通过流媒体由URL去取流
  2003. BYTE byRes[3]; //保留字节
  2004. NET_DVR_GET_STREAM_UNION uGetStream; // 不同取流方式结构体
  2005. }NET_DVR_STREAM_MODE, *LPNET_DVR_STREAM_MODE;
  2006. //扩展IP接入配置设备
  2007. typedef struct tagNET_DVR_IPPARACFG_V40
  2008. {
  2009. DWORD dwSize; /* 结构大小 */
  2010. DWORD dwGroupNum; // 设备支持的总组数
  2011. DWORD dwAChanNum; //最大模拟通道个数
  2012. DWORD dwDChanNum; //数字通道个数
  2013. DWORD dwStartDChan; //起始数字通道
  2014. BYTE byAnalogChanEnable[MAX_CHANNUM_V30]; /* 模拟通道是否启用,从低到高表示1-64通道,0表示无效 1有效 */
  2015. NET_DVR_IPDEVINFO_V31 struIPDevInfo[MAX_IP_DEVICE_V40]; /* IP设备 */
  2016. NET_DVR_STREAM_MODE struStreamMode[MAX_CHANNUM_V30];
  2017. BYTE byRes2[20]; // 保留字节
  2018. }NET_DVR_IPPARACFG_V40, *LPNET_DVR_IPPARACFG_V40;
  2019. #define COMM_ALARM_DEVICE 0x4004 //设备报警内容,由于通道值大于256而扩展
  2020. //为CVR扩展的报警类型
  2021. typedef struct tagNET_DVR_ALARMINFO_DEV
  2022. {
  2023. DWORD dwAlarmType; //0-编码器(通道)信号量报警;1-私有卷二损坏;2- NVR服务退出;
  2024. //3-编码器状态异常;4-系统时钟异常;5-录像卷剩余容量过低;
  2025. //6-编码器(通道)移动侦测报警;7-编码器(通道)遮挡报警。
  2026. NET_DVR_TIME struTime; //报警时间
  2027. BYTE byRes[32]; //保留
  2028. DWORD dwNumber; //数目
  2029. WORD *pNO; //dwNumber个WORD; 每个WORD表示一个通道号,或者磁盘号, 无效时为0
  2030. }NET_DVR_ALARMINFO_DEV, *LPNET_DVR_ALARMINFO_DEV;
  2031. /* 报警输出参数 */
  2032. typedef struct
  2033. {
  2034. BYTE byIPID; /* IP设备ID取值1- MAX_IP_DEVICE */
  2035. BYTE byAlarmOut; /* 报警输出号 */
  2036. BYTE byRes[18]; /* 保留 */
  2037. }NET_DVR_IPALARMOUTINFO, *LPNET_DVR_IPALARMOUTINFO;
  2038. /* IP报警输出配置结构 */
  2039. typedef struct
  2040. {
  2041. DWORD dwSize; /* 结构大小 */
  2042. NET_DVR_IPALARMOUTINFO struIPAlarmOutInfo[MAX_IP_ALARMOUT];/* IP报警输出 */
  2043. }NET_DVR_IPALARMOUTCFG, *LPNET_DVR_IPALARMOUTCFG;
  2044. /* 报警输入参数 */
  2045. typedef struct
  2046. {
  2047. BYTE byIPID; /* IP设备ID取值1- MAX_IP_DEVICE */
  2048. BYTE byAlarmIn; /* 报警输入号 */
  2049. BYTE byRes[18]; /* 保留 */
  2050. }NET_DVR_IPALARMININFO, *LPNET_DVR_IPALARMININFO;
  2051. /* IP报警输入配置结构 */
  2052. typedef struct
  2053. {
  2054. DWORD dwSize; /* 结构大小 */
  2055. NET_DVR_IPALARMININFO struIPAlarmInInfo[MAX_IP_ALARMIN];/* IP报警输入 */
  2056. }NET_DVR_IPALARMINCFG, *LPNET_DVR_IPALARMINCFG;
  2057. //ipc alarm info
  2058. typedef struct tagNET_DVR_IPALARMINFO
  2059. {
  2060. NET_DVR_IPDEVINFO struIPDevInfo[MAX_IP_DEVICE]; /* IP设备 */
  2061. BYTE byAnalogChanEnable[MAX_ANALOG_CHANNUM]; /* 模拟通道是否启用,0-未启用 1-启用 */
  2062. NET_DVR_IPCHANINFO struIPChanInfo[MAX_IP_CHANNEL]; /* IP通道 */
  2063. NET_DVR_IPALARMININFO struIPAlarmInInfo[MAX_IP_ALARMIN]; /* IP报警输入 */
  2064. NET_DVR_IPALARMOUTINFO struIPAlarmOutInfo[MAX_IP_ALARMOUT]; /* IP报警输出 */
  2065. }NET_DVR_IPALARMINFO, *LPNET_DVR_IPALARMINFO;
  2066. //ipc配置改变报警信息扩展 9000_1.1
  2067. typedef struct tagNET_DVR_IPALARMINFO_V31
  2068. {
  2069. NET_DVR_IPDEVINFO_V31 struIPDevInfo[MAX_IP_DEVICE]; /* IP设备 */
  2070. BYTE byAnalogChanEnable[MAX_ANALOG_CHANNUM]; /* 模拟通道是否启用,0-未启用 1-启用 */
  2071. NET_DVR_IPCHANINFO struIPChanInfo[MAX_IP_CHANNEL]; /* IP通道 */
  2072. NET_DVR_IPALARMININFO struIPAlarmInInfo[MAX_IP_ALARMIN]; /* IP报警输入 */
  2073. NET_DVR_IPALARMOUTINFO struIPAlarmOutInfo[MAX_IP_ALARMOUT]; /* IP报警输出 */
  2074. }NET_DVR_IPALARMINFO_V31, *LPNET_DVR_IPALARMINFO_V31;
  2075. typedef struct tagNET_DVR_IPALARMINFO_V40
  2076. {
  2077. NET_DVR_IPDEVINFO_V31 struIPDevInfo[MAX_IP_DEVICE_V40]; // IP设备
  2078. BYTE byAnalogChanEnable[MAX_CHANNUM_V30]; /* 模拟通道是否启用,0-未启用 1-启用 */
  2079. NET_DVR_IPCHANINFO struIPChanInfo[MAX_CHANNUM_V30]; /* IP通道 */
  2080. NET_DVR_IPALARMININFO struIPAlarmInInfo[MAX_IP_ALARMIN]; /* IP报警输入 */
  2081. NET_DVR_IPALARMOUTINFO struIPAlarmOutInfo[MAX_IP_ALARMOUT]; /* IP报警输出 */
  2082. BYTE byRes[20]; // 保留字节
  2083. }NET_DVR_IPALARMINFO_V40, *LPNET_DVR_IPALARMINFO_V40;
  2084. typedef enum _HD_STAT_
  2085. {
  2086. HD_STAT_OK = 0, /* 正常 */
  2087. HD_STAT_UNFORMATTED = 1, /* 未格式化 */
  2088. HD_STAT_ERROR = 2, /* 错误 */
  2089. HD_STAT_SMART_FAILED = 3, /* SMART状态 */
  2090. HD_STAT_MISMATCH = 4, /* 不匹配 */
  2091. HD_STAT_IDLE = 5, /* 休眠*/
  2092. NET_HD_STAT_OFFLINE = 6, /* 网络盘处于未连接状态 */
  2093. HD_RIADVD_EXPAND = 7, /* 虚拟磁盘可扩容 */
  2094. HD_STAT_REPARING = 10, /* 硬盘正在修复(9000 2.0) */
  2095. HD_STAT_FORMATING = 11, /* 硬盘正在格式化(9000 2.0) */
  2096. }HD_STAT;
  2097. //本地硬盘信息配置
  2098. typedef struct
  2099. {
  2100. DWORD dwHDNo; /*硬盘号, 取值0~MAX_DISKNUM_V30-1*/
  2101. DWORD dwCapacity; /*硬盘容量(不可设置)*/
  2102. DWORD dwFreeSpace; /*硬盘剩余空间(不可设置)*/
  2103. DWORD dwHdStatus; /*硬盘状态(不可设置) HD_STAT*/
  2104. BYTE byHDAttr; /*0-默认, 1-冗余; 2-只读*/
  2105. BYTE byHDType; /*0-本地硬盘,1-ESATA硬盘,2-NAS硬盘,3-iSCSI硬盘 4-Array虚拟磁盘*/
  2106. BYTE byDiskDriver; // 值 代表其ASCII字符
  2107. BYTE byRes1[1];
  2108. DWORD dwHdGroup; /*属于哪个盘组 1-MAX_HD_GROUP*/
  2109. BYTE byRes2[120];
  2110. }NET_DVR_SINGLE_HD, *LPNET_DVR_SINGLE_HD;
  2111. typedef struct
  2112. {
  2113. DWORD dwSize;
  2114. DWORD dwHDCount; /*硬盘数(不可设置)*/
  2115. NET_DVR_SINGLE_HD struHDInfo[MAX_DISKNUM_V30];//硬盘相关操作都需要重启才能生效;
  2116. }NET_DVR_HDCFG, *LPNET_DVR_HDCFG;
  2117. //本地盘组信息配置
  2118. typedef struct
  2119. {
  2120. DWORD dwHDGroupNo; /*盘组号(不可设置) 1-MAX_HD_GROUP*/
  2121. BYTE byHDGroupChans[MAX_CHANNUM_V30]; /*盘组对应的录像通道, 0-表示该通道不录象到该盘组,1-表示录象到该盘组*/
  2122. BYTE byRes[8];
  2123. }NET_DVR_SINGLE_HDGROUP, *LPNET_DVR_SINGLE_HDGROUP;
  2124. typedef struct
  2125. {
  2126. DWORD dwSize;
  2127. DWORD dwHDGroupCount; /*盘组总数(不可设置)*/
  2128. NET_DVR_SINGLE_HDGROUP struHDGroupAttr[MAX_HD_GROUP];//硬盘相关操作都需要重启才能生效;
  2129. }NET_DVR_HDGROUP_CFG, *LPNET_DVR_HDGROUP_CFG;
  2130. //配置缩放参数的结构
  2131. typedef struct
  2132. {
  2133. DWORD dwSize;
  2134. DWORD dwMajorScale; /* 主显示 0-不缩放,1-缩放*/
  2135. DWORD dwMinorScale; /* 辅显示 0-不缩放,1-缩放*/
  2136. DWORD dwRes[2];
  2137. }NET_DVR_SCALECFG, *LPNET_DVR_SCALECFG;
  2138. //DVR报警输出(9000扩展)
  2139. typedef struct
  2140. {
  2141. DWORD dwSize;
  2142. BYTE sAlarmOutName[NAME_LEN]; /* 名称 */
  2143. DWORD dwAlarmOutDelay; /* 输出保持时间(-1为无限,手动关闭) */
  2144. //0-5秒,1-10秒,2-30秒,3-1分钟,4-2分钟,5-5分钟,6-10分钟,7-手动
  2145. NET_DVR_SCHEDTIME struAlarmOutTime[MAX_DAYS][MAX_TIMESEGMENT_V30];/* 报警输出激活时间段 */
  2146. BYTE byRes[16];
  2147. }NET_DVR_ALARMOUTCFG_V30, *LPNET_DVR_ALARMOUTCFG_V30;
  2148. //DVR报警输出
  2149. typedef struct
  2150. {
  2151. DWORD dwSize;
  2152. BYTE sAlarmOutName[NAME_LEN]; /* 名称 */
  2153. DWORD dwAlarmOutDelay; /* 输出保持时间(-1为无限,手动关闭) */
  2154. //0-5秒,1-10秒,2-30秒,3-1分钟,4-2分钟,5-5分钟,6-10分钟,7-手动
  2155. NET_DVR_SCHEDTIME struAlarmOutTime[MAX_DAYS][MAX_TIMESEGMENT];/* 报警输出激活时间段 */
  2156. }NET_DVR_ALARMOUTCFG, *LPNET_DVR_ALARMOUTCFG;
  2157. //DVR本地预览参数(9000扩展)
  2158. typedef struct
  2159. {
  2160. DWORD dwSize;
  2161. BYTE byPreviewNumber;//预览数目,0-1画面,1-4画面,2-9画面,3-16画面,0xff:最大画面
  2162. BYTE byEnableAudio;//是否声音预览,0-不预览,1-预览
  2163. WORD wSwitchTime;//切换时间,0-不切换,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s
  2164. BYTE bySwitchSeq[MAX_PREVIEW_MODE][MAX_WINDOW_V30];//切换顺序,如果lSwitchSeq[i]为 0xff表示不用
  2165. BYTE byRes[24];
  2166. }NET_DVR_PREVIEWCFG_V30, *LPNET_DVR_PREVIEWCFG_V30;
  2167. //DVR本地预览参数
  2168. typedef struct
  2169. {
  2170. DWORD dwSize;
  2171. BYTE byPreviewNumber;//预览数目,0-1画面,1-4画面,2-9画面,3-16画面,0xff:最大画面
  2172. BYTE byEnableAudio;//是否声音预览,0-不预览,1-预览
  2173. WORD wSwitchTime;//切换时间,0-不切换,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s
  2174. BYTE bySwitchSeq[MAX_WINDOW];//切换顺序,如果lSwitchSeq[i]为 0xff表示不用
  2175. }NET_DVR_PREVIEWCFG, *LPNET_DVR_PREVIEWCFG;
  2176. //DVR视频输出
  2177. typedef struct
  2178. {
  2179. WORD wResolution; /* 分辨率 */
  2180. WORD wFreq; /* 刷新频率 */
  2181. DWORD dwBrightness; /* 亮度 */
  2182. }NET_DVR_VGAPARA;
  2183. /*
  2184. * MATRIX输出参数结构
  2185. */
  2186. typedef struct
  2187. {
  2188. WORD wOrder[MAX_ANALOG_CHANNUM]; /* 预览顺序, 0xff表示相应的窗口不预览 */
  2189. WORD wSwitchTime; /* 预览切换时间 */
  2190. BYTE res[14];
  2191. }NET_DVR_MATRIXPARA_V30, *LPNET_DVR_MATRIXPARA_V30;
  2192. typedef struct
  2193. {
  2194. WORD wDisplayLogo; /* 显示视频通道号 */
  2195. WORD wDisplayOsd; /* 显示时间 */
  2196. }NET_DVR_MATRIXPARA;
  2197. typedef struct
  2198. {
  2199. BYTE byVideoFormat; /* 输出制式,0-PAL,1-NTSC */
  2200. BYTE byMenuAlphaValue; /* 菜单与背景图象对比度 */
  2201. WORD wScreenSaveTime; /* 屏幕保护时间 0-从不,1-1分钟,2-2分钟,3-5分钟,4-10分钟,5-20分钟,6-30分钟 */
  2202. WORD wVOffset; /* 视频输出偏移 */
  2203. WORD wBrightness; /* 视频输出亮度 */
  2204. BYTE byStartMode; /* 启动后视频输出模式(0:菜单,1:预览)*/
  2205. BYTE byEnableScaler; /* 是否启动缩放 (0-不启动, 1-启动)*/
  2206. }NET_DVR_VOOUT;
  2207. //DVR视频输出(9000扩展)
  2208. typedef struct
  2209. {
  2210. DWORD dwSize;
  2211. NET_DVR_VOOUT struVOOut[MAX_VIDEOOUT_V30];
  2212. NET_DVR_VGAPARA struVGAPara[MAX_VGA_V30]; /* VGA参数 */
  2213. NET_DVR_MATRIXPARA_V30 struMatrixPara[MAX_MATRIXOUT]; /* MATRIX参数 */
  2214. BYTE byRes[16];
  2215. }NET_DVR_VIDEOOUT_V30, *LPNET_DVR_VIDEOOUT_V30;
  2216. //DVR视频输出
  2217. typedef struct
  2218. {
  2219. DWORD dwSize;
  2220. NET_DVR_VOOUT struVOOut[MAX_VIDEOOUT];
  2221. NET_DVR_VGAPARA struVGAPara[MAX_VGA]; /* VGA参数 */
  2222. NET_DVR_MATRIXPARA struMatrixPara; /* MATRIX参数 */
  2223. }NET_DVR_VIDEOOUT, *LPNET_DVR_VIDEOOUT;
  2224. //单用户参数(子结构)(9000扩展)
  2225. typedef struct
  2226. {
  2227. BYTE sUserName[NAME_LEN]; /* 用户名 */
  2228. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  2229. BYTE byLocalRight[MAX_RIGHT]; /* 本地权限 */
  2230. /*数组0: 本地控制云台*/
  2231. /*数组1: 本地手动录象*/
  2232. /*数组2: 本地回放*/
  2233. /*数组3: 本地设置参数*/
  2234. /*数组4: 本地查看状态、日志*/
  2235. /*数组5: 本地高级操作(升级,格式化,重启,关机)*/
  2236. /*数组6: 本地查看参数 */
  2237. /*数组7: 本地管理模拟和IP camera */
  2238. /*数组8: 本地备份 */
  2239. /*数组9: 本地关机/重启 */
  2240. BYTE byRemoteRight[MAX_RIGHT];/* 远程权限 */
  2241. /*数组0: 远程控制云台*/
  2242. /*数组1: 远程手动录象*/
  2243. /*数组2: 远程回放 */
  2244. /*数组3: 远程设置参数*/
  2245. /*数组4: 远程查看状态、日志*/
  2246. /*数组5: 远程高级操作(升级,格式化,重启,关机)*/
  2247. /*数组6: 远程发起语音对讲*/
  2248. /*数组7: 远程预览*/
  2249. /*数组8: 远程请求报警上传、报警输出*/
  2250. /*数组9: 远程控制,本地输出*/
  2251. /*数组10: 远程控制串口*/
  2252. /*数组11: 远程查看参数 */
  2253. /*数组12: 远程管理模拟和IP camera */
  2254. /*数组13: 远程关机/重启 */
  2255. BYTE byNetPreviewRight[MAX_CHANNUM_V30]; /* 远程可以预览的通道 0-有权限,1-无权限*/
  2256. BYTE byLocalPlaybackRight[MAX_CHANNUM_V30]; /* 本地可以回放的通道 0-有权限,1-无权限*/
  2257. BYTE byNetPlaybackRight[MAX_CHANNUM_V30]; /* 远程可以回放的通道 0-有权限,1-无权限*/
  2258. BYTE byLocalRecordRight[MAX_CHANNUM_V30]; /* 本地可以录像的通道 0-有权限,1-无权限*/
  2259. BYTE byNetRecordRight[MAX_CHANNUM_V30]; /* 远程可以录像的通道 0-有权限,1-无权限*/
  2260. BYTE byLocalPTZRight[MAX_CHANNUM_V30]; /* 本地可以PTZ的通道 0-有权限,1-无权限*/
  2261. BYTE byNetPTZRight[MAX_CHANNUM_V30]; /* 远程可以PTZ的通道 0-有权限,1-无权限*/
  2262. BYTE byLocalBackupRight[MAX_CHANNUM_V30]; /* 本地备份权限通道 0-有权限,1-无权限*/
  2263. NET_DVR_IPADDR struUserIP; /* 用户IP地址(为0时表示允许任何地址) */
  2264. BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
  2265. BYTE byPriority; /* 优先级,0xff-无,0--低,1--中,2--高 */
  2266. /*
  2267. 无……表示不支持优先级的设置
  2268. 低……默认权限:包括本地和远程回放,本地和远程查看日志和状态,本地和远程关机/重启
  2269. 中……包括本地和远程控制云台,本地和远程手动录像,本地和远程回放,语音对讲和远程预览
  2270. 本地备份,本地/远程关机/重启
  2271. 高……管理员
  2272. */
  2273. BYTE byAlarmOnRight; // 报警输入口布防权限
  2274. BYTE byAlarmOffRight; // 报警输入口撤防权限
  2275. BYTE byBypassRight; // 报警输入口旁路权限
  2276. BYTE byRes[14];
  2277. }NET_DVR_USER_INFO_V30, *LPNET_DVR_USER_INFO_V30;
  2278. //单用户参数(SDK_V15扩展)(子结构)
  2279. typedef struct
  2280. {
  2281. BYTE sUserName[NAME_LEN]; /* 用户名 */
  2282. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  2283. DWORD dwLocalRight[MAX_RIGHT]; /* 权限 */
  2284. /*数组0: 本地控制云台*/
  2285. /*数组1: 本地手动录象*/
  2286. /*数组2: 本地回放*/
  2287. /*数组3: 本地设置参数*/
  2288. /*数组4: 本地查看状态、日志*/
  2289. /*数组5: 本地高级操作(升级,格式化,重启,关机)*/
  2290. DWORD dwLocalPlaybackRight; /* 本地可以回放的通道 bit0 -- channel 1*/
  2291. DWORD dwRemoteRight[MAX_RIGHT]; /* 权限 */
  2292. /*数组0: 远程控制云台*/
  2293. /*数组1: 远程手动录象*/
  2294. /*数组2: 远程回放 */
  2295. /*数组3: 远程设置参数*/
  2296. /*数组4: 远程查看状态、日志*/
  2297. /*数组5: 远程高级操作(升级,格式化,重启,关机)*/
  2298. /*数组6: 远程发起语音对讲*/
  2299. /*数组7: 远程预览*/
  2300. /*数组8: 远程请求报警上传、报警输出*/
  2301. /*数组9: 远程控制,本地输出*/
  2302. /*数组10: 远程控制串口*/
  2303. DWORD dwNetPreviewRight; /* 远程可以预览的通道 bit0 -- channel 1*/
  2304. DWORD dwNetPlaybackRight; /* 远程可以回放的通道 bit0 -- channel 1*/
  2305. char sUserIP[16]; /* 用户IP地址(为0时表示允许任何地址) */
  2306. BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
  2307. }NET_DVR_USER_INFO_EX, *LPNET_DVR_USER_INFO_EX;
  2308. //单用户参数(子结构)
  2309. typedef struct
  2310. {
  2311. BYTE sUserName[NAME_LEN]; /* 用户名 */
  2312. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  2313. DWORD dwLocalRight[MAX_RIGHT]; /* 权限 */
  2314. /*数组0: 本地控制云台*/
  2315. /*数组1: 本地手动录象*/
  2316. /*数组2: 本地回放*/
  2317. /*数组3: 本地设置参数*/
  2318. /*数组4: 本地查看状态、日志*/
  2319. /*数组5: 本地高级操作(升级,格式化,重启,关机)*/
  2320. DWORD dwRemoteRight[MAX_RIGHT]; /* 权限 */
  2321. /*数组0: 远程控制云台*/
  2322. /*数组1: 远程手动录象*/
  2323. /*数组2: 远程回放 */
  2324. /*数组3: 远程设置参数*/
  2325. /*数组4: 远程查看状态、日志*/
  2326. /*数组5: 远程高级操作(升级,格式化,重启,关机)*/
  2327. /*数组6: 远程发起语音对讲*/
  2328. /*数组7: 远程预览*/
  2329. /*数组8: 远程请求报警上传、报警输出*/
  2330. /*数组9: 远程控制,本地输出*/
  2331. /*数组10: 远程控制串口*/
  2332. char sUserIP[16]; /* 用户IP地址(为0时表示允许任何地址) */
  2333. BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
  2334. }NET_DVR_USER_INFO, *LPNET_DVR_USER_INFO;
  2335. //DVR用户参数(9000扩展)
  2336. typedef struct
  2337. {
  2338. DWORD dwSize;
  2339. NET_DVR_USER_INFO_V30 struUser[MAX_USERNUM_V30];
  2340. }NET_DVR_USER_V30, *LPNET_DVR_USER_V30;
  2341. //DVR用户参数(SDK_V15扩展)
  2342. typedef struct
  2343. {
  2344. DWORD dwSize;
  2345. NET_DVR_USER_INFO_EX struUser[MAX_USERNUM];
  2346. }NET_DVR_USER_EX, *LPNET_DVR_USER_EX;
  2347. //DVR用户参数
  2348. typedef struct
  2349. {
  2350. DWORD dwSize;
  2351. NET_DVR_USER_INFO struUser[MAX_USERNUM];
  2352. }NET_DVR_USER, *LPNET_DVR_USER;
  2353. //DVR异常参数(9000扩展)
  2354. typedef struct
  2355. {
  2356. DWORD dwSize;
  2357. NET_DVR_HANDLEEXCEPTION_V30 struExceptionHandleType[MAX_EXCEPTIONNUM_V30];
  2358. /*数组0-盘满,1- 硬盘出错,2-网线断,3-局域网内IP 地址冲突, 4-非法访问, 5-输入/输出视频制式不匹配, 6-视频信号异常, 7-录像异常*/
  2359. }NET_DVR_EXCEPTION_V30, *LPNET_DVR_EXCEPTION_V30;
  2360. //DVR异常参数
  2361. typedef struct
  2362. {
  2363. DWORD dwSize;
  2364. NET_DVR_HANDLEEXCEPTION struExceptionHandleType[MAX_EXCEPTIONNUM];
  2365. /*数组0-盘满,1- 硬盘出错,2-网线断,3-局域网内IP 地址冲突,4-非法访问, 5-输入/输出视频制式不匹配, 6-视频信号异常*/
  2366. }NET_DVR_EXCEPTION, *LPNET_DVR_EXCEPTION;
  2367. //通道状态(9000扩展)
  2368. typedef struct
  2369. {
  2370. BYTE byRecordStatic; //通道是否在录像,0-不录像,1-录像
  2371. BYTE bySignalStatic; //连接的信号状态,0-正常,1-信号丢失
  2372. BYTE byHardwareStatic;//通道硬件状态,0-正常,1-异常,例如DSP死掉
  2373. BYTE byRes1; //保留
  2374. DWORD dwBitRate;//实际码率
  2375. DWORD dwLinkNum;//客户端连接的个数
  2376. NET_DVR_IPADDR struClientIP[MAX_LINK];//客户端的IP地址
  2377. DWORD dwIPLinkNum;//如果该通道为IP接入,那么表示IP接入当前的连接数
  2378. BYTE byExceedMaxLink; // 是否超出了单路6路连接数 0 - 未超出, 1-超出
  2379. BYTE byRes[11]; // 保留字节
  2380. }NET_DVR_CHANNELSTATE_V30, *LPNET_DVR_CHANNELSTATE_V30;
  2381. //通道状态
  2382. typedef struct
  2383. {
  2384. BYTE byRecordStatic; //通道是否在录像,0-不录像,1-录像
  2385. BYTE bySignalStatic; //连接的信号状态,0-正常,1-信号丢失
  2386. BYTE byHardwareStatic;//通道硬件状态,0-正常,1-异常,例如DSP死掉
  2387. char reservedData; //保留
  2388. DWORD dwBitRate;//实际码率
  2389. DWORD dwLinkNum;//客户端连接的个数
  2390. DWORD dwClientIP[MAX_LINK];//客户端的IP地址
  2391. }NET_DVR_CHANNELSTATE, *LPNET_DVR_CHANNELSTATE;
  2392. //硬盘状态
  2393. typedef struct
  2394. {
  2395. DWORD dwVolume;//硬盘的容量
  2396. DWORD dwFreeSpace;//硬盘的剩余空间
  2397. DWORD dwHardDiskStatic; //硬盘的状态,按位:1-休眠,2-不正常,3-休眠硬盘出错,4-未格式化, 5-未连接状态(网络硬盘),6-硬盘正在格式化
  2398. }NET_DVR_DISKSTATE, *LPNET_DVR_DISKSTATE;
  2399. //DVR工作状态(9000扩展)
  2400. typedef struct
  2401. {
  2402. DWORD dwDeviceStatic; //设备的状态,0-正常,1-CPU占用率太高,超过85%,2-硬件错误,例如串口死掉
  2403. NET_DVR_DISKSTATE struHardDiskStatic[MAX_DISKNUM_V30];
  2404. NET_DVR_CHANNELSTATE_V30 struChanStatic[MAX_CHANNUM_V30];//通道的状态
  2405. BYTE byAlarmInStatic[MAX_ALARMIN_V30]; //报警端口的状态,0-没有报警,1-有报警
  2406. BYTE byAlarmOutStatic[MAX_ALARMOUT_V30]; //报警输出端口的状态,0-没有输出,1-有报警输出
  2407. DWORD dwLocalDisplay;//本地显示状态,0-正常,1-不正常
  2408. BYTE byAudioChanStatus[MAX_AUDIO_V30];//表示语音通道的状态 0-未使用,1-使用中, 0xff无效
  2409. BYTE byRes[10];
  2410. }NET_DVR_WORKSTATE_V30, *LPNET_DVR_WORKSTATE_V30;
  2411. //DVR工作状态
  2412. typedef struct
  2413. {
  2414. DWORD dwDeviceStatic; //设备的状态,0-正常,1-CPU占用率太高,超过85%,2-硬件错误,例如串口死掉
  2415. NET_DVR_DISKSTATE struHardDiskStatic[MAX_DISKNUM];
  2416. NET_DVR_CHANNELSTATE struChanStatic[MAX_CHANNUM];//通道的状态
  2417. BYTE byAlarmInStatic[MAX_ALARMIN]; //报警端口的状态,0-没有报警,1-有报警
  2418. BYTE byAlarmOutStatic[MAX_ALARMOUT]; //报警输出端口的状态,0-没有输出,1-有报警输出
  2419. DWORD dwLocalDisplay;//本地显示状态,0-正常,1-不正常
  2420. }NET_DVR_WORKSTATE, *LPNET_DVR_WORKSTATE;
  2421. /************************DVR日志 begin***************************/
  2422. /* 报警 */
  2423. //主类型
  2424. #define MAJOR_ALARM 0x1
  2425. //次类型
  2426. #define MINOR_ALARM_IN 0x1 /* 报警输入 */
  2427. #define MINOR_ALARM_OUT 0x2 /* 报警输出 */
  2428. #define MINOR_MOTDET_START 0x3 /* 移动侦测报警开始 */
  2429. #define MINOR_MOTDET_STOP 0x4 /* 移动侦测报警结束 */
  2430. #define MINOR_HIDE_ALARM_START 0x5 /* 遮挡报警开始 */
  2431. #define MINOR_HIDE_ALARM_STOP 0x6 /* 遮挡报警结束 */
  2432. #define MINOR_VCA_ALARM_START 0x7 /*智能报警开始*/
  2433. #define MINOR_VCA_ALARM_STOP 0x8 /*智能报警停止*/
  2434. #define MINOR_ITS_ALARM_START 0x09 // 交通事件报警开始
  2435. #define MINOR_ITS_ALARM_STOP 0x0A // 交通事件报警结束
  2436. //2010-11-10 网络报警日志
  2437. #define MINOR_NETALARM_START 0x0b /*网络报警开始*/
  2438. #define MINOR_NETALARM_STOP 0x0c /*网络报警结束*/
  2439. //2010-12-16 报警板日志,与"MINOR_ALARM_IN"配对使用
  2440. #define MINOR_NETALARM_RESUME 0x0d /*网络报警恢复*/
  2441. /* 异常 */
  2442. //主类型
  2443. #define MAJOR_EXCEPTION 0x2
  2444. //次类型
  2445. #define MINOR_RAID_ERROR 0x20 /* 阵列异常 */
  2446. #define MINOR_VI_LOST 0x21 /* 视频信号丢失 */
  2447. #define MINOR_ILLEGAL_ACCESS 0x22 /* 非法访问 */
  2448. #define MINOR_HD_FULL 0x23 /* 硬盘满 */
  2449. #define MINOR_HD_ERROR 0x24 /* 硬盘错误 */
  2450. #define MINOR_DCD_LOST 0x25 /* MODEM 掉线(保留不使用) */
  2451. #define MINOR_IP_CONFLICT 0x26 /* IP地址冲突 */
  2452. #define MINOR_NET_BROKEN 0x27 /* 网络断开*/
  2453. #define MINOR_REC_ERROR 0x28 /* 录像出错 */
  2454. #define MINOR_IPC_NO_LINK 0x29 /* IPC连接异常 */
  2455. #define MINOR_VI_EXCEPTION 0x2a /* 视频输入异常(只针对模拟通道) */
  2456. #define MINOR_IPC_IP_CONFLICT 0x2b /*ipc ip 地址 冲突*/
  2457. #define MINOR_SENCE_EXCEPTION 0x2c // 场景异常
  2458. #define MINOR_PIC_REC_ERROR 0x2d /* 抓图出错--获取图片文件失败*/
  2459. #define MINOR_VI_MISMATCH 0x2e /* 视频制式不匹配*/
  2460. #define MINOR_RESOLUTION_MISMATCH 0x2f /*前端/录像分辨率不匹配 */
  2461. //2009-12-16 增加视频综合平台日志类型
  2462. #define MINOR_FANABNORMAL 0x31 /* 视频综合平台:风扇状态异常 */
  2463. #define MINOR_FANRESUME 0x32 /* 视频综合平台:风扇状态恢复正常 */
  2464. #define MINOR_SUBSYSTEM_ABNORMALREBOOT 0x33 /* 视频综合平台:6467异常重启 */
  2465. #define MINOR_MATRIX_STARTBUZZER 0x34 /* 视频综合平台:dm6467异常,启动蜂鸣器 */
  2466. //2010-01-22 增加视频综合平台异常日志次类型
  2467. #define MINOR_NET_ABNORMAL 0x35 /*网络状态异常*/
  2468. #define MINOR_MEM_ABNORMAL 0x36 /*内存状态异常*/
  2469. #define MINOR_FILE_ABNORMAL 0x37 /*文件状态异常*/
  2470. #define MINOR_PANEL_ABNORMAL 0x38 /*前面板连接异常*/
  2471. #define MINOR_PANEL_RESUME 0x39 /*前面板恢复正常*/
  2472. #define MINOR_RS485_DEVICE_ABNORMAL 0x3a /*RS485连接状态异常*/
  2473. #define MINOR_RS485_DEVICE_REVERT 0x3b /*RS485连接状态异常恢复*/
  2474. #define MINOR_SCREEN_SUBSYSTEM_ABNORMALREBOOT 0x3c //子板异常启动
  2475. /* 操作 */
  2476. //主类型
  2477. #define MAJOR_OPERATION 0x3
  2478. //次类型
  2479. #define MINOR_START_DVR 0x41 /* 开机 */
  2480. #define MINOR_STOP_DVR 0x42 /* 关机 */
  2481. #define MINOR_STOP_ABNORMAL 0x43 /* 异常关机 */
  2482. #define MINOR_REBOOT_DVR 0x44 /*本地重启设备*/
  2483. #define MINOR_LOCAL_LOGIN 0x50 /* 本地登陆 */
  2484. #define MINOR_LOCAL_LOGOUT 0x51 /* 本地注销登陆 */
  2485. #define MINOR_LOCAL_CFG_PARM 0x52 /* 本地配置参数 */
  2486. #define MINOR_LOCAL_PLAYBYFILE 0x53 /* 本地按文件回放或下载 */
  2487. #define MINOR_LOCAL_PLAYBYTIME 0x54 /* 本地按时间回放或下载*/
  2488. #define MINOR_LOCAL_START_REC 0x55 /* 本地开始录像 */
  2489. #define MINOR_LOCAL_STOP_REC 0x56 /* 本地停止录像 */
  2490. #define MINOR_LOCAL_PTZCTRL 0x57 /* 本地云台控制 */
  2491. #define MINOR_LOCAL_PREVIEW 0x58 /* 本地预览 (保留不使用)*/
  2492. #define MINOR_LOCAL_MODIFY_TIME 0x59 /* 本地修改时间(保留不使用) */
  2493. #define MINOR_LOCAL_UPGRADE 0x5a /* 本地升级 */
  2494. #define MINOR_LOCAL_RECFILE_OUTPUT 0x5b /* 本地备份录象文件 */
  2495. #define MINOR_LOCAL_FORMAT_HDD 0x5c /* 本地初始化硬盘 */
  2496. #define MINOR_LOCAL_CFGFILE_OUTPUT 0x5d /* 导出本地配置文件 */
  2497. #define MINOR_LOCAL_CFGFILE_INPUT 0x5e /* 导入本地配置文件 */
  2498. #define MINOR_LOCAL_COPYFILE 0x5f /* 本地备份文件 */
  2499. #define MINOR_LOCAL_LOCKFILE 0x60 /* 本地锁定录像文件 */
  2500. #define MINOR_LOCAL_UNLOCKFILE 0x61 /* 本地解锁录像文件 */
  2501. #define MINOR_LOCAL_DVR_ALARM 0x62 /* 本地手动清除和触发报警*/
  2502. #define MINOR_IPC_ADD 0x63 /* 本地添加IPC */
  2503. #define MINOR_IPC_DEL 0x64 /* 本地删除IPC */
  2504. #define MINOR_IPC_SET 0x65 /* 本地设置IPC */
  2505. #define MINOR_LOCAL_START_BACKUP 0x66 /* 本地开始备份 */
  2506. #define MINOR_LOCAL_STOP_BACKUP 0x67 /* 本地停止备份*/
  2507. #define MINOR_LOCAL_COPYFILE_START_TIME 0x68 /* 本地备份开始时间*/
  2508. #define MINOR_LOCAL_COPYFILE_END_TIME 0x69 /* 本地备份结束时间*/
  2509. #define MINOR_LOCAL_ADD_NAS 0x6a /*本地添加网络硬盘 (nfs、iscsi)*/
  2510. #define MINOR_LOCAL_DEL_NAS 0x6b /* 本地删除nas盘 (nfs、iscsi)*/
  2511. #define MINOR_LOCAL_SET_NAS 0x6c /* 本地设置nas盘 (nfs、iscsi)*/
  2512. #define MINOR_LOCAL_RESET_PASSWD 0x6d /* 本地恢复管理员默认密码*/
  2513. #define MINOR_REMOTE_LOGIN 0x70 /* 远程登录 */
  2514. #define MINOR_REMOTE_LOGOUT 0x71 /* 远程注销登陆 */
  2515. #define MINOR_REMOTE_START_REC 0x72 /* 远程开始录像 */
  2516. #define MINOR_REMOTE_STOP_REC 0x73 /* 远程停止录像 */
  2517. #define MINOR_START_TRANS_CHAN 0x74 /* 开始透明传输 */
  2518. #define MINOR_STOP_TRANS_CHAN 0x75 /* 停止透明传输 */
  2519. #define MINOR_REMOTE_GET_PARM 0x76 /* 远程获取参数 */
  2520. #define MINOR_REMOTE_CFG_PARM 0x77 /* 远程配置参数 */
  2521. #define MINOR_REMOTE_GET_STATUS 0x78 /* 远程获取状态 */
  2522. #define MINOR_REMOTE_ARM 0x79 /* 远程布防 */
  2523. #define MINOR_REMOTE_DISARM 0x7a /* 远程撤防 */
  2524. #define MINOR_REMOTE_REBOOT 0x7b /* 远程重启 */
  2525. #define MINOR_START_VT 0x7c /* 开始语音对讲 */
  2526. #define MINOR_STOP_VT 0x7d /* 停止语音对讲 */
  2527. #define MINOR_REMOTE_UPGRADE 0x7e /* 远程升级 */
  2528. #define MINOR_REMOTE_PLAYBYFILE 0x7f /* 远程按文件回放 */
  2529. #define MINOR_REMOTE_PLAYBYTIME 0x80 /* 远程按时间回放 */
  2530. #define MINOR_REMOTE_PTZCTRL 0x81 /* 远程云台控制 */
  2531. #define MINOR_REMOTE_FORMAT_HDD 0x82 /* 远程格式化硬盘 */
  2532. #define MINOR_REMOTE_STOP 0x83 /* 远程关机 */
  2533. #define MINOR_REMOTE_LOCKFILE 0x84 /* 远程锁定文件 */
  2534. #define MINOR_REMOTE_UNLOCKFILE 0x85 /* 远程解锁文件 */
  2535. #define MINOR_REMOTE_CFGFILE_OUTPUT 0x86 /* 远程导出配置文件 */
  2536. #define MINOR_REMOTE_CFGFILE_INTPUT 0x87 /* 远程导入配置文件 */
  2537. #define MINOR_REMOTE_RECFILE_OUTPUT 0x88 /* 远程导出录象文件 */
  2538. #define MINOR_REMOTE_DVR_ALARM 0x89 /* 远程手动清除和触发报警*/
  2539. #define MINOR_REMOTE_IPC_ADD 0x8a /* 远程添加IPC */
  2540. #define MINOR_REMOTE_IPC_DEL 0x8b /* 远程删除IPC */
  2541. #define MINOR_REMOTE_IPC_SET 0x8c /* 远程设置IPC */
  2542. #define MINOR_REBOOT_VCA_LIB 0x8d /*重启智能库*/
  2543. #define MINOR_REMOTE_ADD_NAS 0x8e /* 远程添加nas盘 (nfs、iscsi)*/
  2544. #define MINOR_REMOTE_DEL_NAS 0x8f /* 远程删除nas盘 (nfs、iscsi)*/
  2545. #define MINOR_REMOTE_SET_NAS 0x90 /* 远程设置nas盘 (nfs、iscsi)*/
  2546. //2010-05-26 增加审讯DVR日志类型
  2547. #define MINOR_LOCAL_START_REC_CDRW 0x91 /* 本地开始讯问 */
  2548. #define MINOR_LOCAL_STOP_REC_CDRW 0x92 /* 本地停止讯问 */
  2549. #define MINOR_REMOTE_START_REC_CDRW 0x93 /* 远程开始讯问 */
  2550. #define MINOR_REMOTE_STOP_REC_CDRW 0x94 /* 远程停止讯问 */
  2551. #define MINOR_LOCAL_PIC_OUTPUT 0x95 /* 本地备份图片文件 */
  2552. #define MINOR_REMOTE_PIC_OUTPUT 0x96 /* 远程备份图片文件 */
  2553. //2011-07-26 增加81审讯DVR日志类型
  2554. #define MINOR_LOCAL_INQUEST_RESUME 0x97 /* 本地恢复审讯事件*/
  2555. #define MINOR_REMOTE_INQUEST_RESUME 0x98 /* 远程恢复审讯事件*/
  2556. //2009-12-16 增加视频综合平台日志类型
  2557. #define MINOR_SUBSYSTEMREBOOT 0xa0 /*视频综合平台:dm6467 正常重启*/
  2558. #define MINOR_MATRIX_STARTTRANSFERVIDEO 0xa1 /*视频综合平台:矩阵切换开始传输图像*/
  2559. #define MINOR_MATRIX_STOPTRANSFERVIDEO 0xa2 /*视频综合平台:矩阵切换停止传输图像*/
  2560. #define MINOR_REMOTE_SET_ALLSUBSYSTEM 0xa3 /*视频综合平台:设置所有6467子系统信息*/
  2561. #define MINOR_REMOTE_GET_ALLSUBSYSTEM 0xa4 /*视频综合平台:获取所有6467子系统信息*/
  2562. #define MINOR_REMOTE_SET_PLANARRAY 0xa5 /*视频综合平台:设置计划轮巡组*/
  2563. #define MINOR_REMOTE_GET_PLANARRAY 0xa6 /*视频综合平台:获取计划轮巡组*/
  2564. #define MINOR_MATRIX_STARTTRANSFERAUDIO 0xa7 /*视频综合平台:矩阵切换开始传输音频*/
  2565. #define MINOR_MATRIX_STOPRANSFERAUDIO 0xa8 /*视频综合平台:矩阵切换停止传输音频*/
  2566. #define MINOR_LOGON_CODESPITTER 0xa9 /*视频综合平台:登陆码分器*/
  2567. #define MINOR_LOGOFF_CODESPITTER 0xaa /*视频综合平台:退出码分器*/
  2568. //2010-01-22 增加视频综合平台中解码器操作日志
  2569. #define MINOR_START_DYNAMIC_DECODE 0xb0 /*开始动态解码*/
  2570. #define MINOR_STOP_DYNAMIC_DECODE 0xb1 /*停止动态解码*/
  2571. #define MINOR_GET_CYC_CFG 0xb2 /*获取解码器通道轮巡配置*/
  2572. #define MINOR_SET_CYC_CFG 0xb3 /*设置解码通道轮巡配置*/
  2573. #define MINOR_START_CYC_DECODE 0xb4 /*开始轮巡解码*/
  2574. #define MINOR_STOP_CYC_DECODE 0xb5 /*停止轮巡解码*/
  2575. #define MINOR_GET_DECCHAN_STATUS 0xb6 /*获取解码通道状态*/
  2576. #define MINOR_GET_DECCHAN_INFO 0xb7 /*获取解码通道当前信息*/
  2577. #define MINOR_START_PASSIVE_DEC 0xb8 /*开始被动解码*/
  2578. #define MINOR_STOP_PASSIVE_DEC 0xb9 /*停止被动解码*/
  2579. #define MINOR_CTRL_PASSIVE_DEC 0xba /*控制被动解码*/
  2580. #define MINOR_RECON_PASSIVE_DEC 0xbb /*被动解码重连*/
  2581. #define MINOR_GET_DEC_CHAN_SW 0xbc /*获取解码通道总开关*/
  2582. #define MINOR_SET_DEC_CHAN_SW 0xbd /*设置解码通道总开关*/
  2583. #define MINOR_CTRL_DEC_CHAN_SCALE 0xbe /*解码通道缩放控制*/
  2584. #define MINOR_SET_REMOTE_REPLAY 0xbf /*设置远程回放*/
  2585. #define MINOR_GET_REMOTE_REPLAY 0xc0 /*获取远程回放状态*/
  2586. #define MINOR_CTRL_REMOTE_REPLAY 0xc1 /*远程回放控制*/
  2587. #define MINOR_SET_DISP_CFG 0xc2 /*设置显示通道*/
  2588. #define MINOR_GET_DISP_CFG 0xc3 /*获取显示通道设置*/
  2589. #define MINOR_SET_PLANTABLE 0xc4 /*设置计划轮巡表*/
  2590. #define MINOR_GET_PLANTABLE 0xc5 /*获取计划轮巡表*/
  2591. #define MINOR_START_PPPPOE 0xc6 /*开始PPPoE连接*/
  2592. #define MINOR_STOP_PPPPOE 0xc7 /*结束PPPoE连接*/
  2593. #define MINOR_UPLOAD_LOGO 0xc8 /*上传LOGO*/
  2594. //2010-12-16 报警板日志
  2595. #define MINOR_REMOTE_BYPASS 0xd0 /* 远程旁路*/
  2596. #define MINOR_REMOTE_UNBYPASS 0xd1 /* 远程旁路恢复*/
  2597. #define MINOR_REMOTE_SET_ALARMIN_CFG 0xd2 /* 远程设置报警输入参数*/
  2598. #define MINOR_REMOTE_GET_ALARMIN_CFG 0xd3 /* 远程获取报警输入参数*/
  2599. #define MINOR_REMOTE_SET_ALARMOUT_CFG 0xd4 /* 远程设置报警输出参数*/
  2600. #define MINOR_REMOTE_GET_ALARMOUT_CFG 0xd5 /* 远程获取报警输出参数*/
  2601. #define MINOR_REMOTE_ALARMOUT_OPEN_MAN 0xd6 /* 远程手动开启报警输出*/
  2602. #define MINOR_REMOTE_ALARMOUT_CLOSE_MAN 0xd7 /* 远程手动关闭报警输出*/
  2603. #define MINOR_REMOTE_ALARM_ENABLE_CFG 0xd8 /* 远程设置报警主机的RS485串口使能状态*/
  2604. #define MINOR_DBDATA_OUTPUT 0xd9 /* 导出数据库记录 */
  2605. #define MINOR_DBDATA_INPUT 0xda /* 导入数据库记录 */
  2606. #define MINOR_MU_SWITCH 0xdb /* 级联切换 */
  2607. #define MINOR_MU_PTZ 0xdc /* 级联PTZ控制 */
  2608. #define MINOR_LOCAL_CONF_REB_RAID 0x101 /*本地配置自动重建*/
  2609. #define MINOR_LOCAL_CONF_SPARE 0x102 /*本地配置热备*/
  2610. #define MINOR_LOCAL_ADD_RAID 0x103 /*本地创建阵列*/
  2611. #define MINOR_LOCAL_DEL_RAID 0x104 /*本地删除阵列*/
  2612. #define MINOR_LOCAL_MIG_RAID 0x105 /*本地迁移阵列*/
  2613. #define MINOR_LOCAL_REB_RAID 0x106 /* 本地手动重建阵列*/
  2614. #define MINOR_LOCAL_QUICK_CONF_RAID 0x107 /*本地一键配置*/
  2615. #define MINOR_LOCAL_ADD_VD 0x108 /*本地创建虚拟磁盘*/
  2616. #define MINOR_LOCAL_DEL_VD 0x109 /*本地删除虚拟磁盘*/
  2617. #define MINOR_LOCAL_RP_VD 0x10a /*本地修复虚拟磁盘*/
  2618. #define MINOR_LOCAL_FORMAT_EXPANDVD 0X10b /*本地扩展虚拟磁盘扩容*/
  2619. #define MINOR_LOCAL_RAID_UPGRADE 0X10c /*本地raid卡升级*/
  2620. #define MINOR_LOCAL_STOP_RAID 0x10d /*本地暂停RAID操作(即安全拔盘)*/
  2621. #define MINOR_REMOTE_CONF_REB_RAID 0x111 /*远程配置自动重建*/
  2622. #define MINOR_REMOTE_CONF_SPARE 0x112 /*远程配置热备*/
  2623. #define MINOR_REMOTE_ADD_RAID 0x113 /*远程创建阵列*/
  2624. #define MINOR_REMOTE_DEL_RAID 0x114 /*远程删除阵列*/
  2625. #define MINOR_REMOTE_MIG_RAID 0x115 /*远程迁移阵列*/
  2626. #define MINOR_REMOTE_REB_RAID 0x116 /* 远程手动重建阵列*/
  2627. #define MINOR_REMOTE_QUICK_CONF_RAID 0x117 /*远程一键配置*/
  2628. #define MINOR_REMOTE_ADD_VD 0x118 /*远程创建虚拟磁盘*/
  2629. #define MINOR_REMOTE_DEL_VD 0x119 /*远程删除虚拟磁盘*/
  2630. #define MINOR_REMOTE_RP_VD 0x11a /*远程修复虚拟磁盘*/
  2631. #define MINOR_REMOTE_FORMAT_EXPANDVD 0X11b /*远程虚拟磁盘扩容*/
  2632. #define MINOR_REMOTE_RAID_UPGRADE 0X11c /*远程raid卡升级*/
  2633. #define MINOR_REMOTE_STOP_RAID 0x11d /*远程暂停RAID操作(即安全拔盘)*/
  2634. #define MINOR_LOCAL_START_PIC_REC 0x121 /*本地开始抓图*/
  2635. #define MINOR_LOCAL_STOP_PIC_REC 0x122 /*本地停止抓图*/
  2636. #define MINOR_LOCAL_SET_SNMP 0x125 /*本地配置SNMP*/
  2637. #define MINOR_LOCAL_TAG_OPT 0x126 /*本地标签操作*/
  2638. #define MINOR_REMOTE_START_PIC_REC 0x131 /*远程开始抓图*/
  2639. #define MINOR_REMOTE_STOP_PIC_REC 0x132 /*远程停止抓图*/
  2640. #define MINOR_REMOTE_SET_SNMP 0x135 /*远程配置SNMP*/
  2641. #define MINOR_REMOTE_TAG_OPT 0x136 /*远程标签操作*/
  2642. #define MINOR_SET_MULTI_MASTER 0x201 /*设置大屏主屏*/
  2643. #define MINOR_SET_MULTI_SLAVE 0x202 /*设置大屏子屏*/
  2644. #define MINOR_CANCEL_MULTI_MASTER 0x203 /*取消大屏主屏*/
  2645. #define MINOR_CANCEL_MULTI_SLAVE 0x204 /*取消大屏子屏*/
  2646. //2011-11-11 增加大屏控制器操作日志次类型
  2647. #define MINOR_SCREEN_SET_INPUT 0x251 /*修改输入源*/
  2648. #define MINOR_SCREEN_SET_OUTPUT 0x252 /*修改输出通道*/
  2649. #define MINOR_SCREEN_SET_OSD 0x253 /*修改OSD*/
  2650. #define MINOR_SCREEN_SET_LOGO 0x254 /*修改LOGO*/
  2651. #define MINOR_SCREEN_SET_LAYOUT 0x255 /*设置布局*/
  2652. /*日志附加信息*/
  2653. //主类型
  2654. #define MAJOR_INFORMATION 0x4 /*附加信息*/
  2655. //次类型
  2656. #define MINOR_HDD_INFO 0xa1 /*硬盘信息*/
  2657. #define MINOR_SMART_INFO 0xa2 /*SMART信息*/
  2658. #define MINOR_REC_START 0xa3 /*开始录像*/
  2659. #define MINOR_REC_STOP 0xa4 /*停止录像*/
  2660. #define MINOR_REC_OVERDUE 0xa5 /*过期录像删除*/
  2661. #define MINOR_LINK_START 0xa6 //连接前端设备
  2662. #define MINOR_LINK_STOP 0xa7 //断开前端设备 
  2663. #define MINOR_NET_DISK_INFO 0xa8 //网络硬盘信息
  2664. #define MINOR_RAID_INFO 0xa9 //raid相关信息
  2665. #define MINOR_PIC_REC_START 0xb3 /* 开始抓图*/
  2666. #define MINOR_PIC_REC_STOP 0xb4 /* 停止抓图*/
  2667. #define MINOR_PIC_REC_OVERDUE 0xb5 /* 过期图片文件删除 */
  2668. typedef enum tagALARMHOST_MAJOR_TYPE
  2669. {
  2670. MAJOR_ALARMHOST_ALARM = 1,
  2671. MAJOR_ALARMHOST_EXCEPTION,
  2672. MAJOR_ALARMHOST_OPERATION,
  2673. MAJ0R_ALARMHOST_EVENT
  2674. }ALARMHOST_MAJOR_TYPE;
  2675. typedef enum tagALARMHOST_MINOR_TYPE
  2676. {
  2677. // 报警
  2678. MINOR_SHORT_CIRCUIT =0x01, // 短路报警
  2679. MINOR_BROKEN_CIRCUIT, // 断路报警
  2680. MINOR_ALARM_RESET, // 报警复位
  2681. MINOR_ALARM_NORMAL, // 报警恢复正常
  2682. MINOR_PASSWORD_ERROR, // 密码错误(连续3次输入密码错误)
  2683. MINOR_ID_CARD_ILLEGALLY, // 非法感应卡ID
  2684. MINOR_KEYPAD_REMOVE, // 键盘防拆
  2685. MINOR_KEYPAD_REMOVE_RESTORE, // 键盘防拆复位
  2686. MINOR_DEV_REMOVE, // 设备防拆
  2687. MINOR_DEV_REMOVE_RESTORE, // 设备防拆复位
  2688. MINOR_BELOW_ALARM_LIMIT1, // 模拟量低于报警限1
  2689. MINOR_BELOW_ALARM_LIMIT2, // 模拟量低于报警限2
  2690. MINOR_BELOW_ALARM_LIMIT3, // 模拟量低于报警限3
  2691. MINOR_BELOW_ALARM_LIMIT4, // 模拟量低于报警限4
  2692. MINOR_ABOVE_ALARM_LIMIT1, // 模拟量低于报警限1
  2693. MINOR_ABOVE_ALARM_LIMIT2, // 模拟量低于报警限2
  2694. MINOR_ABOVE_ALARM_LIMIT3, // 模拟量低于报警限3
  2695. MINOR_ABOVE_ALARM_LIMIT4, // 模拟量低于报警限4
  2696. // 异常
  2697. MINOR_POWER_ON = 0x01, // 上电
  2698. MINOR_POWER_OFF, // 掉电
  2699. MINOR_WDT_RESET, // WDT 复位
  2700. MINOR_LOW_BATTERY_VOLTAGE, // 蓄电池电压低
  2701. MINOR_AC_LOSS, // 交流电断电
  2702. MINOR_AC_RESTORE, // 交流电恢复
  2703. MINOR_RTC_EXCEPTION, // RTC实时时钟异常
  2704. MINOR_NETWORK_CONNECT_FAILURE, // 网络连接断
  2705. MINOR_NETWORK_CONNECT_RESTORE, // 网络连接恢复
  2706. MINOR_TEL_LINE_CONNECT_FAILURE, // 电话线连接断
  2707. MINOR_TEL_LINE_CONNECT_RESTORE, // 电话线连接恢复
  2708. MINOR_EXPANDER_BUS_LOSS, // 扩展总线模块掉线
  2709. MINOR_EXPANDER_BUS_RESTORE, // 扩展总线模块掉线恢复
  2710. MINOR_KEYPAD_BUS_LOSS, // 键盘总线模块掉线
  2711. MINOR_KEYPAD_BUS_RESTORE, // 键盘总线模块掉线恢复
  2712. MINOR_SENSOR_FAILURE, // 模拟量传感器故障
  2713. MINOR_SENSOR_RESTORE, // 模拟量传感器恢复
  2714. MINOR_RS485_CONNECT_FAILURE, // RS485通道连接断
  2715. MINOR_RS485_CONNECT_RESTORE, // RS485通道连接断恢复
  2716. MINOR_BATTERT_VOLTAGE_RESTORE, // 蓄电池电压恢复正常
  2717. // 操作
  2718. MINOR_GUARD = 0x01, // 布防
  2719. MINOR_UNGUARD, // 撤防
  2720. MINOR_BYPASS, // 旁路
  2721. MINOR_DURESS_ACCESS, // 挟持
  2722. MINOR_ALARMHOST_LOCAL_REBOOT, // 本地重启
  2723. MINOR_ALARMHOST_REMOTE_REBOOT, // 远程重启
  2724. MINOR_ALARMHOST_LOCAL_UPGRADE, // 本地升级
  2725. MINOR_ALARMHOST_REMOTE_UPGRADE, // 远程升级
  2726. MINOR_RECOVERY_DEFAULT_PARAM, // 恢复默认参数
  2727. MINOR_ALARM_OUTPUT, // 控制报警输出
  2728. MINOR_ACCESS_OPEN, // 控制门禁开
  2729. MINOR_ACCESS_CLOSE, // 控制门禁关
  2730. MINOR_SIREN_OPEN, // 控制警号开
  2731. MINOR_SIREN_CLOSE, // 控制警号关
  2732. MINOR_MOD_ZONE_CONFIG, // 修改防区设置
  2733. MINOR_MOD_ALARMOUT_CONIFG, // 控制报警输出配置
  2734. MINOR_MOD_ANALOG_CONFIG, // 修改模拟量配置
  2735. MINOR_RS485_CONFIG, // 修改485通道配置
  2736. MINOR_PHONE_CONFIG, // 修改拨号配置
  2737. MINOR_ADD_ADMIN, // 增加管理员
  2738. MINOR_MOD_ADMIN_PARAM, // 修改管理员参数
  2739. MINOR_DEL_ADMIN, // 删除管理员
  2740. MINOR_ADD_NETUSER, // 增加后端操作员
  2741. MINOR_MOD_NETUSER_PARAM, // 修改后端操作员参数
  2742. MINOR_DEL_NETUSER, // 删除后端操作员
  2743. MINOR_ADD_OPERATORUSER, // 增加前端操作员
  2744. MINOR_MOD_OPERATORUSER_PW, //修改前端操作员密码
  2745. MINOR_DEL_OPERATORUSER, // 删除前端操作员
  2746. MINOR_ADD_KEYPADUSER, // 增加键盘/读卡器用户
  2747. MINOR_DEL_KEYPADUSER, // 删除键盘/读卡器用户
  2748. MINOR_REMOTEUSER_LOGIN, // 远程用户登陆
  2749. MINOR_REMOTEUSER_LOGOUT, // 远程用户注销
  2750. MINOR_REMOTE_GUARD, // 远程布防
  2751. MINOR_REMOTE_UNGUARD, // 远程撤防
  2752. MINOR_MOD_HOST_CONFIG, // 修改主机配置
  2753. MINOR_RESTORE_BYPASS, // 旁路恢复
  2754. // 事件
  2755. MINOR_SCHOOLTIME_IRGI_B = 0x01, // B码校时
  2756. MINOR_SCHOOLTIME_SDK, // SDK校时
  2757. MINOR_SCHOOLTIME_SELFTEST // 定时自检校时
  2758. }ALARMHOST_MINOR_TYPE;
  2759. //当日志的主类型为MAJOR_OPERATION=03,次类型为MINOR_LOCAL_CFG_PARM=0x52或者MINOR_REMOTE_GET_PARM=0x76或者MINOR_REMOTE_CFG_PARM=0x77时,dwParaType:参数类型有效,其含义如下:
  2760. #define PARA_VIDEOOUT 0x1
  2761. #define PARA_IMAGE 0x2
  2762. #define PARA_ENCODE 0x4
  2763. #define PARA_NETWORK 0x8
  2764. #define PARA_ALARM 0x10
  2765. #define PARA_EXCEPTION 0x20
  2766. #define PARA_DECODER 0x40 /*解码器*/
  2767. #define PARA_RS232 0x80
  2768. #define PARA_PREVIEW 0x100
  2769. #define PARA_SECURITY 0x200
  2770. #define PARA_DATETIME 0x400
  2771. #define PARA_FRAMETYPE 0x800 /*帧格式*/
  2772. #define PARA_VCA_RULE 0x1001 //行为规则
  2773. #define PARA_VCA_CTRL 0x1002 //配置智能控制信息
  2774. #define PARA_VCA_PLATE 0x1003 // 车牌识别
  2775. #define PARA_CODESPLITTER 0x2000 /*码分器参数*/
  2776. //2010-01-22 增加视频综合平台日志信息次类型
  2777. #define PARA_RS485 0x2001 /* RS485配置信息*/
  2778. #define PARA_DEVICE 0x2002 /* 设备配置信息*/
  2779. #define PARA_HARDDISK 0x2003 /* 硬盘配置信息 */
  2780. #define PARA_AUTOBOOT 0x2004 /* 自动重启配置信息*/
  2781. #define PARA_HOLIDAY 0x2005 /* 节假日配置信息*/
  2782. #define PARA_IPC 0x2006 /* IP通道配置 */
  2783. //日志信息(9000扩展)
  2784. typedef struct
  2785. {
  2786. NET_DVR_TIME strLogTime;
  2787. DWORD dwMajorType; //主类型 1-报警; 2-异常; 3-操作; 0xff-全部
  2788. DWORD dwMinorType;//次类型 0-全部;
  2789. BYTE sPanelUser[MAX_NAMELEN]; //操作面板的用户名
  2790. BYTE sNetUser[MAX_NAMELEN];//网络操作的用户名
  2791. NET_DVR_IPADDR struRemoteHostAddr;//远程主机地址
  2792. DWORD dwParaType;//参数类型,9000设备MINOR_START_VT/MINOR_STOP_VT时,表示语音对讲的端子号
  2793. DWORD dwChannel;//通道号
  2794. DWORD dwDiskNumber;//硬盘号
  2795. DWORD dwAlarmInPort;//报警输入端口
  2796. DWORD dwAlarmOutPort;//报警输出端口
  2797. DWORD dwInfoLen;
  2798. char sInfo[LOG_INFO_LEN];
  2799. }NET_DVR_LOG_V30, *LPNET_DVR_LOG_V30;
  2800. //日志信息
  2801. typedef struct
  2802. {
  2803. NET_DVR_TIME strLogTime;
  2804. DWORD dwMajorType; //主类型 1-报警; 2-异常; 3-操作; 0xff-全部
  2805. DWORD dwMinorType;//次类型 0-全部;
  2806. BYTE sPanelUser[MAX_NAMELEN]; //操作面板的用户名
  2807. BYTE sNetUser[MAX_NAMELEN];//网络操作的用户名
  2808. char sRemoteHostAddr[16];//远程主机地址
  2809. DWORD dwParaType;//参数类型
  2810. DWORD dwChannel;//通道号
  2811. DWORD dwDiskNumber;//硬盘号
  2812. DWORD dwAlarmInPort;//报警输入端口
  2813. DWORD dwAlarmOutPort;//报警输出端口
  2814. }NET_DVR_LOG, *LPNET_DVR_LOG;
  2815. /************************DVR日志 end***************************/
  2816. /************************动环报警管理主机日志查找 begin************************************************/
  2817. typedef struct tagNET_DVR_ALARMHOST_SEARCH_LOG_PARAM
  2818. {
  2819. WORD wMajorType; // 主类型
  2820. WORD wMinorType; // 次类型
  2821. NET_DVR_TIME struStartTime; // 开始时间
  2822. NET_DVR_TIME struEndTime; // 结束时间
  2823. BYTE byRes[8]; // 保留字节
  2824. }NET_DVR_ALARMHOST_SEARCH_LOG_PARAM, LPNET_DVR_ALARMHOST_SEARCH_LOG_PARAM;
  2825. typedef struct tagNET_DVR_ALARMHOST_LOG_RET
  2826. {
  2827. NET_DVR_TIME struLogTime; // 日志时间
  2828. BYTE sUserName[NAME_LEN]; // 操作用户
  2829. NET_DVR_IPADDR struIPAddr; // 操作IP地址
  2830. WORD wMajorType; // 主类型
  2831. WORD wMinorType; // 次类型
  2832. WORD wParam; // 操作参数
  2833. BYTE byRes[10];
  2834. DWORD dwInfoLen; // 描述信息长度
  2835. char sInfo[LOG_INFO_LEN]; // 描述信息
  2836. }NET_DVR_ALARMHOST_LOG_RET, *LPNET_DVR_ALARMHOST_LOG_RET;
  2837. /*************************动环报警管理主机日志查找 end***********************************************/
  2838. //报警输出状态(9000扩展)
  2839. typedef struct
  2840. {
  2841. BYTE Output[MAX_ALARMOUT_V30];
  2842. }NET_DVR_ALARMOUTSTATUS_V30, *LPNET_DVR_ALARMOUTSTATUS_V30;
  2843. //报警输出状态
  2844. typedef struct
  2845. {
  2846. BYTE Output[MAX_ALARMOUT];
  2847. }NET_DVR_ALARMOUTSTATUS, *LPNET_DVR_ALARMOUTSTATUS;
  2848. //交易信息
  2849. typedef struct
  2850. {
  2851. USHORT m_Year;
  2852. USHORT m_Month;
  2853. USHORT m_Day;
  2854. USHORT m_Hour;
  2855. USHORT m_Minute;
  2856. USHORT m_Second;
  2857. BYTE DeviceName[24]; //设备名称
  2858. DWORD dwChannelNumer; //通道号
  2859. BYTE CardNumber[32]; //卡号
  2860. char cTradeType[12]; //交易类型
  2861. DWORD dwCash; //交易金额
  2862. }NET_DVR_TRADEINFO, *LPNET_DVR_TRADEINFO;
  2863. //ATM专用
  2864. /****************************ATM(begin)***************************/
  2865. #define NCR 0
  2866. #define DIEBOLD 1
  2867. #define WINCOR_NIXDORF 2
  2868. #define SIEMENS 3
  2869. #define OLIVETTI 4
  2870. #define FUJITSU 5
  2871. #define HITACHI 6
  2872. #define SMI 7
  2873. #define IBM 8
  2874. #define BULL 9
  2875. #define YiHua 10
  2876. #define LiDe 11
  2877. #define GDYT 12
  2878. #define Mini_Banl 13
  2879. #define GuangLi 14
  2880. #define DongXin 15
  2881. #define ChenTong 16
  2882. #define NanTian 17
  2883. #define XiaoXing 18
  2884. #define GZYY 19
  2885. #define QHTLT 20
  2886. #define DRS918 21
  2887. #define KALATEL 22
  2888. #define NCR_2 23
  2889. #define NXS 24
  2890. /*帧格式*/
  2891. typedef struct
  2892. {
  2893. BYTE code[12]; /* 代码 */
  2894. }NET_DVR_FRAMETYPECODE;
  2895. //ATM参数
  2896. typedef struct
  2897. {
  2898. DWORD dwSize;
  2899. char sATMIP[16]; /* ATM IP地址 */
  2900. DWORD dwATMType; /* ATM类型 */
  2901. DWORD dwInputMode; /* 输入方式 0-网络侦听 1-网络接收 2-串口直接输入 3-串口ATM命令输入*/
  2902. DWORD dwFrameSignBeginPos; /* 报文标志位的起始位置*/
  2903. DWORD dwFrameSignLength; /* 报文标志位的长度 */
  2904. BYTE byFrameSignContent[12]; /* 报文标志位的内容 */
  2905. DWORD dwCardLengthInfoBeginPos; /* 卡号长度信息的起始位置 */
  2906. DWORD dwCardLengthInfoLength; /* 卡号长度信息的长度 */
  2907. DWORD dwCardNumberInfoBeginPos; /* 卡号信息的起始位置 */
  2908. DWORD dwCardNumberInfoLength; /* 卡号信息的长度 */
  2909. DWORD dwBusinessTypeBeginPos; /* 交易类型的起始位置 */
  2910. DWORD dwBusinessTypeLength; /* 交易类型的长度 */
  2911. NET_DVR_FRAMETYPECODE frameTypeCode[10];/* 类型 */
  2912. }NET_DVR_FRAMEFORMAT, *LPNET_DVR_FRAMEFORMAT;
  2913. //SDK_V31 ATM
  2914. /*过滤设置*/
  2915. typedef struct tagNET_DVR_FILTER
  2916. {
  2917. BYTE byEnable; //0,不启用;1,启用
  2918. BYTE byMode; //0,ASCII;1,HEX
  2919. BYTE byFrameBeginPos; // 需要过滤目标字符串起始位置
  2920. BYTE byRes[1]; // 保留字节
  2921. BYTE byFilterText[16]; //过滤字符串
  2922. BYTE byRes2[12]; // 保留字节
  2923. }NET_DVR_FILTER, *LPNET_DVR_FILTER;
  2924. //数据包分析 数据包标识
  2925. typedef struct tagNET_DVR_IDENTIFICAT
  2926. {
  2927. BYTE byStartMode; //起始字符模式:0,ASCII;1,HEX
  2928. BYTE byEndMode; //结束字符模式:0,ASCII;1,HEX
  2929. BYTE byRes[2]; //保留字节
  2930. NET_DVR_FRAMETYPECODE struStartCode; //数据包起始标识字符
  2931. NET_DVR_FRAMETYPECODE struEndCode; //数据包结束标识字符
  2932. BYTE byRes1[12]; //保留字节
  2933. }NET_DVR_IDENTIFICAT, *LPNET_DVR_IDENTIFICAT;
  2934. typedef struct tagNET_DVR_PACKAGE_LOCATION/*报文信息位置*/
  2935. {
  2936. BYTE byOffsetMode; /*报文位置信息模式 0,token(字符标志模式);1,fix(固定模式)*/
  2937. BYTE byRes1[3]; // 保留字节
  2938. DWORD dwOffsetPos; /*mode为1的时候使用,固定偏移大小*/
  2939. NET_DVR_FRAMETYPECODE struTokenCode; /*标志位*/
  2940. BYTE byMultiplierValue; /*标志位多少次出现*/
  2941. BYTE byEternOffset; /*附加字符偏移量*/
  2942. BYTE byCodeMode; /*0,ASCII;1,HEX*/
  2943. BYTE byRes2[9]; //保留字节
  2944. }NET_DVR_PACKAGE_LOCATION, *LPNET_DVR_PACKAGE_LOCATION;
  2945. typedef struct tagNET_DVR_PACKAGE_LENGTH//报文信息长度
  2946. {
  2947. BYTE byLengthMode; //长度类型,0,可变长度;1,固定长度;2,自助长度(从卡号中获取)
  2948. BYTE byRes1[3]; // 保留字节
  2949. DWORD dwFixLength; //mode为1的时候使用,固定长度大小
  2950. DWORD dwMaxLength; //报文信息最大长度 byLengthMode为0时使用
  2951. DWORD dwMinLength; //报文信息最小长度 byLengthMode为0时使用
  2952. BYTE byEndMode; //可变长度 终结符模式 0,ASCII;1,HEX
  2953. BYTE byRes2[3]; //保留字节
  2954. NET_DVR_FRAMETYPECODE struEndCode; //可变长度终结符
  2955. DWORD dwLengthPos; //lengthMode为2的时候使用,卡号长度在报文中的位置
  2956. DWORD dwLengthLen; //lengthMode为2的时候使用,卡号长度的长度
  2957. BYTE byRes3[8]; // 保留字节
  2958. }NET_DVR_PACKAGE_LENGTH,* LPNET_DVR_PACKAGE_LENGTH;
  2959. typedef struct tagNET_DVR_OSD_POSITION//OSD 叠加的位置
  2960. {
  2961. BYTE byPositionMode; //叠加风格,共2种;0,不显示;1,自定义
  2962. BYTE byRes1[3]; // 保留字节
  2963. DWORD dwPosX; //x坐标,叠加风格为自定义时使用
  2964. DWORD dwPosY; //y坐标,叠加风格为自定义时使用
  2965. BYTE byRes2[8]; //保留字节
  2966. }NET_DVR_OSD_POSITION, *LPNET_DVR_OSD_POSITION;
  2967. typedef struct tagNET_DVR_DATE_FORMAT//日期显示格式
  2968. {
  2969. BYTE byMonth; //Month,0.mm;1.mmm;2.mmmm
  2970. BYTE byDay; //Day,0.dd;
  2971. BYTE byYear; //Year,0.yy;1.yyyy
  2972. BYTE byDateForm; //0~5,年月日的排列组合
  2973. BYTE byRes[20]; // 保留字节
  2974. char chSeprator[4]; //分隔符
  2975. char chDisplaySeprator[4]; //显示分隔符
  2976. BYTE byDisplayForm; //0~5,3个item的排列组合
  2977. BYTE res[27]; // 保留字节
  2978. }NET_DVR_DATE_FORMAT, *LPNET_DVR_DATE_FORMAT;
  2979. typedef struct tagNET_DVRT_TIME_FORMAT//时间显示格式
  2980. {
  2981. BYTE byTimeForm; //1. HH MM SS;0. HH MM
  2982. BYTE byRes1[23]; // 保留字节
  2983. BYTE byHourMode; //0,12;1,24
  2984. BYTE byRes2[3]; // 保留字节
  2985. char chSeprator[4]; //报文分隔符,暂时没用
  2986. char chDisplaySeprator[4]; //显示分隔符
  2987. BYTE byDisplayForm; //0~5,3个item的排列组合
  2988. BYTE byRes3[3]; // 保留字节
  2989. BYTE byDisplayHourMode; //0,12;1,24
  2990. BYTE byRes4[19]; // 保留字节
  2991. }NET_DVR_TIME_FORMAT, *LPNET_DVR_TIME_FORMAT;
  2992. typedef struct tagNET_DVR_OVERLAY_CHANNEL
  2993. {
  2994. BYTE byChannel[64];//叠加的通道 每个字节标识一个通道, 例如byChannel[0]值为1对应叠加通道1,0表示不叠加通道1。
  2995. DWORD dwDelayTime; //叠加延时时间
  2996. BYTE byEnableDelayTime; //是否启用叠加延时
  2997. BYTE byRes[11]; // 保留字节
  2998. }NET_DVR_OVERLAY_CHANNEL, *LPNET_DVR_OVERLAY_CHANNEL;
  2999. // ATM 报文行为信息
  3000. typedef struct tagNET_DVR_ATM_PACKAGE_ACTION
  3001. {
  3002. NET_DVR_PACKAGE_LOCATION struPackageLocation;// 报文位置信息
  3003. NET_DVR_OSD_POSITION struOsdPosition; // OSD 叠加位置
  3004. NET_DVR_FRAMETYPECODE struActionCode; //交易类型行为码
  3005. NET_DVR_FRAMETYPECODE struPreCode; //叠加字符前的字符
  3006. BYTE byActionCodeMode; //交易类型行为码模式0,ASCII;1,HEX
  3007. BYTE byRes[7]; // 保留字节
  3008. }NET_DVR_ATM_PACKAGE_ACTION, *LPNET_DVR_ATM_PACKAGE_ACTION;
  3009. // ATM 报文DATA信息
  3010. typedef struct tagNET_DVR_ATM_PACKAGE_DATE
  3011. {
  3012. NET_DVR_PACKAGE_LOCATION struPackageLocation;// 日期在报文中的位置信息
  3013. NET_DVR_DATE_FORMAT struDateForm; //日期显示格式
  3014. NET_DVR_OSD_POSITION struOsdPosition; // OSD叠加位置信息
  3015. BYTE res[8]; // 保留字节
  3016. }NET_DVR_ATM_PACKAGE_DATE, *LPNET_DVR_ATM_PACKAGE_DATE;
  3017. //ATM报文时间信息
  3018. typedef struct tagNET_DVR_ATM_PACKAGE_TIME
  3019. {
  3020. NET_DVR_PACKAGE_LOCATION location; // 时间在报文中的位置信息
  3021. NET_DVR_TIME_FORMAT struTimeForm; // 时间显示格式
  3022. NET_DVR_OSD_POSITION struOsdPosition;// OSD 叠加位置信息
  3023. BYTE byRes[8]; // 保留字节
  3024. }NET_DVR_ATM_PACKAGE_TIME, *LPNET_DVR_ATM_PACKAGE_TIME;
  3025. // ATM 其他报文信息(卡号,交易金额,交易序号)
  3026. typedef struct tagNET_DVR_ATM_PACKAGE_OTHERS
  3027. {
  3028. NET_DVR_PACKAGE_LOCATION struPackageLocation; //报文位置信息
  3029. NET_DVR_PACKAGE_LENGTH struPackageLength; //长度信息
  3030. NET_DVR_OSD_POSITION struOsdPosition; // OSD叠加位置信息
  3031. NET_DVR_FRAMETYPECODE struPreCode; //叠加字符前的字符
  3032. BYTE res[8]; //保留字节
  3033. }NET_DVR_ATM_PACKAGE_OTHERS, *LPNET_DVR_ATM_PACKAGE_OTHERS;
  3034. //用户自定义协议
  3035. typedef struct tagNET_DVR_ATM_USER_DEFINE_PROTOCOL
  3036. {
  3037. NET_DVR_IDENTIFICAT struIdentification; //报文标志
  3038. NET_DVR_FILTER struFilter; //数据包过滤设置
  3039. NET_DVR_ATM_PACKAGE_OTHERS struCardNoPara; //叠加卡号设置
  3040. NET_DVR_ATM_PACKAGE_ACTION struTradeActionPara[MAX_ACTION_TYPE]; //叠加交易行为设置 0-9 依次对应InCard OutCard OverLay SetTime GetStatus Query WithDraw Deposit ChanPass Transfer
  3041. NET_DVR_ATM_PACKAGE_OTHERS struAmountPara; //叠加交易金额设置
  3042. NET_DVR_ATM_PACKAGE_OTHERS struSerialNoPara; //叠加交易序号设置
  3043. NET_DVR_OVERLAY_CHANNEL struOverlayChan; //叠加通道设置
  3044. NET_DVR_ATM_PACKAGE_DATE struRes1; //叠加日期,保留
  3045. NET_DVR_ATM_PACKAGE_TIME struRes2; //叠加时间,保留
  3046. BYTE byRes3[124]; //保留
  3047. }NET_DVR_ATM_USER_DEFINE_PROTOCOL, *LPNET_DVR_ATM_USER_DEFINE_PROTOCOL;
  3048. typedef struct tagNET_DVR_ATM_FRAMEFORMAT_V30
  3049. {
  3050. DWORD dwSize; //结构大小
  3051. BYTE byEnable; /*是否启用0,不启用;1,启用*/
  3052. BYTE byInputMode; /**输入方式:0-网络监听、1网络协议、2-串口监听、3-串口协议*/
  3053. BYTE byRes1[34]; //保留字节
  3054. NET_DVR_IPADDR struAtmIp; /*ATM 机IP 网络监听时使用 */
  3055. WORD wAtmPort; /* 网络协议方式时是使用*/
  3056. BYTE byRes2[2]; // 保留字节
  3057. DWORD dwAtmType; /*ATM协议类型,从NET_DVR_ATM_PROTOCOL结构中获取,如果类型为自定义时使用用户自定义协议*/
  3058. NET_DVR_ATM_USER_DEFINE_PROTOCOL struAtmUserDefineProtocol; //用户自定义协议,当ATM类型为自定时需要使用该定义
  3059. BYTE byRes3[8];
  3060. }NET_DVR_ATM_FRAMEFORMAT_V30, *LPNET_DVR_ATM_FRAMEFORMAT_V30;
  3061. typedef struct tagNET_DVR_ATM_PROTO_TYPE
  3062. {
  3063. DWORD dwAtmType; //ATM协议类型,同时作为索引序号 ATM 配置中的dwAtmType 自定义时为1025
  3064. char chDesc[ATM_DESC_LEN]; //ATM协议简单描述
  3065. }NET_DVR_ATM_PROTO_TYPE, *LPNET_DVR_ATM_PROTO_TYPE; //协议信息数据结构
  3066. typedef struct tagNET_DVR_ATM_PROTO_LIST //ATM 协议列表
  3067. {
  3068. DWORD dwAtmProtoNum; // 协议列表的个数
  3069. NET_DVR_ATM_PROTO_TYPE struAtmProtoType[MAX_ATM_PROTOCOL_NUM]; //协议列表信息
  3070. }NET_DVR_ATM_PROTO_LIST, *LPNET_DVR_ATM_PROTO_LIST;
  3071. typedef struct tagNET_DVR_ATM_PROTOCOL
  3072. {
  3073. DWORD dwSize;
  3074. NET_DVR_ATM_PROTO_LIST struNetListenList; // 网络监听协议描述
  3075. NET_DVR_ATM_PROTO_LIST struSerialListenList; //串口监听协议描述
  3076. NET_DVR_ATM_PROTO_LIST struNetProtoList; //网络协议描述
  3077. NET_DVR_ATM_PROTO_LIST struSerialProtoList; //串口协议描述
  3078. NET_DVR_ATM_PROTO_TYPE struCustomProto; //自定义协议
  3079. }NET_DVR_ATM_PROTOCOL, *LPNET_DVR_ATM_PROTOCOL;
  3080. // SDK_V31
  3081. /*****************************DS-6001D/F(begin)***************************/
  3082. //DS-6001D Decoder
  3083. typedef struct
  3084. {
  3085. BYTE byEncoderIP[16]; //解码设备连接的服务器IP
  3086. BYTE byEncoderUser[16]; //解码设备连接的服务器的用户名
  3087. BYTE byEncoderPasswd[16]; //解码设备连接的服务器的密码
  3088. BYTE bySendMode; //解码设备连接服务器的连接模式
  3089. BYTE byEncoderChannel; //解码设备连接的服务器的通道号
  3090. WORD wEncoderPort; //解码设备连接的服务器的端口号
  3091. BYTE reservedData[4]; //保留
  3092. }NET_DVR_DECODERINFO, *LPNET_DVR_DECODERINFO;
  3093. typedef struct
  3094. {
  3095. BYTE byEncoderIP[16]; //解码设备连接的服务器IP
  3096. BYTE byEncoderUser[16]; //解码设备连接的服务器的用户名
  3097. BYTE byEncoderPasswd[16]; //解码设备连接的服务器的密码
  3098. BYTE byEncoderChannel; //解码设备连接的服务器的通道号
  3099. BYTE bySendMode; //解码设备连接的服务器的连接模式
  3100. WORD wEncoderPort; //解码设备连接的服务器的端口号
  3101. DWORD dwConnectState; //解码设备连接服务器的状态
  3102. BYTE reservedData[4]; //保留
  3103. }NET_DVR_DECODERSTATE, *LPNET_DVR_DECODERSTATE;
  3104. /*解码设备控制码定义*/
  3105. #define NET_DEC_STARTDEC 1
  3106. #define NET_DEC_STOPDEC 2
  3107. #define NET_DEC_STOPCYCLE 3
  3108. #define NET_DEC_CONTINUECYCLE 4
  3109. /*连接的通道配置*/
  3110. typedef struct
  3111. {
  3112. char sDVRIP[16]; /* DVR IP地址 */
  3113. WORD wDVRPort; /* 端口号 */
  3114. BYTE sUserName[NAME_LEN]; /* 用户名 */
  3115. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  3116. BYTE byChannel; /* 通道号 */
  3117. BYTE byLinkMode; /* 连接模式 */
  3118. BYTE byLinkType; /* 连接类型 0-主码流 1-子码流 */
  3119. }NET_DVR_DECCHANINFO, *LPNET_DVR_DECCHANINFO;
  3120. /*每个解码通道的配置*/
  3121. typedef struct
  3122. {
  3123. BYTE byPoolChans; /*每路解码通道上的循环通道数量, 最多4通道 0表示没有解码*/
  3124. NET_DVR_DECCHANINFO struchanConInfo[MAX_DECPOOLNUM];
  3125. BYTE byEnablePoll; /*是否轮巡 0-否 1-是*/
  3126. BYTE byPoolTime; /*轮巡时间 0-保留 1-10秒 2-15秒 3-20秒 4-30秒 5-45秒 6-1分钟 7-2分钟 8-5分钟 */
  3127. }NET_DVR_DECINFO, *LPNET_DVR_DECINFO;
  3128. /*整个设备解码配置*/
  3129. typedef struct
  3130. {
  3131. DWORD dwSize;
  3132. DWORD dwDecChanNum; /*解码通道的数量*/
  3133. NET_DVR_DECINFO struDecInfo[MAX_DECNUM];
  3134. }NET_DVR_DECCFG, *LPNET_DVR_DECCFG;
  3135. //2005-08-01
  3136. /* 解码设备透明通道设置 */
  3137. typedef struct
  3138. {
  3139. DWORD dwEnableTransPort; /* 是否启动透明通道 0-不启用 1-启用*/
  3140. char sDecoderIP[16]; /* DVR IP地址 */
  3141. WORD wDecoderPort; /* 端口号 */
  3142. WORD wDVRTransPort; /* 配置前端DVR是从485/232输出,1表示232串口,2表示485串口 */
  3143. char cReserve[4];
  3144. }NET_DVR_PORTINFO, *LPNET_DVR_PORTINFO;
  3145. typedef struct
  3146. {
  3147. DWORD dwSize;
  3148. NET_DVR_PORTINFO struTransPortInfo[MAX_TRANSPARENTNUM]; /* 数组0表示232 数组1表示485 */
  3149. }NET_DVR_PORTCFG, *LPNET_DVR_PORTCFG;
  3150. /* 控制网络文件回放 */
  3151. typedef struct
  3152. {
  3153. DWORD dwSize;
  3154. char sDecoderIP[16]; /* DVR IP地址 */
  3155. WORD wDecoderPort; /* 端口号 */
  3156. WORD wLoadMode; /* 回放下载模式 1-按名字 2-按时间 */
  3157. union
  3158. {
  3159. BYTE byFile[100]; /* 回放的文件名 */
  3160. struct
  3161. {
  3162. DWORD dwChannel;
  3163. BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
  3164. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  3165. NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
  3166. NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
  3167. }bytime;
  3168. }mode_size;
  3169. }NET_DVR_PLAYREMOTEFILE, *LPNET_DVR_PLAYREMOTEFILE;
  3170. /*当前设备解码连接状态*/
  3171. typedef struct
  3172. {
  3173. DWORD dwWorkType; /*工作方式:1:轮巡、2:动态连接解码、3:文件回放下载 4:按时间回放下载*/
  3174. char sDVRIP[16]; /*连接的设备ip*/
  3175. WORD wDVRPort; /*连接端口号*/
  3176. BYTE byChannel; /* 通道号 */
  3177. BYTE byLinkMode; /* 连接模式 */
  3178. DWORD dwLinkType; /*连接类型 0-主码流 1-子码流*/
  3179. union
  3180. {
  3181. struct
  3182. {
  3183. BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
  3184. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  3185. char cReserve[52];
  3186. }userInfo;
  3187. struct
  3188. {
  3189. BYTE fileName[100];
  3190. }fileInfo;
  3191. struct
  3192. {
  3193. DWORD dwChannel;
  3194. BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
  3195. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  3196. NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
  3197. NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
  3198. }timeInfo;
  3199. }objectInfo;
  3200. }NET_DVR_DECCHANSTATUS, *LPNET_DVR_DECCHANSTATUS;
  3201. typedef struct
  3202. {
  3203. DWORD dwSize;
  3204. NET_DVR_DECCHANSTATUS struDecState[MAX_DECNUM];
  3205. }NET_DVR_DECSTATUS, *LPNET_DVR_DECSTATUS;
  3206. /*****************************DS-6001D/F(end)***************************/
  3207. //单字符参数(子结构)
  3208. typedef struct
  3209. {
  3210. WORD wShowString; // 预览的图象上是否显示字符,0-不显示,1-显示 区域大小704*576,单个字符的大小为32*32
  3211. WORD wStringSize; /* 该行字符的长度,不能大于44个字符 */
  3212. WORD wShowStringTopLeftX; /* 字符显示位置的x坐标 */
  3213. WORD wShowStringTopLeftY; /* 字符名称显示位置的y坐标 */
  3214. char sString[44]; /* 要显示的字符内容 */
  3215. }NET_DVR_SHOWSTRINGINFO, *LPNET_DVR_SHOWSTRINGINFO;
  3216. //叠加字符(9000扩展)
  3217. typedef struct
  3218. {
  3219. DWORD dwSize;
  3220. NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM_V30]; /* 要显示的字符内容 */
  3221. }NET_DVR_SHOWSTRING_V30, *LPNET_DVR_SHOWSTRING_V30;
  3222. //叠加字符扩展(8条字符)
  3223. typedef struct
  3224. {
  3225. DWORD dwSize;
  3226. NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM_EX]; /* 要显示的字符内容 */
  3227. }NET_DVR_SHOWSTRING_EX, *LPNET_DVR_SHOWSTRING_EX;
  3228. //叠加字符
  3229. typedef struct
  3230. {
  3231. DWORD dwSize;
  3232. NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM]; /* 要显示的字符内容 */
  3233. }NET_DVR_SHOWSTRING, *LPNET_DVR_SHOWSTRING;
  3234. /****************************DS9000新增结构(begin)******************************/
  3235. /*
  3236. EMAIL参数结构
  3237. */
  3238. typedef struct
  3239. {
  3240. DWORD dwSize;
  3241. BYTE sAccount[NAME_LEN]; /* 账号*/
  3242. BYTE sPassword[MAX_EMAIL_PWD_LEN]; /*密码 */
  3243. struct
  3244. {
  3245. BYTE sName[NAME_LEN]; /* 发件人姓名 */
  3246. BYTE sAddress[MAX_EMAIL_ADDR_LEN]; /* 发件人地址 */
  3247. }struSender;
  3248. BYTE sSmtpServer[MAX_EMAIL_ADDR_LEN]; /* smtp服务器 */
  3249. BYTE sPop3Server[MAX_EMAIL_ADDR_LEN]; /* pop3服务器 */
  3250. struct
  3251. {
  3252. BYTE sName[NAME_LEN]; /* 收件人姓名 */
  3253. BYTE sAddress[MAX_EMAIL_ADDR_LEN]; /* 收件人地址 */
  3254. }struReceiver[3]; /* 最多可以设置3个收件人 */
  3255. BYTE byAttachment; /* 是否带附件 */
  3256. BYTE bySmtpServerVerify; /* 发送服务器要求身份验证 */
  3257. BYTE byMailInterval; /* mail interval */
  3258. BYTE byEnableSSL; //ssl是否启用9000_1.1
  3259. WORD wSmtpPort; //gmail的465,普通的为25
  3260. BYTE byRes[74]; //保留
  3261. } NET_DVR_EMAILCFG_V30, *LPNET_DVR_EMAILCFG_V30;
  3262. /*
  3263. DVR实现巡航数据结构
  3264. */
  3265. typedef struct
  3266. {
  3267. DWORD dwSize;
  3268. BYTE byPresetNo[CRUISE_MAX_PRESET_NUMS]; /* 预置点号 */
  3269. BYTE byCruiseSpeed[CRUISE_MAX_PRESET_NUMS]; /* 巡航速度 */
  3270. WORD wDwellTime[CRUISE_MAX_PRESET_NUMS]; /* 停留时间 */
  3271. BYTE byEnableThisCruise; /* 是否启用 */
  3272. BYTE res[15];
  3273. }NET_DVR_CRUISE_PARA, *LPNET_DVR_CRUISE_PARA;
  3274. /****************************DS9000新增结构(end)******************************/
  3275. //时间点
  3276. typedef struct
  3277. {
  3278. DWORD dwMonth; //月 0-11表示1-12个月
  3279. DWORD dwWeekNo; //第几周 0-第1周 1-第2周 2-第3周 3-第4周 4-最后一周
  3280. DWORD dwWeekDate; //星期几 0-星期日 1-星期一 2-星期二 3-星期三 4-星期四 5-星期五 6-星期六
  3281. DWORD dwHour; //小时 开始时间0-23 结束时间1-23
  3282. DWORD dwMin; //分 0-59
  3283. }NET_DVR_TIMEPOINT;
  3284. //夏令时参数
  3285. typedef struct
  3286. {
  3287. DWORD dwSize;
  3288. BYTE byRes1[16]; //保留
  3289. DWORD dwEnableDST; //是否启用夏时制 0-不启用 1-启用
  3290. BYTE byDSTBias; //夏令时偏移值,30min, 60min, 90min, 120min, 以分钟计,传递原始数值
  3291. BYTE byRes2[3];
  3292. NET_DVR_TIMEPOINT struBeginPoint; //夏时制开始时间
  3293. NET_DVR_TIMEPOINT struEndPoint; //夏时制停止时间
  3294. }NET_DVR_ZONEANDDST, *LPNET_DVR_ZONEANDDST;
  3295. //图片质量
  3296. typedef struct
  3297. {
  3298. /*注意:当图像压缩分辨率为VGA时,支持0=CIF, 1=QCIF, 2=D1抓图,
  3299. 当分辨率为3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA,7=XVGA, 8=HD900p
  3300. 仅支持当前分辨率的抓图*/
  3301. WORD wPicSize; /* 可以通过能力集获取, 0-CIF,1-QCIF,2-D1,3-UXGA(1600x1200),
  3302. 4-SVGA(800x600),5-HD720p(1280x720),6-VGA,7-XVGA,8-HD900p,
  3303. 9-HD1080,10-2560*1920,11-1600*304,12-2048*1536,
  3304. 13-2448*2048,,14-2448*1200,15-2448*800,
  3305. 16-XGA(1024*768),17-SXGA(1280*1024),18-WD1(960*576/960*480),19-1080i*/
  3306. WORD wPicQuality; /* 图片质量系数 0-最好 1-较好 2-一般 */
  3307. }NET_DVR_JPEGPARA, *LPNET_DVR_JPEGPARA;
  3308. /* aux video out parameter */
  3309. //辅助输出参数配置
  3310. typedef struct
  3311. {
  3312. DWORD dwSize;
  3313. DWORD dwAlarmOutChan; /* 选择报警弹出大报警通道切换时间:1画面的输出通道: 0:主输出/1:辅1/2:辅2/3:辅3/4:辅4 */
  3314. DWORD dwAlarmChanSwitchTime; /* :1秒 - 10:10秒 */
  3315. DWORD dwAuxSwitchTime[MAX_AUXOUT]; /* 辅助输出切换时间: 0-不切换,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s */
  3316. BYTE byAuxOrder[MAX_AUXOUT][MAX_WINDOW]; /* 辅助输出预览顺序, 0xff表示相应的窗口不预览 */
  3317. }NET_DVR_AUXOUTCFG, *LPNET_DVR_AUXOUTCFG;
  3318. //ntp
  3319. typedef struct
  3320. {
  3321. BYTE sNTPServer[64]; /* Domain Name or IP addr of NTP server */
  3322. WORD wInterval; /* adjust time interval(hours) */
  3323. BYTE byEnableNTP; /* enable NPT client 0-no,1-yes*/
  3324. signed char cTimeDifferenceH; /* 与国际标准时间的 小时偏移-12 ... +13 */
  3325. signed char cTimeDifferenceM;/* 与国际标准时间的 分钟偏移0, 30, 45*/
  3326. BYTE res1;
  3327. WORD wNtpPort; /* ntp server port 9000新增 设备默认为123*/
  3328. BYTE res2[8];
  3329. }NET_DVR_NTPPARA, *LPNET_DVR_NTPPARA;
  3330. //ddns
  3331. typedef struct
  3332. {
  3333. BYTE sUsername[NAME_LEN]; /* DDNS账号用户名/密码 */
  3334. BYTE sPassword[PASSWD_LEN];
  3335. BYTE sDomainName[64]; /* 域名 */
  3336. BYTE byEnableDDNS; /*是否应用 0-否,1-是*/
  3337. BYTE res[15];
  3338. }NET_DVR_DDNSPARA, *LPNET_DVR_DDNSPARA;
  3339. typedef struct
  3340. {
  3341. BYTE byHostIndex; /* 0-私有DDNS 1-Dyndns 2-PeanutHull(花生壳)*/
  3342. BYTE byEnableDDNS; /*是否应用DDNS 0-否,1-是*/
  3343. WORD wDDNSPort; /* DDNS端口号 */
  3344. BYTE sUsername[NAME_LEN]; /* DDNS用户名*/
  3345. BYTE sPassword[PASSWD_LEN]; /* DDNS密码 */
  3346. BYTE sDomainName[MAX_DOMAIN_NAME]; /* 设备配备的域名地址 */
  3347. BYTE sServerName[MAX_DOMAIN_NAME]; /* DDNS 对应的服务器地址,可以是IP地址或域名 */
  3348. BYTE byRes[16];
  3349. }NET_DVR_DDNSPARA_EX, *LPNET_DVR_DDNSPARA_EX;
  3350. //9000扩展
  3351. typedef struct
  3352. {
  3353. BYTE byEnableDDNS;
  3354. BYTE byHostIndex;/* 0-私有DDNS 1-Dyndns 2-PeanutHull(花生壳) 3- NO-IP*/
  3355. BYTE byRes1[2];
  3356. struct
  3357. {
  3358. BYTE sUsername[NAME_LEN]; /* DDNS账号用户名*/
  3359. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  3360. BYTE sDomainName[MAX_DOMAIN_NAME]; /* 设备配备的域名地址 */
  3361. BYTE sServerName[MAX_DOMAIN_NAME]; /* DDNS协议对应的服务器地址,可以是IP地址或域名 */
  3362. WORD wDDNSPort; /* 端口号 */
  3363. BYTE byRes[10];
  3364. } struDDNS[MAX_DDNS_NUMS];
  3365. BYTE byRes2[16];
  3366. }NET_DVR_DDNSPARA_V30, *LPNET_DVR_DDNSPARA_V30;
  3367. //email
  3368. typedef struct
  3369. {
  3370. BYTE sUsername[64]; /* 邮件账号/密码 */
  3371. BYTE sPassword[64];
  3372. BYTE sSmtpServer[64];
  3373. BYTE sPop3Server[64];
  3374. BYTE sMailAddr[64]; /* email */
  3375. BYTE sEventMailAddr1[64]; /* 上传报警/异常等的email */
  3376. BYTE sEventMailAddr2[64];
  3377. BYTE res[16];
  3378. }NET_DVR_EMAILPARA, *LPNET_DVR_EMAILPARA;
  3379. //网络参数配置
  3380. typedef struct
  3381. {
  3382. DWORD dwSize;
  3383. char sDNSIp[16]; /* DNS服务器地址 */
  3384. NET_DVR_NTPPARA struNtpClientParam; /* NTP参数 */
  3385. NET_DVR_DDNSPARA struDDNSClientParam; /* DDNS参数 */
  3386. BYTE res[464]; /* 保留 */
  3387. }NET_DVR_NETAPPCFG, *LPNET_DVR_NETAPPCFG;
  3388. //nfs结构配置
  3389. typedef struct
  3390. {
  3391. char sNfsHostIPAddr[16];
  3392. BYTE sNfsDirectory[PATHNAME_LEN]; // PATHNAME_LEN = 128
  3393. }NET_DVR_SINGLE_NFS, *LPNET_DVR_SINGLE_NFS;
  3394. typedef struct
  3395. {
  3396. DWORD dwSize;
  3397. NET_DVR_SINGLE_NFS struNfsDiskParam[MAX_NFS_DISK];
  3398. }NET_DVR_NFSCFG, *LPNET_DVR_NFSCFG;
  3399. typedef struct tagNET_DVR_ISCSI_CFG
  3400. {
  3401. DWORD dwSize; // 结构大小
  3402. WORD wVrmPort; // VRM 监听端口
  3403. BYTE byEnable; // 是否启用 ISCSI存储
  3404. BYTE byRes[69]; // 保留字节
  3405. NET_DVR_IPADDR struVrmAddr; // VRM ip地址 16位
  3406. char chNvtIndexCode[64]; //nvt index Code
  3407. }NET_DVR_ISCSI_CFG, *LPNET_DVR_ISCSI_CFG;
  3408. //巡航点配置(私有IP快球专用)
  3409. typedef struct
  3410. {
  3411. BYTE PresetNum; //预置点
  3412. BYTE Dwell; //停留时间
  3413. BYTE Speed; //速度
  3414. BYTE Reserve; //保留
  3415. }NET_DVR_CRUISE_POINT, *LPNET_DVR_CRUISE_POINT;
  3416. typedef struct
  3417. {
  3418. NET_DVR_CRUISE_POINT struCruisePoint[32]; //最大支持32个巡航点
  3419. }NET_DVR_CRUISE_RET, *LPNET_DVR_CRUISE_RET;
  3420. /************************************多路解码器(begin)***************************************/
  3421. typedef struct
  3422. {
  3423. DWORD dwSize;
  3424. char sFirstDNSIP[16];
  3425. char sSecondDNSIP[16];
  3426. char sRes[32];
  3427. }NET_DVR_NETCFG_OTHER, *LPNET_DVR_NETCFG_OTHER;
  3428. typedef struct
  3429. {
  3430. char sDVRIP[16]; /* DVR IP地址 */
  3431. WORD wDVRPort; /* 端口号 */
  3432. BYTE byChannel; /* 通道号 */
  3433. BYTE byTransProtocol; /* 传输协议类型 0-TCP, 1-UDP */
  3434. BYTE byTransMode; /* 传输码流模式 0-主码流 1-子码流*/
  3435. BYTE byRes[3];
  3436. BYTE sUserName[NAME_LEN]; /* 监控主机登陆帐号 */
  3437. BYTE sPassword[PASSWD_LEN]; /* 监控主机密码 */
  3438. }NET_DVR_MATRIX_DECINFO, *LPNET_DVR_MATRIX_DECINFO;
  3439. //启动/停止动态解码
  3440. typedef struct
  3441. {
  3442. DWORD dwSize;
  3443. NET_DVR_MATRIX_DECINFO struDecChanInfo; /* 动态解码通道信息 */
  3444. }NET_DVR_MATRIX_DYNAMIC_DEC, *LPNET_DVR_MATRIX_DYNAMIC_DEC;
  3445. typedef struct
  3446. {
  3447. DWORD dwSize;
  3448. DWORD dwIsLinked; /* 解码通道状态 0-休眠 1-正在连接 2-已连接 3-正在解码 */
  3449. DWORD dwStreamCpRate; /* Stream copy rate, X kbits/second */
  3450. char cRes[64]; /* 保留 */
  3451. }NET_DVR_MATRIX_DEC_CHAN_STATUS, *LPNET_DVR_MATRIX_DEC_CHAN_STATUS;
  3452. typedef struct
  3453. {
  3454. DWORD dwSize;
  3455. NET_DVR_MATRIX_DECINFO struDecChanInfo; /* 解码通道信息 */
  3456. DWORD dwDecState; /* 0-动态解码 1-循环解码 2-按时间回放 3-按文件回放 */
  3457. NET_DVR_TIME StartTime; /* 按时间回放开始时间 */
  3458. NET_DVR_TIME StopTime; /* 按时间回放停止时间 */
  3459. char sFileName[128]; /* 按文件回放文件名 */
  3460. }NET_DVR_MATRIX_DEC_CHAN_INFO, *LPNET_DVR_MATRIX_DEC_CHAN_INFO;
  3461. //连接的通道配置 2007-11-05
  3462. typedef struct
  3463. {
  3464. DWORD dwEnable; /* 是否启用 0-否 1-启用*/
  3465. NET_DVR_MATRIX_DECINFO struDecChanInfo; /* 轮巡解码通道信息 */
  3466. }NET_DVR_MATRIX_DECCHANINFO, *LPNET_DVR_MATRIX_DECCHANINFO;
  3467. //2007-11-05 新增每个解码通道的配置
  3468. typedef struct
  3469. {
  3470. DWORD dwSize;
  3471. DWORD dwPoolTime; /*轮巡时间 */
  3472. NET_DVR_MATRIX_DECCHANINFO struchanConInfo[MAX_CYCLE_CHAN];
  3473. }NET_DVR_MATRIX_LOOP_DECINFO, *LPNET_DVR_MATRIX_LOOP_DECINFO;
  3474. //2007-12-22
  3475. typedef struct
  3476. {
  3477. BYTE baudrate; /* 波特率 */
  3478. BYTE databits; /* 数据位 */
  3479. BYTE stopbits; /* 停止位 */
  3480. BYTE parity; /* 奇偶校验位 */
  3481. BYTE flowcontrol; /* 流控 */
  3482. BYTE res[3];
  3483. }TTY_CONFIG, *LPTTY_CONFIG;
  3484. typedef struct
  3485. {
  3486. BYTE byTranChanEnable; /* 当前透明通道是否打开 0:关闭 1:打开 */
  3487. /*
  3488. * 多路解码器本地有1个485串口,1个232串口都可以作为透明通道,设备号分配如下:
  3489. * 0 RS485
  3490. * 1 RS232 Console
  3491. */
  3492. BYTE byLocalSerialDevice; /* Local serial device */
  3493. /*
  3494. * 远程串口输出还是两个,一个RS232,一个RS485
  3495. * 1表示232串口
  3496. * 2表示485串口
  3497. */
  3498. BYTE byRemoteSerialDevice; /* Remote output serial device */
  3499. BYTE res1; /* 保留 */
  3500. char sRemoteDevIP[16]; /* Remote Device IP */
  3501. WORD wRemoteDevPort; /* Remote Net Communication Port */
  3502. BYTE res2[2]; /* 保留 */
  3503. TTY_CONFIG RemoteSerialDevCfg;
  3504. }NET_DVR_MATRIX_TRAN_CHAN_INFO, *LPNET_DVR_MATRIX_TRAN_CHAN_INFO;
  3505. typedef struct
  3506. {
  3507. DWORD dwSize;
  3508. BYTE by232IsDualChan; /* 设置哪路232透明通道是全双工的 取值1到MAX_SERIAL_NUM */
  3509. BYTE by485IsDualChan; /* 设置哪路485透明通道是全双工的 取值1到MAX_SERIAL_NUM */
  3510. BYTE res[2]; /* 保留 */
  3511. NET_DVR_MATRIX_TRAN_CHAN_INFO struTranInfo[MAX_SERIAL_NUM];/*同时支持建立MAX_SERIAL_NUM个透明通道*/
  3512. }NET_DVR_MATRIX_TRAN_CHAN_CONFIG, *LPNET_DVR_MATRIX_TRAN_CHAN_CONFIG;
  3513. //2007-12-24 Merry Christmas Eve...
  3514. typedef struct
  3515. {
  3516. DWORD dwSize;
  3517. char sDVRIP[16]; /* DVR IP地址 */
  3518. WORD wDVRPort; /* 端口号 */
  3519. BYTE byChannel; /* 通道号 */
  3520. BYTE byReserve;
  3521. BYTE sUserName[NAME_LEN]; /* 用户名 */
  3522. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  3523. DWORD dwPlayMode; /* 0-按文件 1-按时间*/
  3524. NET_DVR_TIME StartTime;
  3525. NET_DVR_TIME StopTime;
  3526. char sFileName[128];
  3527. }NET_DVR_MATRIX_DEC_REMOTE_PLAY, *LPNET_DVR_MATRIX_DEC_REMOTE_PLAY;
  3528. /* 文件播放命令 */
  3529. #define NET_DVR_PLAYSTART 1//开始播放
  3530. #define NET_DVR_PLAYSTOP 2//停止播放
  3531. #define NET_DVR_PLAYPAUSE 3//暂停播放
  3532. #define NET_DVR_PLAYRESTART 4//恢复播放
  3533. #define NET_DVR_PLAYFAST 5//快放
  3534. #define NET_DVR_PLAYSLOW 6//慢放
  3535. #define NET_DVR_PLAYNORMAL 7//正常速度
  3536. #define NET_DVR_PLAYSTARTAUDIO 9//打开声音
  3537. #define NET_DVR_PLAYSTOPAUDIO 10//关闭声音
  3538. #define NET_DVR_PLAYSETPOS 12//改变文件回放的进度
  3539. typedef struct
  3540. {
  3541. DWORD dwSize;
  3542. DWORD dwPlayCmd; /* 播放命令 见文件播放命令*/
  3543. DWORD dwCmdParam; /* 播放命令参数 */
  3544. }NET_DVR_MATRIX_DEC_REMOTE_PLAY_CONTROL, *LPNET_DVR_MATRIX_DEC_REMOTE_PLAY_CONTROL;
  3545. typedef struct
  3546. {
  3547. DWORD dwSize;
  3548. DWORD dwCurMediaFileLen; /* 当前播放的媒体文件长度 */
  3549. DWORD dwCurMediaFilePosition; /* 当前播放文件的播放位置 */
  3550. DWORD dwCurMediaFileDuration; /* 当前播放文件的总时间 */
  3551. DWORD dwCurPlayTime; /* 当前已经播放的时间 */
  3552. DWORD dwCurMediaFIleFrames; /* 当前播放文件的总帧数 */
  3553. DWORD dwCurDataType; /* 当前传输的数据类型,19-文件头,20-流数据, 21-播放结束标志 */
  3554. BYTE res[72];
  3555. }NET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS, *LPNET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS;
  3556. //2009-4-11 added by likui 多路解码器new
  3557. typedef struct tagNET_MATRIX_PASSIVEMODE
  3558. {
  3559. WORD wTransProtol; //传输协议,0-TCP, 1-UDP, 2-MCAST
  3560. WORD wPassivePort; //UDP端口, TCP时默认
  3561. NET_DVR_IPADDR struMcastIP; //TCP,UDP时无效, MCAST时为多播地址
  3562. BYTE byStreamType;/* 数据播放模式:REAL_TIME_STREAM(1)实时流,RECORD_STREAM(2)文件流 */
  3563. BYTE byRes[7];
  3564. }NET_DVR_MATRIX_PASSIVEMODE, *LPNET_DVR_MATRIX_PASSIVEMODE;
  3565. typedef struct tagMATRIX_TRAN_CHAN_INFO
  3566. {
  3567. BYTE byTranChanEnable; /* 当前透明通道是否打开 0:关闭 1:打开 */
  3568. /*
  3569. * 多路解码器本地有1个485串口,1个232串口都可以作为透明通道,设备号分配如下:
  3570. * 0 RS485
  3571. * 1 RS232 Console
  3572. */
  3573. BYTE byLocalSerialDevice; /* Local serial device */
  3574. /*
  3575. * 远程串口输出还是两个,一个RS232,一个RS485
  3576. * 1表示232串口
  3577. * 2表示485串口
  3578. */
  3579. BYTE byRemoteSerialDevice; /* Remote output serial device */
  3580. BYTE byRes1; /* 保留 */
  3581. NET_DVR_IPADDR struRemoteDevIP;/* Remote Device IP */
  3582. WORD wRemoteDevPort; /* Remote Net Communication Port */
  3583. BYTE byIsEstablished; /* 透明通道建立成功标志,0-没有成功,1-建立成功 */
  3584. BYTE byRes2; /* 保留 */
  3585. TTY_CONFIG RemoteSerialDevCfg;
  3586. BYTE byUsername[NAME_LEN]; /* 32BYTES */
  3587. BYTE byPassword[PASSWD_LEN]; /* 16BYTES */
  3588. BYTE byRes3[16];
  3589. } NET_DVR_MATRIX_TRAN_CHAN_INFO_V30,*LPNET_DVR_MATRIX_TRAN_CHAN_INFO_V30;
  3590. typedef struct tagMATRIX_TRAN_CHAN_CONFIG
  3591. {
  3592. DWORD dwSize;
  3593. BYTE by232IsDualChan; /* 设置哪路232透明通道是全双工的 取值1到MAX_SERIAL_NUM */
  3594. BYTE by485IsDualChan; /* 设置哪路485透明通道是全双工的 取值1到MAX_SERIAL_NUM */
  3595. BYTE vyRes[2]; /* 保留 */
  3596. NET_DVR_MATRIX_TRAN_CHAN_INFO_V30 struTranInfo[MAX_SERIAL_NUM];/*同时支持建立MAX_SERIAL_NUM个透明通道*/
  3597. }NET_DVR_MATRIX_TRAN_CHAN_CONFIG_V30,*LPNET_DVR_MATRIX_TRAN_CHAN_CONFIG_V30;
  3598. typedef struct
  3599. {
  3600. DWORD dwEnable; /* 是否启用 0-否 1-启用*/
  3601. NET_DVR_STREAM_MEDIA_SERVER_CFG streamMediaServerCfg;
  3602. NET_DVR_DEV_CHAN_INFO struDevChanInfo; /* 轮巡解码通道信息 */
  3603. }NET_DVR_MATRIX_CHAN_INFO_V30,*LPNET_DVR_CYC_SUR_CHAN_ELE_V30;
  3604. typedef struct tagMATRIX_LOOP_DECINFO_V30
  3605. {
  3606. DWORD dwSize;
  3607. DWORD dwPoolTime; /*轮巡间隔*/
  3608. NET_DVR_MATRIX_CHAN_INFO_V30 struchanConInfo[MAX_CYCLE_CHAN_V30];
  3609. BYTE byRes[16];
  3610. } NET_DVR_MATRIX_LOOP_DECINFO_V30,*LPNET_DVR_MATRIX_LOOP_DECINFO_V30;
  3611. typedef struct tagDEC_MATRIX_CHAN_INFO_V30
  3612. {
  3613. DWORD dwSize;
  3614. NET_DVR_STREAM_MEDIA_SERVER_CFG streamMediaServerCfg; /*流媒体服务器配置*/
  3615. NET_DVR_DEV_CHAN_INFO struDevChanInfo; /* 解码通道信息 */
  3616. DWORD dwDecState; /* 0-动态解码 1-循环解码 2-按时间回放 3-按文件回放 */
  3617. NET_DVR_TIME StartTime; /* 按时间回放开始时间 */
  3618. NET_DVR_TIME StopTime; /* 按时间回放停止时间 */
  3619. char sFileName[128]; /* 按文件回放文件名 */
  3620. DWORD dwGetStreamMode; /*取流模式:1-主动,2-被动*/
  3621. NET_DVR_MATRIX_PASSIVEMODE struPassiveMode;
  3622. BYTE byRes[32];
  3623. }NET_DVR_MATRIX_DEC_CHAN_INFO_V30,*LPNET_DVR_MATRIX_DEC_CHAN_INFO_V30;
  3624. #define MAX_RESOLUTIONNUM 64 //支持的最大分辨率数目
  3625. typedef struct tagNET_DVR_MATRIX_ABILITY
  3626. {
  3627. DWORD dwSize;
  3628. BYTE byDecNums;
  3629. BYTE byStartChan;
  3630. BYTE byVGANums;
  3631. BYTE byBNCNums;
  3632. BYTE byVGAWindowMode[8][12]; /*VGA支持的窗口模式,VGA1可能由混合输出*/
  3633. BYTE byBNCWindowMode[4]; /*BNC支持的窗口模式*/
  3634. BYTE byDspNums;
  3635. BYTE byHDMINums;//HDMI显示通道个数(从25开始)
  3636. BYTE byDVINums;//DVI显示通道个数(从29开始)
  3637. BYTE byRes1[13];
  3638. BYTE bySupportResolution[MAX_RESOLUTIONNUM];//按照上面的枚举定义,一个字节代表一个分辨率是//否支持,1:支持,0:不支持
  3639. BYTE byHDMIWindowMode[4][8];//HDMI支持的窗口模式
  3640. BYTE byDVIWindowMode[4][8];//DVI支持的窗口模式
  3641. BYTE byRes2[24];
  3642. }NET_DVR_MATRIX_ABILITY, *LPNET_DVR_MATRIX_ABILITY;
  3643. //上传logo结构
  3644. typedef struct tagNET_DVR_DISP_LOGOCFG
  3645. {
  3646. DWORD dwCorordinateX; //图片显示区域X坐标
  3647. DWORD dwCorordinateY; //图片显示区域Y坐标
  3648. BYTE byRes1[8];
  3649. BYTE byFlash; //是否闪烁1-闪烁,0-不闪烁
  3650. BYTE byTranslucent; //是否半透明1-半透明,0-不半透明
  3651. BYTE byRes2[6]; //保留
  3652. DWORD dwLogoSize;//LOGO大小,包括BMP的文件头
  3653. }NET_DVR_DISP_LOGOCFG,*LPNET_DVR_DISP_LOGOCFG;
  3654. /*编码类型*/
  3655. #define NET_DVR_ENCODER_UNKOWN 0 /*未知编码格式*/
  3656. #define NET_DVR_ENCODER_H264 1 /*私有 264*/
  3657. #define NET_DVR_ENCODER_S264 2 /*Standard H264*/
  3658. #define NET_DVR_ENCODER_MPEG4 3 /*MPEG4*/
  3659. #define NET_DVR_ORIGINALSTREAM 4 /*Original Stream*/
  3660. #define NET_DVR_PICTURE 5/*Picture*/
  3661. #define NET_DVR_ENCODER_MJPEG 6
  3662. #define NET_DVR_ECONDER_MPEG2 7
  3663. /* 打包格式 */
  3664. #define NET_DVR_STREAM_TYPE_UNKOWN 0 /*未知打包格式*/
  3665. #define NET_DVR_STREAM_TYPE_PRIVT 1 /*私有格式*/
  3666. #define NET_DVR_STREAM_TYPE_TS 7 /* TS打包 */
  3667. #define NET_DVR_STREAM_TYPE_PS 8 /* PS打包 */
  3668. #define NET_DVR_STREAM_TYPE_RTP 9 /* RTP打包 */
  3669. #define NET_DVR_STREAM_TYPE_ORIGIN 10 //未打包(视频综合平台解码子系统用)
  3670. /*解码通道状态*/
  3671. typedef struct
  3672. {
  3673. BYTE byDecodeStatus; /*当前状态:0:未启动,1:启动解码*/
  3674. BYTE byStreamType; /*码流类型*/
  3675. BYTE byPacketType; /*打包方式*/
  3676. BYTE byRecvBufUsage; /*接收缓冲使用率*/
  3677. BYTE byDecBufUsage; /*解码缓冲使用率*/
  3678. BYTE byFpsDecV; /*视频解码帧率*/
  3679. BYTE byFpsDecA; /*音频解码帧率*/
  3680. BYTE byCpuLoad; /*DSP CPU使用率*/
  3681. BYTE byRes1[4];
  3682. DWORD dwDecodedV; /*解码的视频帧*/
  3683. DWORD dwDecodedA; /*解码的音频帧*/
  3684. WORD wImgW; /*解码器当前的图像大小,宽*/
  3685. WORD wImgH; //高
  3686. BYTE byVideoFormat; /*视频制式:0-NON,NTSC--1,PAL--2*/
  3687. BYTE byRes2[27];
  3688. }NET_DVR_MATRIX_CHAN_STATUS, *LPNET_DVR_MATRIX_CHAN_STATUS;
  3689. /*显示通道状态*/
  3690. #define NET_DVR_MAX_DISPREGION 16 /*每个显示通道最多可以显示的窗口*/
  3691. //分辨率
  3692. //
  3693. typedef enum
  3694. {
  3695. /*VGA*/
  3696. VGA_NOT_AVALIABLE,
  3697. VGA_THS8200_MODE_SVGA_60HZ, //(800*600)
  3698. VGA_THS8200_MODE_SVGA_75HZ, //(800*600)
  3699. VGA_THS8200_MODE_XGA_60HZ, //(1024*768)
  3700. VGA_THS8200_MODE_XGA_70HZ, //(1024*768)
  3701. VGA_THS8200_MODE_SXGA_60HZ, //(1280*1024)
  3702. VGA_THS8200_MODE_720P_60HZ, //(1280*720)
  3703. VGA_THS8200_MODE_1080I_60HZ, //(1920*1080)
  3704. VGA_THS8200_MODE_1080P_30HZ, //(1920*1080)
  3705. VGA_THS8200_MODE_UXGA_30HZ, //(1600*1200)
  3706. /*HDMI*/
  3707. HDMI_SII9134_MODE_XGA_60HZ, //(1024*768)
  3708. HDMI_SII9134_MODE_SXGA_60HZ, //(1280*1024)
  3709. HDMI_SII9134_MODE_SXGA2_60HZ, //(1280*960)
  3710. HDMI_SII9134_MODE_720P_60HZ, //(1280*720)
  3711. HDMI_SII9134_MODE_720P_50HZ, //(1280*720)
  3712. HDMI_SII9134_MODE_1080I_60HZ, //(1920*1080)
  3713. HDMI_SII9134_MODE_1080I_50HZ, //(1920*1080)
  3714. HDMI_SII9134_MODE_1080P_25HZ, //(1920*1080)
  3715. HDMI_SII9134_MODE_1080P_30HZ, //(1920*1080)
  3716. HDMI_SII9134_MODE_1080P_50HZ, //(1920*1080)
  3717. HDMI_SII9134_MODE_1080P_60HZ, //(1920*1080)
  3718. HDMI_SII9134_MODE_UXGA_60HZ, //(1600*1200)
  3719. /*DVI*/
  3720. DVI_SII9134_MODE_XGA_60HZ, //(1024*768)
  3721. DVI_SII9134_MODE_SXGA_60HZ, //(1280*1024)
  3722. DVI_SII9134_MODE_SXGA2_60HZ, //(1280*960)
  3723. DVI_SII9134_MODE_720P_60HZ, //(1280*720)
  3724. DVI_SII9134_MODE_720P_50HZ, //(1280*720)
  3725. DVI_SII9134_MODE_1080I_60HZ, //(1920*1080)
  3726. DVI_SII9134_MODE_1080I_50HZ, //(1920*1080)
  3727. DVI_SII9134_MODE_1080P_25HZ, //(1920*1080)
  3728. DVI_SII9134_MODE_1080P_30HZ, //(1920*1080)
  3729. DVI_SII9134_MODE_1080P_50HZ, //(1920*1080)
  3730. DVI_SII9134_MODE_1080P_60HZ, //(1920*1080)
  3731. DVI_SII9134_MODE_UXGA_60HZ //(1600*1200)
  3732. }VGA_MODE;
  3733. //低帧率定义
  3734. #define LOW_DEC_FPS_1_2 51
  3735. #define LOW_DEC_FPS_1_4 52
  3736. #define LOW_DEC_FPS_1_8 53
  3737. #define LOW_DEC_FPS_1_16 54
  3738. /*视频制式标准*/
  3739. typedef enum
  3740. {
  3741. VS_NON = 0,
  3742. VS_NTSC = 1,
  3743. VS_PAL = 2
  3744. }VIDEO_STANDARD;
  3745. typedef struct tagNET_DVR_VGA_DISP_CHAN_CFG
  3746. {
  3747. DWORD dwSize;
  3748. BYTE byAudio; /*音频是否开启,0-否,1-是*/
  3749. BYTE byAudioWindowIdx; /*音频开启子窗口*/
  3750. BYTE byVgaResolution; /*VGA的分辨率*/
  3751. BYTE byVedioFormat; /*1:NTSC,2:PAL,0-NULL*/
  3752. DWORD dwWindowMode; /*画面模式,从能力集获取,目前支持1,2,4,9,16*/
  3753. BYTE byJoinDecChan[MAX_WINDOWS];/*各个子窗口关联的解码通道*/
  3754. BYTE byEnlargeStatus; /*是否处于放大状态,0:不放大,1:放大*/
  3755. BYTE byEnlargeSubWindowIndex;//放大的子窗口号
  3756. union
  3757. {
  3758. BYTE byRes[16];
  3759. struct
  3760. {
  3761. /*各个子窗口对应解码通道所对应的解码子系统的槽位号(对于视频综合平台中解码子系统有效)*/
  3762. BYTE byJoinDecoderId[MAX_WINDOWS];
  3763. }struVideoPlatform;
  3764. struct
  3765. {
  3766. BYTE byRes[16];
  3767. }struNotVideoPlatform;
  3768. }struDiff;
  3769. /*区分共用体,0-视频综合平台内部解码器显示通道配置,1-其他解码器显示通道配置*/
  3770. BYTE byUnionType;
  3771. BYTE byScale; /*显示模式,0---真实显示,1---缩放显示( 针对BNC )*/
  3772. }NET_DVR_VGA_DISP_CHAN_CFG,*LPNET_DVR_VGA_DISP_CHAN_CFG;
  3773. /*显示通道状态*/
  3774. #define NET_DVR_MAX_DISPREGION 16 /*每个显示通道最多可以显示的窗口*/
  3775. typedef struct
  3776. {
  3777. BYTE byDispStatus; /*显示状态:0:未显示,1:启动显示*/
  3778. BYTE byBVGA; /*0-BNC,1-VGA, 2-HDMI,3-DVI*/
  3779. BYTE byVideoFormat; /*视频制式:1:NTSC,2:PAL,0-NON*/
  3780. BYTE byWindowMode; /*当前画面模式*/
  3781. BYTE byJoinDecChan[MAX_WINDOWS]; /*各个子窗口关联的解码通道*/
  3782. BYTE byFpsDisp[NET_DVR_MAX_DISPREGION]; /*每个子画面的显示帧率*/
  3783. BYTE byScreenMode; //屏幕模式0-普通 1-大屏
  3784. BYTE byRes2[31];
  3785. }NET_DVR_DISP_CHAN_STATUS, *LPNET_DVR_DISP_CHAN_STATUS;
  3786. #define MAX_DECODECHANNUM 32//多路解码器最大解码通道数
  3787. #define MAX_DISPCHANNUM 24//多路解码器最大显示通道数
  3788. /*解码器设备状态*/
  3789. typedef struct tagNET_DVR_DECODER_WORK_STATUS
  3790. {
  3791. DWORD dwSize;
  3792. NET_DVR_MATRIX_CHAN_STATUS struDecChanStatus[MAX_DECODECHANNUM]; /*解码通道状态*/
  3793. NET_DVR_DISP_CHAN_STATUS struDispChanStatus[MAX_DISPCHANNUM]; /*显示通道状态*/
  3794. BYTE byAlarmInStatus[MAX_ANALOG_ALARMIN]; /*报警输入状态*/
  3795. BYTE byAlarmOutStatus[MAX_ANALOG_ALARMOUT]; /*报警输出状态*/
  3796. BYTE byAudioInChanStatus; /*语音对讲状态*/
  3797. BYTE byRes[127];
  3798. }NET_DVR_DECODER_WORK_STATUS,*LPNET_DVR_DECODER_WORK_STATUS;
  3799. //2009-12-1 增加被动解码播放控制
  3800. typedef struct tagNET_DVR_PASSIVEDECODE_CONTROL
  3801. {
  3802. DWORD dwSize;
  3803. DWORD dwPlayCmd; /* 播放命令 见文件播放命令*/
  3804. DWORD dwCmdParam; /* 播放命令参数 */
  3805. BYTE byRes[16];//Reverse
  3806. }NET_DVR_PASSIVEDECODE_CONTROL,*LPNET_DVR_PASSIVEDECODE_CONTROL;
  3807. #define PASSIVE_DEC_PAUSE 1 /*被动解码暂停(仅文件流有效)*/
  3808. #define PASSIVE_DEC_RESUME 2 /*恢复被动解码(仅文件流有效)*/
  3809. #define PASSIVE_DEC_FAST 3 /*快速被动解码(仅文件流有效)*/
  3810. #define PASSIVE_DEC_SLOW 4 /*慢速被动解码(仅文件流有效)*/
  3811. #define PASSIVE_DEC_NORMAL 5 /*正常被动解码(仅文件流有效)*/
  3812. #define PASSIVE_DEC_ONEBYONE 6 /*被动解码单帧播放(保留)*/
  3813. #define PASSIVE_DEC_AUDIO_ON 7 /*音频开启*/
  3814. #define PASSIVE_DEC_AUDIO_OFF 8 /*音频关闭*/
  3815. #define PASSIVE_DEC_RESETBUFFER 9 /*清空缓冲区*/
  3816. //2009-12-16 增加控制解码器解码通道缩放
  3817. typedef struct tagNET_DVR_MATRIX_DECCHAN_CONTROL
  3818. {
  3819. DWORD dwSize;
  3820. BYTE byDecChanScaleStatus;/*解码通道显示缩放控制,1表示缩放显示,0表示真实显示*/
  3821. BYTE byDecodeDelay;//解码延时,0-默认,1-实时性好,2-实时性较好,3-实时性中,流畅性中,4-流畅性较好,5-流畅性好,0xff-自动调整
  3822. BYTE byRes[66];//Reverse
  3823. }NET_DVR_MATRIX_DECCHAN_CONTROL,*LPNET_DVR_MATRIX_DECCHAN_CONTROL;
  3824. /************************************多路解码器(end)***************************************/
  3825. //2009-8-19 视频综合平台接口函数
  3826. /************************************视频综合平台(begin)***************************************/
  3827. #define MAX_SUBSYSTEM_NUM 80 //一个矩阵系统中最多子系统数量
  3828. #define MAX_SERIALLEN 36 //最大序列号长度
  3829. #define MAX_LOOPPLANNUM 16//最大计划切换组
  3830. #define DECODE_TIMESEGMENT 4//计划解码每天时间段数
  3831. typedef struct tagNET_DVR_SUBSYSTEMINFO
  3832. {
  3833. BYTE bySubSystemType;//子系统类型,1-解码用子系统,2-编码用子系统,3-级联输出子系统,4-级联输入子系统,5-码分器子系统,6-报警主机子系统,7-智能子系统,0-NULL(此参数只能获取)
  3834. BYTE byChan;//子系统通道数,对于码分子系统,代表485串口数量(此参数只能获取)
  3835. BYTE byLoginType;//注册类型,1-直连,2-DNS,3-花生壳
  3836. BYTE byRes1[5];
  3837. NET_DVR_IPADDR struSubSystemIP; /*IP地址(可修改)*/
  3838. WORD wSubSystemPort; //子系统端口号(可修改)
  3839. BYTE byRes2[6];
  3840. NET_DVR_IPADDR struSubSystemIPMask;//子网掩码
  3841. NET_DVR_IPADDR struGatewayIpAddr; /* 网关地址*/
  3842. BYTE sUserName[NAME_LEN]; /* 用户名 (此参数只能获取)*/
  3843. BYTE sPassword[PASSWD_LEN]; /*密码(此参数只能获取)*/
  3844. char sDomainName[MAX_DOMAIN_NAME];//域名(可修改)
  3845. char sDnsAddress[MAX_DOMAIN_NAME];/*DNS域名或IP地址*/
  3846. BYTE sSerialNumber[SERIALNO_LEN];//序列号(此参数只能获取)
  3847. }NET_DVR_SUBSYSTEMINFO, *LPNET_DVR_SUBSYSTEMINFO;
  3848. typedef struct tagNET_DVR_ALLSUBSYSTEMINFO
  3849. {
  3850. DWORD dwSize;
  3851. NET_DVR_SUBSYSTEMINFO struSubSystemInfo[MAX_SUBSYSTEM_NUM];
  3852. BYTE byRes[8];
  3853. }NET_DVR_ALLSUBSYSTEMINFO, *LPNET_DVR_ALLSUBSYSTEMINFO;
  3854. typedef struct tagNET_DVR_LOOPPLAN_SUBCFG
  3855. {
  3856. DWORD dwSize;
  3857. DWORD dwPoolTime; /*轮巡间隔,单位:秒*/
  3858. NET_DVR_MATRIX_CHAN_INFO_V30 struChanConInfo[MAX_CYCLE_CHAN_V30];
  3859. BYTE byRes[16];
  3860. }NET_DVR_LOOPPLAN_SUBCFG,*LPNET_DVR_LOOPPLAN_SUBCFG;
  3861. typedef struct tagNET_DVR_ALARMMODECFG
  3862. {
  3863. DWORD dwSize;
  3864. BYTE byAlarmMode;//报警触发类型,1-轮巡,2-保持
  3865. WORD wLoopTime;//轮巡时间, 单位:秒
  3866. BYTE byRes[9];
  3867. }NET_DVR_ALARMMODECFG,*LPNET_DVR_ALARMMODECFG;
  3868. typedef struct tagNET_DVR_CODESPLITTERINFO
  3869. {
  3870. DWORD dwSize;
  3871. NET_DVR_IPADDR struIP; /*码分器IP地址*/
  3872. WORD wPort; //码分器端口号
  3873. BYTE byRes1[6];
  3874. BYTE sUserName[NAME_LEN]; /* 用户名 */
  3875. BYTE sPassword[PASSWD_LEN]; /*密码 */
  3876. BYTE byChan;//码分器485号
  3877. BYTE by485Port;//485口地址
  3878. BYTE byRes2[14];
  3879. } NET_DVR_CODESPLITTERINFO, *LPNET_DVR_CODESPLITTERINFO;
  3880. typedef struct tagNET_DVR_ASSOCIATECFG
  3881. {
  3882. BYTE byAssociateType;//关联类型,1-报警
  3883. WORD wAlarmDelay;//报警延时,0-5秒;1-10秒;2-30秒;3-1分钟;4-2分钟;5-5分钟;6-10分钟;
  3884. BYTE byAlarmNum;//报警号,具体的值由应用赋,相同的报警赋相同的值
  3885. BYTE byRes[8];
  3886. } NET_DVR_ASSOCIATECFG,*LPNET_DVR_ASSOCIATECFG;
  3887. typedef struct tagNET_DVR_DYNAMICDECODE
  3888. {
  3889. DWORD dwSize;
  3890. NET_DVR_ASSOCIATECFG struAssociateCfg;//触发动态解码关联结构
  3891. NET_DVR_PU_STREAM_CFG struPuStreamCfg;//动态解码结构
  3892. BYTE byRes[8];
  3893. }NET_DVR_DYNAMICDECODE,*LPNET_DVR_DYNAMICDECODE;
  3894. typedef struct tagNET_DVR_DECODESCHED
  3895. {
  3896. NET_DVR_SCHEDTIME struSchedTime;//
  3897. BYTE byDecodeType;/*0-无,1-轮巡解码,2-动态解码*/
  3898. BYTE byLoopGroup;//轮巡组号
  3899. BYTE byRes[6];
  3900. NET_DVR_PU_STREAM_CFG struDynamicDec;//动态解码
  3901. } NET_DVR_DECODESCHED, *LPNET_DVR_DECODESCHED;
  3902. typedef struct tagNET_DVR_PLANDECODE
  3903. {
  3904. DWORD dwSize;
  3905. NET_DVR_DECODESCHED struDecodeSched[MAX_DAYS][DECODE_TIMESEGMENT];//周一作为开始,和9000一致
  3906. BYTE byRes[8];
  3907. } NET_DVR_PLANDECODE,*LPNET_DVR_PLANDECODE;
  3908. //end
  3909. /************************************视频综合平台(end)***************************************/
  3910. typedef struct
  3911. { /* 12 bytes */
  3912. DWORD dwSize;
  3913. char sUserName[32];
  3914. char sPassWord[32];
  3915. char sFromName[32]; /* Sender *///字符串中的第一个字符和最后一个字符不能是"@",并且字符串中要有"@"字符
  3916. char sFromAddr[48]; /* Sender address */
  3917. char sToName1[32]; /* Receiver1 */
  3918. char sToName2[32]; /* Receiver2 */
  3919. char sToAddr1[48]; /* Receiver address1 */
  3920. char sToAddr2[48]; /* Receiver address2 */
  3921. char sEmailServer[32]; /* Email server address */
  3922. BYTE byServerType; /* Email server type: 0-SMTP, 1-POP, 2-IMTP…*/
  3923. BYTE byUseAuthen; /* Email server authentication method: 1-enable, 0-disable */
  3924. BYTE byAttachment; /* enable attachment */
  3925. BYTE byMailinterval; /* mail interval 0-2s, 1-3s, 2-4s. 3-5s*/
  3926. } NET_DVR_EMAILCFG, *LPNET_DVR_EMAILCFG;
  3927. typedef struct
  3928. {
  3929. DWORD dwSize;
  3930. NET_DVR_COMPRESSION_INFO_EX struLowCompression; //定时录像
  3931. NET_DVR_COMPRESSION_INFO_EX struEventCompression; //事件触发录像
  3932. }NET_DVR_COMPRESSIONCFG_NEW, *LPNET_DVR_COMPRESSIONCFG_NEW;
  3933. //球机位置信息
  3934. typedef struct
  3935. {
  3936. WORD wAction;//获取时该字段无效
  3937. WORD wPanPos;//水平参数
  3938. WORD wTiltPos;//垂直参数
  3939. WORD wZoomPos;//变倍参数
  3940. }NET_DVR_PTZPOS, *LPNET_DVR_PTZPOS;
  3941. //球机范围信息
  3942. typedef struct
  3943. {
  3944. WORD wPanPosMin;//水平参数min
  3945. WORD wPanPosMax;//水平参数max
  3946. WORD wTiltPosMin;//垂直参数min
  3947. WORD wTiltPosMax;//垂直参数max
  3948. WORD wZoomPosMin;//变倍参数min
  3949. WORD wZoomPosMax;//变倍参数max
  3950. }NET_DVR_PTZSCOPE, *LPNET_DVR_PTZSCOPE;
  3951. //rtsp配置 ipcamera专用
  3952. typedef struct
  3953. {
  3954. DWORD dwSize; //长度
  3955. WORD wPort; //rtsp服务器侦听端口
  3956. BYTE byReserve[54]; //预留
  3957. }NET_DVR_RTSPCFG, *LPNET_DVR_RTSPCFG;
  3958. /********************************接口参数结构(begin)*********************************/
  3959. //NET_DVR_Login()参数结构
  3960. typedef struct
  3961. {
  3962. BYTE sSerialNumber[SERIALNO_LEN]; //序列号
  3963. BYTE byAlarmInPortNum; //DVR报警输入个数
  3964. BYTE byAlarmOutPortNum; //DVR报警输出个数
  3965. BYTE byDiskNum; //DVR硬盘个数
  3966. BYTE byDVRType; //DVR类型, 1:DVR 2:ATM DVR 3:DVS ......
  3967. BYTE byChanNum; //DVR 通道个数
  3968. BYTE byStartChan; //起始通道号,例如DVS-1,DVR - 1
  3969. }NET_DVR_DEVICEINFO, *LPNET_DVR_DEVICEINFO;
  3970. //NET_DVR_Login_V30()参数结构
  3971. typedef struct
  3972. {
  3973. BYTE sSerialNumber[SERIALNO_LEN]; //序列号
  3974. BYTE byAlarmInPortNum; //报警输入个数
  3975. BYTE byAlarmOutPortNum; //报警输出个数
  3976. BYTE byDiskNum; //硬盘个数
  3977. BYTE byDVRType; //设备类型, 1:DVR 2:ATM DVR 3:DVS ......
  3978. BYTE byChanNum; //模拟通道个数
  3979. BYTE byStartChan; //起始通道号,例如DVS-1,DVR - 1
  3980. BYTE byAudioChanNum; //语音通道数
  3981. BYTE byIPChanNum; //最大数字通道个数
  3982. BYTE byZeroChanNum; //零通道编码个数 //2010-01-16
  3983. BYTE byMainProto; //主码流传输协议类型 0-private, 1-rtsp
  3984. BYTE bySubProto; //子码流传输协议类型0-private, 1-rtsp
  3985. BYTE bySupport; //能力,位与结果为0表示不支持,1表示支持,
  3986. //bySupport & 0x1, 表示是否支持智能搜索
  3987. //bySupport & 0x2, 表示是否支持备份
  3988. //bySupport & 0x4, 表示是否支持压缩参数能力获取
  3989. //bySupport & 0x8, 表示是否支持多网卡
  3990. //bySupport & 0x10, 表示支持远程SADP
  3991. //bySupport & 0x20, 表示支持Raid卡功能
  3992. //bySupport & 0x40, 表示支持IPSAN 目录查找
  3993. //bySupport & 0x80, 表示支持rtp over rtsp
  3994. BYTE bySupport1; // 能力集扩充,位与结果为0表示不支持,1表示支持
  3995. //bySupport1 & 0x1, 表示是否支持snmp v30
  3996. //bySupport1 & 0x2, 支持区分回放和下载
  3997. BYTE byRes1;
  3998. WORD wDevType; //设备型号
  3999. BYTE byRes2[16]; //保留
  4000. }NET_DVR_DEVICEINFO_V30, *LPNET_DVR_DEVICEINFO_V30;
  4001. //sdk网络环境枚举变量,用于远程升级
  4002. typedef enum _SDK_NET_ENV
  4003. {
  4004. LOCAL_AREA_NETWORK = 0,
  4005. WIDE_AREA_NETWORK
  4006. }SDK_NETWORK_ENVIRONMENT;
  4007. //显示模式
  4008. typedef enum
  4009. {
  4010. NORMALMODE = 0,
  4011. OVERLAYMODE
  4012. }DISPLAY_MODE;
  4013. //发送模式
  4014. typedef enum
  4015. {
  4016. PTOPTCPMODE = 0,
  4017. PTOPUDPMODE,
  4018. MULTIMODE,
  4019. RTPMODE,
  4020. RESERVEDMODE
  4021. }SEND_MODE;
  4022. //抓图模式
  4023. typedef enum
  4024. {
  4025. BMP_MODE = 0, //BMP模式
  4026. JPEG_MODE = 1 //JPEG模式
  4027. }CAPTURE_MODE;
  4028. //实时声音模式
  4029. typedef enum
  4030. {
  4031. MONOPOLIZE_MODE = 1,//独占模式
  4032. SHARE_MODE = 2 //共享模式
  4033. }REALSOUND_MODE;
  4034. //软解码预览参数
  4035. typedef struct
  4036. {
  4037. LONG lChannel;//通道号
  4038. LONG lLinkMode;//最高位(31)为0表示主码流,为1表示子,0-30位表示码流连接方式: 0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-RTP/RTSP,5-RSTP/HTTP
  4039. HWND hPlayWnd;//播放窗口的句柄,为NULL表示不播放图象
  4040. char* sMultiCastIP;//多播组地址
  4041. }NET_DVR_CLIENTINFO, *LPNET_DVR_CLIENTINFO;
  4042. //SDK状态信息(9000新增)
  4043. typedef struct
  4044. {
  4045. DWORD dwTotalLoginNum; //当前login用户数
  4046. DWORD dwTotalRealPlayNum; //当前realplay路数
  4047. DWORD dwTotalPlayBackNum; //当前回放或下载路数
  4048. DWORD dwTotalAlarmChanNum; //当前建立报警通道路数
  4049. DWORD dwTotalFormatNum; //当前硬盘格式化路数
  4050. DWORD dwTotalFileSearchNum; //当前日志或文件搜索路数
  4051. DWORD dwTotalLogSearchNum; //当前日志或文件搜索路数
  4052. DWORD dwTotalSerialNum; //当前透明通道路数
  4053. DWORD dwTotalUpgradeNum; //当前升级路数
  4054. DWORD dwTotalVoiceComNum; //当前语音转发路数
  4055. DWORD dwTotalBroadCastNum; //当前语音广播路数
  4056. DWORD dwTotalListenNum; //当前网络监听路数
  4057. DWORD dwEmailTestNum; //当前邮件计数路数
  4058. DWORD dwBackupNum; // 当前文件备份路数
  4059. DWORD dwTotalInquestUploadNum; //当前审讯上传路数
  4060. DWORD dwRes[6];
  4061. }NET_DVR_SDKSTATE, *LPNET_DVR_SDKSTATE;
  4062. //SDK功能支持信息(9000新增)
  4063. typedef struct
  4064. {
  4065. DWORD dwMaxLoginNum; //最大login用户数 MAX_LOGIN_USERS
  4066. DWORD dwMaxRealPlayNum; //最大realplay路数 WATCH_NUM
  4067. DWORD dwMaxPlayBackNum; //最大回放或下载路数 WATCH_NUM
  4068. DWORD dwMaxAlarmChanNum; //最大建立报警通道路数 ALARM_NUM
  4069. DWORD dwMaxFormatNum; //最大硬盘格式化路数 SERVER_NUM
  4070. DWORD dwMaxFileSearchNum; //最大文件搜索路数 SERVER_NUM
  4071. DWORD dwMaxLogSearchNum; //最大日志搜索路数 SERVER_NUM
  4072. DWORD dwMaxSerialNum; //最大透明通道路数 SERVER_NUM
  4073. DWORD dwMaxUpgradeNum; //最大升级路数 SERVER_NUM
  4074. DWORD dwMaxVoiceComNum; //最大语音转发路数 SERVER_NUM
  4075. DWORD dwMaxBroadCastNum; //最大语音广播路数 MAX_CASTNUM
  4076. DWORD dwRes[10];
  4077. }NET_DVR_SDKABL, *LPNET_DVR_SDKABL;
  4078. //报警设备信息
  4079. typedef struct
  4080. {
  4081. BYTE byUserIDValid; /* userid是否有效 0-无效,1-有效 */
  4082. BYTE bySerialValid; /* 序列号是否有效 0-无效,1-有效 */
  4083. BYTE byVersionValid; /* 版本号是否有效 0-无效,1-有效 */
  4084. BYTE byDeviceNameValid; /* 设备名字是否有效 0-无效,1-有效 */
  4085. BYTE byMacAddrValid; /* MAC地址是否有效 0-无效,1-有效 */
  4086. BYTE byLinkPortValid; /* login端口是否有效 0-无效,1-有效 */
  4087. BYTE byDeviceIPValid; /* 设备IP是否有效 0-无效,1-有效 */
  4088. BYTE bySocketIPValid; /* socket ip是否有效 0-无效,1-有效 */
  4089. LONG lUserID; /* NET_DVR_Login()返回值, 布防时有效 */
  4090. BYTE sSerialNumber[SERIALNO_LEN]; /* 序列号 */
  4091. DWORD dwDeviceVersion; /* 版本信息 高16位表示主版本,低16位表示次版本*/
  4092. char sDeviceName[NAME_LEN]; /* 设备名字 */
  4093. BYTE byMacAddr[MACADDR_LEN]; /* MAC地址 */
  4094. WORD wLinkPort; /* link port */
  4095. char sDeviceIP[128]; /* IP地址 */
  4096. char sSocketIP[128]; /* 报警主动上传时的socket IP地址 */
  4097. BYTE byIpProtocol; /* Ip协议 0-IPV4, 1-IPV6 */
  4098. BYTE byRes2[11];
  4099. }NET_DVR_ALARMER, *LPNET_DVR_ALARMER;
  4100. //硬解码显示区域参数(子结构)
  4101. typedef struct
  4102. {
  4103. long bToScreen;
  4104. long bToVideoOut;
  4105. long nLeft;
  4106. long nTop;
  4107. long nWidth;
  4108. long nHeight;
  4109. long nReserved;
  4110. }NET_DVR_DISPLAY_PARA, *LPNET_DVR_DISPLAY_PARA;
  4111. //硬解码预览参数
  4112. typedef struct
  4113. {
  4114. LONG lChannel;//通道号
  4115. LONG lLinkMode; //最高位(31)为0表示主码流,为1表示子,0-30位表示码流连接方式:0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-电话线,5-128k宽带,6-256k宽带,7-384k宽带,8-512k宽带;
  4116. char* sMultiCastIP;
  4117. NET_DVR_DISPLAY_PARA struDisplayPara;
  4118. }NET_DVR_CARDINFO, *LPNET_DVR_CARDINFO;
  4119. //录象文件参数
  4120. typedef struct
  4121. {
  4122. char sFileName[100];//文件名
  4123. NET_DVR_TIME struStartTime;//文件的开始时间
  4124. NET_DVR_TIME struStopTime;//文件的结束时间
  4125. DWORD dwFileSize;//文件的大小
  4126. }NET_DVR_FIND_DATA, *LPNET_DVR_FIND_DATA;
  4127. //录象文件参数(9000)
  4128. typedef struct
  4129. {
  4130. char sFileName[100];//文件名
  4131. NET_DVR_TIME struStartTime;//文件的开始时间
  4132. NET_DVR_TIME struStopTime;//文件的结束时间
  4133. DWORD dwFileSize;//文件的大小
  4134. char sCardNum[32];
  4135. BYTE byLocked;//9000设备支持,1表示此文件已经被锁定,0表示正常的文件
  4136. BYTE byFileType; //文件类型:0-定时录像,1-移动侦测 ,2-报警触发,
  4137. //3-报警|移动侦测 4-报警&移动侦测 5-命令触发 6-手动录像
  4138. BYTE byRes[2];
  4139. }NET_DVR_FINDDATA_V30, *LPNET_DVR_FINDDATA_V30;
  4140. //录象文件参数(带卡号)
  4141. typedef struct
  4142. {
  4143. char sFileName[100];//文件名
  4144. NET_DVR_TIME struStartTime;//文件的开始时间
  4145. NET_DVR_TIME struStopTime;//文件的结束时间
  4146. DWORD dwFileSize;//文件的大小
  4147. char sCardNum[32];
  4148. }NET_DVR_FINDDATA_CARD, *LPNET_DVR_FINDDATA_CARD;
  4149. //录象文件查找条件结构
  4150. typedef struct
  4151. {
  4152. LONG lChannel;//通道号
  4153. DWORD dwFileType;//录象文件类型0xff-全部,0-定时录像,1-移动侦测 ,2-报警触发,
  4154. //3-报警|移动侦测 4-报警&移动侦测 5-命令触发 6-手动录像
  4155. DWORD dwIsLocked;//是否锁定 0-正常文件,1-锁定文件, 0xff表示所有文件
  4156. DWORD dwUseCardNo;//是否使用卡号
  4157. BYTE sCardNumber[32];//卡号
  4158. NET_DVR_TIME struStartTime;//开始时间
  4159. NET_DVR_TIME struStopTime;//结束时间
  4160. }NET_DVR_FILECOND, *LPNET_DVR_FILECOND;
  4161. //云台区域选择放大缩小(私有 快球专用)
  4162. typedef struct
  4163. {
  4164. int xTop; //方框起始点的x坐标
  4165. int yTop; //方框结束点的y坐标
  4166. int xBottom; //方框结束点的x坐标
  4167. int yBottom; //方框结束点的y坐标
  4168. int bCounter; //保留
  4169. }NET_DVR_POINT_FRAME, *LPNET_DVR_POINT_FRAME;
  4170. //语音对讲参数
  4171. typedef struct tagNET_DVR_COMPRESSION_AUDIO
  4172. {
  4173. BYTE byAudioEncType; //音频编码类型 0-OggVorbis;1-G711_U;2-G711_A
  4174. BYTE byAudioInputType; //音频输入类型,0-mic in,1-line in
  4175. BYTE byres[6];//这里保留音频的压缩参数
  4176. }NET_DVR_COMPRESSION_AUDIO, *LPNET_DVR_COMPRESSION_AUDIO;
  4177. //2009-7-22
  4178. #define IW_ESSID_MAX_SIZE 32
  4179. #define WIFI_WEP_MAX_KEY_COUNT 4
  4180. #define WIFI_WEP_MAX_KEY_LENGTH 33
  4181. #define WIFI_WPA_PSK_MAX_KEY_LENGTH 63
  4182. #define WIFI_WPA_PSK_MIN_KEY_LENGTH 8
  4183. #define WIFI_MAX_AP_COUNT 20
  4184. typedef struct tagNET_DVR_AP_INFO
  4185. {
  4186. char sSsid[IW_ESSID_MAX_SIZE];
  4187. DWORD dwMode; /* 0 mange 模式;1 ad-hoc模式,参见NICMODE */
  4188. DWORD dwSecurity; /*0 不加密;1 wep加密;2 wpa-psk;3 wpa-Enterprise;4-WPA2_PSK参见WIFISECURITY*/
  4189. DWORD dwChannel; /*1-11表示11个通道*/
  4190. DWORD dwSignalStrength; /*0-100信号由最弱变为最强*/
  4191. DWORD dwSpeed; /*速率,单位是0.01mbps*/
  4192. }NET_DVR_AP_INFO,*LPNET_DVR_AP_INFO;
  4193. typedef struct tagNET_DVR_AP_INFO_LIST
  4194. {
  4195. DWORD dwSize;
  4196. DWORD dwCount; /*无线AP数量,不超过20*/
  4197. NET_DVR_AP_INFO struApInfo[WIFI_MAX_AP_COUNT];
  4198. }NET_DVR_AP_INFO_LIST,*LPNET_DVR_AP_INFO_LIST;
  4199. typedef struct tagNET_DVR_WIFIETHERNET
  4200. {
  4201. char sIpAddress[16]; /*IP地址*/
  4202. char sIpMask[16]; /*掩码*/
  4203. BYTE byMACAddr[MACADDR_LEN]; /*物理地址,只用来显示*/
  4204. BYTE bRes[2];
  4205. DWORD dwEnableDhcp; /*是否启动dhcp 0不启动 1启动*/
  4206. DWORD dwAutoDns; /*如果启动dhcp是否自动获取dns,0不自动获取 1自动获取;对于有线如果启动dhcp目前自动获取dns*/
  4207. char sFirstDns[16]; /*第一个dns域名*/
  4208. char sSecondDns[16]; /*第二个dns域名*/
  4209. char sGatewayIpAddr[16]; /* 网关地址*/
  4210. BYTE bRes2[8];
  4211. }NET_DVR_WIFIETHERNET,*LPNET_DVR_WIFIETHERNET;
  4212. typedef struct tagNET_DVR_WIFI_CFG_EX
  4213. {
  4214. NET_DVR_WIFIETHERNET struEtherNet; /*wifi网口*/
  4215. char sEssid[IW_ESSID_MAX_SIZE]; /*SSID*/
  4216. DWORD dwMode; /* 0 mange 模式;1 ad-hoc模式,参见*/
  4217. DWORD dwSecurity; /*0-不加密;1-wep加密;2-wpa-psk; 3-WPA_ENTPRISE;4-WPA2_PSK */
  4218. union
  4219. {
  4220. struct
  4221. {
  4222. DWORD dwAuthentication;/*0 -开放式 1-共享式*/
  4223. DWORD dwKeyLength;/* 0 -64位;1- 128位;2-152位*/
  4224. DWORD dwKeyType;/*0 16进制;1 ASCI */
  4225. DWORD dwActive;/*0 索引:0---3表示用哪一个密钥*/
  4226. char sKeyInfo[WIFI_WEP_MAX_KEY_COUNT][WIFI_WEP_MAX_KEY_LENGTH];
  4227. }wep;
  4228. struct
  4229. {
  4230. DWORD dwKeyLength;/*8-63个ASCII字符*/
  4231. char sKeyInfo[WIFI_WPA_PSK_MAX_KEY_LENGTH];
  4232. BYTE byEncryptType; /*WPA/WPA2模式下加密类型,0-AES, 1-TKIP*/
  4233. }wpa_psk;
  4234. }key;
  4235. }NET_DVR_WIFI_CFG_EX,*LPNET_DVR_WIFI_CFG_EX;
  4236. //wifi配置结构
  4237. typedef struct tagNET_DVR_WIFI_CFG
  4238. {
  4239. DWORD dwSize;
  4240. NET_DVR_WIFI_CFG_EX struWifiCfg;
  4241. }NET_DVR_WIFI_CFG,*LPNET_DVR_WIFI_CFG;
  4242. //wifi工作模式
  4243. typedef struct tagNET_DVR_WIFI_WORKMODE
  4244. {
  4245. DWORD dwSize;
  4246. DWORD dwNetworkInterfaceMode; /*0 自动切换模式 1 有线模式*/
  4247. }NET_DVR_WIFI_WORKMODE,*LPNET_DVR_WIFI_WORKMODE;
  4248. /******************************能力集获取*********************************/
  4249. //能力获取命令
  4250. #define DEVICE_ALL_ABILITY 0x000 //设备全部能力
  4251. #define DEVICE_SOFTHARDWARE_ABILITY 0x001 //设备软硬件能力
  4252. #define DEVICE_NETWORK_ABILITY 0x002 //设备网络能力
  4253. #define DEVICE_ENCODE_ALL_ABILITY 0x003 //设备所有编码能力
  4254. #define DEVICE_ENCODE_CURRENT 0x004 //设备当前编码能力
  4255. #define IPC_FRONT_PARAMETER 0x005 //ipc前端参数
  4256. #define IPC_UPGRADE_DESCRIPTION 0x006 //ipc升级信息
  4257. #define DEVICE_RAID_ABILITY 0x007 //RAID能力
  4258. #define VCA_DEV_ABILITY 0x100 //设备智能分析的总能力
  4259. #define VCA_CHAN_ABILITY 0x110 //行为分析能力
  4260. #define MATRIXDECODER_ABILITY 0x200 //多路解码器显示、解码能力
  4261. #define SNAPCAMERA_ABILITY 0x300 //抓拍机能力集
  4262. #define COMPRESSIONCFG_ABILITY 0x400 //获取压缩参数能力集合
  4263. #define COMPRESSION_LIMIT 0x401 //获取主子码流压缩参数能力限制
  4264. #define PIC_CAPTURE_ABILITY 0x402 //获图片分辨率能力集合
  4265. //报警回调命令
  4266. //对应NET_DVR_PLATE_RESULT
  4267. #define COMM_ALARM_PLATE 0x1101 //车牌识别报警信息
  4268. //对应NET_VCA_RULE_ALARM
  4269. #define COMM_ALARM_RULE 0x1102 //行为分析报警信息
  4270. #define COMM_ALARM_PDC 0x1103 // 人数统计报警信息
  4271. #define COMM_ALARM_VIDEOPLATFORM 0x1104 // 视频综合平台报警
  4272. #define COMM_ALARM_ALARMHOST 0x1105 // 网络报警主机报警
  4273. #define COMM_ALARM_FACE 0x1106 // 人脸检测识别报警信息
  4274. #define COMM_RULE_INFO_UPLOAD 0x1107 // 事件数据信息上传
  4275. #define COMM_ALARM_AID 0x1110 // 交通事件报警信息
  4276. #define COMM_ALARM_TPS 0x1111 // 交通参数统计报警信息
  4277. //智能人脸抓拍结果上传
  4278. #define COMM_UPLOAD_FACESNAP_RESULT 0x1112 //人脸识别结果上传
  4279. #define COMM_SENSOR_VALUE_UPLOAD 0x1120 // 模拟量数据实时上传
  4280. #define COMM_SENSOR_ALARM 0x1121 // 模拟量报警上传
  4281. #define COMM_SWITCH_ALARM 0x1122 // 开关量报警
  4282. #define COMM_ALARMHOST_EXCEPTION 0x1123 // 报警主机故障报警
  4283. //车牌报警NET_DVR_PLATE_RESULT
  4284. #define COMM_UPLOAD_PLATE_RESULT 0x2800 //上传车牌信息
  4285. //结构参数宏定义
  4286. #define VCA_MAX_POLYGON_POINT_NUM 10 //检测区域最多支持10个点的多边形
  4287. #define MAX_RULE_NUM 8 //最多规则条数
  4288. #define MAX_TARGET_NUM 30 //最多目标个数
  4289. #define MAX_CALIB_PT 6 //最大标定点个数
  4290. #define MIN_CALIB_PT 4 //最小标定点个数
  4291. #define MAX_TIMESEGMENT_2 2 //最大时间段数
  4292. #define MAX_LICENSE_LEN 16 //车牌号最大长度
  4293. #define MAX_PLATE_NUM 3 //车牌个数
  4294. #define MAX_MASK_REGION_NUM 4 //最多四个屏蔽区域
  4295. #define MAX_SEGMENT_NUM 6 //摄像机标定最大样本线数目
  4296. #define MIN_SEGMENT_NUM 3 //摄像机标定最小样本线数目
  4297. //智能控制信息
  4298. #define MAX_VCA_CHAN 16//最大智能通道数
  4299. typedef struct tagNET_VCA_CTRLINFO
  4300. {
  4301. BYTE byVCAEnable; //是否开启智能
  4302. BYTE byVCAType; //智能能力类型,VCA_CHAN_ABILITY_TYPE
  4303. BYTE byStreamWithVCA; //码流中是否带智能信息
  4304. BYTE byMode; //模式,VCA_CHAN_MODE_TYPE ,atm能力的时候需要配置
  4305. BYTE byRes[4]; //保留,设置为0
  4306. }NET_VCA_CTRLINFO, * LPNET_VCA_CTRLINFO;
  4307. //智能控制信息结构
  4308. typedef struct tagNET_VCA_CTRLCFG
  4309. {
  4310. DWORD dwSize;
  4311. NET_VCA_CTRLINFO struCtrlInfo[MAX_VCA_CHAN]; //控制信息,数组0对应设备的起始通道
  4312. BYTE byRes[16];
  4313. }NET_VCA_CTRLCFG, * LPNET_VCA_CTRLCFG;
  4314. //智能设备能力集
  4315. typedef struct tagNET_VCA_DEV_ABILITY
  4316. {
  4317. DWORD dwSize; //结构长度
  4318. BYTE byVCAChanNum; //智能通道个数
  4319. BYTE byPlateChanNum; //车牌通道个数
  4320. BYTE byBBaseChanNum; //行为基本版个数
  4321. BYTE byBAdvanceChanNum; //行为高级版个数
  4322. BYTE byBFullChanNum; //行为完整版个数
  4323. BYTE byATMChanNum; //智能ATM个数
  4324. BYTE byPDCChanNum; //人数统计通道个数
  4325. BYTE byITSChanNum; // 交通事件通道个数
  4326. BYTE byBPrisonChanNum; // 行为监狱版通道个数
  4327. BYTE byFSnapChanNum; //人脸抓拍通道个数
  4328. BYTE byFSnapRecogChanNum; //人脸抓拍和识别通道个数
  4329. BYTE byFRetrievalChanNum; //人脸后检索个数
  4330. BYTE byRes[28];
  4331. }NET_VCA_DEV_ABILITY, *LPNET_VCA_DEV_ABILITY;
  4332. //行为分析能力类型
  4333. typedef enum _VCA_ABILITY_TYPE_
  4334. {
  4335. TRAVERSE_PLANE_ABILITY = 0x01, //穿越警戒面
  4336. ENTER_AREA_ABILITY = 0x02, //进入区域
  4337. EXIT_AREA_ABILITY = 0x04, //离开区域
  4338. INTRUSION_ABILITY = 0x08, //入侵
  4339. LOITER_ABILITY = 0x10, //徘徊
  4340. LEFT_TAKE_ABILITY = 0x20, //物品遗留拿取
  4341. PARKING_ABILITY = 0x40, //停车
  4342. RUN_ABILITY = 0x80, //快速移动
  4343. HIGH_DENSITY_ABILITY = 0x100, //人员聚集
  4344. LF_TRACK_ABILITY = 0x200, //球机跟踪
  4345. VIOLENT_MOTION_ABILITY = 0x400, // 剧烈运动检测
  4346. REACH_HIGHT_ABILITY = 0x800, // 攀高检测
  4347. GET_UP_ABILITY = 0x1000, // 起身检测
  4348. LEFT_ABILITY = 0x2000, // 物品遗留
  4349. TAKE_ABILITY = 0x4000, // 物品拿取
  4350. LEAVE_POSITION = 0x8000, //离岗
  4351. HUMAN_ENTER_ABILITY = 0x10000000, //人靠近ATM 只在ATM_PANEL模式下支持
  4352. OVER_TIME_ABILITY = 0x20000000, //操作超时 只在ATM_PANEL模式下支持
  4353. STICK_UP_ABILITY = 0x40000000, //贴纸条
  4354. INSTALL_SCANNER_ABILITY = 0x80000000 //安装读卡器
  4355. }VCA_ABILITY_TYPE;
  4356. //智能通道类型
  4357. typedef enum _VCA_CHAN_ABILITY_TYPE_
  4358. {
  4359. VCA_BEHAVIOR_BASE = 1, //行为分析基本版
  4360. VCA_BEHAVIOR_ADVANCE = 2, //行为分析高级版
  4361. VCA_BEHAVIOR_FULL = 3, //行为分析完整版
  4362. VCA_PLATE = 4, //车牌能力
  4363. VCA_ATM = 5, //ATM能力
  4364. VCA_PDC = 6, // 人流量统计
  4365. VCA_ITS = 7, // 智能 交通事件
  4366. VCA_BEHAVIOR_PRISON = 8, // 行为分析监狱版
  4367. VCA_FACE_SNAP = 9, //人脸抓拍能力
  4368. VCA_FACE_SNAPRECOG = 10, //人脸抓拍和识别能力
  4369. VCA_FACE_RETRIEVAL = 11 //人脸后检索能力
  4370. }VCA_CHAN_ABILITY_TYPE;
  4371. //智能ATM模式类型(ATM能力特有)
  4372. typedef enum _VCA_CHAN_MODE_TYPE_
  4373. {
  4374. VCA_ATM_PANEL = 0, //ATM面板
  4375. VCA_ATM_SURROUND = 1, //ATM环境
  4376. VCA_ATM_FACE = 2 //ATM人脸
  4377. }VCA_CHAN_MODE_TYPE;
  4378. //通道能力输入参数
  4379. typedef struct tagNET_VCA_CHAN_IN_PARAM
  4380. {
  4381. BYTE byVCAType; //VCA_CHAN_ABILITY_TYPE枚举值
  4382. BYTE byMode; //模式,VCA_CHAN_MODE_TYPE ,atm能力的时候需要配置 当VCA_TYPE 为交通事件 模式参照TRAFFIC_SCENE_MODE
  4383. BYTE byRes[2]; //保留,设置为0
  4384. }NET_VCA_CHAN_IN_PARAM, *LPNET_VCA_CHAN_IN_PARAM;
  4385. //行为能力集结构
  4386. typedef struct tagNET_VCA_BEHAVIOR_ABILITY
  4387. {
  4388. DWORD dwSize; //结构长度
  4389. DWORD dwAbilityType; //支持的能力类型,按位表示,见VCA_ABILITY_TYPE定义
  4390. BYTE byMaxRuleNum; //最大规则数
  4391. BYTE byMaxTargetNum; //最大目标数
  4392. BYTE bySupport; // 支持的功能类型 按位表示
  4393. // bySupport & 0x01 支持标定功能
  4394. BYTE byRes[9]; //保留,设置为0
  4395. }NET_VCA_BEHAVIOR_ABILITY, *LPNET_VCA_BEHAVIOR_ABILITY;
  4396. // 交通能力集结构
  4397. typedef struct tagNET_DVR_ITS_ABILITY
  4398. {
  4399. DWORD dwSize; // 结构体大小
  4400. DWORD dwAbilityType; // 支持的能力列表 参照ITS_ABILITY_TYPE
  4401. BYTE byMaxRuleNum; //最大规则数
  4402. BYTE byMaxTargetNum; //最大目标数
  4403. BYTE byRes[10]; // 保留
  4404. }NET_DVR_ITS_ABILITY, *LPNET_DVR_ITS_ABILITY;
  4405. /***********************************end*******************************************/
  4406. /************************************智能参数结构*********************************/
  4407. //智能共用结构
  4408. //坐标值归一化,浮点数值为当前画面的百分比大小, 精度为小数点后三位
  4409. //点坐标结构
  4410. typedef struct tagNET_VCA_POINT
  4411. {
  4412. float fX; // X轴坐标, 0.001~1
  4413. float fY; //Y轴坐标, 0.001~1
  4414. }NET_VCA_POINT, *LPNET_VCA_POINT;
  4415. //区域框结构
  4416. typedef struct tagNET_VCA_RECT
  4417. {
  4418. float fX; //边界框左上角点的X轴坐标, 0.001~1
  4419. float fY; //边界框左上角点的Y轴坐标, 0.001~1
  4420. float fWidth; //边界框的宽度, 0.001~1
  4421. float fHeight; //边界框的高度, 0.001~1
  4422. }NET_VCA_RECT, *LPNET_VCA_RECT;
  4423. //行为分析事件类型
  4424. typedef enum _VCA_EVENT_TYPE_
  4425. {
  4426. VCA_TRAVERSE_PLANE = 0x1, //穿越警戒面
  4427. VCA_ENTER_AREA = 0x2, //目标进入区域,支持区域规则
  4428. VCA_EXIT_AREA = 0x4, //目标离开区域,支持区域规则
  4429. VCA_INTRUSION = 0x8, //周界入侵,支持区域规则
  4430. VCA_LOITER = 0x10, //徘徊,支持区域规则
  4431. VCA_LEFT_TAKE = 0x20, //物品遗留拿取,支持区域规则
  4432. VCA_PARKING = 0x40, //停车,支持区域规则
  4433. VCA_RUN = 0x80, //快速移动,支持区域规则
  4434. VCA_HIGH_DENSITY = 0x100, //区域内人员聚集,支持区域规则
  4435. VCA_VIOLENT_MOTION = 0x200, // 剧烈运动检测
  4436. VCA_REACH_HIGHT = 0x400, // 攀高检测
  4437. VCA_GET_UP = 0x800, // 起身检测
  4438. VCA_LEFT = 0x1000, // 物品遗留
  4439. VCA_TAKE = 0x2000, // 物品拿取
  4440. VCA_LEAVE_POSITION = 0x4000, //离岗
  4441. VCA_HUMAN_ENTER = 0x10000000, //人靠近ATM 只在ATM_PANEL模式下支持
  4442. VCA_OVER_TIME = 0x20000000, //操作超时 只在ATM_PANEL模式下支持
  4443. VCA_STICK_UP = 0x40000000, //贴纸条,支持区域规则
  4444. VCA_INSTALL_SCANNER = 0x80000000 //安装读卡器,支持区域规则
  4445. }VCA_EVENT_TYPE;
  4446. //警戒面穿越方向类型
  4447. typedef enum _VCA_CROSS_DIRECTION_
  4448. {
  4449. VCA_BOTH_DIRECTION, // 双向
  4450. VCA_LEFT_GO_RIGHT, // 由左至右
  4451. VCA_RIGHT_GO_LEFT // 由右至左
  4452. }VCA_CROSS_DIRECTION;
  4453. //线结构
  4454. typedef struct tagNET_VCA_LINE
  4455. {
  4456. NET_VCA_POINT struStart; //起点
  4457. NET_VCA_POINT struEnd; //终点
  4458. }NET_VCA_LINE, *LPNET_VCA_LINE;
  4459. //多边型结构体
  4460. typedef struct tagNET_VCA_POLYGON
  4461. {
  4462. DWORD dwPointNum; //有效点 大于等于3,若是3点在一条线上认为是无效区域,线交叉认为是无效区域
  4463. NET_VCA_POINT struPos[VCA_MAX_POLYGON_POINT_NUM]; //多边形边界点,最多十个
  4464. }NET_VCA_POLYGON, *LPNET_VCA_POLYGON;
  4465. //警戒面参数
  4466. typedef struct tagNET_VCA_TRAVERSE_PLANE
  4467. {
  4468. NET_VCA_LINE struPlaneBottom; //警戒面底边
  4469. VCA_CROSS_DIRECTION dwCrossDirection; //穿越方向: 0-双向,1-从左到右,2-从右到左
  4470. BYTE byRes1;//保留
  4471. BYTE byPlaneHeight; //警戒面高度
  4472. BYTE byRes2[38]; //保留
  4473. }NET_VCA_TRAVERSE_PLANE, *LPNET_VCA_TRAVERSE_PLANE;
  4474. //进入/离开区域参数
  4475. typedef struct tagNET_VCA_AREA
  4476. {
  4477. NET_VCA_POLYGON struRegion;//区域范围
  4478. BYTE byRes[8];
  4479. }NET_VCA_AREA, *LPNET_VCA_AREA;
  4480. //根据报警延迟时间来标识报警中带图片,报警间隔和IO报警一致,1秒发送一个。
  4481. //入侵参数
  4482. typedef struct tagNET_VCA_INTRUSION
  4483. {
  4484. NET_VCA_POLYGON struRegion;//区域范围
  4485. WORD wDuration; //行为事件触发时间阈值: 1-120秒,建议5秒,判断是有效报警的时间 在ATM系统中触发文件阈值为 1-1000秒
  4486. BYTE byRes[6];
  4487. }NET_VCA_INTRUSION, *LPNET_VCA_INTRUSION;
  4488. //徘徊参数
  4489. typedef struct tagNET_VCA_PARAM_LOITER
  4490. {
  4491. NET_VCA_POLYGON struRegion;//区域范围
  4492. WORD wDuration; //触发时间阈值:1-120秒,建议10秒
  4493. BYTE byRes[6];
  4494. }NET_VCA_LOITER, *LPNET_VCA_LOITER;
  4495. //物品遗留/物品拿取参数
  4496. typedef struct tagNET_VCA_TAKE_LEFT
  4497. {
  4498. NET_VCA_POLYGON struRegion;//区域范围
  4499. WORD wDuration; //触发时间阈值:1-120秒,建议10秒
  4500. BYTE byRes[6];
  4501. }NET_VCA_TAKE_LEFT, *LPNET_VCA_TAKE_LEFT;
  4502. //停车参数
  4503. typedef struct tagNET_VCA_PARKING
  4504. {
  4505. NET_VCA_POLYGON struRegion; //区域范围
  4506. WORD wDuration; //触发时间阈值:1-100秒,建议10秒
  4507. BYTE byRes[6];
  4508. }NET_VCA_PARKING, *LPNET_VCA_PARKING;
  4509. //快速移动参数
  4510. typedef struct tagNET_VCA_RUN
  4511. {
  4512. NET_VCA_POLYGON struRegion; //区域范围
  4513. float fRunDistance; //人快速移动最大距离, 范围: [0.1, 1.00] 像素模式 实际模式(1,20)m/s
  4514. BYTE byRes1; // 保留字节
  4515. BYTE byMode; // 0 像素模式 1 实际模式
  4516. BYTE byRes[2];
  4517. }NET_VCA_RUN, *LPNET_VCA_RUN;
  4518. //人员聚集参数
  4519. typedef struct tagNET_VCA_HIGH_DENSITY
  4520. {
  4521. NET_VCA_POLYGON struRegion;//区域范围
  4522. float fDensity; //聚集比率, 范围: [0.1, 1.0]
  4523. BYTE byRes; // 保留字节
  4524. WORD wDuration; // 触发人员聚集参数报警阈值 20-360s
  4525. }NET_VCA_HIGH_DENSITY, *LPNET_VCA_HIGH_DENSITY;
  4526. //剧烈运动参数
  4527. typedef struct tagNET_VCA_VIOLENT_MOTION
  4528. {
  4529. NET_VCA_POLYGON struRegion;//区域范围
  4530. WORD wDuration; //触发剧烈运动报警阈值:1-120秒
  4531. BYTE bySensitivity; //灵敏度参数,范围[1,5]
  4532. BYTE byRes[5];
  4533. }NET_VCA_VIOLENT_MOTION, *LPNET_VCA_VIOLENT_MOTION;
  4534. // 攀高参数
  4535. typedef struct tagNET_VCA_REACH_HIGHT
  4536. {
  4537. NET_VCA_LINE struVcaLine; //攀高警戒面
  4538. WORD wDuration; //触发攀高报警阈值:1-120秒
  4539. BYTE byRes[6]; // 保留字节
  4540. }NET_VCA_REACH_HIGHT, *LPNET_VCA_REACH_HIGHT;
  4541. // 起床参数
  4542. typedef struct tagNET_VCA_GET_UP
  4543. {
  4544. NET_VCA_POLYGON struRegion; // 区域范围
  4545. WORD wDuration; // 触发起床报警阈值1-120 秒
  4546. BYTE byRes[6]; // 保留字节
  4547. }NET_VCA_GET_UP, * LPNET_VCA_GET_UP;
  4548. // 物品遗留
  4549. typedef struct tagNET_VCA_LEFT
  4550. {
  4551. NET_VCA_POLYGON struRegion; // 区域范围
  4552. WORD wDuration; // 触发物品遗留报警阈值 4-60秒
  4553. BYTE byRes[6]; // 保留字节
  4554. }NET_VCA_LEFT, *LPNET_VCA_LEFT;
  4555. // 物品拿取
  4556. typedef struct tagNET_VCA_TAKE
  4557. {
  4558. NET_VCA_POLYGON struRegion; // 区域范围
  4559. WORD wDuration; // 触发物品拿取报警阈值4-60秒
  4560. BYTE byRes[6]; // 保留字节
  4561. }NET_VCA_TAKE, *LPNET_VCA_TAKE;
  4562. typedef struct tagNET_VCA_OVER_TIME
  4563. {
  4564. NET_VCA_POLYGON struRegion; // 区域范围
  4565. WORD wDuration; // 操作报警时间阈值 4s-60000s
  4566. BYTE byRes[6]; // 保留字节
  4567. }NET_VCA_OVER_TIME, *LPNET_VCA_OVER_TIME;
  4568. typedef struct tagNET_VCA_HUMAN_ENTER
  4569. {
  4570. DWORD dwRes[23]; //保留字节
  4571. }NET_VCA_HUMAN_ENTER, *LPNET_VCA_HUMAN_ENTER;
  4572. //贴纸条参数
  4573. typedef struct tagNET_VCA_STICK_UP
  4574. {
  4575. NET_VCA_POLYGON struRegion;//区域范围
  4576. WORD wDuration; //触发时间阈值:4-60秒,建议10秒
  4577. BYTE bySensitivity; //灵敏度参数,范围[1,5]
  4578. BYTE byRes[5];
  4579. }NET_VCA_STICK_UP, *LPNET_VCA_STICK_UP;
  4580. //读卡器参数
  4581. typedef struct tagNET_VCA_SCANNER
  4582. {
  4583. NET_VCA_POLYGON struRegion;//区域范围
  4584. WORD wDuration; //读卡持续时间:4-60秒
  4585. BYTE bySensitivity; //灵敏度参数,范围[1,5]
  4586. BYTE byRes[5];
  4587. }NET_VCA_SCANNER, *LPNET_VCA_SCANNER;
  4588. //离岗事件
  4589. typedef struct tagNET_VCA_LEAVE_POSITION
  4590. {
  4591. NET_VCA_POLYGON struRegion; //区域范围
  4592. WORD wLeaveDelay; //无人报警时间,单位:s,取值1-1800
  4593. WORD wStaticDelay; //睡觉报警时间,单位:s,取值1-1800
  4594. BYTE byRes[4]; //保留
  4595. }NET_VCA_LEAVE_POSITION, *LPNET_VCA_LEAVE_POSITION;
  4596. //警戒事件参数
  4597. typedef union tagNET_VCA_EVENT_UNION
  4598. {
  4599. DWORD uLen[23]; //参数
  4600. NET_VCA_TRAVERSE_PLANE struTraversePlane; //穿越警戒面参数
  4601. NET_VCA_AREA struArea; //进入/离开区域参数
  4602. NET_VCA_INTRUSION struIntrusion; //入侵参数
  4603. NET_VCA_LOITER struLoiter; //徘徊参数
  4604. NET_VCA_TAKE_LEFT struTakeTeft; //物品遗留/物品拿取参数
  4605. NET_VCA_PARKING struParking; //停车参数
  4606. NET_VCA_RUN struRun; //快速移动参数
  4607. NET_VCA_HIGH_DENSITY struHighDensity; //人员聚集参数
  4608. NET_VCA_VIOLENT_MOTION struViolentMotion; // 剧烈运动
  4609. NET_VCA_REACH_HIGHT struReachHight; // 攀高
  4610. NET_VCA_GET_UP struGetUp; //起床
  4611. NET_VCA_LEFT struLeft; // 物品遗留
  4612. NET_VCA_TAKE struTake; // 物品拿取
  4613. NET_VCA_HUMAN_ENTER struHumanEnter; // 人员进入
  4614. NET_VCA_OVER_TIME struOvertime; // 操作超时
  4615. NET_VCA_STICK_UP struStickUp; //贴纸条
  4616. NET_VCA_SCANNER struScanner; //读卡器参数
  4617. NET_VCA_LEAVE_POSITION struLeavePos; //离岗参数
  4618. }NET_VCA_EVENT_UNION, *LPNET_VCA_EVENT_UNION;
  4619. // 尺寸过滤器类型
  4620. typedef enum _VCA_SIZE_FILTER_MODE_
  4621. {
  4622. IMAGE_PIX_MODE, //根据像素大小设置
  4623. REAL_WORLD_MODE, //根据实际大小设置
  4624. DEFAULT_MODE // 默认模式
  4625. }SIZE_FILTER_MODE;
  4626. //尺寸过滤器
  4627. typedef struct tagNET_VCA_SIZE_FILTER
  4628. {
  4629. BYTE byActive; //是否激活尺寸过滤器 0-否 非0-是
  4630. BYTE byMode; //过滤器模式SIZE_FILTER_MODE
  4631. BYTE byRes[2]; //保留,置0
  4632. NET_VCA_RECT struMiniRect; //最小目标框,全0表示不设置
  4633. NET_VCA_RECT struMaxRect; //最大目标框,全0表示不设置
  4634. }NET_VCA_SIZE_FILTER, *LPNET_VCA_SIZE_FILTER;
  4635. //警戒规则结构
  4636. typedef struct tagNET_VCA_ONE_RULE
  4637. {
  4638. BYTE byActive; //是否激活规则,0-否,非0-是
  4639. BYTE byRes[7]; //保留,设置为0字段
  4640. BYTE byRuleName[NAME_LEN]; //规则名称
  4641. VCA_EVENT_TYPE dwEventType; //行为分析事件类型
  4642. NET_VCA_EVENT_UNION uEventParam; //行为分析事件参数
  4643. NET_VCA_SIZE_FILTER struSizeFilter; //尺寸过滤器
  4644. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_2];//布防时间
  4645. NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //处理方式
  4646. BYTE byRelRecordChan[MAX_CHANNUM_V30]; //报警触发的录象通道,为1表示触发该通道
  4647. }NET_VCA_ONE_RULE, *LPNET_VCA_ONE_RULE;
  4648. //行为分析配置结构体
  4649. typedef struct tagNET_VCA_RULECFG
  4650. {
  4651. DWORD dwSize; //结构长度
  4652. BYTE byPicProType; //报警时图片处理方式 0-不处理 非0-上传
  4653. BYTE byUpLastAlarm; //2011-04-06 是否先上传最近一次的报警
  4654. BYTE byRes[2];
  4655. NET_DVR_JPEGPARA struPictureParam; //图片规格结构
  4656. NET_VCA_ONE_RULE struRule[MAX_RULE_NUM]; //规则数组
  4657. }NET_VCA_RULECFG, *LPNET_VCA_RULECFG;
  4658. //简化目标结构体
  4659. typedef struct tagNET_VCA_TARGET_INFO
  4660. {
  4661. DWORD dwID; //目标ID ,人员聚集过高报警时为0
  4662. NET_VCA_RECT struRect; //目标边界框
  4663. BYTE byRes[4]; //保留
  4664. }NET_VCA_TARGET_INFO, *LPNET_VCA_TARGET_INFO;
  4665. //简化的规则信息, 包含规则的基本信息
  4666. typedef struct tagNET_VCA_RULE_INFO
  4667. {
  4668. BYTE byRuleID; //规则ID,0-7
  4669. BYTE byRes[3]; //保留
  4670. BYTE byRuleName[NAME_LEN]; //规则名称
  4671. VCA_EVENT_TYPE dwEventType; //警戒事件类型
  4672. NET_VCA_EVENT_UNION uEventParam;//事件参数
  4673. }NET_VCA_RULE_INFO, *LPNET_VCA_RULE_INFO;
  4674. //前端设备地址信息,智能分析仪表示的是前端设备的地址信息,其他设备表示本机的地址
  4675. typedef struct tagNET_VCA_DEV_INFO
  4676. {
  4677. NET_DVR_IPADDR struDevIP; //前端设备地址,
  4678. WORD wPort; //前端设备端口号,
  4679. BYTE byChannel; //前端设备通道,
  4680. BYTE byIvmsChannel; // Ivms 通道
  4681. } NET_VCA_DEV_INFO, *LPNET_VCA_DEV_INFO;
  4682. //行为分析结果上报结构
  4683. typedef struct tagNET_VCA_RULE_ALARM
  4684. {
  4685. DWORD dwSize; //结构长度
  4686. DWORD dwRelativeTime; //相对时标
  4687. DWORD dwAbsTime; //绝对时标
  4688. NET_VCA_RULE_INFO struRuleInfo; //事件规则信息
  4689. NET_VCA_TARGET_INFO struTargetInfo; //报警目标信息
  4690. NET_VCA_DEV_INFO struDevInfo; //前端设备信息
  4691. DWORD dwPicDataLen; //返回图片的长度 为0表示没有图片,大于0表示该结构后面紧跟图片数据*/
  4692. BYTE byPicType; // 0-普通图片 1-对比图片
  4693. BYTE byRes[3]; // 保留字节
  4694. DWORD dwRes[3]; /* 保留,设置为0*/
  4695. BYTE *pImage; //指向图片的指针
  4696. }NET_VCA_RULE_ALARM, *LPNET_VCA_RULE_ALARM;
  4697. //行为分析规则DSP信息叠加结构
  4698. typedef struct tagNET_VCA_DRAW_MODE
  4699. {
  4700. DWORD dwSize;
  4701. BYTE byDspAddTarget; //编码是否叠加目标
  4702. BYTE byDspAddRule; //编码是否叠加规则
  4703. BYTE byDspPicAddTarget; //抓图是否叠加目标
  4704. BYTE byDspPicAddRule; //抓图是否叠加规则
  4705. BYTE byRes[4];
  4706. }NET_VCA_DRAW_MODE, *LPNET_VCA_DRAW_MODE;
  4707. //标定点子结构
  4708. typedef struct tagNET_DVR_CB_POINT
  4709. {
  4710. NET_VCA_POINT struPoint; //标定点,主摄像机(枪机)
  4711. NET_DVR_PTZPOS struPtzPos; //球机输入的PTZ坐标
  4712. BYTE byRes[8];
  4713. }NET_DVR_CB_POINT, LPNET_DVR_CB_POINT;
  4714. //标定参数配置结构
  4715. typedef struct tagNET_DVR_TRACK_CALIBRATION_PARAM
  4716. {
  4717. BYTE byPointNum; //有效标定点个数
  4718. BYTE byRes[3];
  4719. NET_DVR_CB_POINT struCBPoint[MAX_CALIB_PT]; //标定点组
  4720. }NET_DVR_TRACK_CALIBRATION_PARAM, *LPNET_DVR_TRACK_CALIBRATION_PARAM;
  4721. //球机配置结构
  4722. typedef struct tagNET_DVR_TRACK_CFG
  4723. {
  4724. DWORD dwSize; //结构长度
  4725. BYTE byEnable; //标定使能
  4726. BYTE byFollowChan; // 被控制的从通道
  4727. BYTE byDomeCalibrate; //设置智能跟踪球机标定,1设置 0不设置
  4728. BYTE byRes; // 保留字节
  4729. NET_DVR_TRACK_CALIBRATION_PARAM struCalParam; //标定点组
  4730. }NET_DVR_TRACK_CFG, *LPNET_DVR_TRACK_CFG ;
  4731. //跟踪模式
  4732. typedef enum _TRACK_MODE_
  4733. {
  4734. MANUAL_CTRL = 0, //手动跟踪
  4735. ALARM_TRACK //报警触发跟踪
  4736. }TRACK_MODE;
  4737. //手动控制结构
  4738. typedef struct tagNET_DVR_MANUAL_CTRL_INFO
  4739. {
  4740. NET_VCA_POINT struCtrlPoint;
  4741. BYTE byRes[8];
  4742. }NET_DVR_MANUAL_CTRL_INFO, *LPNET_DVR_MANUAL_CTRL_INFO ;
  4743. //跟踪模式结构
  4744. typedef struct tagNET_DVR_TRACK_MODE
  4745. {
  4746. DWORD dwSize; //结构长度
  4747. BYTE byTrackMode; //跟踪模式
  4748. BYTE byRuleConfMode; //规则配置跟踪模式0-本地配置跟踪,1-远程配置跟踪
  4749. BYTE byRes[2]; //保留,置0
  4750. union
  4751. {
  4752. DWORD dwULen[4];
  4753. NET_DVR_MANUAL_CTRL_INFO struManualCtrl;//手动跟踪结构
  4754. }uModeParam;
  4755. }NET_DVR_TRACK_MODE,*LPNET_DVR_TRACK_MODE;
  4756. typedef struct tagNET_DVR_ALARM_JPEG
  4757. {
  4758. BYTE byPicProType; /*报警时图片处理方式 0-不处理 1-上传*/
  4759. BYTE byRes[3]; //保留字节
  4760. NET_DVR_JPEGPARA struPicParam; /*图片规格结构*/
  4761. }NET_DVR_ALARM_JPEG, *LPNET_DVR_ALARM_JPEG;
  4762. //分析仪行为分析规则结构
  4763. //警戒规则结构
  4764. typedef struct tagNET_IVMS_ONE_RULE_
  4765. {
  4766. BYTE byActive; /* 是否激活规则,0-否, 非0-是 */
  4767. BYTE byRes1[7]; //保留,设置为0字段
  4768. BYTE byRuleName[NAME_LEN]; //规则名称
  4769. VCA_EVENT_TYPE dwEventType; //行为分析事件类型
  4770. NET_VCA_EVENT_UNION uEventParam;//行为分析事件参数
  4771. NET_VCA_SIZE_FILTER struSizeFilter; //尺寸过滤器
  4772. BYTE byRes2[68]; /*保留,设置为0*/
  4773. }NET_IVMS_ONE_RULE, *LPNET_IVMS_ONE_RULE;
  4774. // 分析仪规则结构
  4775. typedef struct tagNET_IVMS_RULECFG
  4776. {
  4777. NET_IVMS_ONE_RULE struRule[MAX_RULE_NUM]; //规则数组
  4778. }NET_IVMS_RULECFG, *LPNET_IVMS_RULECFG;
  4779. // IVMS行为分析配置结构
  4780. typedef struct tagNET_IVMS_BEHAVIORCFG
  4781. {
  4782. DWORD dwSize;
  4783. BYTE byPicProType; //报警时图片处理方式 0-不处理 非0-上传
  4784. BYTE byRes[3];
  4785. NET_DVR_JPEGPARA struPicParam; //图片规格结构
  4786. NET_IVMS_RULECFG struRuleCfg[MAX_DAYS][MAX_TIMESEGMENT];//每个时间段对应规则
  4787. } NET_IVMS_BEHAVIORCFG, *LPNET_IVMS_BEHAVIORCFG;
  4788. //智能分析仪取流计划子结构
  4789. typedef struct tagNET_IVMS_DEVSCHED
  4790. {
  4791. NET_DVR_SCHEDTIME struTime; //时间参数
  4792. NET_DVR_PU_STREAM_CFG struPUStream; //前端取流参数
  4793. }NET_IVMS_DEVSCHED, *LPNET_IVMS_DEVSCHED;
  4794. //智能分析仪参数配置结构
  4795. typedef struct tagNET_IVMS_STREAMCFG
  4796. {
  4797. DWORD dwSize;
  4798. NET_IVMS_DEVSCHED struDevSched[MAX_DAYS][MAX_TIMESEGMENT];//按时间段配置前端取流以及规则信息
  4799. } NET_IVMS_STREAMCFG, *LPNET_IVMS_STREAMCFG;
  4800. //屏蔽区域
  4801. typedef struct tagNET_VCA_MASK_REGION
  4802. {
  4803. BYTE byEnable; //是否激活, 0-否,非0-是
  4804. BYTE byRes[3]; //保留,置0
  4805. NET_VCA_POLYGON struPolygon; //屏蔽多边形
  4806. }NET_VCA_MASK_REGION, * LPNET_VCA_MASK_REGION;
  4807. //屏蔽区域链表结构
  4808. typedef struct tagNET_VCA_MASK_REGION_LIST
  4809. {
  4810. DWORD dwSize; //结构长度
  4811. BYTE byRes[4]; //保留,置0
  4812. NET_VCA_MASK_REGION struMask[MAX_MASK_REGION_NUM]; //屏蔽区域数组
  4813. }NET_VCA_MASK_REGION_LIST, *LPNET_VCA_MASK_REGION_LIST;
  4814. //ATM进入区域参数
  4815. typedef struct tagNET_VCA_ENTER_REGION//防止干扰ATM检测
  4816. {
  4817. DWORD dwSize;
  4818. BYTE byEnable; //是否激活,0-否,非0-是
  4819. BYTE byRes1[3];
  4820. NET_VCA_POLYGON struPolygon; //进入区域
  4821. BYTE byRes2[16];
  4822. }NET_VCA_ENTER_REGION, * LPNET_VCA_ENTER_REGION;
  4823. //IVMS屏蔽区域链表
  4824. typedef struct tagNET_IVMS_MASK_REGION_LIST
  4825. {
  4826. DWORD dwSize; //结构长度
  4827. NET_VCA_MASK_REGION_LIST struList[MAX_DAYS][ MAX_TIMESEGMENT];
  4828. }NET_IVMS_MASK_REGION_LIST, *LPNET_IVMS_MASK_REGION_LIST;
  4829. //IVMS的ATM进入区域参数
  4830. typedef struct tagNET_IVMS_ENTER_REGION
  4831. {
  4832. DWORD dwSize;
  4833. NET_VCA_ENTER_REGION struEnter[MAX_DAYS][ MAX_TIMESEGMENT]; //进入区域
  4834. }NET_IVMS_ENTER_REGION, *LPNET_IVMS_ENTER_REGION;
  4835. // ivms 报警图片上传结构
  4836. typedef struct tagNET_IVMS_ALARM_JPEG
  4837. {
  4838. BYTE byPicProType;
  4839. BYTE byRes[3];
  4840. NET_DVR_JPEGPARA struPicParam;
  4841. }NET_IVMS_ALARM_JPEG, *LPNET_IVMS_ALARM_JPEG;
  4842. // IVMS 后检索配置
  4843. typedef struct tagNET_IVMS_SEARCHCFG
  4844. {
  4845. DWORD dwSize;
  4846. NET_DVR_MATRIX_DEC_REMOTE_PLAY struRemotePlay;// 远程回放
  4847. NET_IVMS_ALARM_JPEG struAlarmJpeg; // 报警上传图片配置
  4848. NET_IVMS_RULECFG struRuleCfg; //IVMS 行为规则配置
  4849. }NET_IVMS_SEARCHCFG, *LPNET_IVMS_SEARCHCFG;
  4850. /************************************end******************************************/
  4851. //网络硬盘结构配置
  4852. typedef struct tagNET_DVR_SINGLE_NET_DISK_INFO
  4853. {
  4854. BYTE byNetDiskType; //网络硬盘类型, 0-NFS,1-iSCSI
  4855. BYTE byRes1[3]; //保留
  4856. NET_DVR_IPADDR struNetDiskAddr; //网络硬盘地址
  4857. BYTE sDirectory[PATHNAME_LEN]; // PATHNAME_LEN = 128
  4858. WORD wPort; //iscsi有端口,现在为默认
  4859. BYTE byRes2[66]; //保留
  4860. }NET_DVR_SINGLE_NET_DISK_INFO, *LPNET_DVR_SINGLE_NET_DISK_INFO;
  4861. #define MAX_NET_DISK 16//最大网络硬盘个数
  4862. typedef struct tagNET_DVR_NET_DISKCFG
  4863. {
  4864. DWORD dwSize;
  4865. NET_DVR_SINGLE_NET_DISK_INFO struNetDiskParam[MAX_NET_DISK];
  4866. }NET_DVR_NET_DISKCFG, *LPNET_DVR_NET_DISKCFG;
  4867. //事件类型
  4868. //主类型
  4869. typedef enum _MAIN_EVENT_TYPE_
  4870. {
  4871. EVENT_MOT_DET = 0, //移动侦测
  4872. EVENT_ALARM_IN = 1, //报警输入
  4873. EVENT_VCA_BEHAVIOR = 2, // 行为分析
  4874. EVENT_INQUEST = 3 //审讯事件
  4875. }MAIN_EVENT_TYPE;
  4876. #define INQUEST_START_INFO 0x1001 /*讯问开始信息*/
  4877. #define INQUEST_STOP_INFO 0x1002 /*讯问停止信息*/
  4878. #define INQUEST_TAG_INFO 0x1003 /*重点标记信息*/
  4879. #define INQUEST_SEGMENT_INFO 0x1004 /*审讯片断状态信息*/
  4880. //行为分析主类型对应的次类型, 0xffff表示全部
  4881. typedef enum _BEHAVIOR_MINOR_TYPE_
  4882. {
  4883. EVENT_TRAVERSE_PLANE = 0, // 穿越警戒面
  4884. EVENT_ENTER_AREA, //目标进入区域,支持区域规则
  4885. EVENT_EXIT_AREA, //目标离开区域,支持区域规则
  4886. EVENT_INTRUSION, // 周界入侵,支持区域规则
  4887. EVENT_LOITER, //徘徊,支持区域规则
  4888. EVENT_LEFT_TAKE, //物品遗留拿取,支持区域规则
  4889. EVENT_PARKING, //停车,支持区域规则
  4890. EVENT_RUN, //快速移动,支持区域规则
  4891. EVENT_HIGH_DENSITY, //区域内人员聚集,支持区域规则
  4892. EVENT_STICK_UP, //贴纸条,支持区域规则
  4893. EVENT_INSTALL_SCANNER, //安装读卡器,支持区域规则
  4894. EVENT_OPERATE_OVER_TIME, // 操作超时
  4895. EVENT_FACE_DETECT, // 异常人脸
  4896. EVENT_LEFT, // 物品遗留
  4897. EVENT_TAKE // 物品拿取
  4898. }BEHAVIOR_MINOR_TYPE;
  4899. // typedef enum tagITS_MINOR_TYPE
  4900. // {
  4901. // ITS_EVENT_CONGESTION = 0, // 拥堵
  4902. // ITS_EVENT_PARKING, // 停车
  4903. // ITS_EVENT_INVERSE, // 逆行
  4904. // ITS_EVENT_PEDESTRIAN, // 行人
  4905. // ITS_EVENT_DEBRIS // 遗留物,抛洒物碎片
  4906. // }ITS_MINOR_TYPE;
  4907. #define SEARCH_EVENT_INFO_LEN 300 //事件信息长度
  4908. //事件搜索条件
  4909. typedef struct tagNET_DVR_SEARCH_EVENT_PARAM
  4910. {
  4911. WORD wMajorType; //0-移动侦测,1-报警输入, 2-智能事件
  4912. WORD wMinorType; //搜索次类型- 根据主类型变化,0xffff表示全部
  4913. NET_DVR_TIME struStartTime; //搜索的开始时间,停止时间: 同时为(0, 0) 表示从最早的时间开始,到最后,最前面的4000个事件
  4914. NET_DVR_TIME struEndTime; //
  4915. BYTE byRes[132]; //保留
  4916. union
  4917. {
  4918. BYTE byLen[SEARCH_EVENT_INFO_LEN];
  4919. struct//报警输入
  4920. {
  4921. BYTE byAlarmInNo[MAX_ALARMIN_V30]; //报警输入号,byAlarmInNo[0]若置1则表示查找由报警输入1触发的事件
  4922. BYTE byRes[SEARCH_EVENT_INFO_LEN - MAX_ALARMIN_V30];
  4923. }struAlarmParam;
  4924. struct//移动侦测
  4925. {
  4926. BYTE byMotDetChanNo[MAX_CHANNUM_V30];//移动侦测通道,byMotDetChanNo[0]若置1则表示查找由通道1发生移动侦测触发的事件
  4927. BYTE byRes[SEARCH_EVENT_INFO_LEN - MAX_CHANNUM_V30];
  4928. }struMotionParam;
  4929. struct//行为分析
  4930. {
  4931. BYTE byChanNo[MAX_CHANNUM_V30]; //触发事件的通道
  4932. BYTE byRuleID; //规则ID,0xff表示全部
  4933. BYTE byRes1[43]; //保留
  4934. }struVcaParam;
  4935. struct//审讯事件搜索条件
  4936. {
  4937. BYTE byRoomIndex; //审讯室编号,从1开始
  4938. BYTE byRes[299]; //保留
  4939. } struInquestParam;
  4940. }uSeniorParam;
  4941. }NET_DVR_SEARCH_EVENT_PARAM, *LPNET_DVR_SEARCH_EVENT_PARAM;
  4942. //查找返回结果
  4943. typedef struct tagNET_DVR_SEARCH_EVENT_RET
  4944. {
  4945. WORD wMajorType; //主类型
  4946. WORD wMinorType; //次类型
  4947. NET_DVR_TIME struStartTime; //事件开始的时间
  4948. NET_DVR_TIME struEndTime; //事件停止的时间,脉冲事件时和开始时间一样
  4949. BYTE byChan[MAX_CHANNUM_V30];
  4950. BYTE byRes[36];
  4951. union
  4952. {
  4953. struct//报警输入结果
  4954. {
  4955. DWORD dwAlarmInNo; //报警输入号
  4956. BYTE byRes[SEARCH_EVENT_INFO_LEN];
  4957. }struAlarmRet;
  4958. struct//移动侦测结果
  4959. {
  4960. DWORD dwMotDetNo; //移动侦测通道
  4961. BYTE byRes[SEARCH_EVENT_INFO_LEN];
  4962. }struMotionRet;
  4963. struct//行为分析结果
  4964. {
  4965. DWORD dwChanNo; //触发事件的通道号
  4966. BYTE byRuleID; //规则ID
  4967. BYTE byRes1[3]; //保留
  4968. BYTE byRuleName[NAME_LEN]; //规则名称
  4969. NET_VCA_EVENT_UNION uEvent; //行为事件参数
  4970. }struVcaRet;
  4971. struct//审讯事件
  4972. {
  4973. BYTE byRoomIndex; //审讯室编号,从1开始
  4974. BYTE byDriveIndex; //刻录机编号,从1开始
  4975. BYTE byRes1[6]; //保留
  4976. DWORD dwSegmentNo; //本片断在本次审讯中的序号,从1开始
  4977. WORD wSegmetSize; //本片断的大小, 单位M
  4978. WORD wSegmentState; //本片断状态 0 刻录正常,1 刻录异常,2 不刻录审讯
  4979. BYTE byRes2[288]; //保留
  4980. }struInquestRet;
  4981. }uSeniorRet;
  4982. }NET_DVR_SEARCH_EVENT_RET, *LPNET_DVR_SEARCH_EVENT_RET;
  4983. //SDK_V35 2009-10-26
  4984. // 标定配置类型
  4985. typedef enum tagCALIBRATE_TYPE
  4986. {
  4987. PDC_CALIBRATE = 0x01, // PDC 标定
  4988. BEHAVIOR_OUT_CALIBRATE = 0x02, //行为室外场景标定
  4989. BEHAVIOR_IN_CALIBRATE = 0x03, // 行为室内场景标定
  4990. ITS_CALBIRETE = 0x04 // 交通事件标定
  4991. }CALIBRATE_TYPE;
  4992. #define MAX_RECT_NUM 6
  4993. typedef struct tagNET_DVR_RECT_LIST
  4994. {
  4995. BYTE byRectNum; // 矩形框的个数
  4996. BYTE byRes1[11]; //保留字节
  4997. NET_VCA_RECT struVcaRect[MAX_RECT_NUM]; // 最大为6个Rect
  4998. }NET_DVR_RECT_LIST, *LPNET_DVR_RECT_LIST;
  4999. // PDC 标定参数
  5000. typedef struct tagNET_DVR_PDC_CALIBRATION
  5001. {
  5002. NET_DVR_RECT_LIST struRectList; // 标定矩形框列表
  5003. BYTE byRes[120]; // 保留字节
  5004. }NET_DVR_PDC_CALIBRATION, *LPNET_DVR_PDC_CALIBRATION;
  5005. // 标定线的属性类别,用来表示当前标定线在实际表示的是高度线还是长度线。
  5006. typedef enum tagLINE_MODE
  5007. {
  5008. HEIGHT_LINE, //高度样本线
  5009. LENGTH_LINE //长度样本线
  5010. }LINE_MODE;
  5011. /*
  5012. 在设置标定信息的时候,如果相应位设置了使能,并设置相关参数,
  5013. 若没有设置使能,则标定后可以获取相关的摄像机参数
  5014. */
  5015. typedef struct tagNET_DVR_CAMERA_PARAM
  5016. {
  5017. BYTE byEnableHeight; // 是否使能设置摄像机高度线
  5018. BYTE byEnableAngle; // 是否使能设置摄像机俯仰角度
  5019. BYTE byEnableHorizon; // 是否使能设置摄像机地平线
  5020. BYTE byRes[5]; // 保留字节
  5021. float fCameraHeight; // 摄像机高度
  5022. float fCameraAngle; // 摄像机俯仰角度
  5023. float fHorizon; // 场景中的地平线
  5024. }NET_DVR_CAMERA_PARAM, *LPNET_DVR_CAMERA_PARAM;
  5025. /*
  5026. 当fValue表示目标高度的时候,struStartPoint和struEndPoint分别表示目标头部点和脚部点。
  5027. 当fValue表示线段长度的时候,struStartPoint和struEndPoint分别表示线段起始点和终点,
  5028. mode表示当前样本线表示高度线还是长度线。
  5029. */
  5030. typedef struct tagNET_DVR_LINE_SEGMENT
  5031. {
  5032. BYTE byLineMode; // 参照 LINE_MODE
  5033. BYTE byRes[3]; // 保留字节
  5034. NET_VCA_POINT struStartPoint;
  5035. NET_VCA_POINT struEndPoint;
  5036. float fValue;
  5037. }NET_DVR_LINE_SEGMENT, *LPNET_DVR_LINE_SEGMENT;
  5038. #define MAX_LINE_SEG_NUM 8
  5039. /*
  5040. 标定样本线目前需要4-8调样本线,以获取摄像机相关参数
  5041. */
  5042. typedef struct tagNET_DVR_BEHAVIOR_OUT_CALIBRATION
  5043. {
  5044. DWORD dwLineSegNum; // 样本线个数
  5045. NET_DVR_LINE_SEGMENT struLineSegment[MAX_LINE_SEG_NUM]; // 样本线最大个数
  5046. NET_DVR_CAMERA_PARAM struCameraParam; // 摄像机参数
  5047. BYTE byRes[20];
  5048. }NET_DVR_BEHAVIOR_OUT_CALIBRATION, *LPNET_DVR_BEHAVIOR_OUT_CALIBRATION;
  5049. /*
  5050. 该结构体表示IAS智能库标定样本,
  5051. 其中包括一个目标框和一条对应的高度标定线;
  5052. 目标框为站立的人体外接矩形框;高度线样本标识从人头顶点到脚点的标定线;
  5053. 用归一化坐标表示;
  5054. */
  5055. typedef struct tagNET_DVR_IN_CAL_SAMPLE
  5056. {
  5057. NET_VCA_RECT struVcaRect; // 目标框
  5058. NET_DVR_LINE_SEGMENT struLineSegment; // 高度标定线
  5059. }NET_DVR_IN_CAL_SAMPLE, *LPNET_DVR_IN_CAL_SAMPLE;
  5060. #define MAX_SAMPLE_NUM 5
  5061. typedef struct tagNET_DVR_BEHAVIOR_IN_CALIBRATION
  5062. {
  5063. DWORD dwCalSampleNum; // 标定样本个数
  5064. NET_DVR_IN_CAL_SAMPLE struCalSample[MAX_SAMPLE_NUM]; // 标定样本最大个数
  5065. NET_DVR_CAMERA_PARAM struCameraParam; // 摄像机参数
  5066. BYTE byRes[16];
  5067. }NET_DVR_BEHAVIOR_IN_CALIBRATION, *LPNET_DVR_BEHAVIOR_IN_CALIBRATION;
  5068. #define CALIB_PT_NUM 4
  5069. typedef struct tagNET_DVR_ITS_CALIBRATION
  5070. {
  5071. unsigned int dwPointNum; //标定点数
  5072. NET_VCA_POINT struPoint[CALIB_PT_NUM]; //图像坐标
  5073. float fWidth;
  5074. float fHeight;
  5075. BYTE byRes1[100]; // 保留字节
  5076. }NET_DVR_ITS_CALIBRATION, *LPNET_DVR_ITS_CALIBRATION;
  5077. // 标定参数联合体
  5078. // 后续的相关标定参数可以放在该结构里面
  5079. typedef union tagNET_DVR_CALIBRATION_PRARM_UNION
  5080. {
  5081. BYTE byRes[240]; //联合体结构大小
  5082. NET_DVR_PDC_CALIBRATION struPDCCalibration; //PDC 标定参数
  5083. NET_DVR_BEHAVIOR_OUT_CALIBRATION struBehaviorOutCalibration; // 行为室外场景标定 主要应用于IVS等
  5084. NET_DVR_BEHAVIOR_IN_CALIBRATION struBehaviorInCalibration; // 行为室内场景标定,主要应用IAS等
  5085. NET_DVR_ITS_CALIBRATION struITSCalibration;
  5086. }NET_DVR_CALIBRATION_PRARM_UNION, *LPNET_DVR_CALIBRATION_PRARM_UNION;
  5087. // 标定配置结构
  5088. typedef struct tagNET_DVR_CALIBRATION_CFG
  5089. {
  5090. DWORD dwSize; //标定结构大小
  5091. BYTE byEnable; // 是否启用标定
  5092. BYTE byCalibrationType; // 标定类型 根据不同类型在联合体类选择不同的标定 参考CALIBRATE_TYPE
  5093. BYTE byRes1[2];
  5094. NET_DVR_CALIBRATION_PRARM_UNION uCalibrateParam; // 标定参数联合体
  5095. BYTE byRes2[12];
  5096. }NET_DVR_CALIBRATION_CFG, *LPNET_DVR_CALIBRATION_CFG;
  5097. //流量统计方向结构体
  5098. typedef struct tagNET_DVR_PDC_ENTER_DIRECTION
  5099. {
  5100. NET_VCA_POINT struStartPoint; //流量统计方向起始点
  5101. NET_VCA_POINT struEndPoint; // 流量统计方向结束点
  5102. }NET_DVR_PDC_ENTER_DIRECTION, *LPNET_DVR_PDC_ENTER_DIRECTION;
  5103. typedef struct tagNET_DVR_PDC_RULE_CFG
  5104. {
  5105. DWORD dwSize; //结构大小
  5106. BYTE byEnable; // 是否激活规则;
  5107. BYTE byRes1[23]; // 保留字节
  5108. NET_VCA_POLYGON struPolygon; // 多边形
  5109. NET_DVR_PDC_ENTER_DIRECTION struEnterDirection; // 流量进入方向
  5110. } NET_DVR_PDC_RULE_CFG, *LPNET_DVR_PDC_RULE_CFG;
  5111. //设置人流量统计参数 复用行为内部关键字参数
  5112. // HUMAN_GENERATE_RATE
  5113. // 目标生成速度参数,控制PDC库生成目标的速度。速度越快,目标越容易生成。当输入视频光照条件较差,对比度较低时,或者设置的规则区域较小时,应加快目标生成速度, 避免目标的漏检;当输入视频中对比度较高时,或者规则区域较大时,应该降低目标生成速度,以减少误检。目标生成速度参数共有5级,1级速度最慢,5级最快,默认参数为3。
  5114. //
  5115. // DETECT_SENSITIVE
  5116. // 目标检测灵敏度控制参数,控制PDC库中一个矩形区域被检测为目标的灵敏度。灵敏度越高,矩形区域越容易被检测为目标,灵敏度越低则越难检测为目标。当输入视频光照条件较差,对比度较低时,应提高检测灵敏度, 避免目标的漏检;当输入视频中对比度较高时,应该降低检测灵敏度,以减少误检。对应参数共有5级,级别1灵敏度最低,5级最高,默认级别为3。
  5117. // TRAJECTORY_LEN
  5118. // 轨迹生成长度控制参数,表示生成轨迹时要求目标的最大位移像素。对应参数共有5级,级别1,生成长度最长,轨迹生成最慢,5级生成长度最短,轨迹生成最快,默认级别为3。
  5119. // TRAJECT_CNT_LEN
  5120. // 轨迹计数长度控制参数,表示轨迹计数时要求目标的最大位移像素。对应参数共有5级,级别1,计数要求长度最长,轨迹计数最慢,5级计数要求长度最短,轨迹计数最快,默认级别为3。
  5121. // PREPROCESS
  5122. // 图像预处理控制参数,0 - 不处理;1 - 处理。默认为0;
  5123. // CAMERA_ANGLE
  5124. // 摄像机角度输入参数, 0 - 倾斜; 1 - 垂直。默认为0;
  5125. typedef enum tagPDC_PARAM_KEY
  5126. {
  5127. HUMAN_GENERATE_RATE = 50, // 目标生成速度 从50开始
  5128. DETECT_SENSITIVE = 51, // 检测灵敏度
  5129. }PDC_PARAM_KEY;
  5130. typedef struct tagNET_DVR_PDC_TARGET_INFO
  5131. {
  5132. DWORD dwTargetID; // 目标id
  5133. NET_VCA_RECT struTargetRect; // 目标框
  5134. BYTE byRes1[8]; // 保留字节
  5135. }NET_DVR_PDC_TARGET_INFO, *LPNET_DVR_PDC_TARGET_INFO;
  5136. typedef struct tagNET_DVR_PDC_TARGET_IN_FRAME
  5137. {
  5138. BYTE byTargetNum; //目标个数
  5139. BYTE byRes1[3];
  5140. NET_DVR_PDC_TARGET_INFO struTargetInfo[MAX_TARGET_NUM]; //目标信息数组
  5141. BYTE byRes2[8]; // 保留字节
  5142. }NET_DVR_PDC_TARGET_IN_FRAME, *LPNET_DVR_PDC_TARGET_IN_FRAME;
  5143. typedef struct tagNET_DVR_PDC_ALRAM_INFO
  5144. {
  5145. DWORD dwSize; // PDC人流量报警上传结构体大小
  5146. BYTE byMode; // 0 单帧统计结果 1最小时间段统计结果
  5147. BYTE byChannel; // 报警上传通道号
  5148. BYTE byRes1[2]; // 保留字节
  5149. NET_VCA_DEV_INFO struDevInfo; //前端设备信息
  5150. union
  5151. {
  5152. struct // 单帧统计结果时使用
  5153. {
  5154. DWORD dwRelativeTime; // 相对时标
  5155. DWORD dwAbsTime; // 绝对时标
  5156. BYTE byRes[92];
  5157. }struStatFrame;
  5158. struct
  5159. {
  5160. NET_DVR_TIME tmStart; // 统计起始时间
  5161. NET_DVR_TIME tmEnd; // 统计结束时间
  5162. BYTE byRes[92];
  5163. }struStatTime;
  5164. }uStatModeParam; // 作为一个联合体 单帧的时候才有帧内目标信息 最小时间段统计结果需要统计时间 参数
  5165. DWORD dwLeaveNum; // 离开人数
  5166. DWORD dwEnterNum; // 进入人数
  5167. BYTE byRes2[40]; // 保留字节
  5168. }NET_DVR_PDC_ALRAM_INFO, *LPNET_DVR_PDC_ALRAM_INFO;
  5169. // 人流量信息查询
  5170. typedef struct tagNET_DVR_PDC_QUERY
  5171. {
  5172. NET_DVR_TIME tmStart;
  5173. NET_DVR_TIME tmEnd;
  5174. DWORD dwLeaveNum;
  5175. DWORD dwEnterNum;
  5176. BYTE byRes1[256];
  5177. }NET_DVR_PDC_QUERY, *LPNET_DVR_PDC_QUERY;
  5178. typedef struct tagNET_DVR_PTZ_POSITION
  5179. {
  5180. // 是否启用场景,在设置场景行为规则的时候该字段无效,在设置球机本地配置场景位置信息时作为使能位
  5181. BYTE byEnable;
  5182. BYTE byRes1[3]; //保留
  5183. BYTE byPtzPositionName[NAME_LEN]; //场景位置名称
  5184. NET_DVR_PTZPOS struPtzPos; //ptz 坐标
  5185. BYTE byRes2[40];
  5186. }NET_DVR_PTZ_POSITION, *LPNET_DVR_PTZ_POSITION;
  5187. typedef struct tagNET_DVR_POSITION_RULE_CFG
  5188. {
  5189. DWORD dwSize; // 结构大小
  5190. NET_DVR_PTZ_POSITION struPtzPosition; // 场景位置信息
  5191. NET_VCA_RULECFG struVcaRuleCfg; //行为规则配置
  5192. BYTE byRes2[80]; // 保留字节
  5193. }NET_DVR_POSITION_RULE_CFG, *LPNET_DVR_POSITION_RULE_CFG;
  5194. /******************************************
  5195. 函数: NET_DVR_GetPositionRule
  5196. 描述: 获取场景位置规则信息
  5197. 输入: lUserID NET_DVR_Login_V30返回值
  5198. lChannel 通道号
  5199. lPositionIndex 场景索引(目前设备支持10个场景)
  5200. lpPositionRule指向NET_DVR_POSITION_RULE_CFG结构指针
  5201. 输出: 无
  5202. 返回值: 成功-TRUE 失败-FALSE
  5203. ******************************************/
  5204. NET_DVR_API BOOL __stdcall NET_DVR_GetPositionRule(LONG lUserID, LONG lChannel, LONG lPositionIndex, LPNET_DVR_POSITION_RULE_CFG lpPositionRule);
  5205. /******************************************
  5206. 函数: NET_DVR_SetPositionRule
  5207. 描述: 设置场景位置规则信息TRAFFIC_SCENE_MODE
  5208. 输入: lUserID NET_DVR_Login_V30返回值
  5209. lChannel 通道号
  5210. lPositionIndex 场景索引(目前设备支持10个场景)
  5211. lpPositionRule指向NET_DVR_POSITION_RULE_CFG结构指针
  5212. 输出: lpPositionRule指向NET_DVR_POSITION_RULE_CFG结构指针
  5213. 返回值: 成功-TRUE 失败-FALSE
  5214. ******************************************/
  5215. NET_DVR_API BOOL __stdcall NET_DVR_SetPositionRule(LONG lUserID, LONG lChannel, LONG lPositionIndex, LPNET_DVR_POSITION_RULE_CFG lpPositionRule);
  5216. typedef struct tagNET_DVR_LIMIT_ANGLE
  5217. {
  5218. BYTE byEnable; // 是否启用场景限位功能
  5219. BYTE byRes1[3];
  5220. NET_DVR_PTZPOS struUp; // 上限位
  5221. NET_DVR_PTZPOS struDown; // 下限位
  5222. NET_DVR_PTZPOS struLeft; // 左限位
  5223. NET_DVR_PTZPOS struRight; // 右限位
  5224. BYTE byRes2[20];
  5225. }NET_DVR_LIMIT_ANGLE, *LPNET_DVR_LIMIT_ANGLE;
  5226. /******************************************
  5227. 函数: NET_DVR_SetPositionLimitAngle
  5228. 描述: 设置场景规则限位操作
  5229. 输入: lUserID NET_DVR_Login_V30返回值
  5230. lChannel 通道号
  5231. lPositionIndex 场景索引(目前设备支持10个场景)
  5232. lpLimitAngle 指向NET_DVR_LIMIT_ANGLE结构体指针
  5233. 输出: 无
  5234. 返回值: 成功-TRUE 失败-FALSE
  5235. ******************************************/
  5236. NET_DVR_API BOOL __stdcall NET_DVR_SetPositionLimitAngle(LONG lUserID, LONG lChannel, LONG lPositionIndex, LPNET_DVR_LIMIT_ANGLE lpLimitAngle);
  5237. /******************************************
  5238. 函数: NET_DVR_GetPositionLimitAngle
  5239. 描述: 获取场景规则限位参数
  5240. 输入: lUserID NET_DVR_Login_V30返回值
  5241. lChannel 通道号
  5242. lPositionIndex 场景索引(目前设备支持10个场景)
  5243. lpLimitAngle 指向NET_DVR_LIMIT_ANGLE结构体指针
  5244. 输出: lpLimitAngle 指向NET_DVR_LIMIT_ANGLE结构体指针
  5245. 返回值: 成功-TRUE 失败-FALSE
  5246. ******************************************/
  5247. NET_DVR_API BOOL __stdcall NET_DVR_GetPositionLimitAngle(LONG lUserID, LONG lChannel, LONG lPositionIndex, LPNET_DVR_LIMIT_ANGLE lpLimitAngle);
  5248. typedef struct tagNET_DVR_POSITION_INDEX
  5249. {
  5250. BYTE byIndex; // 场景索引
  5251. BYTE byRes1;
  5252. WORD wDwell; // 停留时间
  5253. BYTE byRes2[4]; // 保留字节
  5254. }NET_DVR_POSITION_INDEX, *LPNET_DVR_POSITION_INDEX;
  5255. #define MAX_POSITION_NUM 10
  5256. typedef struct tagNET_DVR_POSITION_TRACK_CFG
  5257. {
  5258. DWORD dwSize;
  5259. BYTE byNum; // 场景个数
  5260. BYTE byRes1[3];
  5261. NET_DVR_POSITION_INDEX struPositionIndex[MAX_POSITION_NUM];
  5262. BYTE byRes2[8];
  5263. }NET_DVR_POSITION_TRACK_CFG, *LPNET_DVR_POSITION_TRACK_CFG;
  5264. //巡航路径场景信息
  5265. typedef struct tagNET_DVR_PATROL_SCENE_INFO
  5266. {
  5267. WORD wDwell; // 停留时间 30-300
  5268. BYTE byPositionID; // 场景号1-10,默认0表示该巡航点不添加场景
  5269. BYTE byRes[5];
  5270. }NET_DVR_PATROL_SCENE_INFO, *LPNET_DVR_PATROL_SCENE_INFO;
  5271. // 场景巡航跟踪配置信息
  5272. typedef struct tagNET_DVR_PATROL_TRACKCFG
  5273. {
  5274. DWORD dwSize; // 结构大小
  5275. NET_DVR_PATROL_SCENE_INFO struPatrolSceneInfo[10]; // 巡航路径
  5276. BYTE byRes[16]; // 保留字节
  5277. }NET_DVR_PATROL_TRACKCFG, *LPNET_DVR_PATROL_TRACKCFG;
  5278. //球机本地规则菜单配置结构体
  5279. typedef struct tagNET_DVR_TRACK_PARAMCFG
  5280. {
  5281. DWORD dwSize; // 结构大小
  5282. WORD wAlarmDelayTime; // 报警延时时间,目前球机只支持全局入侵 范围1-120秒
  5283. WORD wTrackHoldTime; // 报警跟踪持续时间 范围0-300秒
  5284. BYTE byTrackMode; // 参照 IPDOME_TRACK_MODE
  5285. BYTE byPreDirection; // 跟踪方向预判 0-不启用 1-启用
  5286. BYTE byTrackSmooth; // 跟踪连续 0-不启用 1-启用
  5287. BYTE byZoomAdjust; // 倍率系数调整 参见下表
  5288. BYTE byMaxTrackZoom; // 最大跟踪倍率系数 0 表示默认倍率系数 与具体机芯参数有关
  5289. BYTE byRes[11]; // 保留字节
  5290. }NET_DVR_TRACK_PARAMCFG, *LPNET_DVR_TRACK_PARAMCFG;
  5291. // 倍率系数值遇倍率关系如下表
  5292. // 等级 倍率序数
  5293. // 关(0) 标定值
  5294. // 1 标定值*0.5
  5295. // 2 标定值*0.65
  5296. // 3 标定值*0.75
  5297. // 4 标定值*0.9
  5298. // 5 标定值*1.1
  5299. // 6 标定值*1.2
  5300. // 7 标定值*1.3
  5301. // 球机机芯参数
  5302. typedef struct tagNET_DVR_DOME_MOVEMENT_PARAM
  5303. {
  5304. WORD wMaxZoom; // 球机最大倍率系数
  5305. BYTE byRes[42]; // 保留字节
  5306. }NET_DVR_DOME_MOVEMENT_PARAM, *LPNET_DVR_DOME_MOVEMENT_PARAM;
  5307. /******************************************
  5308. 函数: NET_DVR_GetPtzPosition
  5309. 描述: 获取球机本地场景PTZ位置信息
  5310. 输入: lUserID NET_DVR_Login_v30返回值
  5311. lChannel 通道号
  5312. lPositionID 场景位置ID
  5313. lpPtzPosition 指向NET_DVR_PTZ_POSITION结构指针
  5314. 输出: lpPtzPosition 指向NET_DVR_PTZ_POSITION结构指针
  5315. 返回值: TRUE--成功 FALSE--失败
  5316. ******************************************/
  5317. NET_DVR_API BOOL __stdcall NET_DVR_GetPtzPosition(LONG lUserID, LONG lChannel, LONG lPositionID, LPNET_DVR_PTZ_POSITION lpPtzPosition);
  5318. /******************************************
  5319. 函数: NET_DVR_SetPtzPosition
  5320. 描述: 获取球机本地场景PTZ位置信息
  5321. 输入: lUserID NET_DVR_Login_v30返回值
  5322. lChannel 通道号
  5323. lPositionID 场景位置ID
  5324. lpPtzPosition 指向NET_DVR_PTZ_POSITION结构指针
  5325. 输出:
  5326. 返回值: TRUE--成功 FALSE--失败
  5327. ******************************************/
  5328. NET_DVR_API BOOL __stdcall NET_DVR_SetPtzPosition(LONG lUserID, LONG lChannel, LONG lPositionID, LPNET_DVR_PTZ_POSITION lpPtzPosition);
  5329. /******************************************
  5330. 函数: NET_DVR_SetPatrolTrack
  5331. 描述: 设置场景巡航跟踪配置
  5332. 输入: lUserID NET_DVR_Login_V30返回值
  5333. lChannel 通道号
  5334. lPatrolIndex 巡航索引
  5335. lpPatrolTrack 指向NET_DVR_PATROL_TRACKCFG结构执政
  5336. 输出:
  5337. 返回值: TRUE--成功 FALSE--失败
  5338. ******************************************/
  5339. NET_DVR_API BOOL __stdcall NET_DVR_SetPatrolTrack(LONG lUserID, LONG lChannel, LONG lPatrolIndex, LPNET_DVR_PATROL_TRACKCFG lpPatrolTrack);
  5340. /******************************************
  5341. 函数: NET_DVR_GetPatrolTrack
  5342. 描述: 获取场景巡航跟踪配置
  5343. 输入: lUserID NET_DVR_Login_V30返回值
  5344. lChannel 通道号
  5345. lPatrolIndex 巡航索引
  5346. lpPatrolTrack 指向NET_DVR_PATROL_TRACKCFG结构执政
  5347. 输出: lpPatrolTrack 指向NET_DVR_PATROL_TRACKCFG结构执政
  5348. 返回值: TRUE--成功 FALSE--失败
  5349. ******************************************/
  5350. NET_DVR_API BOOL __stdcall NET_DVR_GetPatrolTrack(LONG lUserID, LONG lChannel, LONG lPatrolIndex, LPNET_DVR_PATROL_TRACKCFG lpPatrolTrack);
  5351. /******************************************
  5352. 函数: NET_DVR_SetPatrolLimitAngle
  5353. 描述: 设置场景巡航跟踪限位
  5354. 输入: lUserID NET_DVR_Login_V30返回值
  5355. lChannel 通道号
  5356. lPatrolIndex 巡航索引
  5357. lpLimitAngle 指向NET_DVR_LIMIT_ANGLE结构体指针
  5358. 输出: 无
  5359. 返回值: TRUE-成功 FALSE-失败
  5360. ******************************************/
  5361. NET_DVR_API BOOL __stdcall NET_DVR_SetPatrolLimitAngle(LONG lUserID, LONG lChannel, LONG lPatrolIndex, LPNET_DVR_LIMIT_ANGLE lpLimitAngle);
  5362. /******************************************
  5363. 函数: NET_DVR_GetPatrolLimitAngle
  5364. 描述: 获取场景巡航跟踪
  5365. 输入: lUserID NET_DVR_Login_V30返回值
  5366. lChannel 通道号
  5367. lPatrolIndex 巡航索引
  5368. lpLimitAngle 指向NET_DVR_LIMIT_ANGLE结构体指针
  5369. 输出: lpLimitAngle 指向NET_DVR_LIMIT_ANGLE结构体指针
  5370. 返回值: TRUE-成功 FALSE-失败
  5371. ******************************************/
  5372. NET_DVR_API BOOL __stdcall NET_DVR_GetPatrolLimitAngle(LONG lUserID, LONG lChannel, LONG lPatrolIndex, LPNET_DVR_LIMIT_ANGLE lpLimitAngle);
  5373. /********************************智能交通事件 begin****************************************/
  5374. #define MAX_REGION_NUM 8 // 区域列表最大数目
  5375. #define MAX_TPS_RULE 8 // 最大参数规则数目
  5376. #define MAX_AID_RULE 8 // 最大事件规则数目
  5377. #define MAX_LANE_NUM 8 // 最大车道数目
  5378. //交通事件类型,
  5379. typedef enum tagTRAFFIC_AID_TYPE
  5380. {
  5381. CONGESTION = 0x01, //拥堵
  5382. PARKING = 0x02, //停车
  5383. INVERSE = 0x04, //逆行
  5384. PEDESTRIAN = 0x08, //行人
  5385. DEBRIS = 0x10, //遗留物 抛洒物碎片
  5386. SMOKE = 0x20 //烟雾
  5387. }TRAFFIC_AID_TYPE;
  5388. typedef enum tagTRAFFIC_SCENE_MODE
  5389. {
  5390. FREEWAY = 0, // 高速户外场景
  5391. TUNNEL, // 高速隧道场景
  5392. BRIDGE // 高速桥梁场景
  5393. }TRAFFIC_SCENE_MODE;
  5394. typedef enum tagITS_ABILITY_TYPE
  5395. {
  5396. ITS_CONGESTION_ABILITY = 0x01, //拥堵
  5397. ITS_PARKING_ABILITY = 0x02, //停车
  5398. ITS_INVERSE_ABILITY = 0x04, //逆行
  5399. ITS_PEDESTRIAN_ABILITY = 0x08, //行人
  5400. ITS_DEBRIS_ABILITY = 0x10, //遗留物 抛洒物碎片
  5401. ITS_SMOKE_ABILITY = 0x20, //烟雾-隧道
  5402. ITS_LANE_VOLUME_ABILITY = 0x010000, //车道流量
  5403. ITS_LANE_VELOCITY_ABILITY = 0x020000, //车道平均速度
  5404. ITS_TIME_HEADWAY_ABILITY = 0x040000, //车头时距
  5405. ITS_SPACE_HEADWAY_ABILITY = 0x080000, //车头间距
  5406. ITS_TIME_OCCUPANCY_RATIO_ABILITY = 0x100000, //车道占有率,(时间上)
  5407. ITS_SPACE_OCCUPANCY_RATIO_ABILITY = 0x200000, //车道占有率,百分比计算(空间上)
  5408. ITS_LANE_QUEUE_ABILITY = 0x400000 //排队长度
  5409. }ITS_ABILITY_TYPE;
  5410. // 交通统计参数
  5411. typedef enum tagITS_TPS_TYPE
  5412. {
  5413. LANE_VOLUME = 0x01, //车道流量
  5414. LANE_VELOCITY = 0x02, //车道速度
  5415. TIME_HEADWAY = 0x04, //车头时距
  5416. SPACE_HEADWAY = 0x08, //车头间距
  5417. TIME_OCCUPANCY_RATIO = 0x10, //车道占有率 (时间上)
  5418. SPACE_OCCUPANCY_RATIO = 0x20, //车道占有率,百分比计算(空间上)
  5419. QUEUE = 0x40 //排队长度
  5420. }ITS_TPS_TYPE;
  5421. typedef struct tagNET_DVR_REGION_LIST
  5422. {
  5423. DWORD dwSize; // 结构体大小
  5424. BYTE byNum; // 区域个数
  5425. BYTE byRes1[3]; // 保留字节
  5426. NET_VCA_POLYGON struPolygon[MAX_REGION_NUM]; // 区域
  5427. BYTE byRes2[20]; // 保留字节
  5428. }NET_DVR_REGION_LIST,*LPNET_DVR_REGION_LIST;
  5429. // 方向结构体
  5430. typedef struct tagNET_DVR_DIRECTION
  5431. {
  5432. NET_VCA_POINT struStartPoint; // 方向起始点
  5433. NET_VCA_POINT struEndPoint; // 方向结束点
  5434. }NET_DVR_DIRECTION, *LPNET_DVR_DIRECTION;
  5435. // 单个车道
  5436. typedef struct tagNET_DVR_ONE_LANE
  5437. {
  5438. BYTE byEnable; // 车道是否启用
  5439. BYTE byRes1[11]; // 保留字节
  5440. BYTE byLaneName[NAME_LEN]; // 车道规则名称
  5441. NET_DVR_DIRECTION struFlowDirection; // 车道内车流方向
  5442. NET_VCA_POLYGON struPolygon; // 车道区域
  5443. }NET_DVR_ONE_LANE, *LPNET_DVR_ONE_LANE;
  5444. // 车道配置
  5445. typedef struct tagNET_DVR_LANE_CFG
  5446. {
  5447. DWORD dwSize; // 结构体大小
  5448. NET_DVR_ONE_LANE struLane[MAX_LANE_NUM]; // 车道参数 数组下标作为车道ID,
  5449. BYTE byRes1[40]; // 保留字节
  5450. }NET_DVR_LANE_CFG, *LPNET_DVR_LANE_CFG;
  5451. // 交通事件参数
  5452. typedef struct tagNET_DVR_AID_PARAM
  5453. {
  5454. WORD wParkingDuration; // 停车持续时间 10-120s
  5455. WORD wPedestrianDuration; // 行人持续时间 1-120s
  5456. WORD wDebrisDuration; // 抛洒物持续时间 10-120s
  5457. WORD wCongestionLength; // 拥堵长度阈值 范围:5-200(米)
  5458. WORD wCongestionDuration; // 拥堵持续参数 10-120s
  5459. WORD wInverseDuration; // 逆行持续时间 1-10s
  5460. WORD wInverseDistance; // 逆行距离阈值 单位m 范围[2-100] 默认 10米
  5461. WORD wInverseAngleTolerance; // 允许角度偏差 90-180度 车流与逆行允许的夹角
  5462. BYTE byRes1[28]; // 保留字节
  5463. }NET_DVR_AID_PARAM, *LPNET_DVR_AID_PARAM;
  5464. // 单条交通事件规则结构体
  5465. typedef struct tagNET_DVR_ONE_AID_RULE
  5466. {
  5467. BYTE byEnable; // 是否启用事件规则
  5468. BYTE byRes1[3]; // 保留字节
  5469. BYTE byRuleName[NAME_LEN]; // 规则名称
  5470. DWORD dwEventType; // 交通事件检测类型 TRAFFIC_AID_TYPE
  5471. NET_VCA_SIZE_FILTER struSizeFilter; // 尺寸过滤器
  5472. NET_VCA_POLYGON struPolygon; // 规则区域
  5473. NET_DVR_AID_PARAM struAIDParam; // 事件参数
  5474. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_2];//布防时间
  5475. NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //处理方式
  5476. BYTE byRelRecordChan[MAX_CHANNUM_V30]; //报警触发的录象通道,为1表示触发该通道
  5477. BYTE byRes2[20];
  5478. }NET_DVR_ONE_AID_RULE, *LPNET_DVR_ONE_AID_RULE;
  5479. // 交通事件规则
  5480. typedef struct tagNET_DVR_AID_RULECFG
  5481. {
  5482. DWORD dwSize; // 结构体大小
  5483. BYTE byPicProType; //报警时图片处理方式 0-不处理 非0-上传
  5484. BYTE byRes1[3]; // 保留字节
  5485. NET_DVR_JPEGPARA struPictureParam; //图片规格结构
  5486. NET_DVR_ONE_AID_RULE struOneAIDRule[MAX_AID_RULE];
  5487. BYTE byRes2[32];
  5488. }NET_DVR_AID_RULECFG, *LPNET_DVR_AID_RULECFG;
  5489. // 交通统计参数结构体
  5490. typedef struct tagNET_DVR_ONE_TPS_RULE
  5491. {
  5492. BYTE byEnable; // 是否使能车道交通规则参数
  5493. BYTE byLaneID; // 车道ID
  5494. BYTE byRes1[2];
  5495. DWORD dwCalcType; // 统计参数类型ITS_TPS_TYPE
  5496. NET_VCA_SIZE_FILTER struSizeFilter; // 尺寸过滤器
  5497. NET_VCA_POLYGON struVitrualLoop; // 虚拟线圈
  5498. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_2];//布防时间
  5499. NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //处理方式 一般为处理是否上传中心,其他功能不需要
  5500. BYTE byRes2[20]; // 保留字节
  5501. }NET_DVR_ONE_TPS_RULE, *LPNET_DVR_ONE_TPS_RULE;
  5502. // 交通参数统计规则配置结构体
  5503. typedef struct tagNET_DVR_TPS_RULECFG
  5504. {
  5505. DWORD dwSize; // 结构大小
  5506. NET_DVR_ONE_TPS_RULE struOneTpsRule[MAX_TPS_RULE]; // 下标对应交通参数ID
  5507. BYTE byRes2[40]; // 保留字节
  5508. }NET_DVR_TPS_RULECFG, *LPNET_DVR_TPS_RULECFG;
  5509. // 交通事件信息
  5510. typedef struct tagNET_DVR_AID_INFO
  5511. {
  5512. BYTE byRuleID; // 规则序号,为规则配置结构下标,0-16
  5513. BYTE byRes1[3];
  5514. BYTE byRuleName[NAME_LEN]; // 规则名称
  5515. DWORD dwAIDType; // 报警事件类型
  5516. NET_DVR_DIRECTION struDirect; // 报警指向区域
  5517. BYTE byRes2[40]; // 保留字节
  5518. }NET_DVR_AID_INFO, *LPNET_DVR_AID_INFO;
  5519. // 交通事件报警
  5520. typedef struct tagNET_DVR_AID_ALARM
  5521. {
  5522. DWORD dwSize; // 结构长度
  5523. DWORD dwRelativeTime; // 相对时标
  5524. DWORD dwAbsTime; // 绝对时标
  5525. NET_VCA_DEV_INFO struDevInfo; // 前端设备信息
  5526. NET_DVR_AID_INFO struAIDInfo; // 交通事件信息
  5527. DWORD dwPicDataLen; // 返回图片的长度 为0表示没有图片,大于0表示该结构后面紧跟图片数据
  5528. BYTE *pImage; // 指向图片的指针
  5529. BYTE byRes[40]; // 保留字节
  5530. }NET_DVR_AID_ALARM, *LPNET_DVR_AID_ALARM;
  5531. // 车道队列结构体
  5532. typedef struct tagNET_DVR_LANE_QUEUE
  5533. {
  5534. NET_VCA_POINT struHead; //队列头
  5535. NET_VCA_POINT struTail; //队列尾
  5536. DWORD dwLength; //实际队列长度 单位为米 [0-500]
  5537. }NET_DVR_LANE_QUEUE, *LPNET_DVR_LANE_QUEUE;
  5538. typedef enum tagTRAFFIC_DATA_VARY_TYPE
  5539. {
  5540. NO_VARY, //无变化
  5541. VEHICLE_ENTER, //车辆进入虚拟线圈
  5542. VEHICLE_LEAVE, //车辆离开虚拟线圈
  5543. UEUE_VARY //队列变化
  5544. }TRAFFIC_DATA_VARY_TYPE;
  5545. typedef struct tagNET_DVR_LANE_PARAM
  5546. {
  5547. BYTE byRuleName[NAME_LEN]; //车道规则名称
  5548. BYTE byRuleID; // 规则序号,为规则配置结构下标,0-7
  5549. BYTE byVaryType; // 车道交通参数变化类型 参照 TRAFFIC_DATA_VARY_TYPE
  5550. BYTE byLaneType; // 车道上行或下行
  5551. BYTE byRes1;
  5552. DWORD dwLaneVolume; // 车道流量 ,统计有多少车子通过
  5553. DWORD dwLaneVelocity; //车道速度,公里计算
  5554. DWORD dwTimeHeadway ; //车头时距,以秒计算
  5555. DWORD dwSpaceHeadway; //车头间距,以米来计算
  5556. float fSpaceOccupyRation; //车道占有率,百分比计算(空间上)
  5557. NET_DVR_LANE_QUEUE struLaneQueue; //车道队列长度
  5558. NET_VCA_POINT struRuleLocation; //线圈规则的中心点位置
  5559. BYTE byRes2[32];
  5560. }NET_DVR_LANE_PARAM, *LPNET_DVR_LANE_PARAM;
  5561. typedef struct tagNET_DVR_TPS_INFO
  5562. {
  5563. DWORD dwLanNum; // 交通参数的车道数目
  5564. NET_DVR_LANE_PARAM struLaneParam[MAX_TPS_RULE];
  5565. }NET_DVR_TPS_INFO, *LPNET_DVR_TPS_INFO;
  5566. typedef struct tagNET_DVR_TPS_ALARM
  5567. {
  5568. DWORD dwSize; // 结构体大小
  5569. DWORD dwRelativeTime; // 相对时标
  5570. DWORD dwAbsTime; // 绝对时标
  5571. NET_VCA_DEV_INFO struDevInfo; // 前端设备信息
  5572. NET_DVR_TPS_INFO struTPSInfo; // 交通事件信息
  5573. BYTE byRes1[32]; // 保留字节
  5574. }NET_DVR_TPS_ALARM, *LPNET_DVR_TPS_ALARM;
  5575. // 人脸规则配置
  5576. typedef struct tagNET_DVR_FACEDETECT_RULECFG
  5577. {
  5578. DWORD dwSize; // 结构体大小
  5579. BYTE byEnable; // 是否启用
  5580. BYTE byEventType; //警戒事件类型, 0-异常人脸; 1-正常人脸;2-异常人脸&正常人脸;
  5581. BYTE byUpLastAlarm; //2011-04-06 是否先上传最近一次的报警
  5582. BYTE byRes1; //保留
  5583. BYTE byRuleName[NAME_LEN];
  5584. NET_VCA_POLYGON struVcaPolygon; // 人脸检测规则区域
  5585. BYTE byPicProType; //报警时图片处理方式 0-不处理 非0-上传
  5586. BYTE bySensitivity; // 规则灵敏度
  5587. WORD wDuration; // 触发人脸报警时间阈值
  5588. NET_DVR_JPEGPARA struPictureParam; //图片规格结构
  5589. NET_VCA_SIZE_FILTER struSizeFilter; //尺寸过滤器
  5590. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_2];//布防时间
  5591. NET_DVR_HANDLEEXCEPTION_V30 struHandleType; //处理方式
  5592. BYTE byRelRecordChan[MAX_CHANNUM_V30]; //报警触发的录象通道,为1表示触发该通道
  5593. BYTE byRes2[40]; //保留字节
  5594. }NET_DVR_FACEDETECT_RULECFG, *LPNET_DVR_FACEDETECT_RULECFG;
  5595. typedef struct tagNET_DVR_FACEDETECT_ALARM
  5596. {
  5597. DWORD dwSize; // 结构大小
  5598. DWORD dwRelativeTime; // 相对时标
  5599. DWORD dwAbsTime; // 绝对时标
  5600. BYTE byRuleName[NAME_LEN]; // 规则名称
  5601. NET_VCA_TARGET_INFO struTargetInfo; //报警目标信息
  5602. NET_VCA_DEV_INFO struDevInfo; //前端设备信息
  5603. DWORD dwPicDataLen; //返回图片的长度 为0表示没有图片,大于0表示该结构后面紧跟图片数据*/
  5604. BYTE byAlarmPicType; // 0-异常人脸报警图片 1- 人脸图片
  5605. BYTE byRes[59]; // 保留字节
  5606. BYTE *pImage; //指向图片的指针
  5607. }NET_DVR_FACEDETECT_ALARM, *LPNET_DVR_FACEDETECT_ALARM;
  5608. typedef struct tagNET_DVR_EVENT_PARAM_UNION
  5609. {
  5610. DWORD uLen[3]; // 联合体大小为12字节
  5611. DWORD dwHumanIn; //有无人接近 0 - 无人 1- 有人
  5612. float fCrowdDensity; // 人员聚集值
  5613. }NET_DVR_EVENT_PARAM_UNION, *LPNET_DVR_EVENT_PARAM_UNION;
  5614. // 目前只有有人无人事件和人员聚集事件实时报警上传
  5615. typedef struct tagNET_DVR_EVENT_INFO
  5616. {
  5617. BYTE byRuleID; // Rule ID
  5618. BYTE byRes[3]; // 保留字节
  5619. BYTE byRuleName[NAME_LEN]; // 规则名称
  5620. DWORD dwEventType; // 参照VCA_EVENT_TYPE
  5621. NET_DVR_EVENT_PARAM_UNION uEventParam; //
  5622. }NET_DVR_EVENT_INFO, *LPNET_DVR_EVENT_INFO;
  5623. typedef struct tagNET_DVR_EVENT_INFO_LIST
  5624. {
  5625. BYTE byNum; // 事件实时信息个数
  5626. BYTE byRes1[3]; // 保留字节
  5627. NET_DVR_EVENT_INFO struEventInfo[MAX_RULE_NUM]; // 事际实时信息
  5628. }NET_DVR_EVENT_INFO_LIST,*LPNET_DVR_EVENT_INFO_LIST;
  5629. typedef struct tagNET_DVR_RULE_INFO_ALARM
  5630. {
  5631. DWORD dwSize; // 结构体大小
  5632. DWORD dwRelativeTime; // 相对时标
  5633. DWORD dwAbsTime; // 绝对时标
  5634. NET_VCA_DEV_INFO struDevInfo; // 前端设备信息
  5635. NET_DVR_EVENT_INFO_LIST struEventInfoList; //事件信息列表
  5636. BYTE byRes2[40]; // 保留字节
  5637. }NET_DVR_RULE_INFO_ALARM, *LPNET_DVR_RULE_INFO_ALARM;
  5638. /******************************************
  5639. 函数: NET_DVR_SetSceneMode
  5640. 描述: 设置场景模式
  5641. 输入: lUserID: NET_DVR_Login()的返回值
  5642. lChannel: 通道号
  5643. dwSceneMode: 场景模式
  5644. 输出:
  5645. 返回值: 成功-TRUE 失败-FALSE
  5646. ******************************************/
  5647. NET_DVR_API BOOL __stdcall NET_DVR_SetSceneMode(LONG lUserID, LONG lChannel, DWORD dwSceneMode);
  5648. /******************************************
  5649. 函数: NET_DVR_GetSceneMode
  5650. 描述: 获取场景模式
  5651. 输入: lUserID: NET_DVR_Login()的返回值
  5652. lChannel: 通道号
  5653. pSceneMode 指向场景模式指针
  5654. 输出: pSceneMode 指向场景模式指针
  5655. 返回值: 成功-TRUE 失败-FALSE
  5656. ******************************************/
  5657. NET_DVR_API BOOL __stdcall NET_DVR_GetSceneMode(LONG lUserID, LONG lChannel, DWORD *pSceneMode);
  5658. /*******************************智能交通事件 end*****************************************/
  5659. #define XXX_MAJOR_VERSION 2
  5660. /* 子版本号,性能优化、局部结构调整、模块内集成其他库的主版本提升时递增,最大31 */
  5661. #define XXX_SUB_VERSION 3
  5662. /* 修正版本号,修正bug后递增,最大31 */
  5663. #define XXX_REVISION_VERSION 4
  5664. typedef struct tagNET_DVR_VCA_VERSION
  5665. {
  5666. WORD wMajorVersion; // 主版本号
  5667. WORD wMinorVersion; // 次版本号
  5668. WORD wRevisionNumber; // 修正号
  5669. WORD wBuildNumber; // 编译号
  5670. WORD wVersionYear; // 版本日期-年
  5671. BYTE byVersionMonth; // 版本日期-月
  5672. BYTE byVersionDay; // 版本日期-日
  5673. BYTE byRes[8]; // 保留字节
  5674. }NET_DVR_VCA_VERSION, *LPNET_DVR_VCA_VERSION;
  5675. NET_DVR_API BOOL __stdcall NET_DVR_GetVCAVersion(LONG lUserID, LONG lChannel, LPNET_DVR_VCA_VERSION lpVersion);
  5676. /******************************智能 end***********************************/
  5677. /******************************车牌识别 begin******************************************/
  5678. typedef struct tagNET_DVR_PLATE_PARAM
  5679. {
  5680. BYTE byPlateRecoMode; //车牌识别的模式,默认为1(视频触发模式)
  5681. BYTE byBelive;; //整牌置信度阈值, 只用于视频识别方式, 根据背景复杂程度设置, 误触发率高就设高, 漏车率高就设低, 建议在80-90范围内
  5682. BYTE byRes[22]; //保留字节
  5683. }NET_DVR_PALTE_PARAM, *LPNET_DVR_PALTE_PARAM;
  5684. typedef struct tagNET_DVR_PLATECFG
  5685. {
  5686. DWORD dwSize;
  5687. DWORD dwEnable; /* 是否启用视频车牌识别 0-否 1-是 */
  5688. BYTE byPicProType; //报警时图片处理方式 0-不处理 非0-上传
  5689. BYTE byRes1[3]; // 保留字节
  5690. NET_DVR_JPEGPARA struPictureParam; //图片规格结构
  5691. NET_DVR_PALTE_PARAM struPlateParam; // 车牌识别参数配置
  5692. NET_DVR_HANDLEEXCEPTION struHandleType; /* 处理方式 */
  5693. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];//布防时间
  5694. BYTE byRelRecordChan[MAX_CHANNUM]; //报警触发的录象通道,为1表示触发该通道
  5695. BYTE byRes[20]; // 保留字节
  5696. }NET_DVR_PLATECFG, *LPNET_DVR_PLATECFG;
  5697. // 车牌识别结果子结构
  5698. typedef struct tagNET_DVR_PLATE_INFO
  5699. {
  5700. BYTE byPlateType; //车牌类型
  5701. BYTE byColor; //车牌颜色
  5702. BYTE byBright; //车牌亮度
  5703. BYTE byLicenseLen; //车牌字符个数
  5704. BYTE byEntireBelieve; //整个车牌的置信度,-100
  5705. BYTE byRes[35]; //保留
  5706. NET_VCA_RECT struPlateRect; //车牌位置
  5707. char sLicense[MAX_LICENSE_LEN]; //车牌号码
  5708. BYTE byBelieve[MAX_LICENSE_LEN]; //各个识别字符的置信度,如检测到车牌"浙A12345", 置信度为,20,30,40,50,60,70,则表示"浙"字正确的可能性只有%,"A"字的正确的可能性是%
  5709. }NET_DVR_PLATE_INFO, *LPNET_DVR_PLATE_INFO;
  5710. typedef struct tagNET_DVR_PLATERECO_RESULE
  5711. {
  5712. DWORD dwSize;
  5713. DWORD dwRelativeTime; //相对时标
  5714. DWORD dwAbsTime; //绝对时标
  5715. NET_VCA_DEV_INFO struDevInfo; // 前段设备信息
  5716. NET_DVR_PLATE_INFO struPlateInfo;
  5717. DWORD dwPicDataLen; //返回图片的长度 为0表示没有图片,大于0表示该结构后面紧跟图片数据*/
  5718. DWORD dwRes[4]; //保留,设置为0
  5719. BYTE *pImage; //指向图片的指针
  5720. }NET_DVR_PLATERECO_RESULE, *LPNET_DVR_PLATERECO_RESULE;
  5721. /******************************车牌识别 end******************************************/
  5722. /*******************************视频综合平台***********************************/
  5723. //09-11-21
  5724. typedef struct
  5725. {
  5726. NET_DVR_TIME strLogTime;
  5727. DWORD dwMajorType; //Main type 1-alarm; 2-abnormal; 3-operation; 0xff-all
  5728. DWORD dwMinorType; //Hypo-Type 0-all;
  5729. BYTE sPanelUser[MAX_NAMELEN]; //user ID for local panel operation
  5730. BYTE sNetUser[MAX_NAMELEN];//user ID for network operation
  5731. NET_DVR_IPADDR struRemoteHostAddr;//remote host IP
  5732. DWORD dwParaType;//parameter type
  5733. DWORD dwChannel;//channel number
  5734. DWORD dwDiskNumber;//HD number
  5735. DWORD dwAlarmInPort;//alarm input port
  5736. DWORD dwAlarmOutPort;//alarm output port
  5737. DWORD dwInfoLen;
  5738. BYTE byDevSequence;//槽位号
  5739. BYTE byMacAddr[MACADDR_LEN];//MAC地址,6
  5740. BYTE sSerialNumber[SERIALNO_LEN];//序列号,48
  5741. char sInfo[LOG_INFO_LEN - SERIALNO_LEN - MACADDR_LEN - 1 ];
  5742. }NET_DVR_LOG_MATRIX, *LPNET_DVR_LOG_MATRIX;
  5743. //2009-11-21 视频综合平台
  5744. typedef struct tagVEDIOPLATLOG
  5745. {
  5746. BYTE bySearchCondition;//搜索条件,0-按槽位号搜索,1-按序列号搜索,2-按MAC地址进行搜索
  5747. //槽位号,0-79:对应子系统的槽位号;
  5748. //0xff:表示搜索所有的日志,包括78K和所有6467;
  5749. //0xfe:表示搜索78K上的日志;0xfd:子域日志;0xfc:域日志。。
  5750. BYTE byDevSequence;
  5751. BYTE sSerialNumber[SERIALNO_LEN];//序列号,48
  5752. BYTE byMacAddr[MACADDR_LEN];//MAC地址,6
  5753. } NET_DVR_VEDIOPLATLOG, *LPNET_DVR_VEDIOPLATLOG;
  5754. //2009-11-21
  5755. #define VIDEOPLATFORM_SBUCODESYSTEM_ABILITY 0x211 //视频综合平台编码子系统能力集
  5756. typedef struct tagNET_DVR_CODESYSTEMABILITY
  5757. {
  5758. DWORD dwSize;
  5759. DWORD dwAbilityVersion;//能力集版本号,高16位表示主版本,低16位表示次版本
  5760. DWORD dwSupportMaxVideoFrameRate;//单位(K)
  5761. /*按位:
  5762. 0:定时录像;
  5763. 1:定时|事件触发录像
  5764. 2:移动侦测录像;
  5765. 3:网络开关量报警录像;
  5766. 4:移动侦测|网络开关量报警录像;
  5767. 5:移动侦测&网络开关量报警录像;
  5768. 6:周界防范触发录像;
  5769. 7:人脸检测触发录像;
  5770. 8:车牌识别触发录像;
  5771. 9:手动录像*/
  5772. DWORD dwSupportRecordType;
  5773. BYTE bySupportLinkMode;//按位:第0位:表示主码流,第1位:表示子码流
  5774. BYTE bySupportStringRow;//支持字符叠加行数
  5775. BYTE bySupportHideNum;//支持视频遮挡数量
  5776. BYTE byRes1;
  5777. /*0-DCIF,1-CIF,2-QCIF,3-4CIF,4-2CIF,6-QVGA(320*240), 16-VGA,17-UXGA,18-SVGA,19-HD720p,20-XVGA,21-HD900p,22-SXGAp,27-HD1080i,28-2560*1920,29-1600*304,30-2048*1536,31-2448*2048,32-2448*1200,33-2448*800 ,34-XGA(1024x768),35-SXGA(1280x1024)*/
  5778. BYTE byMainStreamSupportResolution[8];//主码流支持的分辨率,按位
  5779. BYTE bySubStreamSupportResolution[8];//子码流支持的分辨率,按位
  5780. BYTE byEventStreamSupportResolution[8];//事件触发码流支持的分辨率,按位
  5781. BYTE byNotSupportPreview;//是否支持预览,1-不支持,0-支持
  5782. BYTE byNotSupportStorage;//是否支持存储,1-不支持,0-支持
  5783. BYTE byRes2[98];//保留
  5784. }NET_DVR_CODESYSTEMABILITY, *LPNET_DVR_CODESYSTEMABILITY;
  5785. /********************************end*******************************************/
  5786. /******************************抓拍机*******************************************/
  5787. //IO输入配置
  5788. typedef struct tagNET_DVR_IO_INCFG
  5789. {
  5790. DWORD dwSize;
  5791. BYTE byIoInStatus;//输入的IO口状态,0-下降沿,1-上升沿,2-上升沿和下降沿,3-高电平,4-低电平
  5792. BYTE byRes[3];//保留字节
  5793. }NET_DVR_IO_INCFG, *LPNET_DVR_IO_INCFG;
  5794. //IO输出配置
  5795. typedef struct tagNET_DVR_IO_OUTCFG
  5796. {
  5797. DWORD dwSize;
  5798. BYTE byDefaultStatus;//IO默认状态:0-低电平,1-高电平
  5799. BYTE byIoOutStatus;//IO起效时状态:0-低电平,1-高电平,2-脉冲
  5800. WORD wAheadTime;//输出IO提前时间,单位us
  5801. DWORD dwTimePluse;//脉冲间隔时间,单位us
  5802. DWORD dwTimeDelay;//IO有效持续时间,单位us
  5803. BYTE byFreqMulti; //倍频,数值范围[1,15]
  5804. BYTE byDutyRate; //占空比,[0,40%]
  5805. BYTE byRes[2];
  5806. }NET_DVR_IO_OUTCFG, *LPNET_DVR_IO_OUTCFG;
  5807. //闪光灯配置
  5808. typedef struct tagNET_DVR_FLASH_OUTCFG
  5809. {
  5810. DWORD dwSize;
  5811. BYTE byMode;//闪光灯闪烁模式,0-不闪,1-闪,2-关联闪,3-轮闪
  5812. BYTE byRelatedIoIn;//闪光灯关联的输入IO号(关联闪时此参数有效)
  5813. BYTE byRecognizedLane; /*关联的IO号,按位表示,bit0表示IO1是否关联,0-不关联,1-关联*/
  5814. BYTE byDetectBrightness;/*自动检测亮度使能闪光灯0-不检测;1-检测*/
  5815. BYTE byBrightnessThreld;/*使能闪光灯亮度阈值,范围[0,100],高于阈值闪*/
  5816. BYTE byStartHour; //开始时间-小时,取值范围0-23
  5817. BYTE byStartMinute; //开始时间-分,取值范围0-59
  5818. BYTE byEndHour; //结束时间-小时,取值范围0-23
  5819. BYTE byEndMinute; //结束时间-分,取值范围0-59
  5820. BYTE byFlashLightEnable; //设置闪光灯时间使能:0-关;1-开
  5821. BYTE byRes[2];
  5822. }NET_DVR_FLASH_OUTCFG, *LPNET_DVR_FLASH_OUTCFG;
  5823. //红绿灯功能(2个IO输入一组)
  5824. typedef struct tagNET_DVR_LIGHTSNAPCFG
  5825. {
  5826. DWORD dwSize;
  5827. BYTE byLightIoIn;//红绿灯的IO 号
  5828. BYTE byTrigIoIn;//触发的IO号
  5829. BYTE byRelatedDriveWay;//触发IO关联的车道号
  5830. BYTE byTrafficLight; //0-高电平红灯,低电平绿灯;1-高电平绿灯,低电平红灯
  5831. BYTE bySnapTimes1; //红灯抓拍次数1,0-不抓拍,非0-连拍次数,最大5次
  5832. BYTE bySnapTimes2; //绿灯抓拍次数2,0-不抓拍,非0-连拍次数,最大5次
  5833. BYTE byRes1[2];
  5834. WORD wIntervalTime1[MAX_INTERVAL_NUM];//红灯连拍间隔时间,ms
  5835. WORD wIntervalTime2[MAX_INTERVAL_NUM];//绿灯连拍间隔时间,ms
  5836. BYTE byRecord;//闯红灯周期录像标志,0-不录像,1-录像
  5837. BYTE bySessionTimeout;//闯红灯周期录像超时时间(秒)
  5838. BYTE byPreRecordTime;//闯红灯录像片段预录时间(秒)
  5839. BYTE byVideoDelay;//闯红灯录像片段延时时间(秒)
  5840. BYTE byRes2[32];//保留字节
  5841. }NET_DVR_LIGHTSNAPCFG, *LPNET_DVR_LIGHTSNAPCFG;
  5842. //测速功能(2个IO输入一组)
  5843. typedef struct tagNET_DVR_MEASURESPEEDCFG
  5844. {
  5845. DWORD dwSize;
  5846. BYTE byTrigIo1; //测速第1线圈
  5847. BYTE byTrigIo2; //测速第2线圈
  5848. BYTE byRelatedDriveWay;//触发IO关联的车道号
  5849. BYTE byTestSpeedTimeOut;//测速模式超时时间,单位s
  5850. DWORD dwDistance;//线圈距离,cm
  5851. BYTE byCapSpeed;//测速模式起拍速度,单位km/h
  5852. BYTE bySpeedLimit;//限速值,单位km/h
  5853. BYTE bySnapTimes1; //线圈1抓拍次数,0-不抓拍,非0-连拍次数,最大5次
  5854. BYTE bySnapTimes2; //线圈2抓拍次数,0-不抓拍,非0-连拍次数,最大5次
  5855. WORD wIntervalTime1[MAX_INTERVAL_NUM];//线圈1连拍间隔时间,ms
  5856. WORD wIntervalTime2[MAX_INTERVAL_NUM];//线圈2连拍间隔时间,ms
  5857. BYTE byRes[32];//保留字节
  5858. }NET_DVR_MEASURESPEEDCFG, *LPNET_DVR_MEASURESPEEDCFG;
  5859. //视频参数配置
  5860. typedef struct tagNET_DVR_VIDEOEFFECT
  5861. {
  5862. BYTE byBrightnessLevel; /*0-100*/
  5863. BYTE byContrastLevel; /*0-100*/
  5864. BYTE bySharpnessLevel; /*0-100*/
  5865. BYTE bySaturationLevel; /*0-100*/
  5866. BYTE byHueLevel; /*0-100,(保留)*/
  5867. BYTE byRes[3];
  5868. }NET_DVR_VIDEOEFFECT, *LPNET_DVR_VIDEOEFFECT;
  5869. //增益配置
  5870. typedef struct tagNET_DVR_GAIN
  5871. {
  5872. BYTE byGainLevel; /*增益:0-100*/
  5873. BYTE byGainUserSet; /*用户自定义增益;0-100,对于抓拍机,是CCD模式下的抓拍增益*/
  5874. BYTE byRes[2];
  5875. DWORD dwMaxGainValue;/*最大增益值,单位dB*/
  5876. }NET_DVR_GAIN, *LPNET_DVR_GAIN;
  5877. //白平衡配置
  5878. typedef struct tagNET_DVR_WHITEBALANCE
  5879. {
  5880. BYTE byWhiteBalanceMode; /*0手动白平衡; 1自动白平衡1(范围小); 2 自动白平衡2(范围宽,2200K-15000K);3自动控制3*/
  5881. BYTE byWhiteBalanceModeRGain; /*手动白平衡时有效,手动白平衡 R增益*/
  5882. BYTE byWhiteBalanceModeBGain; /*手动白平衡时有效,手动白平衡 B增益*/
  5883. BYTE byRes[5];
  5884. }NET_DVR_WHITEBALANCE, *LPNET_DVR_WHITEBALANCE;
  5885. //曝光控制
  5886. typedef struct tagNET_DVR_EXPOSURE
  5887. {
  5888. BYTE byExposureMode; /*0 手动曝光 1自动曝光*/
  5889. BYTE byAutoApertureLevel; /* 自动光圈灵敏度, 0-10 */
  5890. BYTE byRes[2];
  5891. DWORD dwVideoExposureSet; /* 自定义视频曝光时间(单位us)*//*注:自动曝光时该值为曝光最慢值*/
  5892. DWORD dwExposureUserSet; /* 自定义曝光时间,在抓拍机上应用时,CCD模式时是抓拍快门速度*/
  5893. DWORD dwRes;
  5894. } NET_DVR_EXPOSURE, *LPNET_DVR_EXPOSURE;
  5895. //宽动态配置
  5896. typedef struct tagNET_DVR_WDR
  5897. {
  5898. BYTE byWDREnabled; /*宽动态:0 dsibale 1 enable 2 auto*/
  5899. BYTE byWDRLevel1; /*0-F*/
  5900. BYTE byWDRLevel2; /*0-F*/
  5901. BYTE byWDRContrastLevel; /*0-100*/
  5902. BYTE byRes[16];
  5903. } NET_DVR_WDR, *LPNET_DVR_WDR;
  5904. //日夜转换功能配置
  5905. typedef struct tagNET_DVR_DAYNIGHT
  5906. {
  5907. BYTE byDayNightFilterType; /*日夜切换:0 day,1 night,2 auto */
  5908. BYTE bySwitchScheduleEnabled; /*0 dsibale 1 enable,(保留)*/
  5909. //模式1(保留)
  5910. BYTE byBeginTime; /*0-100*/
  5911. BYTE byEndTime; /*0-100*/
  5912. //模式2
  5913. BYTE byDayToNightFilterLevel; //0-7
  5914. BYTE byNightToDayFilterLevel; //0-7
  5915. BYTE byDayNightFilterTime;//(60秒)
  5916. BYTE byRes[5];
  5917. } NET_DVR_DAYNIGHT, *LPNET_DVR_DAYNIGHT;
  5918. //Gamma校正
  5919. typedef struct tagNET_DVR_GAMMACORRECT
  5920. {
  5921. BYTE byGammaCorrectionEnabled; /*0 dsibale 1 enable*/
  5922. BYTE byGammaCorrectionLevel; /*0-100*/
  5923. BYTE byRes[6];
  5924. } NET_DVR_GAMMACORRECT, *LPNET_DVR_GAMMACORRECT;
  5925. //背光补偿配置
  5926. typedef struct tagNET_DVR_BACKLIGHT
  5927. {
  5928. BYTE byBacklightMode; /*背光补偿:0 off 1 UP、2 DOWN、3 LEFT、4 RIGHT、5MIDDLE、6自定义*/
  5929. BYTE byBacklightLevel; /*0x0-0xF*/
  5930. BYTE byRes1[2];
  5931. DWORD dwPositionX1; //(X坐标1)
  5932. DWORD dwPositionY1; //(Y坐标1)
  5933. DWORD dwPositionX2; //(X坐标2)
  5934. DWORD dwPositionY2; //(Y坐标2)
  5935. BYTE byRes2[4];
  5936. } NET_DVR_BACKLIGHT, *LPNET_DVR_BACKLIGHT;
  5937. //数字降噪功能
  5938. typedef struct tagNET_DVR_NOISEREMOVE
  5939. {
  5940. BYTE byDigitalNoiseRemoveEnable; /*0-不启用,1-普通模式数字降噪,2-专家模式数字降噪*/
  5941. BYTE byDigitalNoiseRemoveLevel; /*普通模式数字降噪级别:0x0-0xF*/
  5942. BYTE bySpectralLevel; /*专家模式下空域强度:0-100*/
  5943. BYTE byTemporalLevel; /*专家模式下时域强度:0-100*/
  5944. BYTE byRes[4];
  5945. } NET_DVR_NOISEREMOVE, *LPNET_DVR_NOISEREMOVE;
  5946. //CMOS模式下前端镜头配置
  5947. typedef struct tagNET_DVR_CMOSMODCFG
  5948. {
  5949. BYTE byCaptureMod; //抓拍模式:0-抓拍模式1;1-抓拍模式2
  5950. BYTE byBrightnessGate;//亮度阈值
  5951. BYTE byCaptureGain1; //抓拍增益1,0-100
  5952. BYTE byCaptureGain2; //抓拍增益2,0-100
  5953. DWORD dwCaptureShutterSpeed1;//抓拍快门速度1
  5954. DWORD dwCaptureShutterSpeed2;//抓拍快门速度2
  5955. BYTE byRes[4];
  5956. }NET_DVR_CMOSMODECFG, *LPNET_DVR_CMOSMODECFG;
  5957. //前端参数配置
  5958. typedef struct tagNET_DVR_CAMERAPARAMCFG
  5959. {
  5960. DWORD dwSize;
  5961. NET_DVR_VIDEOEFFECT struVideoEffect;/*亮度、对比度、饱和度、锐度、色调配置*/
  5962. NET_DVR_GAIN struGain;/*自动增益*/
  5963. NET_DVR_WHITEBALANCE struWhiteBalance;/*白平衡*/
  5964. NET_DVR_EXPOSURE struExposure; /*曝光控制*/
  5965. NET_DVR_GAMMACORRECT struGammaCorrect;/*Gamma校正*/
  5966. NET_DVR_WDR struWdr;/*宽动态*/
  5967. NET_DVR_DAYNIGHT struDayNight;/*日夜转换*/
  5968. NET_DVR_BACKLIGHT struBackLight;/*背光补偿*/
  5969. NET_DVR_NOISEREMOVE struNoiseRemove;/*数字降噪*/
  5970. BYTE byPowerLineFrequencyMode; /*0-50HZ; 1-60HZ*/
  5971. BYTE byIrisMode; /*0 自动光圈 1手动光圈*/
  5972. BYTE byMirror ; /* 镜像:0 off,1- leftright,2- updown,3-center */
  5973. BYTE byDigitalZoom; /*数字缩放:0 dsibale 1 enable*/
  5974. BYTE byDeadPixelDetect; /*坏点检测,0 dsibale 1 enable*/
  5975. BYTE byBlackPwl;/*黑电平补偿 , 0-255*/
  5976. BYTE byEptzGate;// EPTZ开关变量:0-不启用电子云台,1-启用电子云台
  5977. BYTE byLocalOutputGate;//本地输出开关变量0-本地输出关闭1-本地BNC输出打开 2-HDMI输出关闭
  5978. //20-HDMI_720P50输出开
  5979. //21-HDMI_720P60输出开
  5980. //22-HDMI_1080I60输出开
  5981. //23-HDMI_1080I50输出开
  5982. //24-HDMI_1080P24输出开
  5983. //25-HDMI_1080P25输出开
  5984. //26-HDMI_1080P30输出开
  5985. //27-HDMI_1080P50输出开
  5986. //28-HDMI_1080P60输出开
  5987. BYTE byCoderOutputMode;//编码器fpga输出模式0直通3像素搬家
  5988. BYTE byLineCoding; //是否开启行编码:0-否,1-是
  5989. BYTE byDimmerMode; //调光模式:0-半自动,1-自动
  5990. BYTE byPaletteMode; //调色板:0-白热,1-黑热,2-调色板2,…,8-调色板8
  5991. BYTE byEnhancedMode; //增强方式(探测物体周边):0-不增强,1-1,2-2,3-3,4-4
  5992. BYTE byDynamicContrastEN; //动态对比度增强 0-1
  5993. BYTE byDynamicContrast; //动态对比度 0-100
  5994. BYTE byJPEGQuality; //JPEG图像质量 0-100
  5995. NET_DVR_CMOSMODECFG struCmosModeCfg;//CMOS模式下前端参数配置,镜头模式从能力集获取
  5996. BYTE byFilterSwitch; //滤波开关:0-不启用,1-启用
  5997. BYTE byFocusSpeed; //镜头调焦速度:0-10
  5998. BYTE byAutoCompensationInterval; //定时自动快门补偿:1-120,单位:分钟
  5999. BYTE bySceneMode; //场景模式:0-室外,1-室内
  6000. }NET_DVR_CAMERAPARAMCFG, *LPNET_DVR_CAMERAPARAMCFG;
  6001. //车牌颜色
  6002. typedef enum _VCA_PLATE_COLOR_
  6003. {
  6004. VCA_BLUE_PLATE = 0, //蓝色车牌
  6005. VCA_YELLOW_PLATE, //黄色车牌
  6006. VCA_WHITE_PLATE, //白色车牌
  6007. VCA_BLACK_PLATE //黑色车牌
  6008. }VCA_PLATE_COLOR;
  6009. //车牌类型
  6010. typedef enum _VCA_PLATE_TYPE_
  6011. {
  6012. VCA_STANDARD92_PLATE = 0, //标准民用车与军车
  6013. VCA_STANDARD02_PLATE, //02式民用车牌
  6014. VCA_WJPOLICE_PLATE, //武警车
  6015. VCA_JINGCHE_PLATE, //警车
  6016. STANDARD92_BACK_PLATE, //民用车双行尾牌
  6017. VCA_SHIGUAN_PLATE, //使馆车牌
  6018. VCA_NONGYONG_PLATE, //农用车
  6019. VCA_MOTO_PLATE //摩托车
  6020. }VCA_PLATE_TYPE;
  6021. //车辆信息
  6022. typedef struct tagNET_DVR_VEHICLE_INFO_
  6023. {
  6024. DWORD dwIndex; //车辆序号
  6025. BYTE byVehicleType; //车辆类型
  6026. BYTE byColorDepth; //车身颜色深浅
  6027. BYTE byColor; //车身颜色
  6028. BYTE byRes1; //保留
  6029. WORD wSpeed; //单位km/h
  6030. WORD wLength; //前一辆车的车身长度
  6031. BYTE byIllegalType; //0-正常;1-低速2-超速3-逆行,4-闯红灯
  6032. BYTE byRes2[3]; //保留
  6033. BYTE byCustomInfo[16]; //自定义信息
  6034. BYTE byRes3[16];
  6035. }NET_DVR_VEHICLE_INFO, *LPNET_DVR_VEHICLE_INFO;
  6036. //车牌检测结果
  6037. typedef struct tagNET_DVR_PLATE_RESULT
  6038. {
  6039. DWORD dwSize; //结构长度
  6040. BYTE byResultType; //0-视频识别结果,-图像识别结果
  6041. BYTE byChanIndex; //通道号
  6042. BYTE byRes1[2]; //保留
  6043. DWORD dwRelativeTime; //相对时间点
  6044. BYTE byAbsTime[32]; //绝对时间点,yyyymmddhhmmssxxx,e.g.20090810235959999(毫秒)
  6045. DWORD dwPicLen; //图片长度
  6046. DWORD dwPicPlateLen; //车牌小图片长度
  6047. DWORD dwVideoLen; //录像内容长度
  6048. BYTE byTrafficLight; //0-非红绿灯抓拍,1-绿灯时抓拍;2-红灯时抓拍
  6049. BYTE byPicNum; //连拍的图片序号
  6050. BYTE byDriveChan; //触发车道号
  6051. BYTE byRes2; //保留
  6052. DWORD dwBinPicLen; //二值图长度
  6053. DWORD dwCarPicLen;//近景图长度
  6054. DWORD dwFarCarPicLen; //远景图长度
  6055. BYTE *pBuffer3; //车牌二值图
  6056. BYTE *pBuffer4; //近景图
  6057. BYTE *pBuffer5; //远景图
  6058. BYTE byRes3[8]; //保留
  6059. NET_DVR_PLATE_INFO struPlateInfo; //车牌信息结构
  6060. NET_DVR_VEHICLE_INFO struVehicleInfo; //车辆信息
  6061. BYTE *pBuffer1; // 当上传的是图片,指针指向图片信息,当上传的是视频,指针指向视频信息,如果不想获得图片或视频信息,传NULL(DVS车辆近景图)
  6062. BYTE *pBuffer2; // 当上传的是图片时,指向车牌图片的指针(DVS车牌彩图)
  6063. }NET_DVR_PLATE_RESULT, *LPNET_DVR_PLATE_RESULT;
  6064. //后面紧跟图片数据和录像数据,只传一种,图片数据为场景图片+车牌小图片
  6065. //车牌报警NET_DVR_PLATE_RESULT
  6066. #define COMM_UPLOAD_PLATE_RESULT 0x2800 //上传车牌信息
  6067. //图像叠加信息配置
  6068. typedef struct tagNET_DVR_IMAGEOVERLAYCFG
  6069. {
  6070. DWORD dwSize;
  6071. BYTE byOverlayInfo;//叠加使能开关,0-不叠加,1-叠加
  6072. BYTE byOverlayMonitorInfo;//是否叠加监测点信息,0-不叠加,1-叠加
  6073. BYTE byOverlayTime;//是否叠加时间,0-不叠加,1-叠加
  6074. BYTE byOverlaySpeed;//是否叠加速度,0-不叠加,1-叠加
  6075. BYTE byOverlaySpeeding;//是否叠加超速比例,0-不叠加,1-叠加
  6076. BYTE byOverlayLimitFlag;//是否叠加限速标志,0-不叠加,1-叠加
  6077. BYTE byOverlayPlate;//是否叠加车牌,0-不叠加,1-叠加
  6078. BYTE byOverlayColor;//是否叠加车身颜色,0-不叠加,1-叠加
  6079. BYTE byOverlayLength;//是否叠加车长,0-不叠加,1-叠加
  6080. BYTE byOverlayType;//是否叠加车型,0-不叠加,1-叠加
  6081. BYTE byOverlayColorDepth;//是否叠加车身颜色深浅,0-不叠加,1-叠加
  6082. BYTE byOverlayDriveChan;//是否叠加车道,0-不叠加,1-叠加
  6083. BYTE byOverlayMilliSec; //叠加毫秒信息 0-不叠加,1-叠加
  6084. BYTE byOverlayIllegalInfo; //叠加违章信息 0-不叠加,1-叠加
  6085. BYTE byOverlayRedOnTime; //叠加红灯已亮时间 0-不叠加,1-叠加
  6086. BYTE byRes1[5]; //保留
  6087. BYTE byMonitorInfo1[32]; //监测点信息1
  6088. BYTE byMonitorInfo2[44]; //检测点信息2
  6089. BYTE byRes2[52]; //保留
  6090. }NET_DVR_IMAGEOVERLAYCFG, *LPNET_DVR_IMAGEOVERLAYCFG;
  6091. //单IO触发抓拍功能配置
  6092. typedef struct tagNET_DVR_SNAPCFG
  6093. {
  6094. DWORD dwSize;
  6095. BYTE byRelatedDriveWay;//触发IO关联的车道号
  6096. BYTE bySnapTimes; //线圈抓拍次数,0-不抓拍,非0-连拍次数,目前最大5次
  6097. WORD wSnapWaitTime; //抓拍等待时间,单位ms,取值范围[0,60000]
  6098. WORD wIntervalTime[MAX_INTERVAL_NUM];//连拍间隔时间,ms
  6099. BYTE byRes2[24];//保留字节
  6100. }NET_DVR_SNAPCFG, *LPNET_DVR_SNAPCFG;
  6101. typedef struct tagNET_DVR_SNAP_ABILITY
  6102. {
  6103. DWORD dwSize;
  6104. BYTE byIoInNum;//IO输入口数
  6105. BYTE byIoOutNum;//IO输出口数
  6106. BYTE bySingleSnapNum;//单IO触发组数
  6107. BYTE byLightModeArrayNum;//红绿灯模式组数
  6108. BYTE byMeasureModeArrayNum;//测速模式组数
  6109. BYTE byPlateEnable; //车牌识别能力
  6110. BYTE byLensMode;//镜头模式0-CCD,1-CMOS
  6111. BYTE byRes[29];
  6112. } NET_DVR_SNAP_ABILITY, *LPNET_DVR_SNAP_ABILITY;
  6113. #define SNAPCAMERA_ABILITY 0x300 //抓拍机能力集
  6114. typedef struct tagNET_DVR_TRIGCOORDINATE
  6115. {
  6116. WORD wTopLeftX; /*线圈左上角横坐标(2个字节)*/
  6117. WORD wTopLeftY; /*线圈左上角纵坐标(2个字节)*/
  6118. WORD wWdith; /*线圈宽度(2个字节)*/
  6119. WORD wHeight; /*线圈高度(2个字节)*/
  6120. } NET_DVR_TRIGCOORDINATE, *LPNET_DVR_TRIGCOORDINATE;
  6121. typedef enum _PROVINCE_CITY_IDX_
  6122. {
  6123. ANHUI_PROVINCE = 0, //安徽
  6124. AOMEN_PROVINCE = 1, //澳门
  6125. BEIJING_PROVINCE = 2, //北京
  6126. CHONGQING_PROVINCE = 3, //重庆
  6127. FUJIAN_PROVINCE = 4, //福建
  6128. GANSU_PROVINCE = 5, //甘肃
  6129. GUANGDONG_PROVINCE = 6, //广东
  6130. GUANGXI_PROVINCE = 7, //广西
  6131. GUIZHOU_PROVINCE = 8, //贵州
  6132. HAINAN_PROVINCE = 9, //海南
  6133. HEBEI_PROVINCE = 10, //河北
  6134. HENAN_PROVINCE = 11, //河南
  6135. HEILONGJIANG_PROVINCE = 12, //黑龙江
  6136. HUBEI_PROVINCE = 13, //湖北
  6137. HUNAN_PROVINCE = 14, //湖南
  6138. JILIN_PROVINCE = 15, //吉林
  6139. JIANGSU_PROVINCE = 16, //江苏
  6140. JIANGXI_PROVINCE = 17, //江西
  6141. LIAONING_PROVINCE = 18, //辽宁
  6142. NEIMENGGU_PROVINCE = 19, //内蒙古
  6143. NINGXIA_PROVINCE = 20, //宁夏
  6144. QINGHAI_PROVINCE = 21, //青海
  6145. SHANDONG_PROVINCE = 22, //山东
  6146. SHANXI_JIN_PROVINCE = 23, //山西
  6147. SHANXI_SHAN_PROVINCE = 24, //陕西
  6148. SHANGHAI_PROVINCE = 25, //上海
  6149. SICHUAN_PROVINCE = 26, //四川
  6150. TAIWAN_PROVINCE = 27, //台湾
  6151. TIANJIN_PROVINCE = 28, //天津
  6152. XIZANG_PROVINCE = 29, //西藏
  6153. XIANGGANG_PROVINCE = 30, //香港
  6154. XINJIANG_PROVINCE = 31, //新疆
  6155. YUNNAN_PROVINCE = 32, //云南
  6156. ZHEJIANG_PROVINCE = 33 //浙江
  6157. }PROVINCE_CITY_IDX;
  6158. typedef struct tagNET_DVR_GEOGLOCATION
  6159. {
  6160. int iRes[2]; /*保留*/
  6161. DWORD dwCity; /*城市,详见PROVINCE_CITY_IDX */
  6162. }NET_DVR_GEOGLOCATION, *LPNET_DVR_GEOGLOCATION;
  6163. //场景模式
  6164. typedef enum _SCENE_MODE_
  6165. {
  6166. UNKOWN_SCENE_MODE = 0, //未知场景模式
  6167. HIGHWAY_SCENE_MODE = 1, //高速场景模式
  6168. SUBURBAN_SCENE_MODE = 2, //郊区场景模式(保留)
  6169. URBAN_SCENE_MODE = 3, //市区场景模式
  6170. TUNNEL_SCENE_MODE = 4 //隧道场景模式(保留)
  6171. }SCENE_MODE;
  6172. typedef struct tagNET_DVR_VTPARAM
  6173. {
  6174. DWORD dwSize;
  6175. BYTE byEnable; /* 是否使能虚拟线圈,0-不使用,1-使用*/
  6176. BYTE byIsDisplay; /* 是否显示虚拟线圈,0-不显示,1-显示*/
  6177. BYTE byLoopPos; //晚间触发线圈的偏向:0-向上,1-向下
  6178. BYTE bySnapGain; /*抓拍增益*/
  6179. DWORD dwSnapShutter; /*抓拍快门速度*/
  6180. NET_DVR_TRIGCOORDINATE struTrigCoordinate; //保留
  6181. NET_DVR_TRIGCOORDINATE struRes[MAX_VL_NUM];
  6182. BYTE byTotalLaneNum;/*视频触发的车道数1*/
  6183. BYTE byPolarLenType; /*偏振镜类型,0:不加偏振镜;1:加施耐德偏振镜。*/
  6184. BYTE byDayAuxLightMode; /*白天辅助照明模式,0:无辅助照明;1:LED灯照明;2:闪光灯照明*/
  6185. BYTE byLoopToCalRoadBright; /*用以计算路面亮度的车道(虚拟线圈)*/
  6186. BYTE byRoadGrayLowTh; /*路面亮度低阈值初始化值1*/
  6187. BYTE byRoadGrayHighTh; /*路面亮度高阈值初始化值140*/
  6188. WORD wLoopPosBias; /*晚间触发线圈位移30*/
  6189. DWORD dwHfrShtterInitValue; /*连续图像曝光时间的初始值2000*/
  6190. DWORD dwSnapShtterInitValue; /*抓拍图像曝光时间的初始值500*/
  6191. DWORD dwHfrShtterMaxValue; /*连续图像曝光时间的最大值20000*/
  6192. DWORD dwSnapShtterMaxValue; /*抓拍图像曝光时间的最大值1500*/
  6193. DWORD dwHfrShtterNightValue; /*晚间连续图像曝光时间的设置值3000*/
  6194. DWORD dwSnapShtterNightMinValue; /*晚间抓拍图像曝光时间的最小值3000*/
  6195. DWORD dwSnapShtterNightMaxValue; /*晚间抓拍图像曝光时间的最大值5000*/
  6196. DWORD dwInitAfe; /*增益的初始值200*/
  6197. DWORD dwMaxAfe; /*增益的最大值400*/
  6198. WORD wResolutionX;/* 设备当前分辨率宽*/
  6199. WORD wResolutionY;/* 设备当前分辨率高*/
  6200. DWORD dwGainNightValue; /*晚间增益,默认值70*/
  6201. DWORD dwSceneMode; /*场景模式, 详见SCENE_MODE */
  6202. DWORD dwRecordMode; /*录像标志:0-不录像,1-录像*/
  6203. NET_DVR_GEOGLOCATION struGeogLocation; /*地址位置*/
  6204. BYTE byTrigFlag[MAX_VL_NUM]; /*触发标志,0-车头触发;1-车尾触发;2-车头/车尾都触发*/
  6205. BYTE byTrigSensitive[MAX_VL_NUM]; /*触发灵敏度,1-100*/
  6206. BYTE byRes2[62];
  6207. }NET_DVR_VTPARAM, *LPNET_DVR_VTPARAM;
  6208. typedef struct tagNET_DVR_SNAPENABLECFG
  6209. {
  6210. DWORD dwSize;
  6211. BYTE byPlateEnable;//是否支持车牌识别,0-不支持,1-支持
  6212. BYTE byRes1[2]; //保留
  6213. BYTE byFrameFlip; //图像是否翻转 0-不翻转,1-翻转
  6214. WORD wFlipAngle; //图像翻转角度 0,90,180,270
  6215. WORD wLightPhase; //相位,取值范围[0, 360]
  6216. BYTE byLightSyncPower; //是否信号灯电源同步,0-不同步;1-同步
  6217. BYTE byFrequency; //信号频率
  6218. BYTE byUploadSDEnable; //是否自动上传SD图片,0-否;1-是
  6219. BYTE byPlateMode; //识别模式参数:0-视频触发,1-外部触发
  6220. BYTE byRes[60]; //保留
  6221. }NET_DVR_SNAPENABLECFG, *LPNET_DVR_SNAPENABLECFG;
  6222. /* ftp 上传参数*/
  6223. typedef struct
  6224. {
  6225. DWORD dwSize;
  6226. DWORD dwEnableFTP; /*是否启动ftp上传功能*/
  6227. char sFTPIP[16]; /*ftp 服务器*/
  6228. DWORD dwFTPPort; /*ftp端口*/
  6229. BYTE sUserName[NAME_LEN]; /*用户名*/
  6230. BYTE sPassword[PASSWD_LEN]; /*密码*/
  6231. DWORD dwDirLevel; /*0 = 不使用目录结构,直接保存在根目录,1 = 使用1级目录,2=使用2级目录*/
  6232. WORD wTopDirMode; /* 一级目录,0x1 = 使用设备名,0x2 = 使用设备号,0x3 = 使用设备ip地址,0x4=使用监测点,0x5=使用时间(年月)*/
  6233. WORD wSubDirMode; /* 二级目录,0x1 = 使用通道名,0x2 = 使用通道号,,0x3=使用时间(年月日),0x4=使用车道号*/
  6234. BYTE byRes[24];
  6235. }NET_DVR_FTPCFG, *LPNET_DVR_FTPCFG;
  6236. /*可用来命名图片的相关元素 */
  6237. #define PICNAME_ITEM_DEV_NAME 1 /*设备名*/
  6238. #define PICNAME_ITEM_DEV_NO 2 /*设备号*/
  6239. #define PICNAME_ITEM_DEV_IP 3 /*设备IP*/
  6240. #define PICNAME_ITEM_CHAN_NAME 4 /*通道名*/
  6241. #define PICNAME_ITEM_CHAN_NO 5 /*通道号*/
  6242. #define PICNAME_ITEM_TIME 6 /*时间*/
  6243. #define PICNAME_ITEM_CARDNO 7 /*卡号*/
  6244. #define PICNAME_ITEM_PLATE_NO 8 /*车牌号码*/
  6245. #define PICNAME_ITEM_PLATE_COLOR 9 /*车牌颜色*/
  6246. #define PICNAME_ITEM_CAR_CHAN 10 /*车道号*/
  6247. #define PICNAME_ITEM_CAR_SPEED 11 /*车辆速度*/
  6248. #define PICNAME_ITEM_CARCHAN 12 /*监测点*/
  6249. #define PICNAME_ITEM_PIC_NUMBER 13 //图片序号
  6250. #define PICNAME_MAXITEM 15
  6251. //图片命名
  6252. typedef struct
  6253. {
  6254. BYTE byItemOrder[PICNAME_MAXITEM]; /* 桉数组定义文件命名的规则 */
  6255. BYTE byDelimiter; /*分隔符,一般为'_'*/
  6256. }NET_DVR_PICTURE_NAME, *LPNET_DVR_PICTURE_NAME;
  6257. /* 串口抓图设置*/
  6258. typedef struct
  6259. {
  6260. BYTE byStrFlag; /*串口数据开始符*/
  6261. BYTE byEndFlag; /*结束符*/
  6262. WORD wCardIdx; /*卡号相对起始位*/
  6263. DWORD dwCardLen; /*卡号长度*/
  6264. DWORD dwTriggerPicChans; /*所触发的通道号,按位,从第1位开始计,即0x2表示第一通道*/
  6265. }NET_DVR_SERIAL_CATCHPIC_PARA, *LPNET_DVR_SERIAL_CATCHPIC_PARA;
  6266. //DVR抓图参数配置(基线)
  6267. typedef struct
  6268. {
  6269. DWORD dwSize;
  6270. NET_DVR_JPEGPARA struJpegPara[MAX_CHANNUM_V30]; /*每个通道的图像参数*/
  6271. WORD wBurstMode; /*抓图方式,按位设置.0x1=报警输入触发,0x2=移动侦测触发 0x4=232触发,0x8=485触发,0x10=网络触发*/
  6272. WORD wUploadInterval; /*图片上传间隔(秒)[0,65535]*/
  6273. NET_DVR_PICTURE_NAME struPicNameRule; /* 图片命名规则 */
  6274. BYTE bySaveToHD; /*是否保存到硬盘*/
  6275. BYTE byRes1;
  6276. WORD wCatchInterval; /*抓图间隔(毫秒)[0,65535]*/
  6277. BYTE byRes2[12];
  6278. NET_DVR_SERIAL_CATCHPIC_PARA struRs232Cfg;
  6279. NET_DVR_SERIAL_CATCHPIC_PARA struRs485Cfg;
  6280. DWORD dwTriggerPicTimes[MAX_CHANNUM_V30]; /* 每个通道一次触发拍照次数 */
  6281. DWORD dwAlarmInPicChanTriggered[MAX_ALARMIN_V30]; /*报警触发抓拍通道,按位设置,从第1位开始*/
  6282. }NET_DVR_JPEGCFG_V30, *LPNET_DVR_JPEGCFG_V30;
  6283. //抓拍触发请求结构(保留)
  6284. typedef struct tagNET_DVR_MANUALSNAP
  6285. {
  6286. BYTE byRes[24]; //保留
  6287. }NET_DVR_MANUALSNAP, *LPNET_DVR_MANUALSNAP;
  6288. typedef struct tagNET_DVR_SPRCFG
  6289. {
  6290. DWORD dwSize;
  6291. BYTE byDefaultCHN[MAX_CHJC_NUM]; /*设备运行省份的汉字简写*/
  6292. BYTE byPlateOSD; /*0:不发送车牌彩色图,1:发送车牌彩色图*/
  6293. BYTE bySendJPEG1; /*0-不传送近景JPEG图,1-传送近景JPEG图*/
  6294. BYTE bySendJPEG2; /*0-不传送远景JPEG图,1-传送远景JPEG图*/
  6295. WORD wDesignedPlateWidth; /*车牌设计宽度*/
  6296. BYTE byTotalLaneNum; /*识别的车道数*/
  6297. BYTE byRes1; /*保留*/
  6298. WORD wRecognizedLane; /*识别的车道号,按位表示,bit0表示车道1是否识别,0-不识别,1-识别*/
  6299. NET_VCA_RECT struLaneRect[MAX_LANERECT_NUM]; /*车道识别区域*/
  6300. DWORD dwRecogMode; /*识别的类型,
  6301. bit0-背向识别:0-正向车牌识别,1-背向识别(尾牌识别) ;
  6302. bit1-大车牌识别或小车牌识别:0-小车牌识别,1-大车牌识别 ;
  6303. bit2-车身颜色识别:0-不采用车身颜色识别,在背向识别或小车牌识别时禁止启用,1-车身颜色识别;
  6304. bit3-农用车识别:0-不采用农用车识别,1-农用车识别;
  6305. bit4-模糊识别:0-不采用模糊识别,1-模糊识别;
  6306. bit5-帧定位或场定位:0-帧定位,1-场定位;
  6307. bit6-帧识别或场识别:0-帧识别,1-场识别;
  6308. bit7-晚上或白天:0-白天,1-晚上 */
  6309. BYTE bySendPRRaw; //是否发送原图:0-不发送,1-发送
  6310. BYTE bySendBinImage; //是否发送车牌二值图:0-不发送,1-发送
  6311. BYTE byDelayCapture; //延时抓拍控制,单位:帧
  6312. BYTE byUseLED; //使用LED控制,0-否,1-是
  6313. BYTE byRes2[68]; //保留
  6314. }NET_DVR_SPRCFG, *LPNET_DVR_SPRCFG;
  6315. typedef struct tagNET_DVR_PLCCFG
  6316. {
  6317. DWORD dwSize;
  6318. BYTE byPlcEnable; //是否启用车牌亮度补偿(默认启用):0-关闭,1-启用
  6319. BYTE byPlateExpectedBright; //车牌的预期亮度(默认值50), 范围[0, 100]
  6320. BYTE byRes1[2]; //保留
  6321. BYTE byTradeoffFlash; //是否考虑闪光灯的影响: 0 - 否; 1 - 是(默认);
  6322. //使用闪光灯补光时, 如果考虑减弱闪光灯的亮度增强效应, 则需要设为1;否则为0
  6323. BYTE byCorrectFactor; //纠正系数, 范围[0, 100], 默认值50 (在tradeoff_flash切换时,恢复默认值)
  6324. WORD wLoopStatsEn; //是否该线圈的亮度,按位表示,0-不统计,1-统计
  6325. BYTE byRes[20];
  6326. }NET_DVR_PLCCFG, *LPNET_DVR_PLCCFG;
  6327. typedef struct tagNET_DVR_DEVICESTATECFG
  6328. {
  6329. DWORD dwSize;
  6330. WORD wPreviewNum; //预览连接个数
  6331. WORD wFortifyLinkNum; //布防连接个数
  6332. NET_DVR_IPADDR struPreviewIP[MAX_LINK]; //预览的用户IP地址
  6333. NET_DVR_IPADDR struFortifyIP[MAX_FORTIFY_NUM]; //布防连接的用户IP地址
  6334. 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; 14-15; 15-18; 16-22;
  6335. 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, 27-HD1080i, 28-2560*1920, 29-1600*304, 30-2048*1536, 31-2448*2048
  6336. BYTE bySnapResolution; //抓拍分辨率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, 27-HD1080i, 28-2560*1920, 29-1600*304, 30-2048*1536, 31-2448*2048
  6337. BYTE byStreamType; //传输类型:0-主码流;1-子码流
  6338. BYTE byTriggerType; //触发模式:0-视频触发;1-普通触发
  6339. DWORD dwSDVolume; //SD卡容量
  6340. DWORD dwSDFreeSpace; //SD卡剩余空间
  6341. BYTE byDetectorState[MAX_DRIVECHAN_NUM][MAX_COIL_NUM]; //车检器状态:0-未使用;1-正常;2-异常
  6342. BYTE byDetectorLinkState; //车检器连接状态:0-未连接;1-连接
  6343. BYTE byRes2[127]; //保留
  6344. }NET_DVR_DEVICESTATECFG, *LPNET_DVR_DEVICESTATECFG;
  6345. typedef struct tagNET_DVR_POSTEPOLICECFG
  6346. {
  6347. DWORD dwSize;
  6348. DWORD dwDistance;//线圈距离,单位cm,取值范围[0,20000]
  6349. DWORD dwLightChan[MAX_SIGNALLIGHT_NUM]; //信号灯通道号
  6350. BYTE byCapSpeed;//标志限速,单位km/h,取值范围[0,255]
  6351. BYTE bySpeedLimit;//限速值,单位km/h,取值范围[0,255]
  6352. BYTE byTrafficDirection;//车流方向,0-由东向西,1-由西向东,2-由南向北,3-由北向南
  6353. BYTE byRes1; //保留
  6354. WORD wLoopPreDist; /*触发延迟距离 ,单位:分米*/
  6355. WORD wTrigDelay; /*触发硬延时时间 ,单位:毫秒*/
  6356. BYTE byRes[124];//保留字节
  6357. }NET_DVR_POSTEPOLICECFG, *LPNET_DVR_POSTEPOLICECFG;
  6358. NET_DVR_API BOOL __stdcall NET_DVR_ContinuousShoot(LONG lUserID, LPNET_DVR_SNAPCFG lpInter);
  6359. /***************************** end *********************************************/
  6360. #define IPC_PROTOCOL_NUM 50 //ipc 协议最大个数
  6361. //协议类型
  6362. typedef struct tagNET_DVR_PROTO_TYPE
  6363. {
  6364. DWORD dwType; /*ipc协议值*/
  6365. BYTE byDescribe[DESC_LEN]; /*协议描述字段*/
  6366. }NET_DVR_PROTO_TYPE, LPNET_DVR_PROTO_TYPE;
  6367. //协议列表
  6368. typedef struct tagNET_DVR_IPC_PROTO_LIST
  6369. {
  6370. DWORD dwSize;
  6371. DWORD dwProtoNum; /*有效的ipc协议数目*/
  6372. NET_DVR_PROTO_TYPE struProto[IPC_PROTOCOL_NUM]; /*有效的ipc协议*/
  6373. BYTE byRes[8];
  6374. }NET_DVR_IPC_PROTO_LIST, *LPNET_DVR_IPC_PROTO_LIST;
  6375. //智能搜索参数
  6376. typedef struct tagNET_DVR_SMART_SEARCH_PARAM
  6377. {
  6378. BYTE byChan; //通道号
  6379. BYTE byRes1[3];
  6380. NET_DVR_TIME struStartTime; //录像开始的时间
  6381. NET_DVR_TIME struEndTime; //录像停止的时间
  6382. BYTE byMotionScope[64][96]; //侦测区域,0-96位,表示64行,共有96*64个小宏块,为1表示是移动侦测区域,0-表示不是
  6383. BYTE bySensitivity; //搜索灵敏度,1 >80% 2 40%~80% 3 1%~40%
  6384. BYTE byRes2[11];
  6385. }NET_DVR_SMART_SEARCH_PARAM, *LPNET_DVR_SMART_SEARCH_PARAM;
  6386. typedef struct tagNET_DVR_SMART_SEARCH_RET
  6387. {
  6388. NET_DVR_TIME struStartTime; //移动侦测报警开始的时间
  6389. NET_DVR_TIME struEndTime; //事件停止的时间
  6390. BYTE byRes[64];
  6391. }NET_DVR_SMART_SEARCH_RET, *LPNET_DVR_SMART_SEARCH_RET;
  6392. // IPSAN 文件目录查找
  6393. typedef struct tagNET_DVR_IPSAN_SERACH_PARAM
  6394. {
  6395. NET_DVR_IPADDR struIP; // IPSAN IP地址
  6396. WORD wPort; // IPSAN 端口
  6397. BYTE byRes[10]; // 保留字节
  6398. }NET_DVR_IPSAN_SERACH_PARAM, *LPNET_DVR_IPSAN_SERACH_PARAM;
  6399. typedef struct tagNET_DVR_IPSAN_SERACH_RET
  6400. {
  6401. BYTE byDirectory[128]; // 返回的文件目录
  6402. BYTE byRes[20];
  6403. }NET_DVR_IPSAN_SERACH_RET, *LPNET_DVR_IPSAN_SERACH_RET;
  6404. //DVR设备参数
  6405. typedef struct
  6406. {
  6407. DWORD dwSize;
  6408. BYTE sDVRName[NAME_LEN]; //DVR名称
  6409. DWORD dwDVRID; //DVR ID,用于遥控器 //V1.4(0-99), V1.5(0-255)
  6410. DWORD dwRecycleRecord; //是否循环录像,0:不是; 1:是
  6411. //以下不可更改
  6412. BYTE sSerialNumber[SERIALNO_LEN]; //序列号
  6413. DWORD dwSoftwareVersion; //软件版本号,高16位是主版本,低16位是次版本
  6414. DWORD dwSoftwareBuildDate; //软件生成日期,0xYYYYMMDD
  6415. DWORD dwDSPSoftwareVersion; //DSP软件版本,高16位是主版本,低16位是次版本
  6416. DWORD dwDSPSoftwareBuildDate; // DSP软件生成日期,0xYYYYMMDD
  6417. DWORD dwPanelVersion; // 前面板版本,高16位是主版本,低16位是次版本
  6418. DWORD dwHardwareVersion; // 硬件版本,高16位是主版本,低16位是次版本
  6419. BYTE byAlarmInPortNum; //DVR报警输入个数
  6420. BYTE byAlarmOutPortNum; //DVR报警输出个数
  6421. BYTE byRS232Num; //DVR 232串口个数
  6422. BYTE byRS485Num; //DVR 485串口个数 --
  6423. BYTE byNetworkPortNum; //网络口个数
  6424. BYTE byDiskCtrlNum; //DVR 硬盘控制器个数
  6425. BYTE byDiskNum; //DVR 硬盘个数
  6426. BYTE byDVRType; //DVR类型, 1:DVR 2:ATM DVR 3:DVS ......--
  6427. BYTE byChanNum; //DVR 通道个数
  6428. BYTE byStartChan; //起始通道号,例如DVS-1,DVR - 1
  6429. BYTE byDecordChans; //DVR 解码路数
  6430. BYTE byVGANum; //VGA口的个数 --
  6431. BYTE byUSBNum; //USB口的个数
  6432. BYTE byAuxoutNum; //辅口的个数
  6433. BYTE byAudioNum; //语音口的个数
  6434. BYTE byIPChanNum; //最大数字通道数 --
  6435. BYTE byZeroChanNum; //零通道编码个数
  6436. BYTE bySupport; //能力,位与结果为0表示不支持,1表示支持,
  6437. //bySupport & 0x1, 表示是否支持智能搜索
  6438. //bySupport & 0x2, 表示是否支持备份
  6439. //bySupport & 0x4, 表示是否支持压缩参数能力获取
  6440. //bySupport & 0x8, 表示是否支持多网卡
  6441. //bySupport & 0x10, 表示支持远程SADP
  6442. //bySupport & 0x20, 表示支持Raid卡功能
  6443. //bySupport & 0x40, 表示支持IPSAN搜索
  6444. //bySupport & 0x80, 表示支持rtp over rtsp
  6445. BYTE byEsataUseage; //Esata的默认用途,0-默认备份,1-默认录像
  6446. BYTE byIPCPlug; //0-关闭即插即用,1-打开即插即用
  6447. BYTE byStorageMode; //0-盘组模式,1-磁盘配额, 2抽帧模式
  6448. BYTE bySupport1; //能力,位与结果为0表示不支持,1表示支持
  6449. //bySupport1 & 0x1, 支持 SNMP v30
  6450. //bySupport1 & 0x2, 支持区分回放和下载
  6451. WORD wDevType;//设备型号
  6452. BYTE byDevTypeName[24];//设备型号名称
  6453. BYTE byRes2[16]; //保留
  6454. }NET_DVR_DEVICECFG_V40, *LPNET_DVR_DEVICECFG_V40;
  6455. #define MAX_ZEROCHAN_NUM 16
  6456. //零通道压缩配置参数
  6457. typedef struct tagNET_DVR_ZEROCHANCFG
  6458. {
  6459. DWORD dwSize; //结构长度
  6460. BYTE byEnable; //0-停止零通道编码,1-表示启用零通道编码
  6461. BYTE byRes1[3]; //保留
  6462. 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
  6463. // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
  6464. //最高位(31位)置成1表示是自定义码流, 0-30位表示码流值(MIN-32K MAX-8192K)。
  6465. 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;
  6466. BYTE byRes2[32]; //保留
  6467. }NET_DVR_ZEROCHANCFG, *LPNET_DVR_ZEROCHANCFG;
  6468. //零通道缩放参数
  6469. typedef struct tagNET_DVR_ZERO_ZOOMCFG
  6470. {
  6471. DWORD dwSize; //结构长度
  6472. NET_VCA_POINT struPoint; //画面中的坐标点
  6473. BYTE byState; //现在的状态,0-缩小,1-放大
  6474. BYTE byPreviewNumber; //预览数目,0-1画面,1-4画面,2-9画面,3-16画面 该参数只读
  6475. BYTE byPreviewSeq[MAX_WINDOW_V30];//画面通道信息 该参数只读
  6476. BYTE byRes[30]; //保留
  6477. }NET_DVR_ZERO_ZOOMCFG, *LPNET_DVR_ZERO_ZOOMCFG;
  6478. #define DESC_LEN_64 64
  6479. typedef struct tagNET_DVR_SNMPCFG
  6480. {
  6481. DWORD dwSize; //结构长度
  6482. BYTE byEnable; //0-禁用SNMP,1-表示启用SNMP
  6483. BYTE byRes1[3]; //保留
  6484. WORD wVersion; //snmp 版本 v1 = 1, v2 =2, v3 =3,设备目前不支持 v3
  6485. WORD wServerPort; //snmp消息接收端口,默认 161
  6486. BYTE byReadCommunity[NAME_LEN]; //读共同体,最多31,默认"public"
  6487. BYTE byWriteCommunity[NAME_LEN];//写共同体,最多31 字节,默认 "private"
  6488. BYTE byTrapHostIP [DESC_LEN_64]; //自陷主机ip地址描述,支持IPV4 IPV6和域名描述
  6489. WORD wTrapHostPort; // trap主机端口
  6490. BYTE byRes2[102]; // 保留
  6491. }NET_DVR_SNMPCFG, *LPNET_DVR_SNMPCFG;
  6492. typedef struct tagNET_DVR_SNMPv3_USER
  6493. {
  6494. BYTE byUserName[NAME_LEN]; // 用户名
  6495. DWORD dwSecLevel; // 安全级别 1-无校验 2-无授权校验 3-授权校验
  6496. DWORD dwAuthtype; // 认证类型 0-MD5认证 1-SHA认证
  6497. BYTE byAuthpass[PASSWD_LEN]; // 认证密码
  6498. BYTE byPrivpass[PASSWD_LEN]; // 加密密码
  6499. }NET_DVR_SNMPv3_USER, *LPNET_DVR_SNMPv3_USER;
  6500. // snmpv30
  6501. typedef struct tagNET_DVR_SNMPCFG_V30
  6502. {
  6503. DWORD dwSize; //结构长度
  6504. BYTE byEnable; //0-禁用SNMP,1-表示启用SNMP
  6505. BYTE byRes1[3]; //保留
  6506. WORD wVersion; //snmp 版本 v1 = 1, v2 = 2, v3 = 3
  6507. WORD wServerPort; //snmp消息接收端口,默认 161
  6508. BYTE byReadCommunity[NAME_LEN]; //读共同体,最多31,默认"public"
  6509. BYTE byWriteCommunity[NAME_LEN];//写共同体,最多31 字节,默认 "private"
  6510. BYTE byTrapHostIP [DESC_LEN_64]; //自陷主机ip地址描述,支持IPV4 IPV6和域名描述
  6511. WORD wTrapHostPort; // trap主机端口
  6512. BYTE byRes2[2]; // 保留
  6513. NET_DVR_SNMPv3_USER struRWUser; // 读写用户
  6514. NET_DVR_SNMPv3_USER struROUser; // 只读用户
  6515. BYTE byRes3[32];
  6516. }NET_DVR_SNMPCFG_V30, *LPNET_DVR_SNMPCFG_V30;
  6517. #define PROCESSING 0 //正在处理
  6518. #define PROCESS_SUCCESS 100 //过程完成
  6519. #define PROCESS_EXCEPTION 400 //过程异常
  6520. #define PROCESS_FAILED 500 //过程失败
  6521. #define SOFTWARE_VERSION_LEN 48
  6522. typedef struct tagNET_DVR_SADPINFO
  6523. {
  6524. NET_DVR_IPADDR struIP; // 设备IP地址
  6525. WORD wPort; // 设备端口号
  6526. WORD wFactoryType; // 设备厂家类型
  6527. char chSoftwareVersion[SOFTWARE_VERSION_LEN];
  6528. char chSerialNo[16]; // 序列号
  6529. WORD wEncCnt; // 编码通道个数
  6530. BYTE byMACAddr[MACADDR_LEN]; // MAC 地址
  6531. NET_DVR_IPADDR struSubDVRIPMask; // DVR IP地址掩码
  6532. NET_DVR_IPADDR struGatewayIpAddr; // 网关
  6533. NET_DVR_IPADDR struDnsServer1IpAddr; /* 域名服务器1的IP地址 */
  6534. NET_DVR_IPADDR struDnsServer2IpAddr; /* 域名服务器2的IP地址 */
  6535. BYTE byDns;
  6536. BYTE byDhcp;
  6537. BYTE byRes[158]; // 保留字节
  6538. }NET_DVR_SADPINFO, *LPNET_DVR_SADPINFO;
  6539. #define MAX_SADP_NUM 256 // 搜索到设备最大数目
  6540. typedef struct tagNET_DVR_SADPINFO_LIST
  6541. {
  6542. DWORD dwSize; // 结构大小
  6543. WORD wSadpNum; // 搜索到设备数目
  6544. BYTE byRes[6]; // 保留字节
  6545. NET_DVR_SADPINFO struSadpInfo[MAX_SADP_NUM]; // 搜索
  6546. }NET_DVR_SADPINFO_LIST, *LPNET_DVR_SADPINFO_LIST;
  6547. typedef struct tagNET_DVR_SADP_VERIFY
  6548. {
  6549. char chPassword[PASSWD_LEN];
  6550. NET_DVR_IPADDR struOldIP;
  6551. WORD wOldPort;
  6552. BYTE byRes[62];
  6553. }NET_DVR_SADP_VERIFY, *LPNET_DVR_SADP_VERIFY;
  6554. /*******************************备份接口 begin********************************/
  6555. //获取备份设备信息接口定义
  6556. #define DESC_LEN_32 32 //描述字长度
  6557. #define MAX_NODE_NUM 256 //节点个数
  6558. typedef struct tagNET_DVR_DESC_NODE
  6559. {
  6560. int iValue;
  6561. BYTE byDescribe[DESC_LEN_32]; //描述字段
  6562. DWORD dwFreeSpace; //获取磁盘列表专用,单位为M
  6563. BYTE byRes[12]; //保留
  6564. }NET_DVR_DESC_NODE, *LPNET_DVR_DESC_NODE;
  6565. typedef struct tagNET_DVR_DISKABILITY_LIST
  6566. {
  6567. DWORD dwSize; //结构长度
  6568. DWORD dwNodeNum; //能力结点个数
  6569. NET_DVR_DESC_NODE struDescNode[MAX_NODE_NUM]; //描述参数
  6570. }NET_DVR_DISKABILITY_LIST, *LPNET_DVR_DISKABILITY_LIST;
  6571. //备份进度列表
  6572. #define BACKUP_SUCCESS 100 //备份完成
  6573. #define BACKUP_CHANGE_DEVICE 101 //备份设备已满,更换设备继续备份
  6574. #define BACKUP_SEARCH_DEVICE 300 //正在搜索备份设备
  6575. #define BACKUP_SEARCH_FILE 301 //正在搜索录像文件
  6576. #define BACKUP_EXCEPTION 400 //备份异常
  6577. #define BACKUP_FAIL 500 //备份失败
  6578. #define BACKUP_TIME_SEG_NO_FILE 501 //时间段内无录像文件
  6579. #define BACKUP_NO_RESOURCE 502 //申请不到资源
  6580. #define BACKUP_DEVICE_LOW_SPACE 503 //备份设备容量不足
  6581. #define BACKUP_DISK_FINALIZED 504 //刻录光盘封盘
  6582. #define BACKUP_DISK_EXCEPTION 505 //刻录光盘异常
  6583. #define BACKUP_DEVICE_NOT_EXIST 506 //备份设备不存在
  6584. #define BACKUP_OTHER_BACKUP_WORK 507 //有其他备份操作在进行
  6585. #define BACKUP_USER_NO_RIGHT 508 //用户没有操作权限
  6586. #define BACKUP_OPERATE_FAIL 509 //操作失败
  6587. //备份过程接口定义
  6588. typedef struct tagNET_DVR_BACKUP_NAME_PARAM
  6589. {
  6590. DWORD dwFileNum; //文件个数
  6591. NET_DVR_FINDDATA_V30 struFileList[MAX_RECORD_FILE_NUM]; //文件列表
  6592. BYTE byDiskDes[DESC_LEN_32]; //备份磁盘描述
  6593. BYTE byWithPlayer; //是否备份播放器
  6594. BYTE byContinue; /*是否继续备份 0不继续 1继续*/
  6595. BYTE byRes[34]; //保留
  6596. }NET_DVR_BACKUP_NAME_PARAM, *LPNET_DVR_BACKUP_NAME_PARAM;
  6597. typedef struct tagNET_DVR_BACKUP_TIME_PARAM
  6598. {
  6599. LONG lChannel; //按时间备份的通道
  6600. NET_DVR_TIME struStartTime; //备份的起始时间
  6601. NET_DVR_TIME struStopTime; //备份的终止时间
  6602. BYTE byDiskDes[DESC_LEN_32]; //备份磁盘描述
  6603. BYTE byWithPlayer; //是否备份播放器
  6604. BYTE byContinue; //是否继续备份 0不继续 1继续
  6605. BYTE byDrawFrame; //0 不抽帧 1 抽帧
  6606. BYTE byRes[33]; // 保留字节
  6607. }NET_DVR_BACKUP_TIME_PARAM, *LPNET_DVR_BACKUP_TIME_PARAM;
  6608. /********************************* end *******************************************/
  6609. typedef enum _COMPRESSION_ABILITY_TYPE_
  6610. {
  6611. COMPRESSION_STREAM_ABILITY = 0, //码流压缩类型
  6612. MAIN_RESOLUTION_ABILITY = 1, //主码流压缩分辨率
  6613. SUB_RESOLUTION_ABILITY = 2, //子码流压缩分辨率
  6614. EVENT_RESOLUTION_ABILITY = 3, //事件压缩参数分辨率
  6615. FRAME_ABILITY = 4, //帧率能力
  6616. BITRATE_TYPE_ABILITY = 5, //位率类型能力
  6617. BITRATE_ABILITY = 6, //位率上限
  6618. }COMPRESSION_ABILITY_TYPE;
  6619. //能力列表
  6620. typedef struct tagNET_DVR_ABILITY_LIST
  6621. {
  6622. DWORD dwAbilityType; //能力类型 COMPRESSION_ABILITY_TYPE
  6623. BYTE byRes[32]; //保留字节
  6624. DWORD dwNodeNum; //能力结点个数
  6625. NET_DVR_DESC_NODE struDescNode[MAX_NODE_NUM]; //描述参数
  6626. }NET_DVR_ABILITY_LIST, *LPNET_DVR_ABILITY_LIST;
  6627. #define MAX_ABILITYTYPE_NUM 12 //最大能力项
  6628. // 压缩参数能力列表
  6629. typedef struct tagNET_DVR_COMPRESSIONCFG_ABILITY
  6630. {
  6631. DWORD dwSize; //结构长度
  6632. DWORD dwAbilityNum; //能力类型个数
  6633. NET_DVR_ABILITY_LIST struAbilityNode[MAX_ABILITYTYPE_NUM]; //描述参数
  6634. }NET_DVR_COMPRESSIONCFG_ABILITY, *LPNET_DVR_COMPRESSIONCFG_ABILITY;
  6635. /********************************9000RH begin****************************************/
  6636. #define SUPPORT_PD_NUM 16
  6637. #define SUPPORT_ARRAY_NUM 8
  6638. #define SUPPORT_VD_NUM 128
  6639. typedef enum tagRAID_MODE
  6640. {
  6641. RAID0 = 1,
  6642. RAID1,
  6643. RAID10,
  6644. RAID1E,
  6645. RAID5,
  6646. RAID6,
  6647. RAID50,
  6648. JBOD,
  6649. RAID60
  6650. }RAID_MODE;
  6651. typedef enum tagHD_SUPPORT_TYPE
  6652. {
  6653. HD_TYPE_SATA = 0x01,
  6654. HD_TYPE_PATA = 0x02,
  6655. HD_TYPE_SAS = 0x04,
  6656. HD_TYPE_ATAPI = 0x08,
  6657. HD_TYPE_TAPE = 0x10,
  6658. HD_TYPE_SES = 0x20
  6659. }HD_SUPPORT_TYPE;
  6660. // 按位表示 位为0表示不支持 1表示支持
  6661. typedef enum tagSUPPORT_RAID_TYPE
  6662. {
  6663. RAID0_ABILITY = 0x0001,
  6664. RAID1_ABILITY = 0x0002,
  6665. RAID10_ABILITY = 0x0004,
  6666. RAID1E_ABILITY = 0x0008,
  6667. RAID5_ABILITY = 0x0010,
  6668. RAID6_ABILITY = 0x0020,
  6669. RAID50_ABILITY = 0x0040,
  6670. JBOD_ABILITY = 0x0080,
  6671. RAID60_ABILITY = 0x0100
  6672. }SUPPORT_RAID_TYPE;
  6673. // 物理磁盘
  6674. typedef struct tagNET_DVR_PHY_DISK_INFO
  6675. {
  6676. WORD wPhySlot; // 硬盘槽位
  6677. BYTE byType; // 硬盘信息;0 普通,1全局热备,2-阵列热备 3-阵列盘
  6678. BYTE byStatus; // 硬盘状态; 1-正常
  6679. BYTE byMode[40]; // 硬盘类型 字符串
  6680. DWORD dwHCapacity; // 磁盘总量高32位 单位kb
  6681. DWORD dwLCapacity; // 磁盘总量低32位
  6682. BYTE byArrrayName[MAX_NAMELEN];
  6683. WORD wArrayID; // 所属阵列ID
  6684. BYTE byRes[102]; // 保留字节
  6685. }NET_DVR_PHY_DISK_INFO, *LPNET_DVR_PHY_DISK_INFO;
  6686. typedef struct tagNET_DVR_PHY_DISK_LIST
  6687. {
  6688. DWORD dwSize;
  6689. DWORD dwCount;
  6690. NET_DVR_PHY_DISK_INFO struPhyDiskInfo[SUPPORT_PD_NUM];
  6691. }NET_DVR_PHY_DISK_LIST, *LPNET_DVR_PHY_DISK_LIST;
  6692. typedef enum tagBGA_TYPE
  6693. {
  6694. BGA_REBUILD = 0x01, // 重建
  6695. BGA_CONSISTENCY_FIX = 0x02, // 一致性检查并修复
  6696. BGA_CONSISTENCY_CHECK = 0x04, // 一致性检查
  6697. BGA_INIT_QUICK = 0x08, // 初始化(快)
  6698. BGA_INIT_BACK = 0x10, // 初始化(完全)
  6699. BGA_MIGRATION = 0x20, // 迁移
  6700. BGA_INIT_FORE = 0x40, // 初始化
  6701. BGA_COPYBACK = 0x80 // 回迁
  6702. }BGA_TYPE;
  6703. typedef enum tagBGA_STATE
  6704. {
  6705. BGA_STATE_NONE = 0, // 无后台任务
  6706. BGA_STATE_RUNNING, // 后台任务正在运行
  6707. BGA_STATE_ABORTED, // 后台任务取消
  6708. BGA_STATE_PAUSED // 后台任务暂停
  6709. }BGA_STATE;
  6710. typedef struct tagNET_DVR_BGA_INFO
  6711. {
  6712. BYTE byBga; // 后台任务及类型
  6713. BYTE byBgaState; /*函数返回值--后台任务状态*/
  6714. WORD wBgaPercentage; /*函数返回值--后台任务执行百分比*/
  6715. BYTE byRes[4]; // 保留字节
  6716. }NET_DVR_BGA_INFO, *LPNET_DVR_BGA_INFO;
  6717. // 阵列信息
  6718. typedef struct tagNET_DVR_ARRAY_INFO
  6719. {
  6720. WORD wArrayID; // 阵列ID
  6721. BYTE byRaidMode; // raid模式 参照RAID_MODE
  6722. BYTE byStatus; // 0-在线1-磁盘丢失2-不在线
  6723. DWORD dwHCapacity; // 阵列容量高32位
  6724. DWORD dwLCapacity; // 阵列容量低32位
  6725. DWORD dwHFreeSpace; // 阵列剩余空间高32位
  6726. DWORD dwLFreeSpace; // 阵列剩余空间高32位
  6727. BYTE byArrayName[MAX_NAMELEN]; // 阵列名称
  6728. BYTE byPDCount; // 物理磁盘数目
  6729. BYTE bySpareCount; // 热备数目
  6730. BYTE byRes1[2];
  6731. WORD wPDSlots[SUPPORT_PD_NUM]; // 物理磁盘索引
  6732. WORD wSparePDSlots[SUPPORT_PD_NUM]; // 热备磁盘索引
  6733. NET_DVR_BGA_INFO struBgaInfo; // 后台任务运行状态
  6734. BYTE byRes2[80]; // 保留字节
  6735. }NET_DVR_ARRAY_INFO, *LPNET_DVR_ARRAY_INFO;
  6736. typedef struct tagNET_DVR_ARRAY_LIST
  6737. {
  6738. DWORD dwSize; // 结构体大小
  6739. DWORD dwCount; // 阵列个数
  6740. NET_DVR_ARRAY_INFO struArrayInfo[SUPPORT_ARRAY_NUM];
  6741. }NET_DVR_ARRAY_LIST, *LPNET_DVR_ARRAY_LIST;
  6742. //虚拟磁盘信息
  6743. typedef struct tagNET_DVR_VD_INFO
  6744. {
  6745. WORD wSlot; //虚拟磁盘槽位
  6746. BYTE byStatus; // 状态0-正常 1-降级 2-已删除 3-磁盘丢失 4-下线 5-次正常 6-外来
  6747. BYTE byRaidMode; // Raid 模式 参照 RAID_MODE
  6748. WORD wArrayID; // 所属阵列ID
  6749. BYTE byRepair; // 是否需要修复 0 不需要 1需要
  6750. BYTE byRes1[1]; // 保留字节
  6751. BYTE byArrayName[MAX_NAMELEN];
  6752. BYTE byName[MAX_NAMELEN]; // 虚拟磁盘名名称
  6753. DWORD dwHCapacity; // 虚拟磁盘容量高32位
  6754. DWORD dwLCapacity; // 虚拟磁盘容量低32位
  6755. DWORD dwHFreeSpace; // 虚拟磁盘剩余空间高32位
  6756. DWORD dwLFreeSpace; // 虚拟磁盘剩余空间低32位
  6757. NET_DVR_BGA_INFO struBgaInfo; // 后台运行状态
  6758. BYTE byRes2[80];
  6759. }NET_DVR_VD_INFO, *LPNET_DVR_VD_INFO;
  6760. typedef struct tagNET_DVR_VD_LIST
  6761. {
  6762. DWORD dwSize; // 结构体大小
  6763. DWORD dwCount; // 虚拟磁盘个数
  6764. NET_DVR_VD_INFO struVDInfo[SUPPORT_VD_NUM]; //虚拟磁盘数组
  6765. }NET_DVR_VD_LIST, *LPNET_DVR_VD_LIST;
  6766. typedef struct tagNET_DVR_ADAPTER_VERSION
  6767. {
  6768. WORD wMajorVersion;
  6769. WORD wMinorVersion;
  6770. WORD wRevisionNumber;
  6771. WORD wBuildNumber;
  6772. }NET_DVR_ADAPTER_VERSION, *LPNET_DVR_ADAPTER_VERSION;
  6773. typedef struct tagNET_DVR_VD_SLOT
  6774. {
  6775. WORD wVDSlot;
  6776. BYTE byAlloc; // 是否已经分配
  6777. BYTE byRes[5];
  6778. DWORD dwHVDSlotSize; // 虚拟磁盘空间大小高32位
  6779. DWORD dwLVDSlotSize; // 虚拟磁盘空间大小低32位
  6780. }NET_DVR_VD_SLOT, *LPNET_DVR_VD_SLOT;
  6781. typedef struct tagNET_DVR_ARRAY_SPACE_ALLOC_INFO
  6782. {
  6783. BYTE byVDSlotCount; /*current number of slots in DG*/
  6784. BYTE byRes1[3]; // 保留字节
  6785. NET_DVR_VD_SLOT struVDSlots[SUPPORT_VD_NUM];
  6786. }NET_DVR_ARRAY_SPACE_ALLOC_INFO, *LPNET_DVR_ARRAY_SPACE_ALLOC_INFO;
  6787. typedef struct tagNET_DVR_RAID_ADAPTER_INFO
  6788. {
  6789. DWORD dwSize; // 结构体大小
  6790. NET_DVR_ADAPTER_VERSION struVersion; // 适配器版本号
  6791. BYTE bySlotCount; //适配器槽位数
  6792. BYTE bySupportMigrate; // 迁移(1-支持 0-不支持)
  6793. BYTE bySupportExpand; // 扩容 (1-支持 0-不支持)
  6794. BYTE bySupportRebuild; // 是否支持重建阵列 (1、支持 0-不支持)
  6795. WORD wSlotSupportType; // 按位表示 HD_SUPPORT_TYPE
  6796. WORD wSupportRaidType; // 支持Raid 类型 按位表示
  6797. BYTE byAutoRebuild; // 0 不自动重建 1自动重建 可设
  6798. BYTE byRes[27]; // 保留字节
  6799. }NET_DVR_RAID_ADAPTER_INFO, *LPNET_DVR_RAID_ADAPTER_INFO;
  6800. typedef struct tagNET_DVR_OPERATE_ARRAY_PARAM
  6801. {
  6802. //是否一键创建 如果为一键创建,则创建时时候的之需要array名称,而不需要其他参数
  6803. // 其他参数有设备自行创建
  6804. BYTE byRaidMode; // 创建/迁移时Raid的类型
  6805. BYTE byPDCount; // 物理磁盘数目
  6806. WORD wArrayID; // 迁移或者重建时需要指出阵列ID
  6807. WORD wPDSlots[SUPPORT_PD_NUM];// 物理磁盘
  6808. BYTE byName[MAX_NAMELEN]; // array 名称
  6809. BYTE byInitMode; //初始化方式
  6810. BYTE byRes2[19];
  6811. }NET_DVR_OPERATE_ARRAY_PARAM, *LPNET_DVR_OPERATE_ARRAY_PARAM;
  6812. #define INIT_QUICK 0 /*快速初始化*/
  6813. #define INIT_FULLFOREGROUND 1 /*完全初始化(前台)*/
  6814. #define INIT_FULLBACKGROUND 2 /*完全初始化(前台)*/
  6815. typedef struct tagNET_DVR_OPERATE_VD_PARAM
  6816. {
  6817. WORD wArrayID; // 阵列ID
  6818. BYTE bySlot; // 创建虚拟磁盘指定槽位
  6819. BYTE byInitType; // 创建虚拟磁盘时初始化类型 0 - 快速初始化 1 - 前台完全初始化 2 - 后台完全初始化
  6820. DWORD dwHCapacity; // 虚拟磁盘大小高32位
  6821. DWORD dwLCapacity; // 虚拟磁盘大小低32位
  6822. BYTE byName[MAX_NAMELEN]; // 虚拟磁盘名称
  6823. BYTE byRes2[16]; // 保留字节
  6824. }NET_DVR_OPERATE_VD_PARAM, *LPNET_DVR_OPERATE_VD_PARAM;
  6825. typedef struct tagNET_DVR_SPARE_DISK_PARAM
  6826. {
  6827. WORD wPDSlot; // 物理磁盘槽位
  6828. WORD wArrayID; // 所属的阵列
  6829. BYTE bySpareType; // 热备类型 1-全局热备 2 指定阵列 当为指定阵列的时候需要指出所属阵列的ID
  6830. BYTE byRes[7]; // 保留字节
  6831. }NET_DVR_SPARE_DISK_PARAM, *LPNET_DVR_SPARE_DISK_PARAM;
  6832. /********************************9000RH End****************************************/
  6833. #define MATRIX_MAXDECSUBSYSTEMCHAN 4//视频综合平台解码子系统通道号
  6834. //获取解码子系统关联信息
  6835. typedef struct tagNET_DVR_DECSUBSYSTEMJIONSTATUS
  6836. {
  6837. BYTE byJoinStatus;//关联状态,0-没有关联,1-已经关联
  6838. BYTE byJoinSubSystem;//所关联子系统槽位号
  6839. BYTE byJoinDispNum;//所关联显示通道号
  6840. BYTE byJoinSubWindowNum;//所关联子窗口号
  6841. BYTE byRes[4];
  6842. }NET_DVR_DECSUBSYSTEMJIONSTATUS,LPNET_DVR_DECSUBSYSTEMJIONSTATUS;
  6843. typedef struct tagNET_DVR_SINGLESUBSYSTEMJOININFO
  6844. {
  6845. BYTE bySubSystemType;//子系统类型,0-无,1-解码用子系统,2-编码用子系统,3-级联输出子系统,4-级联输入子系统,5-码分子系统,6-报警子系统
  6846. BYTE byConnectStatus;//级联系统关联状态,1-连接正常,2-连接断开
  6847. BYTE byMatrixNum;//级联视频综合平台号,子系统类型是3或4时可用
  6848. BYTE bySubSystemNum;//级联子系统槽位号,0~79,子系统类型是3或4时可用
  6849. NET_DVR_DECSUBSYSTEMJIONSTATUS struDecSub [MATRIX_MAXDECSUBSYSTEMCHAN];
  6850. BYTE byBindStatus;//绑定状态,0-没有绑定,1-已经绑定(大屏拼接时用到)
  6851. BYTE byRes[7];
  6852. }NET_DVR_SINGLESUBSYSTEMJOININFO,LPNET_DVR_SINGLESUBSYSTEMJOININFO;
  6853. typedef struct tagNET_DVR_ALLDECSUBSYSTEMJOININFO
  6854. {
  6855. DWORD dwSize;
  6856. NET_DVR_SINGLESUBSYSTEMJOININFO struSingleSubSystemJoinInfo [MAX_SUBSYSTEM_NUM];//80
  6857. BYTE byRes[8];
  6858. }NET_DVR_ALLDECSUBSYSTEMJOININFO, *LPNET_DVR_ALLDECSUBSYSTEMJOININFO;
  6859. //2010-04-13 增加NAT功能相关配置
  6860. typedef struct tagNET_DVR_NATASSOCIATECFG
  6861. {
  6862. DWORD dwSize;
  6863. NET_DVR_NETCFG_V30 struNatIpAddress[2];//NAT IP地址
  6864. BYTE byNATEnable;//是否启用NAT功能,0-不启用,1-启用
  6865. BYTE byRes[63];
  6866. }NET_DVR_NATASSOCIATECFG, *LPNET_DVR_NATASSOCIATECFG;
  6867. //2010-06-01 视频综合平台报警配置
  6868. typedef struct tagNET_DVR_TEMPERATUREALARMCFG
  6869. {
  6870. BYTE byEnableTemperatureAlarm;//使能温度超限报警,0-报警,1-不报警
  6871. BYTE byRes1[3];
  6872. int iTemperatureUpLimited; //精确到小数点后两位,如1234表示温度12.34度
  6873. int iTemperatureDownLimited;
  6874. NET_DVR_HANDLEEXCEPTION_V30 struTempHandleType; /* 处理方式 */
  6875. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30]; /*布防时间*/
  6876. BYTE byRes2[32];
  6877. }NET_DVR_TEMPERATUREALARMCFG, *LPNET_DVR_TEMPERATUREALARMCFG;
  6878. typedef struct tagNET_DVR_BOARDALARMCFG
  6879. {
  6880. BYTE byEnablePullAlarm;//热插拔报警使能,1-报警,0-不报警
  6881. BYTE byRes1[3];
  6882. NET_DVR_HANDLEEXCEPTION_V30 struBoardHandleType; /* 处理方式 */
  6883. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT_V30]; /*布防时间*/
  6884. BYTE byRes2[32];
  6885. }NET_DVR_BOARDALARMCFG, *LPNET_DVR_BOARDALARMCFG;
  6886. typedef struct tagNET_DVR_VIDEOPLATFORMALARMCFG
  6887. {
  6888. DWORD dwSize;
  6889. NET_DVR_TEMPERATUREALARMCFG struTempAlarmCfg;
  6890. NET_DVR_BOARDALARMCFG struBoardAlarmCfg;
  6891. NET_DVR_HANDLEEXCEPTION_V30 struHandleException[MAX_EXCEPTIONNUM];//0-风扇异常,1-子系统异常,2-IP地址冲突,3-网线断,4-非法访问,5-光纤异常,6-前面板异常
  6892. BYTE byRes[32];
  6893. }NET_DVR_VIDEOPLATFORMALARMCFG,*LPNET_DVR_VIDEOPLATFORMALARMCFG;
  6894. //2010-05-17
  6895. typedef struct tagNET_DVR_CODESPLITTERASSOCIATE
  6896. {
  6897. DWORD dwSize;
  6898. NET_DVR_IPADDR struIP; /*编码器IP地址*/
  6899. WORD wPort; //编码器端口号
  6900. BYTE byRes1[6];
  6901. BYTE sUserName[NAME_LEN]; /* 用户名(32) */
  6902. BYTE sPassword[PASSWD_LEN]; /*密码 (16)*/
  6903. BYTE byChan;//编码器通道号
  6904. BYTE byRes2[15];
  6905. } NET_DVR_CODESPLITTERASSOCIATE, *LPNET_DVR_CODESPLITTERASSOCIATE;
  6906. //2010-06-01 视频综合平台报警上传结构
  6907. typedef struct tagNET_DVR_MATRIXSUBSYSTEMINFO
  6908. {
  6909. BYTE byMatrixNum;//视频综合平台号
  6910. BYTE bySubSystemNum;//子系统槽位号
  6911. BYTE byRes [14];
  6912. } NET_DVR_MATRIXSUBSYSTEMINFO, *LPNET_DVR_MATRIXSUBSYSTEMINFO;
  6913. typedef struct tagNET_DVR_VIDEOPLATFORM_ALRAMINFO
  6914. {
  6915. DWORD dwSize; //结构体大小
  6916. BYTE byAlarmType; // 0-拔出子板,1-插入子板,2-温度超上限报警,3-温度超下限报警,4-风扇状态异常,5-子系统异常,6-非法访问,7-光纤异常报警,8-前面板异常报警
  6917. BYTE byRes1[3];
  6918. BYTE bySubSystemChan[8]; //子板槽位号,一个子板中有8个子系统,其分别对应的槽位号,子系统异常时,bySubSystemChan[0]表示对应子系统序号
  6919. int iTemperature; //温度超限报警时有用,温度值
  6920. BYTE byMainboardSeq;//温度超限报警时有用,0-非主板,1-主板
  6921. BYTE byRes2[3];
  6922. BYTE byFanSequence[32];//风扇异常时风扇号
  6923. NET_DVR_MATRIXSUBSYSTEMINFO struInputNote;// 光纤异常报警时使用,输入结点
  6924. NET_DVR_MATRIXSUBSYSTEMINFO struOutputNote;//光纤异常报警时使用,输出结点
  6925. BYTE byRes3[68];
  6926. }NET_DVR_VIDEOPLATFORM_ALRAMINFO,*LPNET_DVR_VIDEOPLATFORM_ALRAMINFO;
  6927. /***************************审讯DVR begin *****************************/
  6928. #define MAX_INQUEST_PIP_NUM 3 //单通道显示的画中画数目
  6929. #define MAX_INQUEST_CDRW_NUM 4 //最大刻录机数目
  6930. typedef struct
  6931. {
  6932. DWORD dwSize;
  6933. DWORD dwNum; //刻录机的数量
  6934. DWORD dwRwSelectPara[MAX_CHANNUM_V30];// 是否选中该光驱
  6935. DWORD dwModeSelect; //0表示循环刻录模式 1表示并行刻录模式(默认模式)
  6936. BYTE byRes[24]; //保留
  6937. DWORD dwStartCDRW; //DVR 本地已经开始刻录
  6938. DWORD dwHdExcp; //硬盘有异 常
  6939. DWORD dwInterval; //时间间隔,10分钟(0)、20分钟(1)、30分钟(2)
  6940. char sLable[64]; //光盘名称
  6941. }NET_DVR_INQUEST_CDRW_CFG, *LPNET_DVR_INQUEST_CDRW_CFG;
  6942. typedef struct
  6943. {
  6944. char sFileName[36]; //文件名
  6945. DWORD dwFileLen; //文件长度
  6946. }NET_DVR_INQUEST_FILEINFO, *LPNET_DVR_INQUEST_FILEINFO;
  6947. typedef struct
  6948. {
  6949. DWORD dwFileNum; // 需要刻录或者删除的文件数,最多一次20个
  6950. NET_DVR_INQUEST_FILEINFO struFileInfo[MAX_RECORD_FILE_NUM];
  6951. //下面两个参数在表示刻录的文件时使用
  6952. DWORD dwCDIndex; //刻录机的索引:1:选择1号刻录机;2:选择2号刻录机; 3:3号刻录机,4:4号刻录机,5:所有刻录机
  6953. BOOL bFinalizeDisc; // 0=刻录完之后不封盘;1=刻录完之后封盘
  6954. }NET_DVR_INQUEST_FILES, *LPNET_DVR_INQUEST_FILES;
  6955. typedef struct {
  6956. DWORD dwEnable; //刻录机状态是否有效,0-无效,1-有效
  6957. DWORD dwStatus; /* 当dwType=0时,
  6958. 0-光盘正常,1-无光盘或光盘异常,
  6959. 当dwType=1或2时,
  6960. 0-刻录正常,1-无光盘或光盘异常,
  6961. 2-光盘已封盘(81不支持),3-光盘空间不足,
  6962. 4-异常导致审讯终止(81不支持)
  6963. 当dwType=3时,
  6964. 0-刻录正常,1-无光盘或光盘异常,
  6965. 2-光盘已封盘(81不支持),3-光盘空间不足
  6966. 当dwType=4时,
  6967. 0-刻录正常,1-无光盘或光盘异常,
  6968. 2-光盘已封盘(81不支持),3-光盘空间不足
  6969. 当dwType=5时,
  6970. 0-光盘正常, 1-无光盘或光盘异常,
  6971. 2-光盘已封盘(81不支持)
  6972. 当dwType=6或7时,
  6973. 0-刻录正常, 1-无光盘或光盘异常,
  6974. 2-光盘已封盘(81不支持), 3-光盘空间不足*/
  6975. DWORD dwVolumn; //光盘容量,单位M
  6976. DWORD dwFreeSpace; //光盘剩余容量,单位M
  6977. BYTE byRes[8]; //保留字节
  6978. }NET_DVR_INQUEST_CDRW, *LPNET_DVR_INQUEST_CDRW;
  6979. typedef struct {
  6980. DWORD dwType; /*运行状态:0-审讯开始,
  6981. 1-审讯过程中刻录,2-审讯停止,
  6982. 3-刻录审讯文件,
  6983. 4-备份(事后备份和本地备份)
  6984. 5-空闲
  6985. 6-初始化硬盘
  6986. 7-恢复审讯*/
  6987. NET_DVR_INQUEST_CDRW strCDRWNum[MAX_INQUEST_CDRW_NUM]; //数组0表示刻录机1
  6988. BYTE byRes[24]; //保留
  6989. }NET_DVR_INQUEST_CDRW_STATUS, *LPNET_DVR_INQUEST_CDRW_STATUS;
  6990. typedef struct
  6991. {
  6992. BYTE byPipChan; //画中画显示的通道 0xFF关闭
  6993. BYTE byRes[3]; //保留字节
  6994. WORD wTopLeftX; //画中画的x坐标
  6995. WORD wTopLeftY; //画中画的Y坐标
  6996. }NET_DVR_INQUEST_PIP_PARAM, *LPNET_DVR_INQUEST_PIP_PARAM;
  6997. typedef struct
  6998. {
  6999. BYTE byBaseChan; //显示画中画所在的通道
  7000. BYTE byBackChan; //显示画中画背景通道
  7001. BYTE byPIPMode; /*是否开启,
  7002. 0 当前窗口无小画面
  7003. 1 当前窗口有1个小画面
  7004. 2 当前窗口有2个小画面
  7005. 3 当前窗口有3个小画面
  7006. */
  7007. BYTE byRes; //保留字节
  7008. NET_DVR_INQUEST_PIP_PARAM strPipPara[MAX_INQUEST_PIP_NUM]; //画面位置的参数
  7009. }NET_DVR_INQUEST_PIP_STATUS, *LPNET_DVR_INQUEST_PIP_STATUS;
  7010. typedef struct
  7011. {
  7012. BYTE sSecretKey[16]; /*码流加密密钥*/
  7013. BYTE byRes[64]; /*保留字节*/
  7014. }NET_DVR_INQUEST_SECRET_INFO, *LPNET_DVR_INQUEST_SECRET_INFO;
  7015. /***************************审讯DVR end *****************************/
  7016. /********************************接口参数结构(end)*********************************/
  7017. /********************************SDK接口函数声明*********************************/
  7018. NET_DVR_API BOOL __stdcall NET_DVR_Init();
  7019. NET_DVR_API BOOL __stdcall NET_DVR_Cleanup();
  7020. //NET_DVR_SetDVRMessage的扩展
  7021. #ifdef _WIN32
  7022. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessage(UINT nMessage,HWND hWnd);
  7023. 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);
  7024. #elif defined(__linux__) || defined(__APPLE__)
  7025. NET_DVR_API BOOL __stdcall NET_DVR_SetExceptionCallBack_V30(UINT reserved1, void* reserved2, void (CALLBACK* fExceptionCallBack)(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser), void *pUser);
  7026. /*Linux专有 */
  7027. #if defined(__linux__)
  7028. NET_DVR_API BOOL NET_DVR_DrawAreaInit(INITINFO InitInfo, DWORD iUseSDL = 1);
  7029. NET_DVR_API BOOL NET_DVR_DrawAreaRelease();
  7030. #endif
  7031. #endif
  7032. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack(BOOL (CALLBACK *fMessCallBack)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen));
  7033. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack_EX(BOOL (CALLBACK *fMessCallBack_EX)(LONG lCommand,LONG lUserID,char *pBuf,DWORD dwBufLen));
  7034. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessCallBack_NEW(BOOL (CALLBACK *fMessCallBack_NEW)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen, WORD dwLinkDVRPort));
  7035. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessageCallBack(BOOL (CALLBACK *fMessageCallBack)(LONG lCommand,char *sDVRIP,char *pBuf,DWORD dwBufLen, DWORD dwUser), DWORD dwUser);
  7036. typedef void (CALLBACK *MSGCallBack)(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD dwBufLen, void* pUser);
  7037. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRMessageCallBack_V30(MSGCallBack fMessageCallBack, void* pUser);
  7038. NET_DVR_API BOOL __stdcall NET_DVR_SetConnectTime(DWORD dwWaitTime = 3000, DWORD dwTryTimes = 3);
  7039. NET_DVR_API BOOL __stdcall NET_DVR_SetReconnect(DWORD dwInterval = 30000, BOOL bEnableRecon = TRUE);
  7040. NET_DVR_API DWORD __stdcall NET_DVR_GetSDKVersion();
  7041. NET_DVR_API DWORD __stdcall NET_DVR_GetSDKBuildVersion();
  7042. NET_DVR_API int __stdcall NET_DVR_IsSupport();
  7043. NET_DVR_API BOOL __stdcall NET_DVR_StartListen(char *sLocalIP,WORD wLocalPort);
  7044. NET_DVR_API BOOL __stdcall NET_DVR_StopListen();
  7045. NET_DVR_API LONG __stdcall NET_DVR_StartListen_V30(char *sLocalIP, WORD wLocalPort, MSGCallBack DataCallback, void* pUserData = NULL);
  7046. NET_DVR_API BOOL __stdcall NET_DVR_StopListen_V30(LONG lListenHandle);
  7047. NET_DVR_API LONG __stdcall NET_DVR_Login(char *sDVRIP,WORD wDVRPort,char *sUserName,char *sPassword,LPNET_DVR_DEVICEINFO lpDeviceInfo);
  7048. NET_DVR_API LONG __stdcall NET_DVR_Login_V30(char *sDVRIP, WORD wDVRPort, char *sUserName, char *sPassword, LPNET_DVR_DEVICEINFO_V30 lpDeviceInfo);
  7049. NET_DVR_API BOOL __stdcall NET_DVR_Login_Check(char *sDVRIP, WORD wDVRPort, char *sUserName, char *sPassword, LPNET_DVR_DEVICEINFO_V30 lpDeviceInfo);
  7050. NET_DVR_API BOOL __stdcall NET_DVR_Logout(LONG lUserID);
  7051. NET_DVR_API BOOL __stdcall NET_DVR_Logout_V30(LONG lUserID);
  7052. NET_DVR_API DWORD __stdcall NET_DVR_GetLastError();
  7053. NET_DVR_API char* __stdcall NET_DVR_GetErrorMsg(LONG *pErrorNo = NULL);
  7054. NET_DVR_API BOOL __stdcall NET_DVR_SetShowMode(DWORD dwShowType,COLORREF colorKey);
  7055. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRIPByResolveSvr(char *sServerIP, WORD wServerPort, BYTE *sDVRName,WORD wDVRNameLen,BYTE *sDVRSerialNumber,WORD wDVRSerialLen,char* sGetIP);
  7056. 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);
  7057. //预览相关接口
  7058. NET_DVR_API LONG __stdcall NET_DVR_PlayDirect(char *sDVRIP, char *sUserName, char *sPassword, \
  7059. 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);
  7060. NET_DVR_API LONG __stdcall NET_DVR_RealPlay(LONG lUserID,LPNET_DVR_CLIENTINFO lpClientInfo);
  7061. 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);
  7062. NET_DVR_API BOOL __stdcall NET_DVR_StopRealPlay(LONG lRealHandle);
  7063. NET_DVR_API BOOL __stdcall NET_DVR_StopPlayDirect(LONG lRealHandle);
  7064. NET_DVR_API BOOL __stdcall NET_DVR_RigisterDrawFun(LONG lRealHandle,void (CALLBACK* fDrawFun)(LONG lRealHandle,HDC hDc,DWORD dwUser),DWORD dwUser);
  7065. NET_DVR_API BOOL __stdcall NET_DVR_SetPlayerBufNumber(LONG lRealHandle,DWORD dwBufNum);
  7066. NET_DVR_API BOOL __stdcall NET_DVR_ThrowBFrame(LONG lRealHandle,DWORD dwNum);
  7067. NET_DVR_API BOOL __stdcall NET_DVR_SetAudioMode(DWORD dwMode);
  7068. NET_DVR_API BOOL __stdcall NET_DVR_OpenSound(LONG lRealHandle);
  7069. NET_DVR_API BOOL __stdcall NET_DVR_CloseSound();
  7070. NET_DVR_API BOOL __stdcall NET_DVR_OpenSoundShare(LONG lRealHandle);
  7071. NET_DVR_API BOOL __stdcall NET_DVR_CloseSoundShare(LONG lRealHandle);
  7072. NET_DVR_API BOOL __stdcall NET_DVR_Volume(LONG lRealHandle,WORD wVolume);
  7073. NET_DVR_API BOOL __stdcall NET_DVR_SaveRealData(LONG lRealHandle,char *sFileName);
  7074. NET_DVR_API BOOL __stdcall NET_DVR_StopSaveRealData(LONG lRealHandle);
  7075. 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);
  7076. 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);
  7077. NET_DVR_API BOOL __stdcall NET_DVR_CapturePicture(LONG lRealHandle,char *sPicFileName);//bmp
  7078. //动态生成I帧
  7079. NET_DVR_API BOOL __stdcall NET_DVR_MakeKeyFrame(LONG lUserID, LONG lChannel);//主码流
  7080. NET_DVR_API BOOL __stdcall NET_DVR_MakeKeyFrameSub(LONG lUserID, LONG lChannel);//子码流
  7081. //云台控制相关接口
  7082. NET_DVR_API BOOL __stdcall NET_DVR_PTZControl(LONG lRealHandle,DWORD dwPTZCommand,DWORD dwStop);
  7083. NET_DVR_API BOOL __stdcall NET_DVR_PTZControl_Other(LONG lUserID,LONG lChannel,DWORD dwPTZCommand,DWORD dwStop);
  7084. NET_DVR_API BOOL __stdcall NET_DVR_TransPTZ(LONG lRealHandle,char *pPTZCodeBuf,DWORD dwBufSize);
  7085. NET_DVR_API BOOL __stdcall NET_DVR_TransPTZ_Other(LONG lUserID,LONG lChannel,char *pPTZCodeBuf,DWORD dwBufSize);
  7086. NET_DVR_API BOOL __stdcall NET_DVR_PTZPreset(LONG lRealHandle,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);
  7087. NET_DVR_API BOOL __stdcall NET_DVR_PTZPreset_Other(LONG lUserID,LONG lChannel,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);
  7088. NET_DVR_API BOOL __stdcall NET_DVR_TransPTZ_EX(LONG lRealHandle,char *pPTZCodeBuf,DWORD dwBufSize);
  7089. NET_DVR_API BOOL __stdcall NET_DVR_PTZControl_EX(LONG lRealHandle,DWORD dwPTZCommand,DWORD dwStop);
  7090. NET_DVR_API BOOL __stdcall NET_DVR_PTZPreset_EX(LONG lRealHandle,DWORD dwPTZPresetCmd,DWORD dwPresetIndex);
  7091. NET_DVR_API BOOL __stdcall NET_DVR_PTZCruise(LONG lRealHandle,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);
  7092. NET_DVR_API BOOL __stdcall NET_DVR_PTZCruise_Other(LONG lUserID,LONG lChannel,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);
  7093. NET_DVR_API BOOL __stdcall NET_DVR_PTZCruise_EX(LONG lRealHandle,DWORD dwPTZCruiseCmd,BYTE byCruiseRoute, BYTE byCruisePoint, WORD wInput);
  7094. NET_DVR_API BOOL __stdcall NET_DVR_PTZTrack(LONG lRealHandle, DWORD dwPTZTrackCmd);
  7095. NET_DVR_API BOOL __stdcall NET_DVR_PTZTrack_Other(LONG lUserID, LONG lChannel, DWORD dwPTZTrackCmd);
  7096. NET_DVR_API BOOL __stdcall NET_DVR_PTZTrack_EX(LONG lRealHandle, DWORD dwPTZTrackCmd);
  7097. NET_DVR_API BOOL __stdcall NET_DVR_PTZControlWithSpeed(LONG lRealHandle, DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);
  7098. NET_DVR_API BOOL __stdcall NET_DVR_PTZControlWithSpeed_Other(LONG lUserID, LONG lChannel, DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);
  7099. NET_DVR_API BOOL __stdcall NET_DVR_PTZControlWithSpeed_EX(LONG lRealHandle, DWORD dwPTZCommand, DWORD dwStop, DWORD dwSpeed);
  7100. NET_DVR_API BOOL __stdcall NET_DVR_GetPTZCruise(LONG lUserID,LONG lChannel,LONG lCruiseRoute, LPNET_DVR_CRUISE_RET lpCruiseRet);
  7101. //文件查找与回放
  7102. NET_DVR_API LONG __stdcall NET_DVR_FindFile(LONG lUserID,LONG lChannel,DWORD dwFileType, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  7103. NET_DVR_API LONG __stdcall NET_DVR_FindNextFile(LONG lFindHandle,LPNET_DVR_FIND_DATA lpFindData);
  7104. NET_DVR_API BOOL __stdcall NET_DVR_FindClose(LONG lFindHandle);
  7105. NET_DVR_API LONG __stdcall NET_DVR_FindNextFile_V30(LONG lFindHandle, LPNET_DVR_FINDDATA_V30 lpFindData);
  7106. NET_DVR_API LONG __stdcall NET_DVR_FindFile_V30(LONG lUserID, LPNET_DVR_FILECOND pFindCond);
  7107. NET_DVR_API BOOL __stdcall NET_DVR_FindClose_V30(LONG lFindHandle);
  7108. NET_DVR_API BOOL __stdcall NET_DVR_LockFileByName(LONG lUserID, char *sLockFileName);
  7109. NET_DVR_API BOOL __stdcall NET_DVR_UnlockFileByName(LONG lUserID, char *sUnlockFileName);
  7110. NET_DVR_API LONG __stdcall NET_DVR_PlayBackByName(LONG lUserID,char *sPlayBackFileName, HWND hWnd);
  7111. NET_DVR_API LONG __stdcall NET_DVR_PlayBackByTime(LONG lUserID,LONG lChannel, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime, HWND hWnd);
  7112. NET_DVR_API LONG __stdcall NET_DVR_PlayBackReverseByName(LONG lUserID, char *sPlayBackFileName, HWND hWnd);
  7113. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackControl(LONG lPlayHandle,DWORD dwControlCode,DWORD dwInValue,DWORD *LPOutValue);
  7114. NET_DVR_API BOOL __stdcall NET_DVR_StopPlayBack(LONG lPlayHandle);
  7115. 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);
  7116. NET_DVR_API BOOL __stdcall NET_DVR_SetPlayDataCallBack_V40(LONG lPlayHandle,void(CALLBACK *fPlayDataCallBack_V40) (LONG lPlayHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,void *pUser),void *pUser);
  7117. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackSaveData(LONG lPlayHandle,char *sFileName);
  7118. NET_DVR_API BOOL __stdcall NET_DVR_StopPlayBackSave(LONG lPlayHandle);
  7119. NET_DVR_API BOOL __stdcall NET_DVR_GetPlayBackOsdTime(LONG lPlayHandle, LPNET_DVR_TIME lpOsdTime);
  7120. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackCaptureFile(LONG lPlayHandle,char *sFileName);
  7121. NET_DVR_API LONG __stdcall NET_DVR_GetFileByName(LONG lUserID,char *sDVRFileName,char *sSavedFileName);
  7122. NET_DVR_API LONG __stdcall NET_DVR_GetFileByTime(LONG lUserID,LONG lChannel, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime, char *sSavedFileName);
  7123. NET_DVR_API BOOL __stdcall NET_DVR_StopGetFile(LONG lFileHandle);
  7124. NET_DVR_API int __stdcall NET_DVR_GetDownloadPos(LONG lFileHandle);
  7125. NET_DVR_API int __stdcall NET_DVR_GetPlayBackPos(LONG lPlayHandle);
  7126. //升级
  7127. NET_DVR_API LONG __stdcall NET_DVR_AdapterUpgrade(LONG lUserID, char *sFileName);
  7128. NET_DVR_API LONG __stdcall NET_DVR_Upgrade(LONG lUserID, char *sFileName);
  7129. NET_DVR_API LONG __stdcall NET_DVR_VcalibUpgrade(LONG lUserID, LONG lChannel, char const *sFileName);
  7130. NET_DVR_API int __stdcall NET_DVR_GetUpgradeState(LONG lUpgradeHandle);
  7131. NET_DVR_API int __stdcall NET_DVR_GetUpgradeProgress(LONG lUpgradeHandle);
  7132. NET_DVR_API BOOL __stdcall NET_DVR_CloseUpgradeHandle(LONG lUpgradeHandle);
  7133. NET_DVR_API BOOL __stdcall NET_DVR_SetNetworkEnvironment(DWORD dwEnvironmentLevel);
  7134. //远程格式化硬盘
  7135. NET_DVR_API LONG __stdcall NET_DVR_FormatDisk(LONG lUserID,LONG lDiskNumber);
  7136. NET_DVR_API BOOL __stdcall NET_DVR_GetFormatProgress(LONG lFormatHandle, LONG *pCurrentFormatDisk,LONG *pCurrentDiskPos,LONG *pFormatStatic);
  7137. NET_DVR_API BOOL __stdcall NET_DVR_CloseFormatHandle(LONG lFormatHandle);
  7138. //报警
  7139. NET_DVR_API LONG __stdcall NET_DVR_SetupAlarmChan(LONG lUserID);
  7140. NET_DVR_API BOOL __stdcall NET_DVR_CloseAlarmChan(LONG lAlarmHandle);
  7141. NET_DVR_API LONG __stdcall NET_DVR_SetupAlarmChan_V30(LONG lUserID);
  7142. NET_DVR_API BOOL __stdcall NET_DVR_CloseAlarmChan_V30(LONG lAlarmHandle);
  7143. //语音对讲
  7144. 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);
  7145. 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);
  7146. NET_DVR_API BOOL __stdcall NET_DVR_SetVoiceComClientVolume(LONG lVoiceComHandle, WORD wVolume);
  7147. NET_DVR_API BOOL __stdcall NET_DVR_StopVoiceCom(LONG lVoiceComHandle);
  7148. //语音转发
  7149. 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);
  7150. 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);
  7151. NET_DVR_API BOOL __stdcall NET_DVR_VoiceComSendData(LONG lVoiceComHandle, char *pSendBuf, DWORD dwBufSize);
  7152. NET_DVR_API BOOL __stdcall NET_DVR_GetCurrentAudioCompress(LONG lUserID, LPNET_DVR_COMPRESSION_AUDIO lpCompressAudio);
  7153. //语音广播
  7154. NET_DVR_API BOOL __stdcall NET_DVR_ClientAudioStart();
  7155. NET_DVR_API BOOL __stdcall NET_DVR_ClientAudioStart_V30(void(CALLBACK *fVoiceDataCallBack)(char *pRecvDataBuffer, DWORD dwBufSize, void * pUser), void *pUser);
  7156. NET_DVR_API BOOL __stdcall NET_DVR_ClientAudioStop();
  7157. NET_DVR_API BOOL __stdcall NET_DVR_AddDVR(LONG lUserID);
  7158. NET_DVR_API LONG __stdcall NET_DVR_AddDVR_V30(LONG lUserID, DWORD dwVoiceChan);
  7159. NET_DVR_API BOOL __stdcall NET_DVR_DelDVR(LONG lUserID);
  7160. NET_DVR_API BOOL __stdcall NET_DVR_DelDVR_V30(LONG lVoiceHandle);
  7161. ////////////////////////////////////////////////////////////
  7162. //透明通道设置
  7163. 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);
  7164. //485作为透明通道时,需要指明通道号,因为不同通道号485的设置可以不同(比如波特率)
  7165. NET_DVR_API BOOL __stdcall NET_DVR_SerialSend(LONG lSerialHandle, LONG lChannel, char *pSendBuf,DWORD dwBufSize);
  7166. NET_DVR_API BOOL __stdcall NET_DVR_SerialStop(LONG lSerialHandle);
  7167. NET_DVR_API BOOL __stdcall NET_DVR_SendTo232Port(LONG lUserID, char *pSendBuf, DWORD dwBufSize);
  7168. NET_DVR_API BOOL __stdcall NET_DVR_SendToSerialPort(LONG lUserID, DWORD dwSerialPort, DWORD dwSerialIndex, char *pSendBuf, DWORD dwBufSize);
  7169. //解码 nBitrate = 16000
  7170. NET_DVR_API void* __stdcall NET_DVR_InitG722Decoder(int nBitrate = 16000);
  7171. NET_DVR_API void __stdcall NET_DVR_ReleaseG722Decoder(void *pDecHandle);
  7172. NET_DVR_API BOOL __stdcall NET_DVR_DecodeG722Frame(void *pDecHandle, unsigned char* pInBuffer, unsigned char* pOutBuffer);
  7173. //编码
  7174. NET_DVR_API void* __stdcall NET_DVR_InitG722Encoder();
  7175. NET_DVR_API BOOL __stdcall NET_DVR_EncodeG722Frame(void *pEncodeHandle,unsigned char* pInBuffer, unsigned char* pOutBuffer);
  7176. NET_DVR_API void __stdcall NET_DVR_ReleaseG722Encoder(void *pEncodeHandle);
  7177. //远程控制本地显示
  7178. NET_DVR_API BOOL __stdcall NET_DVR_ClickKey(LONG lUserID, LONG lKeyIndex);
  7179. //远程控制设备端手动录像
  7180. NET_DVR_API BOOL __stdcall NET_DVR_StartDVRRecord(LONG lUserID,LONG lChannel,LONG lRecordType);
  7181. NET_DVR_API BOOL __stdcall NET_DVR_StopDVRRecord(LONG lUserID,LONG lChannel);
  7182. //解码卡
  7183. NET_DVR_API BOOL __stdcall NET_DVR_InitDevice_Card(long *pDeviceTotalChan);
  7184. NET_DVR_API BOOL __stdcall NET_DVR_ReleaseDevice_Card();
  7185. NET_DVR_API BOOL __stdcall NET_DVR_InitDDraw_Card(HWND hParent,COLORREF colorKey);
  7186. NET_DVR_API BOOL __stdcall NET_DVR_ReleaseDDraw_Card();
  7187. NET_DVR_API LONG __stdcall NET_DVR_RealPlay_Card(LONG lUserID,LPNET_DVR_CARDINFO lpCardInfo,long lChannelNum);
  7188. NET_DVR_API BOOL __stdcall NET_DVR_ResetPara_Card(LONG lRealHandle,LPNET_DVR_DISPLAY_PARA lpDisplayPara);
  7189. NET_DVR_API BOOL __stdcall NET_DVR_RefreshSurface_Card();
  7190. NET_DVR_API BOOL __stdcall NET_DVR_ClearSurface_Card();
  7191. NET_DVR_API BOOL __stdcall NET_DVR_RestoreSurface_Card();
  7192. NET_DVR_API BOOL __stdcall NET_DVR_OpenSound_Card(LONG lRealHandle);
  7193. NET_DVR_API BOOL __stdcall NET_DVR_CloseSound_Card(LONG lRealHandle);
  7194. NET_DVR_API BOOL __stdcall NET_DVR_SetVolume_Card(LONG lRealHandle,WORD wVolume);
  7195. NET_DVR_API BOOL __stdcall NET_DVR_AudioPreview_Card(LONG lRealHandle,BOOL bEnable);
  7196. NET_DVR_API LONG __stdcall NET_DVR_GetCardLastError_Card();
  7197. NET_DVR_API HANDLE __stdcall NET_DVR_GetChanHandle_Card(LONG lRealHandle);
  7198. NET_DVR_API BOOL __stdcall NET_DVR_CapturePicture_Card(LONG lRealHandle, char *sPicFileName);
  7199. //获取解码卡序列号此接口无效,改用GetBoardDetail接口获得(2005-12-08支持)
  7200. NET_DVR_API BOOL __stdcall NET_DVR_GetSerialNum_Card(long lChannelNum,DWORD *pDeviceSerialNo);
  7201. //日志
  7202. NET_DVR_API LONG __stdcall NET_DVR_FindDVRLog(LONG lUserID, LONG lSelectMode, DWORD dwMajorType,DWORD dwMinorType, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  7203. NET_DVR_API LONG __stdcall NET_DVR_FindNextLog(LONG lLogHandle, LPNET_DVR_LOG lpLogData);
  7204. NET_DVR_API BOOL __stdcall NET_DVR_FindLogClose(LONG lLogHandle);
  7205. 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);
  7206. NET_DVR_API LONG __stdcall NET_DVR_FindNextLog_V30(LONG lLogHandle, LPNET_DVR_LOG_V30 lpLogData);
  7207. NET_DVR_API BOOL __stdcall NET_DVR_FindLogClose_V30(LONG lLogHandle);
  7208. // 报警主机日志
  7209. NET_DVR_API LONG __stdcall NET_DVR_FindAlarmHostLog(LONG lUserID, LONG lSelectMode, NET_DVR_ALARMHOST_SEARCH_LOG_PARAM *lpSearchParam);
  7210. NET_DVR_API LONG __stdcall NET_DVR_FindNextAlarmHostLog(LONG lFindHandle, NET_DVR_ALARMHOST_LOG_RET *lpFindData);
  7211. NET_DVR_API BOOL __stdcall NET_DVR_FindAlarmHostLogClose(LONG lFindHandle);
  7212. //截止2004年8月5日,共113个接口
  7213. //ATM DVR
  7214. 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);
  7215. //截止2004年10月5日,共116个接口
  7216. //编码
  7217. NET_DVR_API void* __stdcall NET_DVR_InitG722Encoder();
  7218. NET_DVR_API BOOL __stdcall NET_DVR_EncodeG722Frame(void *pEncodeHandle,unsigned char* pInBuffer, unsigned char* pOutBuffer);
  7219. NET_DVR_API void __stdcall NET_DVR_ReleaseG722Encoder(void *pEncodeHandle);
  7220. //2005-09-15
  7221. NET_DVR_API BOOL __stdcall NET_DVR_CaptureJPEGPicture(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, char *sPicFileName);
  7222. //JPEG抓图到内存
  7223. NET_DVR_API BOOL __stdcall NET_DVR_CaptureJPEGPicture_NEW(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, char *sJpegPicBuffer, DWORD dwPicSize, LPDWORD lpSizeReturned);
  7224. //2006-02-16
  7225. NET_DVR_API int __stdcall NET_DVR_GetRealPlayerIndex(LONG lRealHandle);
  7226. NET_DVR_API int __stdcall NET_DVR_GetPlayBackPlayerIndex(LONG lPlayHandle);
  7227. //2006-08-28 704-640 缩放配置
  7228. NET_DVR_API BOOL __stdcall NET_DVR_SetScaleCFG(LONG lUserID, DWORD dwScale);
  7229. NET_DVR_API BOOL __stdcall NET_DVR_GetScaleCFG(LONG lUserID, DWORD *lpOutScale);
  7230. NET_DVR_API BOOL __stdcall NET_DVR_SetScaleCFG_V30(LONG lUserID, LPNET_DVR_SCALECFG pScalecfg);
  7231. NET_DVR_API BOOL __stdcall NET_DVR_GetScaleCFG_V30(LONG lUserID, LPNET_DVR_SCALECFG pScalecfg);
  7232. //2006-08-28 ATM机端口设置
  7233. NET_DVR_API BOOL __stdcall NET_DVR_SetATMPortCFG(LONG lUserID, WORD wATMPort);
  7234. NET_DVR_API BOOL __stdcall NET_DVR_GetATMPortCFG(LONG lUserID, WORD *LPOutATMPort);
  7235. //2006-11-10 支持显卡辅助输出
  7236. NET_DVR_API BOOL __stdcall NET_DVR_InitDDrawDevice();
  7237. NET_DVR_API BOOL __stdcall NET_DVR_ReleaseDDrawDevice();
  7238. NET_DVR_API LONG __stdcall NET_DVR_GetDDrawDeviceTotalNums();
  7239. NET_DVR_API BOOL __stdcall NET_DVR_SetDDrawDevice(LONG lPlayPort, DWORD nDeviceNum);
  7240. NET_DVR_API BOOL __stdcall NET_DVR_PTZSelZoomIn(LONG lRealHandle, LPNET_DVR_POINT_FRAME pStruPointFrame);
  7241. NET_DVR_API BOOL __stdcall NET_DVR_PTZSelZoomIn_EX(LONG lUserID, LONG lChannel, LPNET_DVR_POINT_FRAME pStruPointFrame);
  7242. //解码设备DS-6001D/DS-6001F
  7243. NET_DVR_API BOOL __stdcall NET_DVR_StartDecode(LONG lUserID, LONG lChannel, LPNET_DVR_DECODERINFO lpDecoderinfo);
  7244. NET_DVR_API BOOL __stdcall NET_DVR_StopDecode(LONG lUserID, LONG lChannel);
  7245. NET_DVR_API BOOL __stdcall NET_DVR_GetDecoderState(LONG lUserID, LONG lChannel, LPNET_DVR_DECODERSTATE lpDecoderState);
  7246. //2005-08-01
  7247. NET_DVR_API BOOL __stdcall NET_DVR_SetDecInfo(LONG lUserID, LONG lChannel, LPNET_DVR_DECCFG lpDecoderinfo);
  7248. NET_DVR_API BOOL __stdcall NET_DVR_GetDecInfo(LONG lUserID, LONG lChannel, LPNET_DVR_DECCFG lpDecoderinfo);
  7249. NET_DVR_API BOOL __stdcall NET_DVR_SetDecTransPort(LONG lUserID, LPNET_DVR_PORTCFG lpTransPort);
  7250. NET_DVR_API BOOL __stdcall NET_DVR_GetDecTransPort(LONG lUserID, LPNET_DVR_PORTCFG lpTransPort);
  7251. NET_DVR_API BOOL __stdcall NET_DVR_DecPlayBackCtrl(LONG lUserID, LONG lChannel, DWORD dwControlCode, DWORD dwInValue,DWORD *LPOutValue, LPNET_DVR_PLAYREMOTEFILE lpRemoteFileInfo);
  7252. NET_DVR_API BOOL __stdcall NET_DVR_StartDecSpecialCon(LONG lUserID, LONG lChannel, LPNET_DVR_DECCHANINFO lpDecChanInfo);
  7253. NET_DVR_API BOOL __stdcall NET_DVR_StopDecSpecialCon(LONG lUserID, LONG lChannel, LPNET_DVR_DECCHANINFO lpDecChanInfo);
  7254. NET_DVR_API BOOL __stdcall NET_DVR_DecCtrlDec(LONG lUserID, LONG lChannel, DWORD dwControlCode);
  7255. NET_DVR_API BOOL __stdcall NET_DVR_DecCtrlScreen(LONG lUserID, LONG lChannel, DWORD dwControl);
  7256. NET_DVR_API BOOL __stdcall NET_DVR_GetDecCurLinkStatus(LONG lUserID, LONG lChannel, LPNET_DVR_DECSTATUS lpDecStatus);
  7257. //多路解码器
  7258. //2007-11-30 V211支持以下接口 //11
  7259. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStartDynamic(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DYNAMIC_DEC lpDynamicInfo);
  7260. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStopDynamic(LONG lUserID, DWORD dwDecChanNum);
  7261. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanInfo(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_CHAN_INFO lpInter);
  7262. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetLoopDecChanInfo(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO lpInter);
  7263. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecChanInfo(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO lpInter);
  7264. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetLoopDecChanEnable(LONG lUserID, DWORD dwDecChanNum, DWORD dwEnable);
  7265. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecChanEnable(LONG lUserID, DWORD dwDecChanNum, LPDWORD lpdwEnable);
  7266. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecEnable(LONG lUserID, LPDWORD lpdwEnable);
  7267. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetDecChanEnable(LONG lUserID, DWORD dwDecChanNum, DWORD dwEnable);
  7268. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanEnable(LONG lUserID, DWORD dwDecChanNum, LPDWORD lpdwEnable);
  7269. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanStatus(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_CHAN_STATUS lpInter);
  7270. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetVideoStandard(LONG lUserID, DWORD dwDecChanNum, LPDWORD lpdwVideoStandard);
  7271. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetVideoStandard(LONG lUserID, DWORD dwDecChanNum, DWORD dwVideoStandard);
  7272. //2007-12-22 增加支持接口 //18
  7273. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetTranInfo(LONG lUserID, LPNET_DVR_MATRIX_TRAN_CHAN_CONFIG lpTranInfo);
  7274. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetTranInfo(LONG lUserID, LPNET_DVR_MATRIX_TRAN_CHAN_CONFIG lpTranInfo);
  7275. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetRemotePlay(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_REMOTE_PLAY lpInter);
  7276. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetRemotePlayControl(LONG lUserID, DWORD dwDecChanNum, DWORD dwControlCode, DWORD dwInValue, DWORD *LPOutValue);
  7277. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetRemotePlayStatus(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS lpOuter);
  7278. //2009-4-13 新增
  7279. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStartDynamic_V30(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_PU_STREAM_CFG lpDynamicInfo);
  7280. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetLoopDecChanInfo_V30(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO_V30 lpInter);
  7281. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecChanInfo_V30(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO_V30 lpInter);
  7282. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanInfo_V30(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_CHAN_INFO_V30 lpInter);
  7283. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetTranInfo_V30(LONG lUserID, LPNET_DVR_MATRIX_TRAN_CHAN_CONFIG_V30 lpTranInfo);
  7284. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetTranInfo_V30(LONG lUserID, LPNET_DVR_MATRIX_TRAN_CHAN_CONFIG_V30 lpTranInfo);
  7285. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDisplayCfg(LONG lUserID, DWORD dwDispChanNum, LPNET_DVR_VGA_DISP_CHAN_CFG lpDisplayCfg);
  7286. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetDisplayCfg(LONG lUserID, DWORD dwDispChanNum, LPNET_DVR_VGA_DISP_CHAN_CFG lpDisplayCfg);
  7287. NET_DVR_API LONG __stdcall NET_DVR_MatrixStartPassiveDecode(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_PASSIVEMODE lpPassiveMode /*, void(CALLBACK *fPassiveDataCallBack)(LONG lPassiveHandle, char * pSendBuf, DWORD dwBufSize, DWORD dwStatus, DWORD dwUser), DWORD dwUser*/);
  7288. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSendData(LONG lPassiveHandle, char *pSendBuf, DWORD dwBufSize);
  7289. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStopPassiveDecode(LONG lPassiveHandle);
  7290. NET_DVR_API BOOL __stdcall NET_DVR_UploadLogo(LONG lUserID, DWORD dwDispChanNum, LPNET_DVR_DISP_LOGOCFG lpDispLogoCfg, char *sLogoBuffer);
  7291. #define NET_DVR_SHOWLOGO 1 /*显示LOGO*/
  7292. #define NET_DVR_HIDELOGO 2 /*隐藏LOGO*/
  7293. NET_DVR_API BOOL __stdcall NET_DVR_LogoSwitch(LONG lUserID, DWORD dwDecChan, DWORD dwLogoSwitch);
  7294. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDeviceStatus(LONG lUserID, LPNET_DVR_DECODER_WORK_STATUS lpDecoderCfg);
  7295. #define DISP_CMD_ENLARGE_WINDOW 1 /*显示通道放大某个窗口*/
  7296. #define DISP_CMD_RENEW_WINDOW 2 /*显示通道窗口还原*/
  7297. NET_DVR_API BOOL __stdcall NET_DVR_MatrixDiaplayControl(LONG lUserID, DWORD dwDispChanNum, DWORD dwDispChanCmd, DWORD dwCmdParam);
  7298. NET_DVR_API BOOL __stdcall NET_DVR_MatrixPassiveDecodeControl(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_PASSIVEDECODE_CONTROL lpInter);
  7299. NET_DVR_API LONG __stdcall NET_DVR_MatrixGetPassiveDecodeStatus(LONG lPassiveHandle);
  7300. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDecChanCfg(LONG lUserID, DWORD dwDecChan, LPNET_DVR_MATRIX_DECCHAN_CONTROL lpInter);
  7301. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetDecChanCfg(LONG lUserID, DWORD dwDecChan, LPNET_DVR_MATRIX_DECCHAN_CONTROL lpInter);
  7302. //end
  7303. NET_DVR_API BOOL __stdcall NET_DVR_RefreshPlay(LONG lPlayHandle);
  7304. //恢复默认值
  7305. NET_DVR_API BOOL __stdcall NET_DVR_RestoreConfig(LONG lUserID);
  7306. //保存参数
  7307. NET_DVR_API BOOL __stdcall NET_DVR_SaveConfig(LONG lUserID);
  7308. //重启
  7309. NET_DVR_API BOOL __stdcall NET_DVR_RebootDVR(LONG lUserID);
  7310. //关闭DVR
  7311. NET_DVR_API BOOL __stdcall NET_DVR_ShutDownDVR(LONG lUserID);
  7312. //参数配置 begin
  7313. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned);
  7314. NET_DVR_API BOOL __stdcall NET_DVR_SetDVRConfig(LONG lUserID, DWORD dwCommand,LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize);
  7315. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRWorkState_V30(LONG lUserID, LPNET_DVR_WORKSTATE_V30 lpWorkState);
  7316. NET_DVR_API BOOL __stdcall NET_DVR_GetDVRWorkState(LONG lUserID, LPNET_DVR_WORKSTATE lpWorkState);
  7317. NET_DVR_API BOOL __stdcall NET_DVR_SetVideoEffect(LONG lUserID, LONG lChannel, DWORD dwBrightValue, DWORD dwContrastValue, DWORD dwSaturationValue, DWORD dwHueValue);
  7318. NET_DVR_API BOOL __stdcall NET_DVR_GetVideoEffect(LONG lUserID, LONG lChannel, DWORD *pBrightValue, DWORD *pContrastValue, DWORD *pSaturationValue, DWORD *pHueValue);
  7319. NET_DVR_API BOOL __stdcall NET_DVR_ClientGetframeformat(LONG lUserID, LPNET_DVR_FRAMEFORMAT lpFrameFormat);
  7320. NET_DVR_API BOOL __stdcall NET_DVR_ClientSetframeformat(LONG lUserID, LPNET_DVR_FRAMEFORMAT lpFrameFormat);
  7321. NET_DVR_API BOOL __stdcall NET_DVR_GetAtmFrameFormat_V30(LONG lUserID, LONG lAtmChannel, LPNET_DVR_ATM_FRAMEFORMAT_V30 lpFrameFormat);
  7322. NET_DVR_API BOOL __stdcall NET_DVR_SetAtmFrameFormat_V30(LONG lUserID, LONG lAtmChannel, LPNET_DVR_ATM_FRAMEFORMAT_V30 lpFrameFormat);
  7323. NET_DVR_API BOOL __stdcall NET_DVR_GetAtmProtocol(LONG lUserID, LPNET_DVR_ATM_PROTOCOL lpAtmProtocol);
  7324. NET_DVR_API BOOL __stdcall NET_DVR_GetAlarmOut_V30(LONG lUserID, LPNET_DVR_ALARMOUTSTATUS_V30 lpAlarmOutState);
  7325. NET_DVR_API BOOL __stdcall NET_DVR_GetAlarmOut(LONG lUserID, LPNET_DVR_ALARMOUTSTATUS lpAlarmOutState);
  7326. NET_DVR_API BOOL __stdcall NET_DVR_SetAlarmOut(LONG lUserID, LONG lAlarmOutPort,LONG lAlarmOutStatic);
  7327. //视频参数调节
  7328. NET_DVR_API BOOL __stdcall NET_DVR_ClientSetVideoEffect(LONG lRealHandle,DWORD dwBrightValue,DWORD dwContrastValue, DWORD dwSaturationValue,DWORD dwHueValue);
  7329. NET_DVR_API BOOL __stdcall NET_DVR_ClientGetVideoEffect(LONG lRealHandle,DWORD *pBrightValue,DWORD *pContrastValue, DWORD *pSaturationValue,DWORD *pHueValue);
  7330. //配置文件
  7331. NET_DVR_API BOOL __stdcall NET_DVR_GetConfigFile(LONG lUserID, char *sFileName);
  7332. NET_DVR_API BOOL __stdcall NET_DVR_SetConfigFile(LONG lUserID, char *sFileName);
  7333. NET_DVR_API BOOL __stdcall NET_DVR_GetConfigFile_V30(LONG lUserID, char *sOutBuffer, DWORD dwOutSize, DWORD *pReturnSize);
  7334. NET_DVR_API BOOL __stdcall NET_DVR_GetConfigFile_EX(LONG lUserID, char *sOutBuffer, DWORD dwOutSize);
  7335. NET_DVR_API BOOL __stdcall NET_DVR_SetConfigFile_EX(LONG lUserID, char *sInBuffer, DWORD dwInSize);
  7336. //启用日志文件写入接口
  7337. NET_DVR_API BOOL __stdcall NET_DVR_SetLogToFile(DWORD nLogLevel = 0, char * strLogDir = NULL, BOOL bAutoDel = TRUE);
  7338. NET_DVR_API BOOL __stdcall NET_DVR_GetSDKState(LPNET_DVR_SDKSTATE pSDKState);
  7339. NET_DVR_API BOOL __stdcall NET_DVR_GetSDKAbility(LPNET_DVR_SDKABL pSDKAbl);
  7340. NET_DVR_API BOOL __stdcall NET_DVR_GetPTZProtocol(LONG lUserID, NET_DVR_PTZCFG *pPtzcfg);
  7341. //前面板锁定
  7342. NET_DVR_API BOOL __stdcall NET_DVR_LockPanel(LONG lUserID);
  7343. NET_DVR_API BOOL __stdcall NET_DVR_UnLockPanel(LONG lUserID);
  7344. NET_DVR_API BOOL __stdcall NET_DVR_SetRtspConfig(LONG lUserID, DWORD dwCommand, LPNET_DVR_RTSPCFG lpInBuffer, DWORD dwInBufferSize);
  7345. NET_DVR_API BOOL __stdcall NET_DVR_GetRtspConfig(LONG lUserID, DWORD dwCommand, LPNET_DVR_RTSPCFG lpOutBuffer, DWORD dwOutBufferSize);
  7346. //能力集获取
  7347. NET_DVR_API BOOL __stdcall NET_DVR_GetDeviceAbility(LONG lUserID, DWORD dwAbilityType, char* pInBuf, DWORD dwInLength, char* pOutBuf, DWORD dwOutLength);
  7348. //2009-8-19 视频综合平台接口函数
  7349. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetSubSystemInfo(LONG lUserID, LPNET_DVR_ALLSUBSYSTEMINFO lpInter);
  7350. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetSubSystemInfo(LONG lUserID, LPNET_DVR_ALLSUBSYSTEMINFO lpInter);
  7351. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetCodeSplitter(LONG lUserID, DWORD dwCodeChan, LPNET_DVR_CODESPLITTERINFO lpInter);
  7352. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetCodeSplitter(LONG lUserID, DWORD dwCodeChan, LPNET_DVR_CODESPLITTERINFO lpInter);
  7353. //智能
  7354. //设置/获取参数关键字
  7355. NET_DVR_API BOOL __stdcall NET_DVR_SetBehaviorParamKey(LONG lUserID, LONG lChannel, DWORD dwParameterKey,int nValue);
  7356. NET_DVR_API BOOL __stdcall NET_DVR_GetBehaviorParamKey(LONG lUserID, LONG lChannel, DWORD dwParameterKey,int *pValue);
  7357. //获取/设置行为分析目标叠加接口
  7358. NET_DVR_API BOOL __stdcall NET_DVR_GetVCADrawMode(LONG lUserID, LONG lChannel, LPNET_VCA_DRAW_MODE lpDrawMode);
  7359. NET_DVR_API BOOL __stdcall NET_DVR_SetVCADrawMode(LONG lUserID, LONG lChannel, LPNET_VCA_DRAW_MODE lpDrawMode);
  7360. //球机跟踪模式设置接口
  7361. NET_DVR_API BOOL __stdcall NET_DVR_SetTrackMode(LONG lUserID, LONG lChannel, LPNET_DVR_TRACK_MODE lpTrackMode);
  7362. NET_DVR_API BOOL __stdcall NET_DVR_GetTrackMode(LONG lUserID, LONG lChannel, LPNET_DVR_TRACK_MODE lpTrackMode);
  7363. // 重启智能库
  7364. NET_DVR_API BOOL __stdcall NET_VCA_RestartLib(LONG lUserID, LONG lChannel);
  7365. NET_DVR_API BOOL __stdcall NET_DVR_SaveRealData_V30(LONG lRealHandle, DWORD dwTransType, char *sFileName);
  7366. NET_DVR_API BOOL __stdcall NET_DVR_EncodeG711Frame(unsigned int iType, unsigned char *pInBuffer, unsigned char *pOutBuffer);
  7367. NET_DVR_API BOOL __stdcall NET_DVR_DecodeG711Frame(unsigned int iType, unsigned char *pInBuffer, unsigned char *pOutBuffer);
  7368. //2009-7-22 end
  7369. NET_DVR_API LONG __stdcall NET_DVR_FindFileByEvent(LONG lUserID, LPNET_DVR_SEARCH_EVENT_PARAM lpSearchEventParam);
  7370. NET_DVR_API LONG __stdcall NET_DVR_FindNextEvent(LONG lSearchHandle, LPNET_DVR_SEARCH_EVENT_RET lpSearchEventRet);
  7371. //停止采用 NET_DVR_FindClose
  7372. NET_DVR_API LONG __stdcall NET_DVR_FindPDCInfo(LONG lUserID, LONG lChannel, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  7373. NET_DVR_API LONG __stdcall NET_DVR_FindNextPDCInfo(LONG lFindHandle,LPNET_DVR_PDC_QUERY lpFindData);
  7374. NET_DVR_API BOOL __stdcall NET_DVR_FindPDCClose(LONG lFindHandle);
  7375. // 标定校验
  7376. #define NET_DVR_PDC_VERIFY_CALIBRATION 1 //当值为1是为PDC标定校验 pdc传入值为NET_VCA_POINT 传出值为 NET_VCA_RECT结构
  7377. #define NET_DVR_VERIFY_BEHAVIOR_CALIBRATION 2 // 行为分析标定线校验
  7378. #define NET_DVR_VERIFY_ITS_CALIBRATION 3 // 智能交通标定校验
  7379. NET_DVR_API BOOL __stdcall NET_DVR_VerifyCalibration(LONG lUserID, DWORD dwCommand, LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize, LPVOID lpOuterBuffer, DWORD dwOuterBufferSize);
  7380. NET_DVR_API BOOL __stdcall NET_DVR_ResetCounter(LONG lUserID,LONG lChannel);
  7381. NET_DVR_API BOOL __stdcall NET_DVR_GetPtzPosition(LONG lUserID, LONG lChannel, LONG lPositionID, LPNET_DVR_PTZ_POSITION lpPtzPosition);
  7382. NET_DVR_API BOOL __stdcall NET_DVR_SetPtzPosition(LONG lUserID, LONG lChannel, LONG lPositionID, LPNET_DVR_PTZ_POSITION lpPtzPosition);
  7383. NET_DVR_API BOOL __stdcall NET_DVR_SetPatrolTrack(LONG lUserID, LONG lChannel, LONG lPatrolIndex, LPNET_DVR_PATROL_TRACKCFG lpPatrolTrack);
  7384. NET_DVR_API BOOL __stdcall NET_DVR_GetPatrolTrack(LONG lUserID, LONG lChannel, LONG lPatrolIndex, LPNET_DVR_PATROL_TRACKCFG lpPatrolTrack);
  7385. // SDK_V35
  7386. NET_DVR_API LONG __stdcall NET_DVR_FindNextLog_MATRIX(LONG lLogHandle, LPNET_DVR_LOG_MATRIX lpLogData);
  7387. NET_DVR_API LONG __stdcall NET_DVR_FindDVRLog_Matrix(LONG lUserID, LONG lSelectMode, DWORD dwMajorType, DWORD dwMinorType, LPNET_DVR_VEDIOPLATLOG lpVedioPlatLog, LPNET_DVR_TIME lpStartTime, LPNET_DVR_TIME lpStopTime);
  7388. //2009-12-17 增加视频综合平台编码子系统能力集
  7389. //2009-10-26 抓拍机基线 begin
  7390. NET_DVR_API BOOL __stdcall NET_DVR_ManualSnap(LONG lUserID, LPNET_DVR_MANUALSNAP lpInter, LPNET_DVR_PLATE_RESULT lpOuter);
  7391. NET_DVR_API BOOL __stdcall NET_DVR_ContinuousShoot(LONG lUserID, LPNET_DVR_SNAPCFG lpInter);
  7392. //2009-10-26 抓拍机基线 end
  7393. //2009-12-22 增加视频综合平台按通道获取PTZ协议接口
  7394. NET_DVR_API BOOL __stdcall NET_DVR_GetPTZProtocol_Ex(LONG lUserID, LONG lChannel, NET_DVR_PTZCFG *pPtzcfg);
  7395. //2010-01-16
  7396. NET_DVR_API LONG __stdcall NET_DVR_StartEmailTest(LONG lUserID);
  7397. NET_DVR_API BOOL __stdcall NET_DVR_StopEmailTest(LONG lEmailTestHandle);
  7398. NET_DVR_API BOOL __stdcall NET_DVR_GetEmailTestProgress(LONG lEmailTestHandle, DWORD* pState);
  7399. NET_DVR_API BOOL __stdcall NET_DVR_GetIPCProtoList(LONG lUserID, LPNET_DVR_IPC_PROTO_LIST lpProtoList);
  7400. NET_DVR_API LONG __stdcall NET_DVR_SmartSearch(LONG lUserID, LPNET_DVR_SMART_SEARCH_PARAM lpSmartSearchParam);
  7401. NET_DVR_API LONG __stdcall NET_DVR_SearchNextInfo(LONG lSearchHandle, LPNET_DVR_SMART_SEARCH_RET lpSmartSearchRet);
  7402. NET_DVR_API BOOL __stdcall NET_DVR_StopSearch(LONG lSearchHandle);
  7403. // IP San 文件目录查找
  7404. NET_DVR_API LONG __stdcall NET_DVR_FindIpSanDirectory(LONG lUserID, LPNET_DVR_IPSAN_SERACH_PARAM lpIpsanSearchParam);
  7405. NET_DVR_API LONG __stdcall NET_DVR_FindNextDirectory(LONG lFindHandle, LPNET_DVR_IPSAN_SERACH_RET lpFindData);
  7406. NET_DVR_API BOOL __stdcall NET_DVR_FindDirectoryClose(LONG lFindHandle);
  7407. typedef void (CALLBACK *REALDATACALLBACK) (LONG lPlayHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, void* pUser);
  7408. NET_DVR_API LONG __stdcall NET_DVR_ZeroStartPlay(LONG lUserID, LPNET_DVR_CLIENTINFO lpClientInfo, REALDATACALLBACK fRealDataCallBack_V30 = NULL, void* pUser = NULL, BOOL bBlocked = TRUE);
  7409. NET_DVR_API BOOL __stdcall NET_DVR_ZeroStopPlay(LONG lPlayHandle);
  7410. NET_DVR_API BOOL __stdcall NET_DVR_ZeroMakeKeyFrame(LONG lUserID, LONG lZeroChan);
  7411. NET_DVR_API BOOL __stdcall NET_DVR_PlayBackControl_V40(LONG lPlayHandle,DWORD dwControlCode, LPVOID lpInBuffer = NULL, DWORD dwInLen = 0, LPVOID lpOutBuffer = NULL, DWORD *lpOutLen = NULL);
  7412. NET_DVR_API BOOL __stdcall NET_DVR_ZeroTurnOver(LONG lUserID, LONG lChannel, BOOL bNextPreview);
  7413. NET_DVR_API BOOL __stdcall NET_DVR_GetDiskList(LONG lUserID, LPNET_DVR_DISKABILITY_LIST lpDiskList);
  7414. NET_DVR_API LONG __stdcall NET_DVR_BackupByName(LONG lUserID, LPNET_DVR_BACKUP_NAME_PARAM lpBackupByName);
  7415. NET_DVR_API LONG __stdcall NET_DVR_BackupByTime(LONG lUserID, LPNET_DVR_BACKUP_TIME_PARAM lpBackupBytime);
  7416. NET_DVR_API BOOL __stdcall NET_DVR_GetBackupProgress(LONG lHandle, DWORD* pState);
  7417. NET_DVR_API BOOL __stdcall NET_DVR_StopBackup(LONG lHandle);
  7418. NET_DVR_API BOOL __stdcall NET_DVR_GetSadpInfoList(LONG lUserID, LPNET_DVR_SADPINFO_LIST lpSadpInfoList);
  7419. NET_DVR_API BOOL __stdcall NET_DVR_UpdateSadpInfo(LONG lUserID, LPNET_DVR_SADP_VERIFY lpSadpVerify, LPNET_DVR_SADPINFO lpSadpInfo);
  7420. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetSubDecSystemJoinInfo(LONG lUserID, LPNET_DVR_ALLDECSUBSYSTEMJOININFO lpInter);
  7421. NET_DVR_API BOOL __stdcall NET_DVR_SetCodeSplitterAssociate(LONG lUserID, DWORD dwDecoderChan, DWORD dwSlotNum, LPNET_DVR_CODESPLITTERASSOCIATE lpInter);
  7422. NET_DVR_API BOOL __stdcall NET_DVR_GetCodeSplitterAssociate(LONG lUserID, DWORD dwDecoderChan, DWORD dwSlotNum, LPNET_DVR_CODESPLITTERASSOCIATE lpInter);
  7423. NET_DVR_API BOOL __stdcall NET_DVR_InquestGetCDRWScheme(LONG lUserID, LPNET_DVR_INQUEST_CDRW_CFG lpCDRWCfg);
  7424. NET_DVR_API BOOL __stdcall NET_DVR_InquestSetCDRWScheme(LONG lUserID, LPNET_DVR_INQUEST_CDRW_CFG lpCDRWCfg);
  7425. NET_DVR_API BOOL __stdcall NET_DVR_InquestDeleteFile(LONG lUserID, LPNET_DVR_INQUEST_FILES lpDeleteFile);
  7426. NET_DVR_API BOOL __stdcall NET_DVR_InquestCDWByFile(LONG lUserID, LPNET_DVR_INQUEST_FILES lpCdrwFile);
  7427. NET_DVR_API LONG __stdcall NET_DVR_InquestUploadFile(LONG lUserID, char *sFileName);
  7428. NET_DVR_API BOOL __stdcall NET_DVR_InquestUploadClose(LONG lUploadHandle);
  7429. NET_DVR_API LONG __stdcall NET_DVR_InquestGetUploadState(LONG lUploadHandle, LPDWORD pProgress);
  7430. NET_DVR_API BOOL __stdcall NET_DVR_InquestStartCDW( LONG lUserID, BOOL bPause);
  7431. NET_DVR_API BOOL __stdcall NET_DVR_InquestStopCDW(LONG lUserID, BOOL bCancelWrite);
  7432. NET_DVR_API BOOL __stdcall NET_DVR_InquestGetCDWState(LONG lUserID, LPNET_DVR_INQUEST_CDRW_STATUS pStatus);
  7433. NET_DVR_API BOOL __stdcall NET_DVR_InquestGetPIPStatus(LONG lUserID, LPNET_DVR_INQUEST_PIP_STATUS pStatus);
  7434. NET_DVR_API BOOL __stdcall NET_DVR_InquestSetPIPStatus(LONG lUserID, LPNET_DVR_INQUEST_PIP_STATUS pStatus);
  7435. NET_DVR_API BOOL __stdcall NET_DVR_InquestCheckSecretKey(LONG lUserID, BOOL *bSecretSet);
  7436. NET_DVR_API BOOL __stdcall NET_DVR_InquestSetSecretKey(LONG lUserID, LPNET_DVR_INQUEST_SECRET_INFO pSecretInfo);
  7437. NET_DVR_API BOOL __stdcall NET_DVR_InquestStreamEncrypt(LONG lUserID, LONG lChannel, BOOL bEncrypt);
  7438. NET_DVR_API BOOL __stdcall NET_DVR_InquestGetEncryptState(LONG lUserID, LONG lChannel, BOOL *bEncrypt);
  7439. NET_DVR_API LONG __stdcall NET_DVR_InquestFindFile(LONG lUserID);
  7440. NET_DVR_API LONG __stdcall NET_DVR_InquestFindNextFile(LONG lFindHandle, LPNET_DVR_INQUEST_FILEINFO lpFindData);
  7441. NET_DVR_API BOOL __stdcall NET_DVR_InquestFindClose(LONG lFindHandle);
  7442. // 9000RH
  7443. NET_DVR_API LONG __stdcall NET_DVR_RaidFastConfig(LONG lUserID, char *sName);
  7444. NET_DVR_API BOOL __stdcall NET_DVR_FastConfigProcess(LONG lHandle, DWORD *pState);
  7445. NET_DVR_API BOOL __stdcall NET_DVR_CloseFastConfig(LONG lHandle);
  7446. NET_DVR_API BOOL __stdcall NET_DVR_GetArraySpaceAlloc(LONG lUserID, DWORD dwSlot, LPNET_DVR_ARRAY_SPACE_ALLOC_INFO lpOutBuf);
  7447. NET_DVR_API BOOL __stdcall NET_DVR_DelArray(LONG lUserID, DWORD dwID);
  7448. NET_DVR_API BOOL __stdcall NET_DVR_CreateArray(LONG lUserID, LPNET_DVR_OPERATE_ARRAY_PARAM lpArrayParam);
  7449. NET_DVR_API BOOL __stdcall NET_DVR_CalcArraySize(LONG lUserID, LPNET_DVR_OPERATE_ARRAY_PARAM lpArrayParam, UINT64* lpArraySize);
  7450. NET_DVR_API BOOL __stdcall NET_DVR_MigrateArray(LONG lUserID, LPNET_DVR_OPERATE_ARRAY_PARAM lpArrayParam);
  7451. NET_DVR_API BOOL __stdcall NET_DVR_RebuildArray(LONG lUserID, LPNET_DVR_OPERATE_ARRAY_PARAM lpArrayParam);
  7452. NET_DVR_API BOOL __stdcall NET_DVR_CreateVD(LONG lUserID, LPNET_DVR_OPERATE_VD_PARAM lpVDParam);
  7453. NET_DVR_API BOOL __stdcall NET_DVR_DelVD(LONG lUserID, DWORD dwID);
  7454. NET_DVR_API BOOL __stdcall NET_DVR_RepairVD(LONG lUserID, DWORD dwID);
  7455. NET_DVR_API BOOL __stdcall NET_DVR_SetSpareDisk(LONG lUserID, LPNET_DVR_SPARE_DISK_PARAM lpSpareDisk);
  7456. NET_DVR_API BOOL __stdcall NET_DVR_GetPDList(LONG lUserID, LPNET_DVR_PHY_DISK_LIST lpPDList);
  7457. NET_DVR_API BOOL __stdcall NET_DVR_GetArrayList(LONG lUserID, LPNET_DVR_ARRAY_LIST lpArrayList);
  7458. NET_DVR_API BOOL __stdcall NET_DVR_GetVDList(LONG lUserID, LPNET_DVR_VD_LIST lpVDList);
  7459. NET_DVR_API LONG __stdcall NET_DVR_ExpandDisk(LONG lUserID,DWORD dwVDSLot);
  7460. NET_DVR_API BOOL __stdcall NET_DVR_GetExpandProgress(LONG lExpandHandle, DWORD* pState);
  7461. NET_DVR_API BOOL __stdcall NET_DVR_CloseExpandHandle(LONG lExpandHandle);
  7462. /*******************************test*****************************************/
  7463. NET_DVR_API LONG __stdcall NET_DVR_AlgoDebugStart(LONG lUserID, LONG lCHannel, void(CALLBACK *fAlgoLibInfoCallBack)(LONG lHandle, LONG lChannel,char *pRecvDataBuffer, DWORD dwBufSize, void* pUser), void* pUser);
  7464. NET_DVR_API BOOL __stdcall NET_DVR_AlgoDebugSend(LONG lHandle, LONG lChannel, char *pSendBuf, DWORD dwBufSize);
  7465. NET_DVR_API BOOL __stdcall NET_DVR_AlgoDebugStop(LONG lHandle);
  7466. NET_DVR_API BOOL __stdcall NET_DVR_SetLogPrint(BOOL bLogPrint);
  7467. NET_DVR_API BOOL __stdcall NET_DVR_SetLogPrintAction(DWORD nLogLevel, DWORD nToDevice, BOOL bEnable, int Reserve1, int Reserve2);
  7468. //2010-09-13
  7469. #define NET_DVR_MATRIX_BIGSCREENCFG_GET 1140//获取大屏拼接参数
  7470. #define NET_DVR_MATRIX_BIGSCREENCFG_SET 1141//设置大屏拼接参数
  7471. #define MAX_BIGSCREENNUM 100//最多大屏拼接数
  7472. typedef struct tagNET_DVR_SINGLESCREENCFG
  7473. {
  7474. BYTE byScreenSeq;//屏幕序号,0xff表示不用此屏
  7475. BYTE bySubSystemNum;//解码子系统槽位号
  7476. BYTE byDispNum;//解码子系统上对应显示通道号
  7477. BYTE byRes[9];
  7478. }NET_DVR_SINGLESCREENCFG, *LPNET_DVR_SINGLESCREENCFG;
  7479. typedef struct tagNET_DVR_BIGSCREENCFG
  7480. {
  7481. DWORD dwSize;
  7482. BYTE byEnable;//大屏拼接使能,0-不使能,1-使能
  7483. BYTE byModeX;/*大屏拼接模式*/
  7484. BYTE byModeY;
  7485. BYTE byMainDecodeSystem;//主屏槽位号
  7486. BYTE byMainDecoderDispChan;//主屏所用显示通道号,1.1netra版本新增,netra解码器有两个显示通道,都能够作为主屏
  7487. BYTE byVideoStandard; //大屏每个子屏制式相同 1:NTSC,2:PAL
  7488. BYTE byRes1[2];
  7489. DWORD dwResolution; //大屏每个子屏分辨率相同
  7490. //大屏拼接从屏幕信息
  7491. NET_DVR_SINGLESCREENCFG struFollowSingleScreen[MAX_BIGSCREENNUM];
  7492. BYTE byRes2[16];
  7493. }NET_DVR_BIGSCREENCFG, *LPNET_DVR_BIGSCREENCFG;
  7494. //2010-09-15
  7495. /****************************************************************
  7496. 功能:多路解码器图像微调接口
  7497. 参数说明:
  7498. lUserID: (解码子系统)NET_DVR_Login()的返回值
  7499. dwDispChan:显示通道
  7500. dwPicAdjust:微调命令
  7501. dwCmdParam:图像微调参数
  7502. TRUE表示成功,FALSE表示失败
  7503. *****************************************************************/
  7504. #define DECODEPIC_LEFTADJUST 1 /*图像左移*/
  7505. #define DECODEPIC_RIGHTADJUST 2 /*图像右移*/
  7506. #define DECODEPIC_UPADJUST 3 /*图像上移*/
  7507. #define DECODEPIC_DOWNADJUST 4 /*图像下移*/
  7508. #define DECODEPIC_REDUCEADJUST 5 /*图像缩小*/
  7509. NET_DVR_API BOOL __stdcall NET_DVR_MatrixPicAdjust(LONG lUserID, DWORD dwDispChan, DWORD dwPicAdjust, DWORD dwCmdParam);
  7510. /****************************************************************
  7511. 功能:报警触发录像接口
  7512. 参数说明:
  7513. lUserID: (编码子系统)NET_DVR_Login()的返回值
  7514. dwChan:编码通道
  7515. dwAlarmSeq:报警序号
  7516. dwRecordTime:录像时间(秒)
  7517. dwRes:保留
  7518. TRUE表示成功,FALSE表示失败
  7519. *****************************************************************/
  7520. NET_DVR_API BOOL __stdcall NET_DVR_AlarmJoinedRecord(LONG lUserID, DWORD dwChan, DWORD dwAlarmSeq, DWORD dwRecordTime, DWORD dwRes);
  7521. //2010-09-27
  7522. #define MAX_UNITEDMATRIX_NUM 8//级联中最多视频综合平台数量
  7523. #define MAX_SUBDOMAIN_NUM 4//级联中最多子域数量
  7524. typedef struct tagNET_DVR_SUBSERVERINFO
  7525. {
  7526. BYTE bySequence;//序号,对于子域,是子域号,对于视频综合平台,是平台号,0表示无此平台\子域
  7527. BYTE byBelongSubDomain;//对于平台有效,表示属于哪个子域
  7528. BYTE byRes1[6];
  7529. DWORD dwMaxIpcNums;//连接的最多IPC数量
  7530. NET_DVR_IPADDR struSubMatrixIP; /*IP地址*/
  7531. WORD wSubMatrixPort; /*子系统端口号*/
  7532. BYTE byRes2[6];
  7533. }NET_DVR_SUBSERVERINFO, *LPNET_DVR_SUBSERVERINFO;
  7534. typedef struct tagNET_DVR_UNITEDMATRIXINFO
  7535. {
  7536. DWORD dwSize;
  7537. NET_DVR_SUBSERVERINFO struDomainInfo;
  7538. NET_DVR_SUBSERVERINFO struSubDomainInfo[MAX_SUBDOMAIN_NUM];//子域信息
  7539. NET_DVR_SUBSERVERINFO struMatrixInfo[MAX_UNITEDMATRIX_NUM];//视频综合平台信息
  7540. BYTE byRes[32];
  7541. }NET_DVR_UNITEDMATRIXINFO, *LPNET_DVR_UNITEDMATRIXINFO;
  7542. /****************************************************************
  7543. 功能:获取级联78K配置信息
  7544. 参数说明:
  7545. lUserID: NET_DVR_Login()的返回值(78K)
  7546. lpInter:LPNET_DVR_UNITEDMATRIXINFO结构
  7547. 返回值:TRUE表示成功,FALSE表示失败
  7548. ****************************************************************/
  7549. NET_DVR_API BOOL __stdcall NET_DVR_GetUnitedMatrixInfo(LONG lUserID, LPNET_DVR_UNITEDMATRIXINFO lpInter);
  7550. /*******************************test*****************************************/
  7551. typedef struct tagNET_DVR_REGCALLBACKPARAM
  7552. {
  7553. char sDeviceID[NAME_LEN];//设备ID串
  7554. char sPassword[PASSWD_LEN];
  7555. BYTE sSerialNumber[SERIALNO_LEN]; /* 设备序列号 */
  7556. DWORD dwDeviceType;//设备类型
  7557. BYTE nStatus;// 上下线状态(0下线,1上线)
  7558. /* net type, 0: unknow; 1: 2G wireless networks; 2: 3G wireless networks; 3: line networks */
  7559. BYTE byNetType;
  7560. BYTE byRes[14];
  7561. }NET_DVR_REGCALLBACKPARAM, *LPNET_DVR_REGCALLBACKPARAM;
  7562. typedef struct tagNET_DVR_LOGONREPONSEPARAM
  7563. {
  7564. //心跳时间间隔,单位:秒, 5的倍数,180秒以内。默认是15秒。
  7565. WORD wHeartbeatTime;
  7566. BYTE byOvertimes;// 设备心跳超时次数,默认是3次
  7567. BYTE byRes[13];
  7568. }NET_DVR_LOGONREPONSEPARAM, *LPNET_DVR_LOGONREPONSEPARAM;
  7569. typedef LONG(CALLBACK * REGCallBack)(LONG lUserID, LPNET_DVR_REGCALLBACKPARAM pRegCallbackParam, LPNET_DVR_LOGONREPONSEPARAM pInterParam, void *pUser);
  7570. NET_DVR_API BOOL __stdcall NET_DVR_SetRegisterCallBack(REGCallBack fRegCallBack, void* pUser);
  7571. typedef struct tagNET_DVR_PREVIEWPARAM
  7572. {
  7573. BYTE byTransProtol; //传输协议,0-TCP, 1-UDP
  7574. BYTE byTransMode; ///* 传输码流模式 0-主码流 1-子码流*/
  7575. NET_DVR_IPADDR struCuIp; //CU端IP地址
  7576. WORD wPort;/*CU端口*/
  7577. WORD wUdpPort;
  7578. BYTE bySupportQos;//是否启用QOS,1-启用,0-不启用
  7579. //是否是NAT预览请求,0-否,1-是(只需byTransMode字段)
  7580. BYTE byNatRequest;
  7581. BYTE byRes[8];
  7582. }NET_DVR_PREVIEWPARAM, *LPNET_DVR_PREVIEWPARAM;
  7583. typedef struct tagNET_DVR_DEVICENATINFO
  7584. {
  7585. NET_DVR_IPADDR struPuIp; //PU端外网IP地址
  7586. WORD wOuterPort;/*PU外网端口*/
  7587. WORD wInterPort;//PU发送视频的本地端口
  7588. DWORD nSessionID;//CMS分配的sessionID
  7589. BYTE byRes[4];
  7590. }NET_DVR_DEVICENATINFO, *LPNET_DVR_DEVICENATINFO;
  7591. NET_DVR_API BOOL CALLBACK NET_DVR_PreviewRequest(LONG lUserID, LONG lChannel, LPNET_DVR_PREVIEWPARAM lpPreviewParam, LPNET_DVR_DEVICENATINFO lpOuter);
  7592. typedef struct tagNET_DVR_PREVIEWCALLBACKPARAM
  7593. {
  7594. LONG lChannel;
  7595. BYTE nLinkProtocol;
  7596. BYTE nTransMode;
  7597. BYTE byRes[10];
  7598. }NET_DVR_PREVIEWCALLBACKPARAM, *LPNET_DVR_PREVIEWCALLBACKPARAM;
  7599. typedef LONG(CALLBACK * PREVIEWRESPONSECallBack)(LONG lUserID, LONG lStreamHandle, LPNET_DVR_PREVIEWCALLBACKPARAM pPewviewCallbackParam,void *pUser);
  7600. NET_DVR_API BOOL CALLBACK NET_DVR_SetPreviewResponseCallBack(PREVIEWRESPONSECallBack fPreviewResponseCallBack, void *pUser);
  7601. //回放
  7602. typedef struct tagNET_DVR_PLAYBACKREQUESTPARAM
  7603. {
  7604. BYTE byPlayBackMode; /* 回放下载模式 1-按名字 2-按时间 */
  7605. BYTE byRes1[3];
  7606. union
  7607. {
  7608. char sFileName [100]; /* 回放的文件名 */
  7609. struct
  7610. {
  7611. LONG lChannel; /*回放的通道号*/
  7612. NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
  7613. NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
  7614. BYTE byRes[48];
  7615. }struPlayBackbyTime;
  7616. }playbackmode;
  7617. NET_DVR_IPADDR struCuIp; //CU端IP地址
  7618. WORD wPort;/*CU端口*/
  7619. BYTE byRes2[22];
  7620. }NET_DVR_PLAYBACKREQUESTPARAM, *LPNET_DVR_PLAYBACKREQUESTPARAM;
  7621. /**************************************************************
  7622. 功能:回放请求接口
  7623. 参数说明:
  7624. lUserID: 设备注册ID
  7625. lpPlayBackRequestParam: NET_DVR_PLAYBACKREQUESTPARAM结构指针
  7626. 返回值:
  7627. TRUE成功,FALSE失败
  7628. ***************************************************************/
  7629. NET_DVR_API BOOL __stdcall NET_DVR_PlaybackRequest(LONG lUserID, LPNET_DVR_PLAYBACKREQUESTPARAM lpPlayBackRequestParam);
  7630. //2010-10-06
  7631. typedef struct tagNET_DVR_PLAYBACKCALLBACKPARAM
  7632. {
  7633. BYTE byPlayBackMode; /* 回放下载模式 1-按名字 2-按时间 */
  7634. BYTE byRes1[3];
  7635. union
  7636. {
  7637. char sFileName [100]; /* 回放的文件名 */
  7638. struct
  7639. {
  7640. LONG lChannel; /*回放的通道号*/
  7641. NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
  7642. NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
  7643. BYTE byRes[48];
  7644. }struPlayBackbyTime;
  7645. }playbackmode;
  7646. BYTE byRes2[48];
  7647. }NET_DVR_PLAYBACKCALLBACKPARAM, *LPNET_DVR_PLAYBACKCALLBACKPARAM;
  7648. /***************************************************************
  7649. lUserID:用户ID
  7650. lPlaybackHandle:回放句柄
  7651. lpPlaybackParam:LPNET_DVR_PLAYBACKCALLBACKPARAM结构
  7652. pUser:用户数据
  7653. 注:返回值是0表示上层通过回放请求验证
  7654. ****************************************************************/
  7655. typedef LONG(CALLBACK * PLAYBACKRESPONSECallBack)(LONG lUserID, LONG lPlaybackHandle, LPNET_DVR_PLAYBACKCALLBACKPARAM lpPlaybackParam,void *pUser);
  7656. /******************************************************************
  7657. 说明:设置设备端回放推码流回应回调函数
  7658. 输入参数:
  7659. fPlaybackResponseCallBack:设备回放"推流"回调函数指针;
  7660. pUser:用户数据
  7661. 输出参数:
  7662. 返回值:FALSE失败,TRUE成功
  7663. ******************************************************************/
  7664. NET_DVR_API BOOL __stdcall NET_DVR_SetPlaybackResponseCallBack(PLAYBACKRESPONSECallBack fPlaybackResponseCallBack, void *pUser);
  7665. /************************************************
  7666. lUserID:用户ID
  7667. lPlayHandle:回放句柄
  7668. lVoiceChannel:对讲通道号
  7669. nAudioType:音频类型,0-G722,1-G711
  7670. pUser:用户数据
  7671. 注:返回值是0表示上层通过回放请求验证
  7672. ************************************************/
  7673. typedef LONG(CALLBACK * VOICERESPONSECallBack)(LONG lUserID, LONG lVoiceHandle, LONG lVoiceChannel, BYTE nAudioType, void *pUser);
  7674. /*************************************************
  7675. 说明:设置设备端对讲回应回调函数
  7676. 输入参数:
  7677. fVoiceResponseCallBack:设备对讲回调函数指针;
  7678. pUser:用户数据
  7679. 输出参数:
  7680. 返回值:FALSE失败,TRUE成功
  7681. **************************************************/
  7682. NET_DVR_API BOOL __stdcall NET_DVR_SetVoiceResponseCallBack(VOICERESPONSECallBack fVoiceResponseCallBack, void *pUser);
  7683. typedef struct tagNET_DVR_VOICEREQUESETPARAM
  7684. {
  7685. BYTE nVoiceChannel; //对讲通道号
  7686. BYTE byRes1[3];
  7687. NET_DVR_IPADDR struCuIp; //CU端IP地址
  7688. WORD wPort;/*CU端口*/
  7689. BYTE byRes2[10];
  7690. }NET_DVR_VOICEREQUESTPARAM, *LPNET_DVR_VOICEREQUESTPARAM;
  7691. /************************************************************
  7692. 功能:对讲请求接口
  7693. 参数说明:
  7694. lUserID: 设备注册ID
  7695. lpVoiceParam: NET_DVR_VOICEREQUESTPARAM结构指针
  7696. 返回值:
  7697. TRUE成功,FALSE失败
  7698. **************************************************************/
  7699. NET_DVR_API BOOL __stdcall NET_DVR_VoiceRequest(LONG lUserID, LPNET_DVR_VOICEREQUESTPARAM lpVoiceParam);
  7700. typedef struct tagNET_DVR_ALARMSETUPREQUESETPARAM
  7701. {
  7702. NET_DVR_IPADDR struCuIp; //CU端IP地址
  7703. WORD wPort;/*CU端口*/
  7704. BYTE byRes[2];
  7705. }NET_DVR_ALARMSETUPREQUESTPARAM, *LPNET_DVR_ALARMSETUPREQUESTPARAM;
  7706. /********************************************************
  7707. 功能:布防请求接口
  7708. 参数说明:
  7709. lUserID: 设备注册ID
  7710. lpAlarmSetupParam: NET_DVR_ALARMSETUPREQUESTPARAM结构指针
  7711. 返回值:
  7712. TRUE成功,FALSE失败
  7713. ********************************************************/
  7714. NET_DVR_API BOOL __stdcall NET_DVR_AlarmSetupRequest(LONG lUserID, LPNET_DVR_ALARMSETUPREQUESTPARAM lpAlarmSetupParam);
  7715. typedef struct _tagNET_DVR_GPSALARMINFO
  7716. {
  7717. BYTE byDeviceID[NAME_LEN];/*设备的ID串*/
  7718. NET_DVR_TIME_EX struGpsTime; /*GPS上传的时间*/
  7719. DWORD dwLongitude; /* 经度*/
  7720. DWORD dwLatitude; /* 纬度*/
  7721. int iTimeZone; /*时区,用分钟数表示,+60代表东1区,+480代表东8区,-60代表西区,-480代表西8区,该字段和GPSTime构成一个完整的时间描述*/
  7722. DWORD dwDirection; /*车辆方向=实际方向(以度为单位,正北方向为,顺时针方向计算)*100*/
  7723. WORD wSatellites; /*卫星数量*/
  7724. WORD wPrecision; /*精度*/
  7725. DWORD dwHeight; /*高度:厘米,预留*/
  7726. DWORD dwGPSSeq; /*GPS序号,GPS补传时要用到*/
  7727. WORD wSpeed;//速度,单位,km/h
  7728. /* direction[0]:'E'or'W'(东经/西经), direction[1]:'N'or'S'(北纬/南纬)*/
  7729. char sDirection[2];
  7730. BYTE byLocateMode;/*定位模式(初值0),1,自主定位,2,差分3,估算,4,数据无效*/
  7731. BYTE byRes[3];
  7732. }NET_DVR_GPSALARMINFO, *LPNET_DVR_GPSALARMINFO;
  7733. #define COMM_ALARM_ALARMGPS 0x1202 //GPS报警信息上传
  7734. //图片信息上传
  7735. typedef struct tagNET_DVR_PICINFO
  7736. {
  7737. DWORD dwSize; //结构长度
  7738. BYTE byChanIndex; //通道号
  7739. BYTE byRes1[3]; //保留
  7740. BYTE byDeviceID[NAME_LEN];/*设备的ID串*/
  7741. BYTE byAbsTime[32]; //绝对时间点, yyyymmddhhmmssxxx,
  7742. DWORD dwPicLen; //图片长度
  7743. BYTE byRes2[32];
  7744. BYTE *pPicBuffer;
  7745. }NET_DVR_PICTUREINFO, *LPNET_DVR_PICTUREINFO;
  7746. #define COMM_UPLOAD_PICTUREINFO 0x2900 //上传图片信息
  7747. //平台参数
  7748. typedef struct tagNET_DVR_CMSPARAM
  7749. {
  7750. DWORD dwSize;
  7751. NET_DVR_IPADDR struCmsAddr;
  7752. WORD wCmsPort;
  7753. BYTE byRes1[2];
  7754. BYTE sDeviceID[NAME_LEN];
  7755. BYTE byPassword[PASSWD_LEN];
  7756. NET_DVR_IPADDR struPicServerAddr;
  7757. WORD wPicServerPort;
  7758. WORD wCmsUdpPort;//CMS用于UDP外网查询的端口
  7759. BYTE byRes2[12];
  7760. }NET_DVR_CMSPARAM, *LPNET_DVR_CMSPARAM;
  7761. ///拨号功能
  7762. #define DIALPASSWD_LEN 32 //3G拨号密码长度
  7763. typedef struct tagNET_DVR_QOSPARAM
  7764. {
  7765. WORD wMaxBitUL; /* the maximum number of kbits/s in up-link traffic */
  7766. WORD wMaxBitDL; /* the maximum number of kbits/s in down-link traffic */
  7767. BYTE byTrafficClass; /* 0: conversationnal; 1: streaming; 2: interactive;3: background; 4: subscribed value(default) */
  7768. BYTE byRes[7];
  7769. }NET_DVR_QOSPARAM, *LPNET_DVR_QOSPARAM;
  7770. typedef struct tagNET_DVR_PPPDPARAM
  7771. {
  7772. BYTE byDialNum[NAME_LEN]; /* dial number, eg. "#777" */
  7773. BYTE byUserName[NAME_LEN]; /* user name, eg. "card" */
  7774. BYTE byPassword[DIALPASSWD_LEN]; /* password, eg. "card" */
  7775. BYTE byApn[NAME_LEN]; /* access point name, eg. "cmnet" */
  7776. NET_DVR_IPADDR struLocalIp;/* local IP address */
  7777. NET_DVR_IPADDR struRemoteIp;/* remote IP address */
  7778. WORD wMtuSize; /* max transfer unit of ppp interface */
  7779. BYTE byVerifyProtocal; /* IPCP verify protocal: 0: auto; 1: CHAP; 2: PAP */
  7780. BYTE byRes[25];
  7781. }NET_DVR_PPPDPARAM, *LPNET_DVR_PPPDPARAM;
  7782. #define MAX_PHONE_NUM 32//最长号码长度
  7783. typedef struct tagNET_DVR_DIALPARAM
  7784. {
  7785. DWORD dwSize;
  7786. BYTE bEnable3G; /* 0: disable; 1: enable 3g */
  7787. BYTE byDialMethod; /* dial methold: 0: auto dial; 1: manual dial; */
  7788. BYTE bySwitchMethod; /* switch methold: 0: auto switch;1:3G优先,2: manual switch to 2G; 3: manual switch to 3G; */
  7789. BYTE byEnaAlarmInDial; /* 使能报警输入触发拨号; 0: disable; 1: enable */
  7790. BYTE byRes1[10];
  7791. WORD wOffLineTime; /* auto off line when no connection exist,单位:分钟,范围:5~65535分钟 */
  7792. NET_DVR_PPPDPARAM struPppdParam;
  7793. NET_DVR_QOSPARAM struQosParam;
  7794. BYTE byUimNumber[MAX_PHONE_NUM/*32*/];
  7795. BYTE byRes2[24];
  7796. }NET_DVR_DIALPARAM, *LPNET_DVR_DIALPARAM;
  7797. typedef struct tagNET_DVR_DIALREQUEST
  7798. {
  7799. BYTE byConnNum; /*网卡序号*/
  7800. BYTE byNetType; /* 指定获得某个网络的默认拨号参数,设置时此参数没用。0:自动;1:CDMA;2:EVDO;3:WCDMA;4:TD-SCDMA */
  7801. BYTE byRes[6];
  7802. } NET_DVR_DIALREQUEST, *LPNET_DVR_DIALREQUEST;
  7803. /**************************************************
  7804. 功能:
  7805. 参数说明:
  7806. lUserID: NET_DVR_Login()的返回值
  7807. lpDialRequest:拨号参数请求结构指针
  7808. lpDialParam: NET_DVR_DIALPARAM结构指针
  7809. 返回值:
  7810. TRUE表示成功,FALSE表示失败
  7811. ***************************************************/
  7812. NET_DVR_API BOOL __stdcall NET_DVR_GetDialParam(LONG lUserID, LPNET_DVR_DIALREQUEST lpDialRequest, LPNET_DVR_DIALPARAM lpDialParam);
  7813. /***************************************************
  7814. 功能:
  7815. 参数说明:
  7816. lUserID: NET_DVR_Login()的返回值
  7817. lpDialRequest:拨号参数请求结构
  7818. lpDialParam: NET_DVR_DIALPARAM结构指针
  7819. 返回值:
  7820. TRUE表示成功,FALSE表示失败
  7821. ***************************************************/
  7822. NET_DVR_API BOOL __stdcall NET_DVR_SetDialParam(LONG lUserID, LPNET_DVR_DIALREQUEST lpDialRequest, LPNET_DVR_DIALPARAM lpDialParam);
  7823. /* UIM card information */
  7824. typedef enum
  7825. {
  7826. UIM_UNKNOWN = 0,
  7827. UIM_VALID = 1,
  7828. UIM_NOVALID = 4,
  7829. UIM_ROAM = 11,
  7830. UIM_NOEXIST = 255
  7831. }UIM_INFO;
  7832. /* real 3g mode */
  7833. typedef enum
  7834. {
  7835. /* evdo */
  7836. RMODE_CDMA1X = 12,
  7837. RMODE_EVDO = 14,
  7838. RMODE_CDMAHYBRID = 18,
  7839. /* wcdma */
  7840. RMODE_GSM = 21,
  7841. RMODE_GPRS = 22,
  7842. RMODE_EDGE = 23,
  7843. RMODE_WCDMA = 24,
  7844. RMODE_HSDPA = 25,
  7845. RMODE_HSUPA = 26,
  7846. RMODE_HSPA = 27,
  7847. /* tdscdma */
  7848. RMODE_TGSM = 31,
  7849. RMODE_TGPRS = 32,
  7850. RMODE_TEDGE = 33,
  7851. RMODE_TDSCDMA = 34,
  7852. RMODE_TDHSDPA = 35,
  7853. RMODE_TDHSUPA = 36,
  7854. RMODE_TDHSPA = 37
  7855. }REAL_MODE;
  7856. typedef struct tagNET_DVR_DIALSTATUS
  7857. {
  7858. BYTE byRealMode; /* REAL_MODE ,real 3g mode networks */
  7859. BYTE byUimCard; /* UIM_INFO ,UIM card information */
  7860. BYTE byRes1[6];
  7861. DWORD dwSignal; /* signal RSSI */
  7862. DWORD dwDialStatus; /* dial status */
  7863. NET_DVR_IPADDR struLocalIp; /* wireless networks IP address */
  7864. NET_DVR_IPADDR struRemoteIp; /* wireless networks gateway */
  7865. NET_DVR_IPADDR struNetMask; /* wireless networks netmask */
  7866. NET_DVR_IPADDR struDns; /* wireless networks DNS */
  7867. BYTE byRes2[16];
  7868. }NET_DVR_DIALSTATUS, *LPNET_DVR_DIALSTATUS;
  7869. //短信功能
  7870. #define MAX_WHITELIST_NUM 8 //最大白名单数
  7871. #define HARDDISKFULL_EXCEPTION 0x0 /*硬盘满*/
  7872. #define HARDDISKERROR_EXCEPTION 0x1 /*硬盘错*/
  7873. #define ETHERNETBROKEN_EXCEPTION 0x2 /*网线断*/
  7874. #define IPADDRCONFLICT_EXCEPTION 0x3 /*IP地址冲突*/
  7875. #define ILLEGALACCESS_EXCEPTION 0x4 /*非法访问*/
  7876. #define VI_EXCEPTION 0x5 /*视频信号异常*/
  7877. #define VS_MISMATCH_EXCEPTION 0x6 /*输入/输出视频制式不匹配 */
  7878. #define VIDEOCABLELOSE_EXCEPTION 0x7 /*视频无信号*/
  7879. #define AUDIOCABLELOSE_EXCEPTION 0x8 /*音频无信号*/
  7880. #define ALARMIN_EXCEPTION 0x9 /*报警输入*/
  7881. #define MASKALARM_EXCEPTION 0xa /*遮挡报警*/
  7882. #define MOTDET_EXCEPTION 0xb /*移动侦测*/
  7883. #define RECORDING_EXCEPTION 0xc /*录像异常*/
  7884. #define PHONECFG_RECEIVE_SMS 0x0 /* 支持接收报警短信 */
  7885. #define PHONECFG_SMS_CONTROL 0x1 /* 支持短信控制上下线 */
  7886. #define PHONECFG_CALL_CONTROL 0x2 /* 支持呼叫控制上线 */
  7887. typedef struct tagNET_DVR_PHONECFG
  7888. {
  7889. BYTE byWhiteList[MAX_PHONE_NUM];
  7890. BYTE byPhonePerssion[32]; /*按字节表示是否使能该号码的某功能,具体位代表的含义
  7891. 见PHONECFG_RECEIVE_SMS等定义 */
  7892. BYTE byAlarmHandler[32]; /*按字节表示是否使能对某个报警类型的短信发送*/
  7893. BYTE byRes[128];
  7894. } NET_DVR_PHONECFG, *LPNET_DVR_PHONECFG;
  7895. typedef struct tagNET_DVR_SMSRELATIVEPARAM
  7896. {
  7897. DWORD dwSize;
  7898. BYTE bEnableSmsAlarm; /* 0: disable; 1: enable 3g */
  7899. BYTE byRes1[7];
  7900. NET_DVR_PHONECFG struWhiteList[MAX_WHITELIST_NUM];
  7901. BYTE byRes2[32];
  7902. }NET_DVR_SMSRELATIVEPARAM, *LPNET_DVR_SMSRELATIVEPARAM;
  7903. typedef struct tagNET_DVR_SMSLISTINFO
  7904. {
  7905. DWORD dwSize;
  7906. DWORD dwTotalSmsNum;//短信条数
  7907. BYTE byRes[8];
  7908. BYTE *pSmsParam;
  7909. DWORD dwBufLen;//所分配指针长度,输入参数
  7910. }NET_DVR_SMSLISTINFO, *LPNET_DVR_SMSLISTINFO;
  7911. typedef struct tagNET_DVR_SMSPARAM
  7912. {
  7913. DWORD dwIndex; /* the index of sms */
  7914. BYTE byStatus; /* read yet or not */
  7915. BYTE byRes[7];
  7916. NET_DVR_TIME_EX struRecvTime; /* sms receive time */
  7917. }NET_DVR_SMSPARAM, *LPNET_DVR_SMSPARAM;
  7918. /****************************************************
  7919. 功能:
  7920. 参数说明:
  7921. lUserID: NET_DVR_Login()的返回值
  7922. lpStartTime:开始时间
  7923. lpStopTime: 结束时间
  7924. lpSmsListInfo:NET_DVR_SMSLISTINFO结构指针
  7925. 返回值:
  7926. TRUE表示成功,FALSE表示失败
  7927. ******************************************************/
  7928. NET_DVR_API BOOL __stdcall NET_DVR_GetSmsListInfo(LONG lUserID, LPNET_DVR_TIME_EX lpStartTime, LPNET_DVR_TIME_EX lpStopTime, LPNET_DVR_SMSLISTINFO lpSmsListInfo);
  7929. #define MAX_SMSCONTENT_LEN 140//短信内容长度
  7930. typedef struct tagNET_DVR_SMSCONTENT
  7931. {
  7932. BYTE byPhoneNum[MAX_PHONE_NUM];
  7933. BYTE byMsg[MAX_SMSCONTENT_LEN];
  7934. }NET_DVR_SMSCONTENT, *LPNET_DVR_SMSCONTENT;
  7935. /***************************************************
  7936. 功能: 获取短信内容
  7937. 参数说明:
  7938. lUserID: NET_DVR_Login()的返回值
  7939. dwSmsIndex:短信序号
  7940. lpSmsContent: NET_DVR_SMSCONTENT结构指针
  7941. 返回值:
  7942. TRUE表示成功,FALSE表示失败
  7943. ******************************************************/
  7944. NET_DVR_API BOOL __stdcall NET_DVR_GetSmsContent(LONG lUserID, DWORD dwSmsIndex, LPNET_DVR_SMSCONTENT lpSmsContent);
  7945. /****************************************************
  7946. 功能: 发送短信
  7947. 参数说明:
  7948. lUserID: NET_DVR_Login()的返回值
  7949. lpSmsContent: NET_DVR_SMSCONTENT结构指针
  7950. 返回值:
  7951. TRUE表示成功,FALSE表示失败
  7952. *****************************************************/
  7953. NET_DVR_API BOOL __stdcall NET_DVR_SendSms(LONG lUserID, LPNET_DVR_SMSCONTENT lpSmsContent);
  7954. //pin码配置
  7955. typedef enum
  7956. {
  7957. CPIN_READY = 1,
  7958. CPIN_PIN = 2,
  7959. CPIN_PUK = 3,
  7960. CPIN_PIN2 = 4,
  7961. CPIN_PUK2 = 5
  7962. }PIN_READY;
  7963. typedef struct tagNET_DVR_PINSTATUS
  7964. {
  7965. DWORD dwSize;
  7966. BYTE byStatus; /* PIN status, defination see enum: PIN_READY */
  7967. BYTE byPinTimes; /* remain input PIN times */
  7968. BYTE byPukTimes; /* remain input PUK times */
  7969. BYTE bEnableLock; /* now the PIN locking function is enabled or not: 0, not enabled lock; 1, lock enabled */
  7970. BYTE byRes[4];
  7971. }NET_DVR_PINSTATUS, *LPNET_DVR_PINSTATUS;
  7972. typedef enum
  7973. {
  7974. PIN_ENABLE = 1,
  7975. PIN_DISABLE = 2,
  7976. PIN_VERIFY = 3,
  7977. PUK_VERIFY = 4,
  7978. PIN_CHANGE = 5
  7979. }PIN_CMD;
  7980. #define MAX_PIN_LEN 12 //PIN码最大长度
  7981. typedef struct tagNET_DVR_PINCODEPARAM
  7982. {
  7983. DWORD dwSize;
  7984. BYTE byPinCmd; /* PIN command, defination see enum: PIN_CMD */
  7985. BYTE byRes1[3];
  7986. BYTE byPinCode[MAX_PIN_LEN]; /* pin/puk code */
  7987. BYTE byNewPinCode[MAX_PIN_LEN]; /* new pin code */
  7988. BYTE byRes2[16];
  7989. }NET_DVR_PINCODEPARAM, *LPNET_DVR_PINCODEPARAM;
  7990. /*************************************************
  7991. 函数名: NET_DVR_StartServer
  7992. 功能:启动服务器监听程序
  7993. 参 数:
  7994. [in]sLocalIP: 本地IP地址
  7995. [in]wLocalPort: 本地监听端口号,由用户设置
  7996. [in]byMode:监听模式,0-TCP监听,1-UDP监听,UDP监听用于设备查询其外网地址
  7997. 返回值:-1表示失败,其他值作为NET_DVR_StopServer函数的句柄参数。获取错误码调用NET_DVR_GetLastError
  7998. 说 明:该接口主要用于启动服务器监听,接收设备主动上传的主动注册、预览请求、回放请求、语音对讲请求、
  7999. 布防请求等信息(支持多线程)。须将设备的CMS服务器地址设置成PC机的IP地址(与接口中的sLocalIP参数一致),
  8000. CMS端口设置成PC机的监听端口号(与接口中的wLocalPort参数一致)。该接收中的回调函数不能置为NULL,
  8001. 否则将无法接收到设备上传的主动注册等信息。
  8002. *************************************************/
  8003. NET_DVR_API LONG __stdcall NET_DVR_StartServer(char *sLocalIP, WORD wLocalPort, BYTE byMode);
  8004. /*************************************************
  8005. 函数名: NET_DVR_StopServer
  8006. 函数描述: 停止监听来自DVR的请求(支持多线程)
  8007. 输入参数: lServerHandle:NET_DVR_StartServer的返回值
  8008. 输出参数:
  8009. 返回值: HPR_TRUE表示成功,HPR_FALSE表示失败
  8010. *************************************************/
  8011. NET_DVR_API BOOL __stdcall NET_DVR_StopServer(LONG lServerHandle);
  8012. /************************************************
  8013. lUserID:用户ID
  8014. lAlarmHandle:布防句柄
  8015. pUser:用户数据
  8016. 注:返回值是0表示上层通过回放请求验证
  8017. ************************************************/
  8018. typedef LONG(CALLBACK * ALARMSETUPRESPONSECallBack)(LONG lUserID, LONG lAlarmHandle, void * pUser);
  8019. /*************************************************
  8020. 说明:设置设备端布防请求回调函数
  8021. 输入参数:
  8022. fAlarmSetupResponseCallBack:设备布防请求函数指针;
  8023. pUser:用户数据
  8024. 输出参数:
  8025. 返回值:FALSE失败,TRUE成功
  8026. **************************************************/
  8027. NET_DVR_API BOOL __stdcall NET_DVR_SetAlarmSetupResponseCallBack(ALARMSETUPRESPONSECallBack fAlarmSetupResponseCallBack, void * pUser);
  8028. /*******************************test*****************************************/
  8029. //图片质量
  8030. typedef struct
  8031. {
  8032. /* 0=CIF, 1=QCIF, 2=D1 3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA*/
  8033. WORD wPicSize;
  8034. WORD wPicQuality; /* 图片质量系数 0-最好 1-较好 2-一般 */
  8035. //抓图图片处理方式,1-上传中心,2-设备本地保存,3-上传中心同时设备本地保存
  8036. BYTE byPicTackleMode;
  8037. BYTE byRes[11];
  8038. }NET_DVR_PUSHJPEGPARA, *LPNET_DVR_PUSHJPEGPARA;
  8039. NET_DVR_API BOOL __stdcall NET_DVR_SpringJPEGPicture(LONG lUserID, LONG lChannel, NET_DVR_PUSHJPEGPARA const *lpJpegPara);
  8040. #define COM_PUSHALARM 0x1200 //设备基本报警信息上传,推模式设备使用
  8041. #define COM_PUSHALARM_V30 0x1201 //设备基本报警信息上传v30,推模式设备使用
  8042. typedef struct tagNET_DVR_PUSHALARMINFO
  8043. {
  8044. DWORD dwAlarmType;/*0-信号量报警,1-硬盘满,2-信号丢失,3-移动侦测,4-硬盘未格式化,5-读写硬盘出错,6-遮挡报警,7-制式不匹配, 8-非法访问*/
  8045. DWORD dwAlarmInputNumber;/*报警输入端口*/
  8046. DWORD dwAlarmOutputNumber[MAX_ALARMOUT];/*触发的输出端口,哪一位为1表示对应哪一个输出*/
  8047. DWORD dwAlarmRelateChannel[MAX_CHANNUM];/*触发的录像通道,哪一位为1表示对应哪一路录像, dwAlarmRelateChannel[0]对应第1个通道*/
  8048. DWORD dwChannel[MAX_CHANNUM];/*dwAlarmType为2或3,6时,表示哪个通道,dwChannel[0]对应第1个通道*/
  8049. DWORD dwDiskNumber[MAX_DISKNUM];/*dwAlarmType为1,4,5时,表示哪个硬盘, dwDiskNumber[0]位对应第1个硬盘*/
  8050. BYTE byDeviceID[NAME_LEN];/*设备的ID串*/
  8051. BYTE byRes[4];
  8052. }NET_DVR_PUSHALARMINFO, *LPNET_DVR_PUSHALARMINFO;
  8053. typedef struct
  8054. {
  8055. DWORD dwAlarmType;/*0-信号量报警,1-硬盘满,2-信号丢失,3-移动侦测,4-硬盘未格式化,5-读写硬盘出错,6-遮挡报警,7-制式不匹配, 8-非法访问, 9-视频信号异常,10-录像异常 11- 智能场景变化 12-阵列异常 */
  8056. DWORD dwAlarmInputNumber;/*报警输入端口*/
  8057. BYTE byAlarmOutputNumber[MAX_ALARMOUT_V30];/*触发的输出端口,为1表示对应输出*/
  8058. BYTE byAlarmRelateChannel[MAX_CHANNUM_V30];/*触发的录像通道,为1表示对应录像, dwAlarmRelateChannel[0]对应第1个通道*/
  8059. BYTE byChannel[MAX_CHANNUM_V30];/*dwAlarmType为2或3,6,9,10时,表示哪个通道,dwChannel[0]对应第1个通道*/
  8060. BYTE byDiskNumber[MAX_DISKNUM_V30];/*dwAlarmType为1,4,5时,表示哪个硬盘, dwDiskNumber[0]对应第1个硬盘*/
  8061. BYTE byDeviceID[NAME_LEN];/*设备的ID串*/
  8062. BYTE byRes[4];
  8063. }NET_DVR_PUSHALARMINFO_V30, *LPNET_DVR_PUSHALARMINFO_V30;
  8064. //2011-04-20
  8065. //启动控制
  8066. typedef struct tagNET_DVR_MB_AUTOWORKPARA
  8067. {
  8068. /*当前启动控制方式 0: 预留, 1: 延时关机, 2: 自动开关机*/
  8069. BYTE byCurPowerCtrlType;
  8070. BYTE byRes[3];
  8071. NET_DVR_SCHEDTIME struWorkTime[MAX_DAYS][2];
  8072. }NET_DVR_MB_AUTOWORKPARA, *LPNET_DVR_MB_AUTOWORKPARA;
  8073. typedef struct tagNET_DVR_MB_POWERCTRLPARA
  8074. {
  8075. DWORD dwSize;
  8076. DWORD dwHaltDelay; /* 关机延迟时间,单位min */
  8077. NET_DVR_MB_AUTOWORKPARA struAutoWorkPara;/*启动控制相关参数设置*/
  8078. BYTE byRes[36];
  8079. }NET_DVR_MB_POWERCTRLPARA, *LPNET_DVR_MB_POWERCTRLPARA;
  8080. /*注:1)、关机延迟时间, 可选时间为 0,5分钟,10分钟 ,20分钟 25分钟 30分钟 35分钟 40分钟 ,45 分钟 50分钟 ,60分钟 ,60*2分钟 ,60*3 60 *4 60*5 60*6
  8081. 各数值和对应时间段列表关系如下:
  8082. {0,0m},
  8083. {5,5m},
  8084. {10,10m},
  8085. {15,15m},
  8086. {20,20m},
  8087. {25,25m},
  8088. {30,30m},
  8089. {35,35m},
  8090. {40,40m},
  8091. {45,45m},
  8092. {50,50m},
  8093. {55,55m},
  8094. {60,1h},
  8095. {120,2h},
  8096. {180,3h},
  8097. {240,4h},
  8098. {300,5h},
  8099. {360,6h}, */
  8100. //自动备份
  8101. typedef struct tagNET_DVR_MB_AUTOBACKUPPARA
  8102. {
  8103. DWORD dwSize;
  8104. BYTE byEnableAutoBackup; /* 是否开启自动备份 0 关闭 ,1 开启 */
  8105. BYTE byRes1[3];
  8106. /*需要备份的通道*/
  8107. BYTE byBackupChannel[MAX_CHANNUM_V30];
  8108. BYTE byBackupDays[MAX_CHANNUM_V30];/*备份天数*/
  8109. /* 备份文件类型
  8110. {0,ALL_RECORD_TYPE,全部},
  8111. {1,TIMING_REC,定时},
  8112. {2,MOTION_DETECT_REC,移动侦测 },
  8113. {3,ALARM_REC,报警 },
  8114. {4,MANUAL_REC,手动录像}*/
  8115. BYTE byBackupFileType[MAX_CHANNUM_V30];
  8116. /* 自动备份时间段*/
  8117. NET_DVR_SCHEDTIME struBackupTime[MAX_CHANNUM_V30][2];
  8118. BYTE byRes2[36]; /* 保留字节*/
  8119. }NET_DVR_MB_AUTOBACKUPPARA, *LPNET_DVR_MB_AUTOBACKUPPARA;
  8120. typedef struct tagNET_DVR_MB_GPSPARA
  8121. {
  8122. DWORD dwSize;
  8123. BYTE byEnableGPS; /*是否启用GPS */
  8124. BYTE byGpsInterface;/*gps接收接口0-rs232, 1-rs485, 2-frontpanel, 3-lcd */
  8125. BYTE bySpeedUnit; /*速度单位,0:公里/小时,1 :英里/小时*/
  8126. BYTE byEnableRetrieve; /* 盲区补发(1启用,0不启用) */
  8127. int iAdjustTime;/*时区*/
  8128. BYTE byEnableAdjustTime;/*是否启用GPS校时, 1-启用, 0-不启动*/
  8129. BYTE byRes1[5];
  8130. WORD wGpsUploadInterval; /* GPS上传间隔, 秒*/
  8131. BYTE byGpsOsdChannel[MAX_CHANNUM_V30];/*OSD 显示,每字节代表一路 */
  8132. DWORD dwSpeedLimit; /* 限速报警*/
  8133. NET_DVR_HANDLEEXCEPTION_V30 struGpsAlarm;
  8134. BYTE byRes2[36];
  8135. }NET_DVR_MB_GPSPARA, *LPNET_DVR_MB_GPSPARA;
  8136. /*注:1)、当单位为公里/小时 时范围为(0 ,965);当采用英里/小时做单位的时候 ,最大速度范围为:0-600
  8137. 2)、时区列表如下
  8138. {-12*3600,GMT-12:00}
  8139. {-11*3600,GMT-11:00}
  8140. {-10*3600,GMT-10:00}
  8141. {-9*3600-1800,GMT-09:30}
  8142. {-9*3600,GMT-09:00}
  8143. {-8*3600,GMT-08:00}
  8144. {-7*3600,GMT-07:00}
  8145. {-6*3600,GMT-06:00}
  8146. {-5*3600,GMT-05:00}
  8147. {-4*3600-1800,GMT-04:30}
  8148. {-4*3600,GMT-04:00}
  8149. {-3*3600-1800,GMT-03:30}
  8150. {-3*3600,GMT-03:00}
  8151. {-2*3600,GMT-02:00}
  8152. {-3600,GMT-01:00}
  8153. {0,GMT}
  8154. {3600, GMT+01:00},
  8155. {2*3600, GMT+02:00},
  8156. {3*3600, GMT+03:00},
  8157. {3*3600 + 1800, GMT+03:30},
  8158. {4*3600, GMT+04:00},
  8159. {4*3600 + 1800, GMT+04:30},
  8160. {5*3600, GMT+05:00},
  8161. {5*3600 + 1800, GMT+05:30},
  8162. {5*3600 + 2700, GMT+05:45},
  8163. {6*3600, GMT+06:00},
  8164. {6*3600 + 1800, GMT+06:30},
  8165. {7*3600, GMT+07:00},
  8166. {8*3600, GMT+08:00},
  8167. {9*3600, GMT+09:00},
  8168. {9*3600 + 1800, GMT+09:30},
  8169. {10*3600, GMT+10:00},
  8170. {10*3600 + 1800, GMT+10:30},
  8171. {11*3600, GMT+11:00},
  8172. {11*3600 + 1800, GMT+11:30},
  8173. {12*3600, GMT+12:00},
  8174. {13*3600, GMT+13:00}*/
  8175. #define SENSOR_IN_NUMBER 8
  8176. typedef struct tagNET_DVR_MB_SENSORINPARA
  8177. {
  8178. DWORD dwSize;
  8179. BYTE byTriggerType[SENSOR_IN_NUMBER];/*行车状态相关触发的联动,只用后4个,分别代表刹车、左转、右转、倒车,0-高电平,1-低电平*/
  8180. BYTE byTriggerChannel [SENSOR_IN_NUMBER];
  8181. BYTE byOsdDisplay [MAX_CHANNUM_V30];/*OSD显示,每位代表一路*/
  8182. BYTE byRes[32];
  8183. }NET_DVR_MB_SENSORINPARA, *LPNET_DVR_MB_SENSORINPARA;
  8184. typedef struct tagNET_DVR_ACCELERATIONCFG
  8185. {
  8186. DWORD dwMaxXAcc; /* X轴加速度报警值 ,该取值为实际数值乘以10,最小为0*/
  8187. DWORD dwMaxYAcc; /* Y轴加速度报警值 ,该取值为实际数值乘以10.最小为0*/
  8188. DWORD dwMaxZAcc; /* Z轴加速度报警值, 该取值为实际数值乘以10,最小为0*/
  8189. BYTE byRes[4];
  8190. }NET_DVR_ACCELERATIONCFG,*LPNET_DVR_ACCERATIONCFG;
  8191. typedef struct tagNET_DVR_GSENSORPARA
  8192. {
  8193. DWORD dwSize;
  8194. NET_DVR_ACCELERATIONCFG struAccelerationCfg;
  8195. BYTE byModuleSelect;/*模块选择:0内置/1外置*/
  8196. BYTE byRes1[3];
  8197. NET_DVR_HANDLEEXCEPTION_V30 struHandleException;
  8198. BYTE byRes2[24]; /*保留扩展字节*/
  8199. }NET_DVR_GSENSORPARA, *LPNET_DVR_GSENSORPARA;
  8200. typedef struct tagNET_DVR_MB_DOWNLOADSVRPARA
  8201. {
  8202. DWORD dwSize;
  8203. NET_DVR_IPADDR struDownloadSvrIp; /* 自动下载服务器地址 */
  8204. BYTE byRes[64];
  8205. }NET_DVR_MB_DOWNLOADSVRPARA,*LPNET_DVR_MB_DOWNLOADSVRPARA;
  8206. /* 车牌识别的相关参数*/
  8207. typedef struct tagNET_DVR_PLATERECOG_PARA
  8208. {
  8209. DWORD dwSize;
  8210. BYTE byPrMode; /* 车牌识别的模式, 静态图像0/动态视频1 */
  8211. BYTE byPrScene; /* 车牌识别的场景, 低速场景0/高速场景1 */
  8212. BYTE byPrDetRect; /* 0:全屏幕;1:中心区域 */
  8213. BYTE byPrPicQuality; /* 车牌识别返回的图片质量, 0:最低/3:最高 */
  8214. BYTE byPrPicMode;/*车牌识别返回的图片分辨率: JPEG_MODE_D1, JPEG_MODE_CIF, JPEG_MODE_QCIF */
  8215. BYTE byPlateOsdDisplay; /* 车牌OSD是否显示 0:不显示/1:显示 */
  8216. BYTE byPrProvCharIndex; /* 车牌识别省份首汉字对应的索引 */
  8217. BYTE byPrProvCharIndex1; /* 车牌识别常见首汉字1对应的索引 */
  8218. BYTE byPrProvCharIndex2; /* 车牌识别常见首汉字2对应的索引 */
  8219. BYTE byRes[7];
  8220. }NET_DVR_PLATERECOG_PARA, *LPNET_DVR_PLATERECOG_PARA;
  8221. /* 动态取证系统,限速设置参数的结构*/
  8222. typedef struct tagNET_DVR_SPEEDLMT_PARA
  8223. {
  8224. BYTE bStartMaxSpeedLimit; /* 开启高速限制 */
  8225. BYTE bStartMinSpeedLimit; /* 开启低速限制 */
  8226. BYTE byRes[6];
  8227. DWORD dwMaxSpeedLimit; /* 最高限速 */
  8228. DWORD dwMinSpeedLimit; /* 最低限速 */
  8229. }NET_DVR_SPEEDLMT_PARA, *LPNET_DVR_SPEEDLMT_PARA;
  8230. /* 动态取证系统,车牌比对参数的结构*/
  8231. typedef struct tagNET_DVR_PLATECHECK_PARA
  8232. {
  8233. BYTE bAlarmWhenChecked; /* 稽查成功是否报警 */
  8234. BYTE bInformWhenChecked; /* 稽查成功是否对话框提示 */
  8235. BYTE byRes[6];
  8236. NET_DVR_IPADDR struBlackFtpServer; /* 黑名单FTP服务器地址 */
  8237. }NET_DVR_PLATECHECK_PARA, *LPNET_DVR_PLATECHECK_PARA;
  8238. typedef struct tagNET_DVR_ENFORCESYS_PARA
  8239. {
  8240. DWORD dwSize;
  8241. NET_DVR_SPEEDLMT_PARA struSpeedLmtPara; /*限速设置*/
  8242. NET_DVR_PLATECHECK_PARA struPlateCheckPara; /*车牌比对*/
  8243. BYTE bySelPeccType; /*是否选择违章类型*/
  8244. BYTE byEnfOptHabit; /*取证操作习惯, 0:长按取证;1:短按两次取证*/
  8245. /*预览帧率调节模式分三种:
  8246. A 关闭 adjPrevFpsMode=0
  8247. 以固定高帧率(25FPS)预览
  8248. B 标准 adjPrevFpsMode=1
  8249. 以固定低帧率(6FPS)预览
  8250. C 自适应 adjPrevFpsMode=2
  8251. 根据GPS速度信息动态调整预览帧率,
  8252. 3秒无有效GPS的情况下,以固定高帧率预览*/
  8253. BYTE byAdjPrevFpsMode;
  8254. BYTE byRes1;
  8255. NET_DVR_IPADDR struUploadServerIp; //上传服务器地址
  8256. WORD wUploadServerPort;
  8257. BYTE byRes2[18];
  8258. }NET_DVR_ENFORCESYS_PARA, *LPNET_DVR_ENFORCESYS_PARA;
  8259. typedef struct tagNET_DVR_PUSHMODEPARAM
  8260. {
  8261. //直连模式下UDP预览模式,1-同端口多路流,2-一端口一路流
  8262. BYTE byUdpPreviewMode;
  8263. BYTE byRes[19];
  8264. }NET_DVR_PUSHMODEPARAM, *LPNET_DVR_PUSHMODEPARAM;
  8265. NET_DVR_API BOOL __stdcall NET_DVR_SetPushModeParam(LPNET_DVR_PUSHMODEPARAM pPushParam);
  8266. /*******************************test*****************************************/
  8267. /************************************************************************/
  8268. #define MAX_ALARMHOST_ALARMIN_NUM 512//网络报警主机最大报警输入口数
  8269. #define MAX_ALARMHOST_ALARMOUT_NUM 512//网络报警主机最大报警输出口数
  8270. #define ALARMHOST_MAX_AUDIOOUT_NUM 32//网络报警主机最大语音输出数
  8271. #define ALARMHOST_MAX_ELECTROLOCK_NUM 32//网络报警主机最大电锁数
  8272. #define ALARMHOST_MAX_MOBILEGATE_NUM 32//网络报警主机最大移动门数
  8273. #define ALARMHOST_MAX_SIREN_NUM 8 // 最大警号数目
  8274. typedef enum tagSENSOR_TYPE
  8275. {
  8276. SENSOR_TYPE_NONE = 0, //无
  8277. SENSOR_TYPE_TEMPERATURE = 1, // 温度
  8278. SENSOR_TYPE_HUMIDITY , // 湿度
  8279. SENSOR_TYPE_WINDSPEED, // 风速
  8280. SENSOR_TYPE_GAS, //气体
  8281. SENSOR_TYPE_UNKNOW = 255 //未定义
  8282. }SENSOR_TYPE;
  8283. typedef struct tagNET_DVR_SENSOR_INFO
  8284. {
  8285. DWORD dwSize; // 结构体大小
  8286. BYTE byName[NAME_LEN]; // 传感器名称
  8287. BYTE byEnable; // 是否启用
  8288. BYTE byValid; // 是否有效 传感器正常不正常(该参数只能获取不能个配置)
  8289. BYTE byType; // 模拟量类型 参照SENSOR_TYPE
  8290. BYTE byAlarmMode;//报警模式,五种,15-HHHH、14-HHHL、12-HHLL、8HLLL、0-LLLL,
  8291. //即:1111(上上上上),1110(上上上下),1100(上上下下),1000(上下下下),0000(下下下下)
  8292. float fMeasureHigh; // 量程上限
  8293. float fMeasureLow; // 量程下限
  8294. // 报警限1-4 依次增大
  8295. float fAlarm1; //报警限1
  8296. float fAlarm2; //报警限2
  8297. float fAlarm3; //报警限3
  8298. float fAlarm4; //报警限4
  8299. DWORD dwOsdCfg; //模拟量字符叠加,按位表示0-15对应视频通道1-16
  8300. float fSensitive; // 灵敏度表示当实时值的变化超过灵敏度的范围时,则表示实时值发生了变化,否则认为没有发生变化。如:灵敏度为0.1,则表示前后检测的两个值之差大于0.1时,则认为数据发生变化大于0.1,需要上传。如果为1,则表示变化超过1时上报。
  8301. BYTE byRes3[116]; // 保留字节
  8302. }NET_DVR_SENSOR_INFO, *LPNET_DVR_SENSOR_INFO;
  8303. typedef struct tagNET_DVR_SIREN_PARAM
  8304. {
  8305. DWORD dwSize; // 结构大小
  8306. BYTE byName[NAME_LEN]; // 名称
  8307. WORD wDelay; // 输出延迟 单位为秒 0表示一直有输出
  8308. BYTE byRes1[2];
  8309. BYTE byAssociateAlarmIn[MAX_ALARMHOST_ALARMIN_NUM]; //表示警号跟随的报警输入通道 (多个报警输入同时触发一个警号输出)数组下标0表示报警输入1,依次类推 0-不跟随 1-跟随
  8310. BYTE byRes2[68]; // 保留字节 
  8311. }NET_DVR_SIREN_PARAM, *LPNET_DVR_SIREN_PARAM;
  8312. typedef struct tagNET_DVR_AIR_CONDITION_PARAM
  8313. {
  8314. DWORD dwSize; // 结构体大小
  8315. BYTE byEnable; // 0--关机 1--开机
  8316. BYTE byMode; // 空调模式
  8317. BYTE byTemperature; // 温度,具体值表示 通常为16-30度
  8318. BYTE byRes[9]; // 保留字节
  8319. }NET_DVR_AIR_CONDITION_PARAM, *LPNET_DVR_AIR_CONDITION_PARAM;
  8320. typedef enum tagDETECTOR_TYPE
  8321. {
  8322. PANIC_BUTTON = 0, // 紧急开关
  8323. MAGNETIC_CONTACT, // 门磁开关
  8324. SMOKE_DETECTOR, // 烟感探测器
  8325. ACTIVE_INFRARED_DETECTOR, // 主动红外探测器
  8326. PASSIVE_INFRARED_DETECTOR, // 被动红外探测器
  8327. GLASS_BREAK_DETECTOR, // 玻璃破碎探测器
  8328. VIBRATION_DETECTOR, // 震动探测器
  8329. DUAL_TECHNOLOGY_PIR_DETECTOR, // 双鉴移动探测器
  8330. TRIPLE_TECHNOLOGY_PIR_DETECTOR, // 三技术探测器
  8331. HUMIDITY_DETECTOR, // 湿度探测器
  8332. TEMPERATURE_DETECTOR, // 温感探测器
  8333. COMBUSTIBLE_GAS_DETECTOR, // 可燃气体探测器
  8334. OTHER_DETECTOR = 0xffff // 其他探测器
  8335. }DETECTOR_TYPE;
  8336. typedef struct tagNET_DVR_ALARMIN_PARAM
  8337. {
  8338. DWORD dwSize;
  8339. BYTE byName[NAME_LEN];
  8340. WORD wDetectorType; // DETECTOR_TYPE
  8341. BYTE byType; // 防区报警类型 0-- 即时防区、1--24小时防区、2--延时防区
  8342. BYTE byRes1;
  8343. DWORD dwParam; // 防区参数 延时防区延时多长时间
  8344. NET_DVR_SCHEDTIME struAlarmTime[MAX_DAYS][MAX_TIMESEGMENT];/*布防时间时间段*/
  8345. BYTE byAssociateAlarmOut[MAX_ALARMHOST_ALARMOUT_NUM]; // 报警输入关联报警输出
  8346. BYTE byAssociateSirenOut[8]; // 警号输出 数组0 表示警号1 值为1表示输出 0 表示不输出
  8347. BYTE bySensitivityParam;//防区灵敏度参数, 0-10ms、1-250ms、2-500ms、3-750ms
  8348. BYTE byArrayBypass;//是否加入旁路组,0-不支持组旁路,1-支持组旁路
  8349. BYTE byRes[50]; // 保留字节
  8350. }NET_DVR_ALARMIN_PARAM, *LPNET_DVR_ALARMIN_PARAM;
  8351. typedef struct tagNET_DVR_ALARMOUT_PARAM
  8352. {
  8353. DWORD dwSize; // 结构体大小
  8354. BYTE byName[NAME_LEN]; // 名称
  8355. WORD wDelay; // 输出延迟 单位 s 0 表示一直有输出
  8356. BYTE byRes1[2]; // 保留字节
  8357. BYTE byAssociateAlarmIn[MAX_ALARMHOST_ALARMIN_NUM]; //表示警号跟随的报警输入通道 (多个报警输入同时触发一个警号输出)数组下标0表示报警输入1,依次类推 0-不跟随 1-跟随
  8358. BYTE byRes2[60];
  8359. }NET_DVR_ALARMOUT_PARAM, *LPNET_DVR_ALARMOUT_PARAM;
  8360. typedef struct tagNET_DVR_ALARMIN_SETUP
  8361. {
  8362. BYTE byAssiciateAlarmIn[MAX_ALARMHOST_ALARMIN_NUM];//报警输入通道 数组下标0对应报警输入口1,依次类推
  8363. BYTE byRes[100];//保留字节
  8364. }NET_DVR_ALARMIN_SETUP, *LPNET_DVR_ALARMIN_SETUP;
  8365. typedef struct tagNET_DVR_ALARMHOST_MAIN_STATUS
  8366. {
  8367. DWORD dwSize;
  8368. BYTE bySetupAlarmStatus[MAX_ALARMHOST_ALARMIN_NUM];//报警输入口布防状态,(最大支持512个报警输入口查询),0-对应报警输入口处于撤防状态,1-对应报警输入口处于布防状态
  8369. BYTE byAlarmInStatus[MAX_ALARMHOST_ALARMIN_NUM];//报警输入口报警状态,(最大支持512个报警输入口查询),0-对应报警输入口当前无报警,1-对应报警输入口当前有报警
  8370. BYTE byAlarmOutStatus[MAX_ALARMHOST_ALARMOUT_NUM];//报警输出口状态,(最大支持512个报警输出口查询),0-对应报警输出口无报警,1-对应报警输出口有报警
  8371. BYTE byBypassStatus[MAX_ALARMHOST_ALARMIN_NUM]; // 旁路状态 数组下标表示0对应报警输入口1 0-表示报警输入口没有旁路 1-表示报警输入口旁路
  8372. BYTE byRes[600]; // 保留字节
  8373. }NET_DVR_ALARMHOST_MAIN_STATUS, *LPNET_DVR_ALARMHOST_MAIN_STATUS;
  8374. typedef struct tagNET_DVR_ALARMHOST_OTHER_STATUS
  8375. {
  8376. DWORD dwSize;
  8377. BYTE bySirenStatus[ALARMHOST_MAX_SIREN_NUM]; // 警号输出状态 0-警号处于无报警状态,1-警号处于有报警状态
  8378. BYTE byRes[92]; // 保留字节
  8379. }NET_DVR_ALARMHOST_OTHER_STATUS, *LPNET_DVR_ALARMHOST_OTHER_STATUS;
  8380. //使能状态配置
  8381. typedef struct tagNET_DVR_ALARMHOST_ENABLECFG
  8382. {
  8383. DWORD dwSize;
  8384. BYTE byAudioOutEnable[ALARMHOST_MAX_AUDIOOUT_NUM];//语音输出使能,0-禁能,1-使能
  8385. BYTE byElectroLockEnable[ALARMHOST_MAX_ELECTROLOCK_NUM];//电锁使能,0-禁能,1-使能
  8386. BYTE byMobileGateEnable[ALARMHOST_MAX_MOBILEGATE_NUM];//移动门使能,0-禁能,1-使能
  8387. BYTE bySirenEnable[ALARMHOST_MAX_SIREN_NUM];//警号使能, 0-禁能,1-使能
  8388. BYTE bySerialPurpose;//串口用途,0-用于级联报警主机,1-用于PTZ控制
  8389. BYTE byRes[63];
  8390. }NET_DVR_ALARMHOST_ENABLECFG, *LPNET_DVR_ALARMHOST_ENABLECFG;
  8391. typedef struct tagNET_DVR_ALARMHOST_ABILITY
  8392. {
  8393. DWORD dwSize; // 结构体大小
  8394. WORD wTotalAlarmInNum; // 报警输入口总数(防区),包括级联
  8395. WORD wLocalAlarmInNum; // 本地报警输入口
  8396. WORD wExpandAlarmInNum; // 可扩展的报警输入口
  8397. WORD wTotalAlarmOutNum; // 报警输出口总数 (设备支持的总数)
  8398. WORD wLocalAlarmOutNum; // 本地报警输出口个数
  8399. WORD wExpandAlarmOutNum; // 可扩展的报警输出口
  8400. WORD wTotalRs485Num; // 报警输出口总数 (设备支持的总数)
  8401. WORD wLocalRs485Num; // 本地485口数
  8402. WORD wExpandRs485Num; // 可扩展的485口数
  8403. WORD wFullDuplexRs485Num; // 全双工的485口数
  8404. WORD wTotalSensorNum; // 模拟量最大个数 (设备支持的总数)
  8405. WORD wLocalSensorNum; // 本地模拟量个数
  8406. WORD wExpandSensorNum; // 可扩展的模拟量个数
  8407. WORD wAudioOutNum; //语音输出个数
  8408. WORD wGatewayNum; //门禁个数
  8409. WORD wElectroLockNum; //电锁个数
  8410. WORD wSirenNum; // 主机警号数目
  8411. WORD wSubSystemNum; // 可划分子系统数目
  8412. WORD wNetUserNum; // 网络用户数
  8413. WORD wKeyboardUserNum; // 键盘用户数
  8414. WORD wOperatorUserNum; // 操作用户数
  8415. BYTE bySupportDetector;//是否支持常开、常闭探测器,1-支持,0-不支持
  8416. BYTE bySupportSensitivity;//是否支持防区灵敏度,1-支持,0-不支持
  8417. BYTE bySupportArrayBypass;//是否支持组旁路,1-支持,0-不支持
  8418. BYTE bySupportAlarmInDelay;//是否支持防区延迟,1-支持,0-不支持
  8419. BYTE bySupportAlarmInType[16];//支持的防区类型,数组0:即时防区,1-24小时防区,2-延时防区 ,3-内部防区,4-钥匙防区
  8420. BYTE byTelNum; //支持电话个数
  8421. BYTE byCenterGroupNum; //中心组个数
  8422. BYTE byGPRSNum; //GPRS中心数,最多4个
  8423. BYTE byNetNum; //网络中心数,最多4个
  8424. WORD byRes[74]; // 保留字节
  8425. }NET_DVR_ALARMHOST_ABILITY, *LPNET_DVR_ALARMHOST_ABILITY;
  8426. typedef struct tagNET_DVR_ALARM_RS485CFG
  8427. {
  8428. DWORD dwSize; // 结构体大小
  8429. BYTE sDeviceName[NAME_LEN]; // 前端设备名称
  8430. WORD wDeviceType; // 前端设备类型ALARM_FRONT_DEVICE _TYPE
  8431. WORD wDeviceProtocol; // 前端设备协议 通过获取协议列表获取
  8432. 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
  8433. BYTE byDataBit; // 数据有几位:0-5位,1-6位,2-7位,3-8位
  8434. BYTE byStopBit; // 停止位:0-1位,1-2位
  8435. BYTE byParity; //是否校验:0-无校验,1-奇校验,2-偶校验
  8436. BYTE byFlowcontrol; // 是否流控:0-无,1-软流控,2-硬流控
  8437. BYTE byDuplex; // 0 - 半双工1- 全双工 只有通道1可以是全双工其他都只能是半双工
  8438. BYTE byWorkMode; // 工作模式 0-控制台 1-透明通道
  8439. BYTE byRes[38]; // 保留字节
  8440. }NET_DVR_ALARM_RS485CFG, *LPNET_DVR_ALARM_RS485CFG;
  8441. #define MAX_DEVICE_PROTO_NUM 256
  8442. #define MAX_DEVICE_TYPE_NUM 256
  8443. // 485前端设备支持协议列表
  8444. typedef struct tagNET_DVR_DEVICE_PROTO_LIST
  8445. {
  8446. DWORD dwSize; // 结构体大小
  8447. DWORD dwProtoNum; // 协议个数
  8448. NET_DVR_PROTO_TYPE struProtoType[MAX_DEVICE_PROTO_NUM]; // 协议类型
  8449. BYTE byRes[12]; // 保留字节
  8450. }NET_DVR_DEVICE_PROTO_LIST, *LPNET_DVR_DEVICE_PROTO_LIST;
  8451. typedef struct tagNET_DVR_DEVICE_TYPE
  8452. {
  8453. DWORD dwType;
  8454. BYTE byDescribe[DESC_LEN];
  8455. }NET_DVR_DEVICE_TYPE, *LPNET_DVR_DEVICE_TYPE;
  8456. typedef struct tagNET_DVR_DEVICE_TYPE_LIST
  8457. {
  8458. DWORD dwSize; // 结构体大小
  8459. DWORD dwTypeNum; // 类型个数
  8460. NET_DVR_DEVICE_TYPE struDeviceType[MAX_DEVICE_TYPE_NUM];
  8461. BYTE byRes[12];
  8462. }NET_DVR_DEVICE_TYPE_LIST, *LPNET_DVR_DEVICE_TYPE_LIST;
  8463. #define ALARMHOST_ABILITY 0x500 //网络报警主机能力集
  8464. typedef struct tagNET_DVR_ALARM_DEVICE_USER
  8465. {
  8466. DWORD dwSize; // 结构体大小
  8467. BYTE sUserName[NAME_LEN]; // 用户名
  8468. BYTE sPassword[PASSWD_LEN]; // 密码
  8469. NET_DVR_IPADDR struUserIP; /* 用户IP地址(为0时表示允许任何地址) */
  8470. BYTE byMACAddr[MACADDR_LEN]; /* 物理地址 */
  8471. BYTE byUserType; // 0-普通用户 1-管理员用户
  8472. BYTE byAlarmOnRight; // 布防权限
  8473. BYTE byAlarmOffRight; // 撤防权限
  8474. BYTE byBypassRight; // 旁路权限
  8475. BYTE byOtherRight[MAX_RIGHT]; // 其他权限
  8476. // 数组0 日志权限
  8477. // 数组1 重启关机
  8478. // 数组2 参数设置权限
  8479. // 数组3 参数获取权限
  8480. // 数组4 恢复默认参数权限
  8481. // 数组5 警号输出权限
  8482. // 数组6 PTZ 控制权限(给矩阵使用)
  8483. // 数组7 远程升级权限
  8484. BYTE byRes2[200]; // 保留字节
  8485. }NET_DVR_ALARM_DEVICE_USER, *LPNET_DVR_ALARM_DEVICE_USER;
  8486. typedef struct tagNET_DVR_KEYBOARD_USER
  8487. {
  8488. DWORD dwSize; // 结构体大小
  8489. DWORD dwID; // 键盘用户ID
  8490. BYTE byDefanceArea[MAX_ALARMHOST_ALARMIN_NUM]; //防区权限 按数组下标表示 最大支持512个防区 0 - 无权限 1- 有权限
  8491. BYTE byRes[560]; // 保留字节
  8492. }NET_DVR_KEYBOARD_USER, *LPNET_DVR_KEYBOARD_USER;
  8493. typedef struct tagNET_DVR_OPERATE_USER
  8494. {
  8495. DWORD dwSize; // 结构体大小
  8496. BYTE sUserName[NAME_LEN]; // 用户名
  8497. BYTE sPassword[PASSWD_LEN]; // 密码
  8498. // 防区布防权限 最大支持512个防区 按数组下标表示 0 - 无权限 1 - 有权限
  8499. BYTE byAlarmOnArea[MAX_ALARMHOST_ALARMIN_NUM];
  8500. // 防区撤防权限 最大支持512个防区 按下标表示 0 - 无权限 1 - 有权限
  8501. BYTE byAlarmOffArea[MAX_ALARMHOST_ALARMIN_NUM];
  8502. // 防区旁路权限 最大支持512个防区 按下标表示 0 - 无权限 1 - 有权限
  8503. BYTE byBypassArea[MAX_ALARMHOST_ALARMIN_NUM];
  8504. BYTE byRes[560]; // 保留字节
  8505. }NET_DVR_OPERATE_USER, *LPNET_DVR_OPERATE_USER;
  8506. typedef struct tagNET_DVR_GATEWAY_CFG
  8507. {
  8508. DWORD dwSize; // 结构体大小
  8509. BYTE byName[NAME_LEN]; // 门禁名称
  8510. BYTE byEnable; // 是否启用
  8511. BYTE byLocalEnable; // 本地是否启用
  8512. WORD wDelayTime; // 开启延时时间 单位为秒0-65535 0为一直开启
  8513. BYTE byLockWorkMode;//电锁工作模式,0-通电启动,1-断电启动
  8514. BYTE byRes[31]; // 保留字节
  8515. }NET_DVR_GATEWAY_CFG, *LPNET_DVR_GATEWAY_CFG;
  8516. typedef struct tagNET_DVR_SENSOR_ALARM
  8517. {
  8518. DWORD dwSize; // 结构体大小
  8519. DWORD dwAbsTime; // 绝对时标信息 OSD显示信息
  8520. BYTE byName[NAME_LEN]; // sensor 名称
  8521. BYTE bySensorChannel; // 模拟量通道
  8522. BYTE byType; // 模拟量类型
  8523. BYTE byAlarmType; // 1-上4、2-上3、3-上2、4-上1、5-下1、6-下2、7-下3、8-下4 和当前模式有关
  8524. // 例如当为1000时,有上1下1,2,3报警四种报警
  8525. BYTE byAlarmMode; //报警模式,五种,-HHHH、-HHHL、-HHLL、HLLL、-LLLL, 作为平台报警程度判断功能
  8526. //即:1111(上上上上),1110(上上上下),1100(上上下下),1000(上下下下),0000(下下下下)
  8527. float fValue; // 但前模拟量的值
  8528. BYTE byRes2[32]; // 保留字节
  8529. }NET_DVR_SENSOR_ALARM, *LPNET_DVR_SENSOR_ALARM;
  8530. typedef struct
  8531. {
  8532. /*预留,目前报警主机的报警没有类型(布防网络序,监听主机序)*/
  8533. DWORD dwAlarmType;
  8534. /*数组0对应第1个输入端口*/
  8535. BYTE byAlarmInputNumber[MAX_ALARMHOST_ALARMIN_NUM];
  8536. BYTE byRes[160];
  8537. }NET_DVR_ALARMHOST_ALARMINFO,*LPNET_DVR_ALARMHOST_ALARMINFO;
  8538. // 开关量报警上传
  8539. typedef struct tagNET_DVR_SWITCH_ALARM
  8540. {
  8541. DWORD dwSize;
  8542. BYTE byName[NAME_LEN]; // switch 名称
  8543. WORD wSwitchChannel; // 开关量通道
  8544. BYTE byAlarmType; // 报警类型,0-正常,1-短路,2-断路
  8545. BYTE byRes[41]; // 保留字节
  8546. }NET_DVR_SWITCH_ALARM, *LPNET_DVR_SWITCH_ALARM;
  8547. typedef union tagNET_DVR_ALARMHOST_EXCEPTION_PARAM
  8548. {
  8549. DWORD dwUnionSize[20]; // 联合体大小
  8550. }NET_DVR_ALARMHOST_EXCEPTION_PARAM, *LPNET_DVR_ALARMHOST_EXCEPTION_PARAM;
  8551. typedef struct tagNET_DVR_ALARMHOST_EXCEPTION_ALARM
  8552. {
  8553. DWORD dwSize; // 结构体大小
  8554. // 异常参数 1-设备防拆报警 2-设备防拆后后恢复正常 3-主电源掉电报警 4-主电源掉电后恢复正常 5-内部通信故障报警
  8555. // 6-内部通信故障后恢复正常 7-485外设线路断报警 8-外设线路断后恢复正常 9-自检失败报警 10-自检失败后恢复正常
  8556. // 11蓄电池欠压 12蓄电池电压恢复正常
  8557. DWORD dwExceptionType;
  8558. NET_DVR_ALARMHOST_EXCEPTION_PARAM uExceptionParam;
  8559. BYTE byRes[16]; // 保留
  8560. }NET_DVR_ALARMHOST_EXCEPTION_ALARM, *LPNET_DVR_ALARMHOST_EXCEPTION_ALARM;
  8561. //自助行拨号参数配置及启用方式配置
  8562. #define MAX_CENTERNUM 4 //G1,G2 G3 G4或者N1,N2,N3,N4或者T1,T2,T3,T4
  8563. typedef struct tagNET_DVR_PHONECENTERDIALCFG
  8564. {
  8565. BYTE sCenterName[NAME_LEN];
  8566. BYTE byPhoneNum[MAX_PHONE_NUM/*32*/]; //中心号码
  8567. BYTE byRepeatCall; //重复拨号次数,1~15次
  8568. BYTE byPstnProtocol; //通信协议,0-CID;
  8569. BYTE byDialDelay; //拨号延时,最大150s
  8570. BYTE byPstnTransMode; //传输方式,0-DTMF 5/S,1-DTMF 10/S;
  8571. BYTE byRes1[6];
  8572. BYTE byReceiverId[6]; //接收机识别账号;
  8573. BYTE byRes2[32];
  8574. }NET_DVR_PHONECENTERDIALCFG, *LPNET_DVR_PHONECENTERDIALCFG;
  8575. typedef struct tagNET_DVR_ALARMHOSTDIALCFG
  8576. {
  8577. DWORD dwSize;
  8578. NET_DVR_PHONECENTERDIALCFG struPhoneCenterParam[MAX_CENTERNUM];//主中心参数
  8579. WORD wReportPeriod; //测试报告上传周期,小时,(最大值支持7天,即168小时)
  8580. WORD wFirstReportTime; //从设备启动到第一条测试报告上传,1~3600分钟
  8581. BYTE byReportValid; //0-不启用测试报告上传 1-启用测试报告上传
  8582. BYTE byRes[19];
  8583. }NET_DVR_ALARMHOSTDIALCFG, *LPNET_DVR_ALARMHOSTDIALCFG;
  8584. typedef struct _tagNET_DVR_ALARMHOSTDIALSETUPMODE
  8585. {
  8586. DWORD dwSize;
  8587. BYTE byEnableMode;//启用方式,0:不启用,1:一直启用,2:网线断启用,正常时关闭;
  8588. BYTE byCallType; //上传中心方式,1-单中心,2-双中心,3,一报一备
  8589. BYTE byRes1[14];
  8590. }NET_DVR_ALARMHOSTDIALSETUPMODE, *LPNET_DVR_ALARMHOSTDIALSETUPMODE;
  8591. NET_DVR_API BOOL __stdcall NET_DVR_AlarmHostSetupAlarmChan(LONG lUserID, NET_DVR_ALARMIN_SETUP *lpInter);
  8592. NET_DVR_API BOOL __stdcall NET_DVR_AlarmHostCloseAlarmChan(LONG lUserID, NET_DVR_ALARMIN_SETUP *lpInter);
  8593. NET_DVR_API BOOL __stdcall NET_DVR_BypassAlarmChan(LONG lUserID, NET_DVR_ALARMIN_SETUP *lpInter);
  8594. NET_DVR_API BOOL __stdcall NET_DVR_UnBypassAlarmChan(LONG lUserID, NET_DVR_ALARMIN_SETUP *lpInter);
  8595. NET_DVR_API BOOL __stdcall NET_DVR_AlarmHostAssistantControl(LONG lUserID, DWORD dwType, DWORD dwNumber, DWORD dwCmdParam);
  8596. NET_DVR_API BOOL __stdcall NET_DVR_SetAirCondition(LONG lUserID, LONG l485Index, NET_DVR_AIR_CONDITION_PARAM* lpAirConditionParam);
  8597. NET_DVR_API BOOL __stdcall NET_DVR_GetDeviceTypeList(LONG lUserID, NET_DVR_DEVICE_TYPE_LIST *lpDeviceTypeList);
  8598. NET_DVR_API BOOL __stdcall NET_DVR_GetDeviceProtoList(LONG lUserID, LONG lDeviceType, NET_DVR_DEVICE_PROTO_LIST *lpDeviceProtoList);
  8599. NET_DVR_API BOOL __stdcall NET_DVR_GetBatteryVoltage(LONG lUserID, float *pVoltage);
  8600. NET_DVR_API BOOL __stdcall NET_DVR_SetAlarmDeviceUser(LONG lUserID, LONG lUserIndex, NET_DVR_ALARM_DEVICE_USER* lpDeviceUser);
  8601. NET_DVR_API BOOL __stdcall NET_DVR_GetAlarmDeviceUser(LONG lUserID, LONG lUserIndex, NET_DVR_ALARM_DEVICE_USER* lpDeviceUser);
  8602. NET_DVR_API BOOL __stdcall NET_DVR_SetKeyboardUser(LONG lUserID, LONG lUserIndex, NET_DVR_KEYBOARD_USER* lpKeyboardUser);
  8603. NET_DVR_API BOOL __stdcall NET_DVR_GetKeyboardUser(LONG lUserID, LONG lUserIndex, NET_DVR_KEYBOARD_USER* lpKeyboardUser);
  8604. NET_DVR_API BOOL __stdcall NET_DVR_SetOperateUser(LONG lUserID, LONG lUserIndex, NET_DVR_OPERATE_USER* lpOperateUser);
  8605. NET_DVR_API BOOL __stdcall NET_DVR_GetOperateUser(LONG lUserID, LONG lUserIndex, NET_DVR_OPERATE_USER* lpOperateUser);
  8606. NET_DVR_API BOOL __stdcall NET_DVR_ControlGateway(LONG lUserID, LONG lGatewayIndex, DWORD dwStaic);
  8607. /******************************************
  8608. 函数: NET_DVR_SetAlarmHostOut
  8609. 描述: 设置报警输出(报警主机 报警板类)
  8610. 输入: lUserID NET_DVR_Login返回值
  8611. lAlarmOutPort 报警输出口索引 从0开始 0xffffffff表示全部报警输出口
  8612. lAlarmOutStatic 报警输出状态,0-停止输出,1-输出
  8613. 输出: 无
  8614. 返回值: 成功-HPR_TRUE 失败-HPR_FALSE
  8615. ******************************************/
  8616. NET_DVR_API BOOL __stdcall NET_DVR_SetAlarmHostOut(LONG lUserID, LONG lAlarmOutPort, LONG lAlarmOutStatic);
  8617. /******************************************
  8618. 函数: fAlarmHostSerialDataCallBack
  8619. 描述: 建立透明通道回调函数指针
  8620. 输入: lSerialHandle NET_DVR_AlarmHostSerialStart返回值
  8621. lPort 485口接收数据的槽位号 从1开始 232 该参数无效
  8622. lDateType 数据类型 0-表示数据接收正常 1-表示通道不支持透明通道(针对485口)
  8623. pRecvDataBuffer 存放数据的缓冲区指针
  8624. pUser 用户数据
  8625. 输出: 无
  8626. 返回值: 无
  8627. ******************************************/
  8628. typedef void(CALLBACK *fAlarmHostSerialDataCallBack)
  8629. (LONG lSerialHandle, LONG lPort, LONG lDateType, char *pRecvDataBuffer, DWORD dwBufSize,void *pUser);
  8630. /******************************************
  8631. 函数: NET_DVR_AlarmHostSerialStart
  8632. 描述: 和报警主机设备建立透明通道
  8633. 输入: lUserID NET_DVR_Login返回值
  8634. lSerialType 建立透明通道类型 1 - 建立232通道 2 - 建立485通道
  8635. cbSerialDataCallBack 指向fAlarmHostSerialDataCallBack函数指针,用于接收透明通道数据
  8636. dwUser 用户数据
  8637. 输出: 无
  8638. 返回值: -1 表示失败 其他值作为NET_DVR_AlarmHostSerialSend等函数句柄
  8639. ******************************************/
  8640. NET_DVR_API LONG __stdcall NET_DVR_AlarmHostSerialStart(LONG lUserID, LONG lSerialType, fAlarmHostSerialDataCallBack cbSerialDataCallBack, void *pUser);
  8641. /******************************************
  8642. 函数: NET_DVR_AlarmHostSerialSend
  8643. 描述: 向透明通道指定的485口或者232口发送数据
  8644. 输入: lSerialHandle NET_DVR_AlarmHostSerialStart返回值
  8645. lPort 当为485透明通道时使用,485口的槽位号,从1开始
  8646. pSendBuf 指向发送数据缓冲区的指针
  8647. dwBufSize 发送数据的大小
  8648. 输出: 无
  8649. 返回值: 成功-TURE 失败-FALSE
  8650. ******************************************/
  8651. NET_DVR_API BOOL __stdcall NET_DVR_AlarmHostSerialSend(LONG lSerialHandle,LONG lPort,char *pSendBuf,DWORD dwBufSize);
  8652. /******************************************
  8653. 函数: NET_DVR_AlarmHostSerialStop
  8654. 描述: 关闭透明通道
  8655. 输入: lSerialHandle NET_DVR_AlarmHostSerialStart返回值
  8656. 输出: 无
  8657. 返回值: 成功-TRUE 失败-FALSE
  8658. ******************************************/
  8659. NET_DVR_API BOOL __stdcall NET_DVR_AlarmHostSerialStop(LONG lSerialHandle);
  8660. #define MAX_PU_CHAN_NUM 512
  8661. typedef struct tagNET_DVR_PU_CHAN_INFO
  8662. {
  8663. NET_DVR_IPADDR struIpAddr; // ip地址
  8664. WORD wPort; // 端口
  8665. WORD wChannel; // 通道
  8666. BYTE byRes[24]; //
  8667. }NET_DVR_PU_CHAN_INFO, *LPNET_DVR_PU_CHAN_INFO;
  8668. typedef struct tagNET_DVR_PU_CHAN_LIST
  8669. {
  8670. DWORD dwSize; // 结构体
  8671. DWORD dwNum; // 前端通道个数
  8672. NET_DVR_PU_CHAN_INFO struPuChanInfo[MAX_PU_CHAN_NUM];
  8673. }NET_DVR_PU_CHAN_LIST, *LPNET_DVR_PU_CHAN_LIST;
  8674. /******************************************
  8675. 函数: NET_DVR_GetMatrixPuChan
  8676. 描述: 获取视频综合平台Cam号和Mon号
  8677. 输入: lUserID NET_DVR_Login_V30返回值
  8678. lChanType 获取通道的类型 0-Cam号 1-Mon号
  8679. lpChanList 指向NET_DVR_PU_CHAN_LIST结构指针
  8680. 输出: lpChanList 指向NET_DVR_PU_CHAN_LIST结构指针
  8681. 返回值: 成功-TRUE 失败-FALSE
  8682. ******************************************/
  8683. NET_DVR_API BOOL __stdcall NET_DVR_GetMatrixPuChan(LONG lUserID, LONG lChanType, NET_DVR_PU_CHAN_LIST* lpChanList);
  8684. #define MAX_ALARM_CAM_NUM 32 // 报警触发CAM最大个数
  8685. typedef struct tagNET_DVR_PTZ_CTRL
  8686. {
  8687. BYTE byEnable; // 是否启用PTZ控制
  8688. BYTE byType; // PTZ 控制的类型 1- 预置点 2 -巡航 3-轨迹
  8689. BYTE byPtzNo; // ptz 控制的预置点 巡航 轨迹号
  8690. BYTE byRes[5]; // 保留字节
  8691. }NET_DVR_PTZ_CTRL, *LPNET_DVR_PTZ_CTRL;
  8692. typedef struct tagNET_DVR_ALARM_CAM_INFO
  8693. {
  8694. DWORD dwCamID; // 触发的CAM通道操作
  8695. DWORD dwRecordTime; // 触发录像时间 单位为s -1表示一直录像 0 表示不录像
  8696. DWORD dwMonID; // 触发Cam到Mon号显示
  8697. DWORD dwResidentTime; // 轮巡停留时间单位为s -1表示一直停留 0 表示不停留
  8698. NET_DVR_PTZ_CTRL struPtzCtrl; // PTZ控制信息
  8699. BYTE byAlarmOffMode; // 报警切换上墙取消模式 0-立即取消,1-自动取消,2-手动取消 立即取消,报警取消时立即取消解码上墙 自动取消,报警取消时等待一定时间后取消解码上墙,我们约定是20秒 手动取消,用户通过手动的方式取消
  8700. BYTE byDevType; // 当设备为智能设备时,生效表示智能报警设备取流源 1-解码卡 2-编码卡
  8701. BYTE byDecChan; // 当为解码通道为解码通道号
  8702. BYTE byRes[17]; // 保留字节
  8703. }NET_DVR_ALARM_CAM_INFO, *LPNET_DVR_ALARM_CAM_INFO;
  8704. typedef struct tagNET_DVR_ALARM_CAM_CFG
  8705. {
  8706. DWORD dwSize; // 结构体大小
  8707. BYTE byEnable; // 是否启用报警触发CAM联动 设备默认不启用
  8708. BYTE byRes[7]; // 保留字节
  8709. DWORD dwNum; // 触发CAM联动的个数 即取数组的前几个有效处理
  8710. NET_DVR_ALARM_CAM_INFO struAlarmCam[MAX_ALARM_CAM_NUM];
  8711. }NET_DVR_ALARM_CAM_CFG, *LPNET_DVR_ALARM_CAM_CFG;
  8712. NET_DVR_API BOOL __stdcall NET_DVR_MatrixAlarmOffMonitor(LONG lUserID, DWORD dwMonID, DWORD dwCamID);
  8713. /************************************************************************/
  8714. //2010-12-28 高清解码卡能力集 begin
  8715. //新的解码卡服务器能力集
  8716. #define MAX_DECODE_CARD_NUM 6 //最多高清解码卡数
  8717. /********************高清解码卡输出模式宏定义********************/
  8718. typedef enum _HD_DISPLAY_FORMAT
  8719. {
  8720. HD_DISPLAY_FORMAT_INVALID = 0x00000000,
  8721. HD_DISPLAY_FORMAT_CVBS = 0x00000001,
  8722. HD_DISPLAY_FORMAT_DVI = 0x00000002,
  8723. HD_DISPLAY_FORMAT_VGA = 0x00000004,
  8724. HD_DISPLAY_FORMAT_HDMI = 0x00000008,
  8725. HD_DISPLAY_FORMAT_YPbPr = 0x00000010
  8726. }HD_DISPLAY_FORMAT,*LPHD_DISPLAY_FORMAT;
  8727. /********************高清解码卡输出模式宏定义********************/
  8728. typedef struct tagNET_DVR_DECCARD_ABILITY /*高清解码卡能力集*/
  8729. {
  8730. BYTE byCardType; //解码卡类型(0:MD,1:MD+,2:HD)
  8731. BYTE byDecNums; //解码通道数
  8732. BYTE byDispNums; //显示通道数
  8733. BYTE byDecStartIdx; //首个解码通道在所有解码通道中的索引
  8734. BYTE byDispStartIdx; //首个显示通道在所有显示通道中的索引
  8735. BYTE byDispResolution[80]; //输出模式支持的分辨率
  8736. BYTE byDispFormat[8]; //支持的输出模式(按HD_DISPLAY_FORMAT)
  8737. BYTE byWindowMode[4][8]; //支持的窗口模式(比如1,2,4,9,16))
  8738. BYTE byRes [35];
  8739. } NET_DVR_DECCARD_ABILITY,*LPNET_DVR_DECCARD_ABILITY;
  8740. typedef struct tagNET_DVR_DECODESVR_ABILITY
  8741. {
  8742. DWORD dwSize; /* 结构体大小 */
  8743. BYTE byCardNums; /* 解码卡数 */
  8744. BYTE byStartChan; /* 起始通道号 */
  8745. BYTE byRes1[2];
  8746. NET_DVR_DECCARD_ABILITY struDecCardAbility[MAX_DECODE_CARD_NUM];
  8747. BYTE byRes2[64];
  8748. }NET_DVR_DECODESVR_ABILITY, *LPNET_DVR_DECODESVR_ABILITY;
  8749. #define DECODECARD_ABILITY 0x220 //解码卡服务器能力集
  8750. //2010-12-28 高清解码卡能力集 end
  8751. //2010-12-28
  8752. /*camera配置单元结构*/
  8753. typedef struct tagNET_DVR_MATRIX_CAMERACFG
  8754. {
  8755. DWORD dwGlobalIndex;//全局编号
  8756. DWORD dwInterIndex;//局部编号
  8757. BYTE sCamName[NAME_LEN];
  8758. NET_DVR_PU_STREAM_CFG struPuStreamCfg;
  8759. } NET_DVR_MATRIX_CAMERACFG,*LPNET_DVR_MATRIX_CAMERACFG;
  8760. typedef struct tagNET_DVR_MATRIX_CAMERALIST
  8761. {
  8762. DWORD dwSize;
  8763. BYTE byRes[12];
  8764. DWORD dwCamNum;//CAM数量
  8765. BYTE *pBuffer;
  8766. DWORD dwBufLen;//所分配指针长度,输入参数
  8767. } NET_DVR_MATRIX_CAMERALIST,*LPNET_DVR_MATRIX_CAMERALIST;
  8768. NET_DVR_API BOOL __stdcall NET_DVR_GetCameraListInfo(LONG lUserID, DWORD dwCamNum, DWORD dwStartCam, LPNET_DVR_MATRIX_CAMERALIST lpCamListInfo);
  8769. typedef struct tagNET_DVR_DISP_CHAN_INFO
  8770. {
  8771. NET_DVR_IPADDR struIP; /* 解码器 IP地址 */
  8772. WORD wDVRPort; /* 端口号 */
  8773. BYTE byDispChannel; /* 显示通道号 */
  8774. BYTE byRes[9];
  8775. BYTE sUserName[NAME_LEN]; /*登陆帐号 */
  8776. BYTE sPassword[PASSWD_LEN]; /*密码 */
  8777. }NET_DVR_DISP_CHAN_INFO,*LPNET_DVR_DISP_CHAN_INFO;
  8778. /*monitor配置单元结构*/
  8779. typedef struct tagNET_DVR_MATRIX_MONITORCFG
  8780. {
  8781. DWORD dwGlobalIndex;//全局编号
  8782. DWORD dwInterIndex;
  8783. BYTE sMonName[NAME_LEN];
  8784. NET_DVR_DISP_CHAN_INFO struDispChanCfg;
  8785. } NET_DVR_MATRIX_MONITORCFG,*LPNET_DVR_MATRIX_MONITORCFG;
  8786. typedef struct tagNET_DVR_MATRIX_MONITORLIST
  8787. {
  8788. DWORD dwSize;
  8789. BYTE byRes[12];
  8790. DWORD dwMonNum;//MON数量
  8791. BYTE *pBuffer;
  8792. DWORD dwBufLen;//所分配指针长度,输入参数
  8793. } NET_DVR_MATRIX_MONITORLIST,*LPNET_DVR_MATRIX_MONITORLIST;
  8794. NET_DVR_API BOOL __stdcall NET_DVR_GetMonitorListInfo(LONG lUserID, DWORD dwMonNum, DWORD dwStartMon, LPNET_DVR_MATRIX_MONITORLIST lpMonListInfo);
  8795. NET_DVR_API BOOL __stdcall NET_DVR_GetGlobalNum(LONG lUserID, DWORD *dwCamNum, DWORD *dwMonNum);
  8796. #define MAX_SUBMATRIX_NUM 8//级联中子最多从系统数量
  8797. typedef struct tagNET_DVR_SUBMATRIXINFO
  8798. {
  8799. BYTE byMainMatrix;//是否是主系统,1-是,0-否
  8800. BYTE bySubMatrixSequence;//级联子视频综合平台系统序号
  8801. BYTE byLoginType;//注册类型,1-直连,2-DNS,3-花生壳
  8802. BYTE byRes1[9];
  8803. NET_DVR_IPADDR struSubMatrixIP; /*IP地址(可修改)*/
  8804. WORD wSubMatrixPort; /*子系统端口号(可修改)*/
  8805. BYTE byRes2[6];
  8806. NET_DVR_IPADDR struSubMatrixIPMask; /*IP地址掩码*/
  8807. NET_DVR_IPADDR struGatewayIpAddr; /* 网关地址 */
  8808. BYTE sUserName[NAME_LEN]; /* 用户名 (此参数只能获取)*/
  8809. BYTE sPassword[PASSWD_LEN]; /*密码 (此参数只能获取)*/
  8810. char sDomainName[MAX_DOMAIN_NAME];//域名(可修改)
  8811. char sDnsAddress[MAX_DOMAIN_NAME];/*DNS域名或IP地址*/
  8812. BYTE sSerialNumber[SERIALNO_LEN];//序列号(此参数只能获取)
  8813. BYTE byRes3[16];
  8814. }NET_DVR_SUBMATRIXINFO, *LPNET_DVR_SUBMATRIXINFO;
  8815. typedef struct tagNET_DVR_ALLUNITEDMATRIXINFO
  8816. {
  8817. DWORD dwSize;
  8818. NET_DVR_SUBMATRIXINFO struSubMatrixInfo[MAX_SUBMATRIX_NUM];
  8819. BYTE byRes2[32];
  8820. }NET_DVR_ALLUNITEDMATRIXINFO, *LPNET_DVR_ALLUNITEDMATRIXINFO;
  8821. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetUnitedMatrixInfo(LONG lUserID, LPNET_DVR_ALLUNITEDMATRIXINFO lpInter);
  8822. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetUnitedMatrixInfo(LONG lUserID, LPNET_DVR_ALLUNITEDMATRIXINFO lpInter);
  8823. #define MAX_GATEWAYTRUNKNUM 1024 //级联视频综合平台中最大路由干线数
  8824. typedef struct tagNET_DVR_MATRIXGATEWAYNOTE
  8825. {
  8826. WORD wTrunkInToOutAbility;//干线带宽,按D1的标准衡量,如4表示支持4个D1
  8827. WORD wTrunkOutToInAbility;//干线带宽,按D1的标准衡量,如4表示支持4个D1,双向光纤时用到此值
  8828. BYTE byRes[4];
  8829. NET_DVR_MATRIXSUBSYSTEMINFO struInputNote;
  8830. NET_DVR_MATRIXSUBSYSTEMINFO struOutputNote;
  8831. }NET_DVR_MATRIXGATEWAYNOTE, *LPNET_DVR_MATRIXGATEWAYNOTE;
  8832. typedef struct tagNET_DVR_MATRIXGATEWAYINFO
  8833. {
  8834. DWORD dwSize;
  8835. NET_DVR_MATRIXGATEWAYNOTE struGatewayNote[MAX_GATEWAYTRUNKNUM];
  8836. BYTE byRes [32];
  8837. }NET_DVR_MATRIXGATEWAYINFO, *LPNET_DVR_MATRIXGATEWAYINFO;
  8838. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetGatewayInfo(LONG lUserID, LPNET_DVR_MATRIXGATEWAYINFO lpInter);
  8839. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetGatewayInfo(LONG lUserID, LPNET_DVR_MATRIXGATEWAYINFO lpInter);
  8840. typedef struct tagNET_DVR_MATRIXCODESYSTEMINFO
  8841. {
  8842. BYTE byMatrixNum;//视频综合平台号
  8843. BYTE bySubSystemNum;//子系统槽位号
  8844. BYTE byChan;//编码通道
  8845. BYTE byRes [13];
  8846. }NET_DVR_MATRIXCODESYSTEMINFO,*LPNET_DVR_MATRIXCODESYSTEMINFO;
  8847. typedef struct tagNET_DVR_MATRIXDECODESYSTEMINFO
  8848. {
  8849. BYTE byMatrixNum;//视频综合平台号
  8850. BYTE bySubSystemNum;//子系统槽位号
  8851. BYTE byDispChan;//显示通道
  8852. BYTE bySubDispChan;//显示通道子通道号
  8853. BYTE byRes [12];
  8854. }NET_DVR_MATRIXDECODESYSTEMINFO,*LPNET_DVR_MATRIXDECODESYSTEMINFO;
  8855. typedef struct tagNET_DVR_MATRIXSWITCH
  8856. {
  8857. NET_DVR_MATRIXCODESYSTEMINFO struInputNote;
  8858. NET_DVR_MATRIXDECODESYSTEMINFO struOutputNote;
  8859. BYTE byRes[32];
  8860. }NET_DVR_MATRIXSWITCH, *LPNET_DVR_MATRIXSWITCH;
  8861. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSpanSwitch(LONG lUserID, BYTE nSwitchMode, LPNET_DVR_MATRIXSWITCH lpInter);
  8862. typedef enum {
  8863. ENC_CARD = 0,
  8864. DEC_CARD,
  8865. SD_DEC_CARD,
  8866. FPGA_CARD,
  8867. CS_CARD,
  8868. ALERTOR_CARD,
  8869. NAT_0,
  8870. NAT_1,
  8871. VCA_CARD,
  8872. VGA_DEC_CARD,
  8873. VGA_ENC_CARD,
  8874. ERR_CARD,
  8875. } DEV_TYPE;
  8876. typedef struct tagNET_DVR_MATRIXSWITCHCTRL
  8877. {
  8878. DWORD dwCamId;//摄像机全局编号
  8879. DWORD dwMonId;//监视器全局编号
  8880. BYTE bySubWindowNum;//监视器对应子窗口号
  8881. /* 切换类型,0:正常切换,1:报警触发切换,2:报警取消,0xff:表示此MON上所有报警全部取消*/
  8882. BYTE bySwitchType;
  8883. WORD wAlarmType;//报警设备类型,1:报警主机,2:智能设备
  8884. DWORD dwResidentTime;/* 显示驻留时间,0xFFFFFFFF 时 为常驻情况,保持显示*/
  8885. BYTE byVcaDevType;//当报警设备类型是"智能设备"时,按DEV_TYPE类型
  8886. BYTE byRes[19];
  8887. }NET_DVR_MATRIXSWITCHCTRL, *LPNET_DVR_MATRIXSWITCHCTRL;
  8888. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStartSwitch(LONG lUserID, LPNET_DVR_MATRIXSWITCHCTRL lpInter);
  8889. typedef struct tagNET_DVR_MATRIXDATABASE
  8890. {
  8891. //配置文件类型,1-域数据库配置文件,2-子域数据库配置文件,3-平台数据库配置文件,4-场景配置文件,0xff最后一次失败的数据库语句
  8892. DWORD dwDevType;
  8893. DWORD dwParam; //参数,代表域号、子域号、平台号,场景配置文件时此值无用
  8894. BYTE byFileType;//文件类型,1-sql语句,2-db语句,3-场景配置文件
  8895. BYTE byRes [3];
  8896. } NET_DVR_MATRIXDATABASE, *LPNET_DVR_MATRIXDATABASE;
  8897. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetConfigFile(LONG lUserID, LPNET_DVR_MATRIXDATABASE lpInter, char *sInBuffer, DWORD dwInSize);
  8898. // 注意:当sOutBuffer = NULL、dwOutSize = 0且pReturnSize != NULL时用于获取参数配置文件的所需的缓冲区长度;当sOutBuffer != NULL且dwOutSize != 0时用于获取参数配置文件的所需的缓冲区内容。
  8899. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetConfigFile(LONG lUserID, LPNET_DVR_MATRIXDATABASE lpInter, char *sOutBuffer, DWORD dwOutSize, DWORD *pReturnSize);
  8900. typedef struct tagNET_DVR_SUBSYSTEMINFO_V40
  8901. {
  8902. /*子系统类型,1-解码用子系统,2-编码用子系统,3-级联输出子系统,4-级联输入子系统,5-码分器子系统,6-报警主机子系统,7-智能子系统,8-V6解码子系统,9-V6子系统,0-NULL(此参数只能获取)*/
  8903. BYTE bySubSystemType;
  8904. //子系统通道数,对于码分子系统,代表485串口数量(此参数只能获取)
  8905. BYTE byChan;
  8906. BYTE byLoginType;//注册类型,1-直连,2-DNS,3-花生壳
  8907. BYTE bySlotNum ;//槽位号,此参数只能获取
  8908. BYTE byRes1[4];
  8909. NET_DVR_IPADDR struSubSystemIP; /*IP地址(可修改)*/
  8910. NET_DVR_IPADDR struSubSystemIPMask;//子网掩码
  8911. NET_DVR_IPADDR struGatewayIpAddr; /* 网关地址 */
  8912. WORD wSubSystemPort; //子系统端口号(可修改)
  8913. BYTE byRes2[6];
  8914. BYTE sUserName[NAME_LEN]; /* 用户名 (此参数只能获取)*/
  8915. BYTE sPassword[PASSWD_LEN]; /*密码(可修改)*/
  8916. char sDomainName[MAX_DOMAIN_NAME];//域名(可修改)
  8917. char sDnsAddress[MAX_DOMAIN_NAME];/*DNS域名或IP地址*/
  8918. BYTE sSerialNumber[SERIALNO_LEN];//序列号(此参数只能获取)
  8919. BYTE byRes3[60];
  8920. }NET_DVR_SUBSYSTEMINFO_V40, *LPNET_DVR_SUBSYSTEMINFO_V40;
  8921. #define MAX_SUBSYSTEM_NUM_V40 120
  8922. typedef struct tagNET_DVR_ALLSUBSYSTEMINFO_V40
  8923. {
  8924. DWORD dwSize;
  8925. NET_DVR_SUBSYSTEMINFO_V40 struSubSystemInfo[MAX_SUBSYSTEM_NUM_V40];
  8926. BYTE byRes[8];
  8927. }NET_DVR_ALLSUBSYSTEMINFO_V40, *LPNET_DVR_ALLSUBSYSTEMINFO_V40;
  8928. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetSubSystemInfo_V40(LONG lUserID, LPNET_DVR_ALLSUBSYSTEMINFO_V40 lpInter);
  8929. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetSubSystemInfo_V40(LONG lUserID, LPNET_DVR_ALLSUBSYSTEMINFO_V40 lpInter);
  8930. typedef struct tagNET_DVR_SINGLESUBSYSTEMJOININFO_V40
  8931. {
  8932. /*子系统类型,1-解码用子系统,2-编码用子系统,3-级联输出子系统,4-级联输入子系统,5-码分器子系统,6-报警主机子系统,7-智能子系统,8-V6解码子系统,9-V6子系统,0-NULL(此参数只能获取)*/
  8933. BYTE bySubSystemType;
  8934. BYTE byConnectStatus;//级联系统关联状态,1-连接正常,2-连接断开
  8935. BYTE byMatrixNum;//级联视频综合平台号,子系统类型是3或4时可用
  8936. BYTE bySubSystemNum;//级联子系统槽位号,0~79,子系统类型是3或4时可用
  8937. NET_DVR_DECSUBSYSTEMJIONSTATUS struDecSub [MATRIX_MAXDECSUBSYSTEMCHAN];
  8938. BYTE byBindStatus;//绑定状态,0-没有绑定,1-已经绑定(大屏拼接时用到)
  8939. BYTE bySlotNum ;//槽位号,此参数只能获取
  8940. //子系统类型为1的时可用,0-未关联,1-D1,2-720,3-1080
  8941. BYTE byDecodeAbility;
  8942. BYTE byUsedTrunk;
  8943. BYTE byRes[64];
  8944. }NET_DVR_SINGLESUBSYSTEMJOININFO_V40,LPNET_DVR_SINGLESUBSYSTEMJOININFO_V40;
  8945. typedef struct tagNET_DVR_ALLDECSUBSYSTEMJOININFO_V40
  8946. {
  8947. DWORD dwSize;
  8948. NET_DVR_SINGLESUBSYSTEMJOININFO_V40 struSingleSubSystemJoinInfo[MAX_SUBSYSTEM_NUM_V40];
  8949. BYTE byRes[48];
  8950. }NET_DVR_ALLDECSUBSYSTEMJOININFO_V40, *LPNET_DVR_ALLDECSUBSYSTEMJOININFO_V40;
  8951. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetSubDecSystemJoinInfo_V40(LONG lUserID, LPNET_DVR_ALLDECSUBSYSTEMJOININFO_V40 lpInter);
  8952. #define MAX_OPTICALFIBER_NUM 16
  8953. typedef struct tagNET_DVR_SUBSYSTEM_ABILITY
  8954. {
  8955. /*子系统类型,1-解码用子系统,2-编码用子系统,3-级联输出子系统,4-级联输入子系统,5-码分器子系统,6-报警主机子系统,7-智能子系统,8-V6解码子系统,9-V6子系统,0-NULL(此参数只能获取)*/
  8956. BYTE bySubSystemType;
  8957. BYTE byChanNum;//子系统通道数
  8958. BYTE byStartChan;//子系统起始通道数
  8959. BYTE bySlotNum ;//槽位号
  8960. BYTE byRes1[4];
  8961. union
  8962. {
  8963. BYTE byRes[200];
  8964. struct
  8965. {
  8966. BYTE byVGANums;//VGA显示通道个数(从1开始)
  8967. BYTE byBNCNums;//BNC显示通道个数(从9开始)
  8968. BYTE byHDMINums;//HDMI显示通道个数(从25开始)
  8969. BYTE byDVINums;//DVI显示通道个数(从29开始)
  8970. BYTE byRes[196];
  8971. }struDecoderSystemAbility;
  8972. struct
  8973. {
  8974. BYTE byCoderType;//编码器类型,0-标清,1-高清
  8975. BYTE byRes[199];
  8976. }struCoderSystemAbility;
  8977. struct
  8978. {
  8979. WORD wTrunkAbility;//干线带宽,按D1的标准衡量,如4表示支持4个D1
  8980. BYTE byOpticalFiberNum;//光纤条数
  8981. BYTE byRes[197];
  8982. }struInputSystemAbility;
  8983. struct
  8984. {
  8985. WORD wTrunkAbility;//干线带宽,按D1的标准衡量,如4表示支持4个D1
  8986. BYTE byOpticalFiberNum;//光纤条数
  8987. BYTE byRes[197];
  8988. }struOutputSystemAbility;
  8989. struct
  8990. {
  8991. BYTE by485Num;//码分子系统中485数量
  8992. BYTE bySlotNum;//每个485槽位数
  8993. BYTE byRes[198];
  8994. }struCodeSpitterSystemAbility;
  8995. struct
  8996. {
  8997. WORD wAlarmInNums;
  8998. WORD wAlarmOutNums;
  8999. /* 标识报警盒是否连接, 1表示已连接, 为0 表示未连接 */
  9000. BYTE byAlarmBoxEnable[4][8];
  9001. BYTE bySupportContact; /* 视频综合平台内部报警联动,0-不支持,1-支持 */
  9002. BYTE byRes[163];
  9003. }struAlarmHostSystemAbility;
  9004. struct
  9005. {
  9006. BYTE byOpticalFiberNum;//光纤条数
  9007. BYTE byRes1[3];
  9008. //光纤带宽,按D1的标准衡量,如4表示支持4个D1
  9009. WORD wTrunkAbility[MAX_OPTICALFIBER_NUM/*16*/];
  9010. BYTE byRes2[164];
  9011. }struInOutputSystemAbility;
  9012. }struAbility;
  9013. }NET_DVR_SUBSYSTEM_ABILITY, *LPNET_DVR_SUBSYSTEM_ABILITY;
  9014. typedef struct tagNET_DVR_VIDEOPLATFORM_ABILITY_V40
  9015. {
  9016. DWORD dwSize;
  9017. BYTE byCodeSubSystemNums;//编码子系统数量
  9018. BYTE byDecodeSubSystemNums;//解码子系统数量
  9019. BYTE bySupportNat;//是否支持NAT,0-不支持,1-支持
  9020. BYTE byInputSubSystemNums;//级联输入子系统数量
  9021. BYTE byOutputSubSystemNums;//级联输出子系统数量
  9022. BYTE byCodeSpitterSubSystemNums;//码分子系统数量
  9023. BYTE byAlarmHostSubSystemNums;//报警子系统数量
  9024. BYTE bySupportBigScreenNum;//所支持最多组成大屏的个数
  9025. BYTE byVCASubSystemNums;//智能子系统数量
  9026. BYTE byV6SubSystemNums;//V6子系统数量
  9027. BYTE byV6DecoderSubSystemNums;//V6解码子系统数量
  9028. BYTE bySupportBigScreenX;/*大屏拼接的模式:m×n*/
  9029. BYTE bySupportBigScreenY;
  9030. BYTE bySupportSceneNums;//支持场景模式的个数
  9031. BYTE byVcaSupportChanMode;//智能支持的通道使用模式,0-使用解码通道,1-使用显示通道及子通道号
  9032. BYTE bySupportScreenNums;//所支持的大屏的屏幕最大个数
  9033. BYTE bySupportLayerNums;//所支持的图层数
  9034. BYTE byNotSupportPreview;//是否支持预览,1-不支持,0-支持
  9035. BYTE byNotSupportStorage;//是否支持存储,1-不支持,0-支持
  9036. BYTE byRes1[1];
  9037. NET_DVR_SUBSYSTEM_ABILITY struSubSystemAbility[MAX_SUBSYSTEM_NUM_V40];
  9038. BYTE by485Nums;//485串口个数
  9039. BYTE by232Nums;//232串口个数
  9040. BYTE bySerieStartChan;//起始通道
  9041. BYTE byScreenMode;//大屏模式,0-主屏由客户端分配,1-主屏由设备端分配
  9042. BYTE byRes2[636];
  9043. }NET_DVR_VIDEOPLATFORM_ABILITY_V40, *LPNET_DVR_VIDEOPLATFORM_ABILITY_V40;
  9044. #define VIDEOPLATFORM_ABILITY_V40 0x230 //视频综合平台能力集
  9045. typedef struct tagNET_DVR_VIDEOPLATFORM_ABILITY
  9046. {
  9047. DWORD dwSize;
  9048. BYTE byCodeSubSystemNums;//编码子系统数量
  9049. BYTE byDecodeSubSystemNums;//解码子系统数量
  9050. BYTE bySupportNat;//是否支持NAT,0-不支持,1-支持
  9051. BYTE byInputSubSystemNums;//级联输入子系统数量
  9052. BYTE byOutputSubSystemNums;//级联输出子系统数量
  9053. BYTE byCodeSpitterSubSystemNums;//码分子系统数量
  9054. BYTE byAlarmHostSubSystemNums;//报警子系统数量
  9055. BYTE bySupportBigScreenNum;//所支持最多大屏拼接数量
  9056. BYTE byVCASubSystemNums;//智能子系统数量
  9057. BYTE byRes1[11];
  9058. NET_DVR_SUBSYSTEM_ABILITY struSubSystemAbility[MAX_SUBSYSTEM_NUM];
  9059. BYTE by485Nums;//485串口个数
  9060. BYTE by232Nums;//485串口个数
  9061. BYTE bySerieStartChan;//起始通道
  9062. BYTE byRes2[637];
  9063. }NET_DVR_VIDEOPLATFORM_ABILITY, *LPNET_DVR_VIDEOPLATFORM_ABILITY;
  9064. //获取能力集接口
  9065. #define VIDEOPLATFORM_ABILITY 0x210 //视频综合平台能力集
  9066. /*********************************9000 2.0 begin***************************************/
  9067. // 模式A
  9068. typedef struct tagNET_DVR_HOLIDATE_MODEA
  9069. {
  9070. BYTE byStartMonth; // 开始月 从1开始
  9071. BYTE byStartDay; // 开始日 从1开始
  9072. BYTE byEndMonth; // 结束月
  9073. BYTE byEndDay; // 结束日
  9074. BYTE byRes[4]; // 保留字节
  9075. }NET_DVR_HOLIDATE_MODEA, *LPNET_DVR_HOLIDATE_MODEA;
  9076. typedef struct tagNET_DVR_HOLIDATE_MODEB
  9077. {
  9078. BYTE byStartMonth; // 从1开始
  9079. BYTE byStartWeekNum; // 第几个星期 从1开始
  9080. BYTE byStartWeekday; // 星期几
  9081. BYTE byEndMonth; // 从1开始
  9082. BYTE byEndWeekNum; // 第几个星期 从1开始
  9083. BYTE byEndWeekday; // 星期几
  9084. BYTE byRes[2]; // 保留字节
  9085. }NET_DVR_HOLIDATE_MODEB, *LPNET_DVR_HOLIDATE_MODEB;
  9086. typedef struct tagNET_DVR_HOLIDATE_MODEC
  9087. {
  9088. WORD wStartYear; // 年
  9089. BYTE byStartMon; // 月
  9090. BYTE byStartDay; // 日
  9091. WORD wEndYear; // 年
  9092. BYTE byEndMon; // 月
  9093. BYTE byEndDay; // 日
  9094. }NET_DVR_HOLIDATE_MODEC, *LPNET_DVR_HOLIDATE_MODEC;
  9095. typedef union tagNET_DVR_HOLIDATE_UNION
  9096. {
  9097. // 联合体大小 12字节
  9098. DWORD dwSize[3];
  9099. NET_DVR_HOLIDATE_MODEA struModeA; // 模式A
  9100. NET_DVR_HOLIDATE_MODEB struModeB; // 模式B
  9101. NET_DVR_HOLIDATE_MODEC struModeC; // 模式C
  9102. }NET_DVR_HOLIDATE_UNION, *LPNET_DVR_HOLIDATE_UNION;
  9103. typedef enum tagHOLI_DATE_MODE
  9104. {
  9105. HOLIDATE_MODEA = 0,
  9106. HOLIDATE_MODEB,
  9107. HOLIDATE_MODEC
  9108. }HOLI_DATE_MODE;
  9109. typedef struct tagNET_DVR_HOLIDAY_PARAM
  9110. {
  9111. BYTE byEnable; // 是否启用
  9112. BYTE byDateMode; // 日期模式 0-模式A 1-模式B 2-模式C
  9113. BYTE byRes1[2]; // 保留字节
  9114. NET_DVR_HOLIDATE_UNION uHolidate; // 假日日期
  9115. BYTE byName[NAME_LEN]; // 假日名称
  9116. BYTE byRes2[20]; // 保留字节
  9117. }NET_DVR_HOLIDAY_PARAM, *LPNET_DVR_HOLIDAY_PARAM;
  9118. #define MAX_HOLIDAY_NUM 32
  9119. typedef struct tagNET_DVR_HOLIDAY_PARAM_CFG
  9120. {
  9121. DWORD dwSize; // 结构体大小
  9122. NET_DVR_HOLIDAY_PARAM struHolidayParam[MAX_HOLIDAY_NUM]; // 假日参数
  9123. DWORD byRes[40]; // 保留参数
  9124. }NET_DVR_HOLIDAY_PARAM_CFG, *LPNET_DVR_HOLIDAY_PARAM_CFG;
  9125. // 假日报警处理方式
  9126. typedef struct tagNET_DVR_HOLIDAY_HANDLE
  9127. {
  9128. DWORD dwSize; // 结构体大小
  9129. NET_DVR_SCHEDTIME struAlarmTime[MAX_TIMESEGMENT_V30]; // 布防时间段
  9130. BYTE byRes2[240]; // 保留字节
  9131. }NET_DVR_HOLIDAY_HANDLE, *LPNET_DVR_HOLIDAY_HANDLE;
  9132. typedef struct tagNET_DVR_HOLIDAY_RECORD
  9133. {
  9134. DWORD dwSize;
  9135. NET_DVR_RECORDDAY struRecDay; // 录像参数
  9136. NET_DVR_RECORDSCHED struRecordSched[MAX_TIMESEGMENT_V30]; // 录像时间段
  9137. BYTE byRes[20]; // 保留字节
  9138. }NET_DVR_HOLIDAY_RECORD, *LPNET_DVR_HOLIDAY_RECORD;
  9139. #define MAX_LINK_V30 128
  9140. typedef struct tagNET_DVR_ONE_LINK
  9141. {
  9142. NET_DVR_IPADDR struIP; // 客户端IP
  9143. LONG lChannel; // 通道号
  9144. BYTE byRes[32]; // 保留字节
  9145. }NET_DVR_ONE_LINK, *LPNET_DVR_ONE_LINK;
  9146. typedef struct tagNET_DVR_LINK_STATUS
  9147. {
  9148. DWORD dwSize; // 结构体大小
  9149. WORD wLinkNum; // 连接的数目
  9150. BYTE byRes1[2]; // 保留字节
  9151. NET_DVR_ONE_LINK struOneLink[MAX_LINK_V30]; // 连接的客户端信息
  9152. BYTE byRes[32]; // 保留字节
  9153. }NET_DVR_LINK_STATUS, *LPNET_DVR_LINK_STATUS;
  9154. #define MAX_BOND_NUM 2
  9155. typedef struct tagNET_DVR_ONE_BONDING
  9156. {
  9157. BYTE byMode; // 工作模式0 - 网络容错 1 - 负载均衡
  9158. BYTE byUseDhcp; // 是否使能dhcp
  9159. BYTE byMasterCard; // 指定哪张网卡为主网卡
  9160. BYTE byStatus; // BONDING的状态 0 - 异常 1-正常 只能获取不能设置
  9161. BYTE byBond[MAX_NETWORK_CARD];// byBond[0]== 1 表示使用eh0 0表示不使用eh0
  9162. NET_DVR_ETHERNET_V30 struEtherNet; // 网卡参数
  9163. NET_DVR_IPADDR struGatewayIpAddr; // 网关地址
  9164. BYTE byRes[20]; // 保留字节
  9165. }NET_DVR_ONE_BONDING, *LPNET_DVR_ONE_BONDING;
  9166. typedef struct tagNET_DVR_NETWORK_BONDING
  9167. {
  9168. DWORD dwSize; // 结构体大小
  9169. BYTE byEnable; // 是否启用bonding功能
  9170. BYTE byNum; // Bonding网卡的个数
  9171. BYTE byRes1[2]; // 保留字节
  9172. NET_DVR_ONE_BONDING struOneBond[MAX_BOND_NUM];
  9173. BYTE byRes2[40]; // 保留字节
  9174. }NET_DVR_NETWORK_BONDING, *LPNET_DVR_NETWORK_BONDING;
  9175. // 磁盘配额
  9176. typedef struct tagNET_DVR_DISK_QUOTA
  9177. {
  9178. BYTE byQuotaType; // 磁盘配额类型,1 - 按容量
  9179. BYTE byRes1[7]; // 保留字节
  9180. DWORD dwHCapacity; // 分配的磁盘容量高32位 单位MB
  9181. DWORD dwLCapacity; // 分配的磁盘容量低32位 单位MB
  9182. DWORD dwHUsedSpace; // 已使用的磁盘大小高32位 单位MB
  9183. DWORD dwLUsedSpace; // 已使用的磁盘大小低32位 单位MB
  9184. BYTE byRes2[22]; // 保留字节
  9185. }NET_DVR_DISK_QUOTA, *LPNET_DVR_DISK_QUOTA;
  9186. typedef struct tagNET_DVR_DISK_QUOTA_CFG
  9187. {
  9188. DWORD dwSize; // 结构体大小
  9189. NET_DVR_DISK_QUOTA struPicQuota; // 图片配额
  9190. NET_DVR_DISK_QUOTA struRecordQuota; // 录像配额
  9191. BYTE byRes[60]; //保留字节
  9192. }NET_DVR_DISK_QUOTA_CFG, *LPNET_DVR_DISK_QUOTA_CFG;
  9193. typedef struct tagNET_DVR_TIMING_CAPTURE
  9194. {
  9195. NET_DVR_JPEGPARA struJpegPara; // 定时抓图图片质量
  9196. DWORD dwPicInterval; // 定时抓图时间间隔
  9197. BYTE byRes[12]; // 保留字节
  9198. }NET_DVR_TIMING_CAPTURE, *LPNET_DVR_TIMING_CAPTURE;
  9199. typedef struct tagNET_DVR_REL_CAPTURE_CHAN
  9200. {
  9201. BYTE byChan[16]; // 按位表示
  9202. BYTE byRes[20]; // 保留字节
  9203. }NET_DVR_REL_CAPTURE_CHAN, *LPNET_DVR_REL_CAPTURE_CHAN;
  9204. #define MAX_PIC_EVENT_NUM 32
  9205. #define MAX_ALARMIN_CAPTURE 16
  9206. typedef struct tagNET_DVR_EVENT_CAPTURE
  9207. {
  9208. NET_DVR_JPEGPARA struJpegPara; // 事件抓图图片质量
  9209. DWORD dwPicInterval; // 事件抓图时间间隔 单位为秒
  9210. NET_DVR_REL_CAPTURE_CHAN struRelCaptureChan[MAX_PIC_EVENT_NUM]; // 数组下标 0 移动侦测触发抓图 1 视频遮挡触发抓图
  9211. NET_DVR_REL_CAPTURE_CHAN struAlarmInCapture[MAX_ALARMIN_CAPTURE]; // 报警输入触发抓图,下标0 代表报警输入1 依次类推
  9212. BYTE byRes[60];
  9213. }NET_DVR_EVENT_CAPTURE, *LPNET_DVR_EVENT_CAPTURE;
  9214. typedef struct tagNET_DVR_JPEG_CAPTURE_CFG
  9215. {
  9216. DWORD dwSize; // 结构体大小
  9217. NET_DVR_TIMING_CAPTURE struTimingCapture;
  9218. NET_DVR_EVENT_CAPTURE struEventCapture;
  9219. BYTE byRes3[20]; // 保留字节
  9220. }NET_DVR_JPEG_CAPTURE_CFG, *LPNET_DVR_JPEG_CAPTURE_CFG;
  9221. typedef struct tagNET_DVR_CAPTURE_DAY
  9222. {
  9223. BYTE byAllDayCapture; // 是否全天抓图
  9224. BYTE byCaptureType; // 抓图类型:0-定时抓图,1-移动侦测抓图,2-报警抓图,3-移动侦测或报警抓图,4-移动侦测和报警抓图,6-智能报警抓图
  9225. BYTE byRes[2];
  9226. }NET_DVR_CAPTURE_DAY, *LPNET_DVR_CAPTURE_DAY;
  9227. typedef struct tagNET_DVR_CAPTURE_SCHED
  9228. {
  9229. NET_DVR_SCHEDTIME struCaptureTime; // 抓图时间段
  9230. BYTE byCaptureType; // 抓图类型:0-定时抓图,1-移动侦测抓图,2-报警抓图,3-移动侦测或报警抓图,4-移动侦测和报警抓图,6-智能报警抓图
  9231. BYTE byRes[3]; // 保留字节
  9232. }NET_DVR_CAPTURE_SCHED, *LPNET_DVR_CAPTURE_SCHED;
  9233. // 通道抓图计划
  9234. typedef struct tagNET_DVR_SCHED_CAPTURECFG
  9235. {
  9236. DWORD dwSize; // 结构体
  9237. BYTE byEnable; // 是否抓图
  9238. BYTE byRes1[3]; // 保留字节
  9239. NET_DVR_CAPTURE_DAY struCaptureDay[MAX_DAYS]; // 全天抓图计划
  9240. NET_DVR_CAPTURE_SCHED struCaptureSched[MAX_DAYS][MAX_TIMESEGMENT_V30]; // 时间段抓图布防计划
  9241. NET_DVR_CAPTURE_DAY struCaptureHoliday; // 假日抓图计划
  9242. NET_DVR_CAPTURE_SCHED struHolidaySched[MAX_TIMESEGMENT_V30]; // 时间段假日抓图布防计划
  9243. DWORD dwRecorderDuration; // 抓图保存最长时间 0xffffffff表示该值无效
  9244. BYTE byRes[40]; // 保留字节
  9245. }NET_DVR_SCHED_CAPTURECFG, *LPNET_DVR_SCHED_CAPTURECFG;
  9246. typedef struct tagNET_DVR_FLOW_TEST_PARAM
  9247. {
  9248. DWORD dwSize; //结构大小
  9249. LONG lCardIndex; //网卡索引
  9250. DWORD dwInterval; //设备上传流量时间间隔, 单位:100ms
  9251. BYTE byRes[8]; //保留字节
  9252. }NET_DVR_FLOW_TEST_PARAM, *LPNET_DVR_FLOW_TEST_PARAM;
  9253. typedef struct tagNET_DVR_FLOW_INFO
  9254. {
  9255. DWORD dwSize; //结构大小
  9256. DWORD dwSendFlowSize; //发送流量大小,单位kbps
  9257. DWORD dwRecvFlowSize; //接收流量大小,单位kbps
  9258. BYTE byRes[20]; //保留
  9259. }NET_DVR_FLOW_INFO, *LPNET_DVR_FLOW_INFO;
  9260. typedef void (CALLBACK *FLOWTESTCALLBACK)(LONG lFlowHandle, LPNET_DVR_FLOW_INFO pFlowInfo, void *pUser);
  9261. NET_DVR_API LONG __stdcall NET_DVR_StartNetworkFlowTest(LONG lUserID, NET_DVR_FLOW_TEST_PARAM* pFlowTest, FLOWTESTCALLBACK fFlowTestCallback, void *pUser);
  9262. NET_DVR_API BOOL __stdcall NET_DVR_StopNetworkFlowTest(LONG lHandle);
  9263. // 录像标签
  9264. #define LABEL_NAME_LEN 40
  9265. typedef struct tagNET_DVR_RECORD_LABEL
  9266. {
  9267. DWORD dwSize; // 结构体大小
  9268. NET_DVR_TIME struTimeLabel; // 标签的时间
  9269. BYTE byQuickAdd; // 是否快速添加 快速添加时标签名称无效
  9270. BYTE byRes1[3]; // 保留字节
  9271. BYTE sLabelName[LABEL_NAME_LEN]; // 标签的名称 长度为40字节
  9272. BYTE byRes2[40]; // 保留字节
  9273. }NET_DVR_RECORD_LABEL, *LPNET_DVR_RECORD_LABEL;
  9274. #define LABEL_IDENTIFY_LEN 64
  9275. typedef struct tagNET_DVR_LABEL_IDENTIFY
  9276. {
  9277. BYTE sLabelIdentify[LABEL_IDENTIFY_LEN]; // 64字节标识
  9278. BYTE byRes[8]; // 保留字节
  9279. }NET_DVR_LABEL_IDENTIFY, *LPNET_DVR_LABEL_IDENTIFY;
  9280. #define MAX_DEL_LABEL_IDENTIFY 20// 删除的最大标签标识个数
  9281. typedef struct tagNET_DVR_DEL_LABEL_PARAM
  9282. {
  9283. DWORD dwSize; // 结构体大小
  9284. BYTE byMode; // 按位表示,0x01表示按标识删除
  9285. BYTE byRes1;
  9286. WORD wLabelNum; // 标签数目
  9287. NET_DVR_LABEL_IDENTIFY struIndentify[MAX_DEL_LABEL_IDENTIFY]; // 标签标识
  9288. BYTE byRes2[160]; //保留字节
  9289. }NET_DVR_DEL_LABEL_PARAM, *LPNET_DVR_DEL_LABEL_PARAM;
  9290. typedef struct tagNET_DVR_LABEL_PARAM
  9291. {
  9292. NET_DVR_LABEL_IDENTIFY struIndentify; //要修改的标签标识
  9293. BYTE byRes1[24];
  9294. BYTE sLabelName[LABEL_NAME_LEN]; //修改后的标签名称
  9295. BYTE byRes2[40];
  9296. }NET_DVR_MOD_LABEL_PARAM, *LPNET_DVR_MOD_LABEL_PARAM;
  9297. // 标签搜索结构体
  9298. typedef struct tagNET_DVR_FIND_LABEL
  9299. {
  9300. DWORD dwSize; // 结构体大小
  9301. LONG lChannel; // 查找的通道
  9302. NET_DVR_TIME struStartTime; // 开始时间
  9303. NET_DVR_TIME struStopTime; // 结束时间
  9304. BYTE sLabelName[LABEL_NAME_LEN]; // 录像标签名称 如果标签名称为空,则搜索起止时间所有标签
  9305. BYTE byRes[40]; // 保留字节
  9306. }NET_DVR_FIND_LABEL, *LPNET_DVR_FIND_LABEL;
  9307. // 标签信息结构体
  9308. typedef struct tagNET_DVR_FINDLABEL_DATA
  9309. {
  9310. BYTE sLabelName[LABEL_NAME_LEN]; // 标签名称
  9311. NET_DVR_TIME struTimeLabel; // 标签时间
  9312. NET_DVR_LABEL_IDENTIFY struLabelIdentify; // 标签标识
  9313. BYTE byRes1[32]; // 保留字节
  9314. }NET_DVR_FINDLABEL_DATA, *LPNET_DVR_FINDLABEL_DATA;
  9315. NET_DVR_API LONG __stdcall NET_DVR_FindRecordLabel(LONG lUserID, LPNET_DVR_FIND_LABEL lpFindLabel);
  9316. NET_DVR_API LONG __stdcall NET_DVR_FindNextLabel(LONG lFindHandle, LPNET_DVR_FINDLABEL_DATA lpFindData);
  9317. NET_DVR_API BOOL __stdcall NET_DVR_StopFindLabel(LONG lFindHandle);
  9318. NET_DVR_API BOOL __stdcall NET_DVR_InsertRecordLabel(LONG lPlayHandle, NET_DVR_RECORD_LABEL* lpRecordLabel, NET_DVR_LABEL_IDENTIFY *lpLableIdentify);
  9319. NET_DVR_API BOOL __stdcall NET_DVR_DelRecordLabel(LONG lUserID, NET_DVR_DEL_LABEL_PARAM* lpDelLabelParam);
  9320. NET_DVR_API BOOL __stdcall NET_DVR_ModifyRecordLabel(LONG lUserID, NET_DVR_MOD_LABEL_PARAM * lpModLabelParam);
  9321. #define CARDNUM_LEN_V30 40
  9322. typedef struct tagNET_DVR_FIND_PICTURE_PARAM
  9323. {
  9324. DWORD dwSize; // 结构体大小
  9325. LONG lChannel; // 通道号
  9326. BYTE byFileType; // 查找的图片类型:0定时抓图1 移动侦测抓图 2 报警抓图3 报警 | 移动侦测抓图 4 报警 & 移动侦测抓图 6 手动抓图 0xa 预览时截图0xff全部类型
  9327. BYTE byNeedCard; // 是否需要卡号
  9328. BYTE byRes1[2]; // 保留字节
  9329. BYTE sCardNum[CARDNUM_LEN_V30]; // 卡号
  9330. NET_DVR_TIME struStartTime;//查找图片的开始时间
  9331. NET_DVR_TIME struStopTime;// 查找图片的结束时间
  9332. BYTE byRes2[40]; // 保留字节
  9333. }NET_DVR_FIND_PICTURE_PARAM, *LPNET_DVR_FIND_PICTURE_PARAM;
  9334. #define PICTURE_NAME_LEN 64
  9335. typedef struct
  9336. {
  9337. char sFileName[PICTURE_NAME_LEN];//图片名
  9338. NET_DVR_TIME struTime;//图片的时间
  9339. DWORD dwFileSize;//图片的大小
  9340. char sCardNum[CARDNUM_LEN_V30]; //卡号
  9341. BYTE byRes[32]; // 保留字节
  9342. }NET_DVR_FIND_PICTURE,*LPNET_DVR_FIND_PICTURE;
  9343. NET_DVR_API LONG __stdcall NET_DVR_FindPicture(LONG lUserID, NET_DVR_FIND_PICTURE_PARAM* pFindParam);
  9344. NET_DVR_API LONG __stdcall NET_DVR_FindNextPicture(LONG lFindHandle,LPNET_DVR_FIND_PICTURE lpFindData);
  9345. NET_DVR_API BOOL __stdcall NET_DVR_CloseFindPicture(LONG lFindHandle);
  9346. NET_DVR_API BOOL __stdcall NET_DVR_GetPicture(LONG lUserID,char *sDVRFileName,const char *sSavedFileName);
  9347. NET_DVR_API BOOL __stdcall NET_DVR_GetPicture_V30(LONG lUserID, char *sDVRFileName, char *sSavedFileBuf, DWORD dwBufLen, DWORD *lpdwRetLen);
  9348. #define MAX_RECORD_PICTURE_NUM 50 // 最大备份图片张数
  9349. typedef struct tagNET_DVR_BACKUP_PICTURE_PARAM
  9350. {
  9351. DWORD dwSize; // 结构体大小
  9352. DWORD dwPicNum;
  9353. NET_DVR_FIND_PICTURE struPicture[MAX_RECORD_PICTURE_NUM];
  9354. BYTE byDiskDes[DESC_LEN_32];
  9355. BYTE byWithPlayer;
  9356. BYTE byContinue; /*是否继续备份 0不继续 1继续*/
  9357. BYTE byRes[34];
  9358. }NET_DVR_BACKUP_PICTURE_PARAM, *LPNET_DVR_BACKUP_PICTURE_PARAM;
  9359. NET_DVR_API LONG __stdcall NET_DVR_BackupPicture(LONG lUserID, NET_DVR_BACKUP_PICTURE_PARAM *lpBackupPicture);
  9360. typedef struct
  9361. {
  9362. DWORD dwSize; //结构体大小
  9363. DWORD dwChannel; //通道号
  9364. BYTE byCompressType; //待获取的压缩参数类型1,主码流2,子码流3,事件
  9365. BYTE byRes[15]; //保留
  9366. NET_DVR_COMPRESSIONCFG_V30 struCurrentCfg; //当前压缩参数配置
  9367. }NET_DVR_COMPRESSION_LIMIT, *LPNET_DVR_COMPRESSION_LIMIT;
  9368. #define STEP_RECV_DATA 1 //接收升级包数据
  9369. #define STEP_UPGRADE 2 //升级系统
  9370. #define STEP_BACKUP 3 //备份系统
  9371. #define STEP_SEARCH 255 //搜索升级文件
  9372. NET_DVR_API LONG __stdcall NET_DVR_GetUpgradeStep(LONG lUpgradeHandle, LONG *pSubProgress);
  9373. typedef struct tagNET_DVR_VIDEO_EFFECT
  9374. {
  9375. DWORD dwBrightValue; //亮度(0-255)
  9376. DWORD dwContrastValue; //对比度(0-255)
  9377. DWORD dwSaturationValue; //饱和度(0-255)
  9378. DWORD dwHueValue; //色调(0-255)
  9379. BYTE byRes[20]; //保留
  9380. }NET_DVR_VIDEO_EFFECT, *LNET_DVR_VIDEO_EFFECT;
  9381. typedef struct tagNET_DVR_VIDEO_INPUT_EFFECT
  9382. {
  9383. DWORD dwSize; //结构体大小
  9384. WORD wEffectMode; //模式,0:标准 1:预置模式1 2:预置模式2 3:预置模式3 255:自定义
  9385. BYTE byRes1[146]; //保留
  9386. NET_DVR_VIDEO_EFFECT struCustomizeMode; //自定义模式参数
  9387. BYTE byRes2[60]; //保留
  9388. }NET_DVR_VIDEO_INPUT_EFFECT, *LPNET_DVR_VIDEO_INPUT_EFFECT;
  9389. /*********************************9000 2.0 end***************************************/
  9390. typedef struct tagNET_DVR_ENCODE_JOINT_PARAM
  9391. {
  9392. DWORD dwSize; // 结构体大小
  9393. BYTE byJointed; // 0 没有关联 1 已经关联
  9394. BYTE byDevType; // 被关联的设备类型 1 代表智能设备
  9395. BYTE byRes1[2]; // 保留字节
  9396. NET_DVR_IPADDR struIP; // 关联的被取流设备IP地址
  9397. WORD wPort; // 关联的被取流设备端口号
  9398. WORD wChannel; // 关联的被取流设备通道号
  9399. BYTE byRes2[20]; // 保留字节
  9400. }NET_DVR_ENCODE_JOINT_PARAM, *LPNET_DVR_ENCODE_JOINT_PARAM;
  9401. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetEncodeJoint(LONG lUserID, LONG lChannel, LPNET_DVR_ENCODE_JOINT_PARAM lpEncodeJoint);
  9402. typedef struct tagNET_DVR_VCA_CHAN_WORKSTATUS
  9403. {
  9404. BYTE byJointed; // 0-没有关联 1-已经关联
  9405. BYTE byRes1[3];
  9406. NET_DVR_IPADDR struIP; // 关联的取流设备IP地址
  9407. WORD wPort; // 关联的取流设备端口号
  9408. WORD wChannel; // 关联的取流设备通道号
  9409. BYTE byVcaChanStatus; // 0 - 未启用 1 - 启用
  9410. BYTE byRes2[19]; // 保留字节
  9411. }NET_DVR_VCA_CHAN_WORKSTATUS, *LPNET_DVR_VCA_CHAN_WORKSTATUS;
  9412. typedef struct tagNET_DVR_VCA_DEV_WORKSTATUS
  9413. {
  9414. DWORD dwSize; // 结构体大小
  9415. BYTE byDeviceStatus; // 设备的状态0 - 正常工作 1- 不正常工作
  9416. BYTE byCpuLoad; // CPU使用率0-100 分别代表使用百分率
  9417. NET_DVR_VCA_CHAN_WORKSTATUS struVcaChanStatus[MAX_VCA_CHAN];
  9418. DWORD byRes[40]; // 保留字节
  9419. }NET_DVR_VCA_DEV_WORKSTATUS, *LPNET_DVR_VCA_DEV_WORKSTATUS;
  9420. NET_DVR_API BOOL __stdcall NET_DVR_GetLocalIP(char strIP[16][16], DWORD *pValidNum, BOOL *pEnableBind);
  9421. NET_DVR_API BOOL __stdcall NET_DVR_SetValidIP(DWORD dwIPIndex, BOOL bEnableBind);
  9422. NET_DVR_API BOOL __stdcall NET_DVR_GetVcaDevWorkState(LONG lUserID, LPNET_DVR_VCA_DEV_WORKSTATUS lpWorkState);
  9423. NET_DVR_API BOOL __stdcall NET_DVR_SetRecvTimeOut(DWORD nRecvTimeOut = 5000); //最小3000毫秒
  9424. typedef struct tagNET_DVR_VGA_DISP_CHAN_CFG_V40
  9425. {
  9426. DWORD dwSize;
  9427. BYTE byAudio; /*音频是否开启*/
  9428. BYTE byAudioWindowIdx; /*音频开启子窗口*/
  9429. BYTE byVgaResolution; /*分辨率,从能力集获取*/
  9430. BYTE byVedioFormat; /*1:NTSC,2:PAL,0-NULL*/
  9431. DWORD dwWindowMode; /*画面模式,能力集获取*/
  9432. BYTE byJoinDecChan[MAX_WINDOWS];/*各个子窗口关联的解码通道*/
  9433. BYTE byEnlargeStatus; /*是否处于放大状态,0:不放大,1:放大*/
  9434. BYTE byEnlargeSubWindowIndex;//放大的子窗口号
  9435. BYTE byScale; /*显示模式,0---真实显示,1---缩放显示( 针对BNC )*/
  9436. /*区分共用体,0-视频综合平台内部解码器显示通道配置,1-其他解码器显示通道配置*/
  9437. BYTE byUnionType;
  9438. union
  9439. {
  9440. BYTE byRes[160];
  9441. struct
  9442. {
  9443. /*各个子窗口对应解码通道所对应的解码子系统的槽位号(对于视频综合平台中解码子系统有效)*/
  9444. BYTE byJoinDecoderId[MAX_WINDOWS];
  9445. //显示窗口所解视频分辨率,1-D1,2-720P,3-1080P,设备端需要根据此//分辨率进行解码通道的分配,如1分屏配置成1080P,则设备会把4个解码通
  9446. //道都分配给此解码通道
  9447. BYTE byDecResolution;
  9448. BYTE byRes[143];
  9449. }struVideoPlatform;
  9450. struct
  9451. {
  9452. BYTE byRes[160];
  9453. }struNotVideoPlatform;
  9454. }struDiff;
  9455. BYTE byRes[120];
  9456. }NET_DVR_VGA_DISP_CHAN_CFG_V40,*LPNET_DVR_VGA_DISP_CHAN_CFG_V40;
  9457. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDisplayCfg_V40(LONG lUserID, DWORD dwDispChanNum, LPNET_DVR_VGA_DISP_CHAN_CFG_V40 lpDisplayCfg);
  9458. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetDisplayCfg_V40(LONG lUserID, DWORD dwDispChanNum, LPNET_DVR_VGA_DISP_CHAN_CFG_V40 lpDisplayCfg);
  9459. typedef struct tagNET_DVR_V6SUBSYSTEMPARAM
  9460. {
  9461. BYTE bySerialTrans;//是否透传,0-否,1-是
  9462. BYTE byRes [35];
  9463. }NET_DVR_V6SUBSYSTEMPARAM, *LPNET_DVR_V6SUBSYSTEMPARAM;
  9464. #define NET_DVR_V6PSUBSYSTEMARAM_GET 1501//获取V6子系统配置
  9465. #define NET_DVR_V6PSUBSYSTEMARAM_SET 1502//设置V6子系统配置
  9466. /********************************热成像仪********************************/
  9467. NET_DVR_API BOOL __stdcall NET_DVR_ShutterCompensation(LONG lUserID);
  9468. typedef struct tagNET_DVR_CORRECT_DEADPIXEL_PARAM
  9469. {
  9470. DWORD dwSize;
  9471. DWORD dwCommand; //命令:0-进入坏点模式,1-添加坏点,2-保存坏点,3-退出坏点
  9472. DWORD dwDeadPixelX; //坏点X坐标
  9473. DWORD dwDeadPixelY; //坏点Y坐标
  9474. BYTE byRes[12]; //保留
  9475. }NET_DVR_CORRECT_DEADPIXEL_PARAM, *LPNET_DVR_CORRECT_DEADPIXEL_PARAM;
  9476. NET_DVR_API BOOL __stdcall NET_DVR_CorrectDeadPixel(LONG lUserID, LONG lChannel, LPNET_DVR_CORRECT_DEADPIXEL_PARAM lpInParam);
  9477. /********************************热成像仪 end****************************/
  9478. /********************************智能IPC V2.3****************************/
  9479. NET_DVR_API BOOL __stdcall NET_DVR_CustomConfig(LONG lUserID, LONG lChannel, LPVOID lpInBuffer, DWORD dwInBufferSize, LPVOID lpOutBuffer, DWORD dwOutBufferSize, LPDWORD lpBytesReturned);
  9480. #define MAX_REDAREA_NUM 6 //最大红绿灯区域个数
  9481. typedef struct tagNET_DVR_REDAREACFG
  9482. {
  9483. DWORD dwSize;
  9484. DWORD dwCorrectEnable; //是否开启校正功能,0-关闭,1-开启
  9485. DWORD dwCorrectLevel; //校正级别,1(校正度最低)-10(校正度最高),默认为5
  9486. DWORD dwAreaNum; //校正区域个数
  9487. NET_VCA_RECT struLaneRect[MAX_REDAREA_NUM]; //校正区域
  9488. BYTE byRes2[32]; //保留
  9489. }NET_DVR_REDAREACFG, *LPNET_DVR_REDAREACFG;
  9490. /********************************智能IPC V2.3****************************/
  9491. /*****************************65dvs**************************************/
  9492. typedef struct tagNET_DVR_HISTORICDATACFG
  9493. {
  9494. DWORD dwSize;
  9495. DWORD dwTotalNum; //历史数据个数
  9496. BYTE byRes[16];
  9497. }NET_DVR_HISTORICDATACFG, *LPNET_DVR_HISTORICDATACFG;
  9498. NET_DVR_API BOOL __stdcall NET_DVR_GetHistoricDataInfo(LONG lUserID, LONG lChannel, LPNET_DVR_HISTORICDATACFG lpHisData);
  9499. NET_DVR_API BOOL __stdcall NET_DVR_GetHistoricData(LONG lUserID, LONG lChannel, LPNET_DVR_PLATE_RESULT lpOuter);
  9500. NET_DVR_API BOOL __stdcall NET_DVR_ClearHistoricData(LONG lUserID, LONG lChannel);
  9501. /************************************************************************/
  9502. /***********************************81 审讯DVR*****************************/
  9503. #define INQUEST_MESSAGE_LEN 44 //审讯重点标记信息长度
  9504. #define INQUEST_MAX_ROOM_NUM 2 //最大审讯室个数
  9505. #define MAX_RESUME_SEGMENT 2 //支持同时恢复的片段数目
  9506. typedef struct tagNET_DVR_INQUEST_ROOM
  9507. {
  9508. BYTE byRoomIndex; //审讯室编号
  9509. BYTE byRes[23]; //保留
  9510. }NET_DVR_INQUEST_ROOM, *LPNET_DVR_INQUEST_ROOM;
  9511. typedef struct tagNET_DVR_INQUEST_MESSAGE
  9512. {
  9513. char sMessage[INQUEST_MESSAGE_LEN]; //重点标记信息
  9514. BYTE byRes[46]; //保留
  9515. }NET_DVR_INQUEST_MESSAGE, *LPNET_DVR_INQUEST_MESSAGE;
  9516. typedef struct tagNET_DVR_INQUEST_SENSOR_DEVICE
  9517. {
  9518. WORD wDeviceType; //数据采集设备型号:1:米乐 2:镭彩 3:优力
  9519. WORD wDeviceAddr; //数据采集设备地址
  9520. BYTE byRes[28]; //保留
  9521. }NET_DVR_INQUEST_SENSOR_DEVICE, *LPNET_DVR_INQUEST_SENSOR_DEVICE;
  9522. typedef struct tagNET_DVR_INQUEST_SENSOR_INFO
  9523. {
  9524. NET_DVR_INQUEST_SENSOR_DEVICE struSensorDevice[INQUEST_MAX_ROOM_NUM];
  9525. DWORD dwSupportPro; //支持协议类型,按位表示
  9526. //0x1:米乐 0x2:镭彩 0x4:优力
  9527. BYTE byRes[120]; //保留
  9528. }NET_DVR_INQUEST_SENSOR_INFO, *LPNET_DVR_INQUEST_SENSOR_INFO;
  9529. typedef struct tagNET_DVR_INQUEST_SYSTEM_INFO
  9530. {
  9531. DWORD dwRecordMode; //刻录模式:1 单室双刻模式 2 单室轮刻模式 3 双室双刻模式
  9532. DWORD dwWorkMode; //工作模式:0 标准模式 1 通用模式
  9533. DWORD dwResolutionMode; //设备分辨率,0:标清 1:D1 2:720P 3:1080P
  9534. NET_DVR_INQUEST_SENSOR_INFO struSensorInfo; //温湿度传感器配置
  9535. BYTE byRes[120];
  9536. }NET_DVR_INQUEST_SYSTEM_INFO, *LPNET_DVR_INQUEST_SYSTEM_INFO;
  9537. typedef struct tagNET_DVR_INQUEST_RESUME_SEGMENT
  9538. {
  9539. NET_DVR_TIME struStartTime; //事件起始时间
  9540. NET_DVR_TIME struStopTime; //事件终止时间
  9541. BYTE byRoomIndex; //审讯室编号,从1开始
  9542. BYTE byDriveIndex; //刻录机编号,从1开始
  9543. WORD wSegmetSize; //本片断的大小, 单位M
  9544. DWORD dwSegmentNo; //本片断在本次审讯中的序号,从1开始
  9545. BYTE byRes[24]; //保留
  9546. }NET_DVR_INQUEST_RESUME_SEGMENT, *LPNET_DVR_INQUEST_RESUME_SEGMENT;
  9547. typedef struct tagNET_DVR_INQUEST_RESUME_EVENT
  9548. {
  9549. DWORD dwResumeNum; //需恢复的事件个数
  9550. NET_DVR_INQUEST_RESUME_SEGMENT struResumeSegment[MAX_RESUME_SEGMENT];
  9551. BYTE byRes[200]; //保留
  9552. }NET_DVR_INQUEST_RESUME_EVENT, *LPNET_DVR_INQUEST_RESUME_EVENT;
  9553. typedef struct tagNET_DVR_INQUEST_DEVICE_VERSION
  9554. {
  9555. BYTE byMainVersion; /*基线主版本.
  9556. 0 : 未知
  9557. 1 : 8000审讯DVR
  9558. 次版本: 1 : 8000HD-S
  9559. 2 : 8100审讯DVR
  9560. 次版本: 1 : 审讯81SNL
  9561. 2 : 审讯81SH
  9562. 3 : 审讯81SFH
  9563. */
  9564. BYTE bySubVersion; //基线次版本
  9565. BYTE byUpgradeVersion; //升级版本,未升级为0
  9566. BYTE byCustomizeVersion; //定制版本,非定制为0
  9567. BYTE byRes[60]; //保留
  9568. }NET_DVR_INQUEST_DEVICE_VERSION, *LPNET_DVR_INQUEST_DEVICE_VERSION;
  9569. NET_DVR_API LONG __stdcall NET_DVR_InquestUploadFile_V30(LONG lUserID, LPNET_DVR_INQUEST_ROOM lpInquestRoom, char *sFileName);
  9570. NET_DVR_API BOOL __stdcall NET_DVR_InquestDeleteFile_V30(LONG lUserID, LPNET_DVR_INQUEST_ROOM lpInquestRoom, LPNET_DVR_INQUEST_FILES lpDeleteFile);
  9571. NET_DVR_API BOOL __stdcall NET_DVR_InquestGetPIPStatus_V30(LONG lUserID, LPNET_DVR_INQUEST_ROOM lpInquestRoom, LPNET_DVR_INQUEST_PIP_STATUS lpStatus);
  9572. NET_DVR_API BOOL __stdcall NET_DVR_InquestSetPIPStatus_V30(LONG lUserID, LPNET_DVR_INQUEST_ROOM lpInquestRoom, LPNET_DVR_INQUEST_PIP_STATUS lpStatus);
  9573. NET_DVR_API BOOL __stdcall NET_DVR_InquestGetSystemInfo(LONG lUserID, LPNET_DVR_INQUEST_SYSTEM_INFO lpSystemInfo);
  9574. NET_DVR_API BOOL __stdcall NET_DVR_InquestSetSystemInfo(LONG lUserID, LPNET_DVR_INQUEST_SYSTEM_INFO lpSystemInfo);
  9575. NET_DVR_API BOOL __stdcall NET_DVR_InquestSendMessage(LONG lUserID, LPNET_DVR_INQUEST_ROOM lpInquestRoom, LPNET_DVR_INQUEST_MESSAGE lpInquestMessage);
  9576. NET_DVR_API BOOL __stdcall NET_DVR_InquestStartCDW_V30(LONG lUserID, LPNET_DVR_INQUEST_ROOM lpInquestRoom, BOOL bPause);
  9577. NET_DVR_API BOOL __stdcall NET_DVR_InquestStopCDW_V30(LONG lUserID, LPNET_DVR_INQUEST_ROOM lpInquestRoom, BOOL bCancelWrite);
  9578. NET_DVR_API BOOL __stdcall NET_DVR_InquestGetCDWState_V30(LONG lUserID, LPNET_DVR_INQUEST_ROOM lpInquestRoom, LPNET_DVR_INQUEST_CDRW_STATUS pStatus);
  9579. NET_DVR_API LONG __stdcall NET_DVR_InquestResumeEvent(LONG lUserID, LPNET_DVR_INQUEST_RESUME_EVENT lpResumeEvent);
  9580. NET_DVR_API BOOL __stdcall NET_DVR_InquestGetResumeProgress(LONG lHandle, DWORD* pState);
  9581. NET_DVR_API BOOL __stdcall NET_DVR_InquestStopResume(LONG lHandle);
  9582. NET_DVR_API LONG __stdcall NET_DVR_InquestFindFile_V30(LONG lUserID, LPNET_DVR_INQUEST_ROOM pInquestRoom);
  9583. NET_DVR_API BOOL __stdcall NET_DVR_InquestGetDeviceVersion(LONG lUserID, LPNET_DVR_INQUEST_DEVICE_VERSION lpVersionInfo);
  9584. NET_DVR_API BOOL __stdcall NET_DVR_SetSDKSecretKey(LONG lUserID, char *sSecretKey);
  9585. /***********************************81 审讯DVR*****************************/
  9586. //********************************nvr/dvr/dvs****************************//
  9587. //64路NVR,获取磁盘阵列信息
  9588. typedef struct tagNET_DVR_DISK_RAID_INFO
  9589. {
  9590. DWORD dwSize; //结构体大小
  9591. BYTE byEnable; //磁盘Raid是否禁用
  9592. BYTE byRes[35]; //保留字节
  9593. }NET_DVR_DISK_RAID_INFO, *LPNET_DVR_DISK_RAID_INFO;
  9594. typedef struct tagNET_DVR_SYNCHRONOUS_IPC
  9595. {
  9596. DWORD dwSize; //结构体大小
  9597. BYTE byEnable; //是否启用:为前端IPC同步设备参数
  9598. BYTE byRes[7]; //保留
  9599. }NET_DVR_SYNCHRONOUS_IPC, *LPNET_DVR_SYNCHRONOUS_IPC;
  9600. typedef struct tagNET_DVR_IPC_PASSWD
  9601. {
  9602. DWORD dwSize; //结构体大小
  9603. char sOldPasswd[PASSWD_LEN]; //IPC的旧密码,传给DVR让DVR验证
  9604. char sNewPasswd[PASSWD_LEN]; //IPC的新密码
  9605. BYTE byRes[32];
  9606. }NET_DVR_IPC_PASSWD, *LPNET_DVR_IPC_PASSWD;
  9607. //通过获取DVR的网络状态:单位bps
  9608. typedef struct tagNET_DEVICE_NET_USING_INFO
  9609. {
  9610. DWORD dwSize; //结构体大小
  9611. DWORD dwPreview; //预览
  9612. DWORD dwPlayback; //回放
  9613. DWORD dwIPCModule; //IPC接入
  9614. DWORD dwNetDiskRW; //网盘读写
  9615. BYTE res[32];
  9616. }NET_DVR_DEVICE_NET_USING_INFO, *LPNET_DVR_DEVICE_NET_USING_INFO;
  9617. //通过DVR设置前端IPC的IP地址
  9618. typedef struct tagNET_DVR_IPC_NETCFG
  9619. {
  9620. DWORD dwSize; //结构体大小
  9621. NET_DVR_IPADDR struIP; //IPC的IP地址
  9622. WORD wPort; //IPC的端口
  9623. char res[126];
  9624. }NET_DVR_IPC_NETCFG, *LPNET_DVR_IPC_NETCFG;
  9625. //按时间锁定
  9626. typedef struct tagNET_DVR_TIME_LOCK
  9627. {
  9628. DWORD dwSize; //结构体大小
  9629. NET_DVR_TIME strBeginTime;
  9630. NET_DVR_TIME strEndTime;
  9631. DWORD dwChannel; //通道号, 0xff表示所有通道
  9632. DWORD dwRecordType; //录像类型: 0xff-全部,0-定时录像,1-移动侦测,2-报警触发,3-报警触发或移动侦测,4-报警触发和移动侦测,5-命令触发,6-手动录像,7-智能录像(同文件查找)
  9633. DWORD dwLockDuration; //锁定持续时间,单位秒
  9634. BYTE byRes[12];
  9635. }NET_DVR_TIME_LOCK, *LPNET_DVR_TIME_LOCK;
  9636. typedef struct tagNET_DVR_LOCK_RETURN
  9637. {
  9638. DWORD dwSize; //结构体大小
  9639. NET_DVR_TIME strBeginTime;
  9640. NET_DVR_TIME strEndTime;
  9641. BYTE byRes[20];
  9642. }NET_DVR_LOCK_RETURN, *LPNET_DVR_LOCK_RETURN;
  9643. //Lock by time
  9644. NET_DVR_API BOOL __stdcall NET_DVR_LockFileByTime(LONG lUserID, LPNET_DVR_TIME_LOCK lpLockPara, LPNET_DVR_LOCK_RETURN lpLockReturn);
  9645. //Unlock by time
  9646. NET_DVR_API BOOL __stdcall NET_DVR_UnlockFileByTime(LONG lUserID, LPNET_DVR_TIME_LOCK lpLockPara, LPNET_DVR_LOCK_RETURN lpLockReturn);
  9647. //channel record status
  9648. //***通道录像状态*****//
  9649. typedef struct tagNET_DVR_CHANS_RECORD_STATUS
  9650. {
  9651. BYTE byValid; //是否有效
  9652. BYTE byRecord; //(只读)录像类型, 按位表示:0: 不在录像;1:在录像
  9653. WORD wChannelNO; //通道号
  9654. DWORD dwRelatedHD; //关联磁盘
  9655. BYTE byRes[8]; //保留字节
  9656. }NET_DVR_CHANS_RECORD_STATUS, *LPNET_DVR_CHANS_RECORD_STATUS;
  9657. typedef struct tagNET_DVR_IP_ALARM_GROUP_NUM
  9658. {
  9659. DWORD dwSize;
  9660. DWORD dwIPAlarmInGroup; //IP通道报警输入组数
  9661. DWORD dwIPAlarmInNum; //IP通道报警输入个数
  9662. DWORD dwIPAlarmOutGroup; //IP通道报警输出组数
  9663. DWORD dwIPAlarmOutNum; //IP通道报警输出个数
  9664. BYTE byRes[64];
  9665. }NET_DVR_IP_ALARM_GROUP_NUM, *LPNET_DVR_IP_ALARM_GROUP_NUM;
  9666. //****NVR end***//
  9667. typedef struct tagNET_DVR_CHAN_GROUP_RECORD_STATUS
  9668. {
  9669. DWORD dwSize; //结构体大小
  9670. NET_DVR_CHANS_RECORD_STATUS struChanStatus[MAX_CHANNUM_V30]; //一组64个
  9671. }NET_DVR_CHAN_GROUP_RECORD_STATUS, *LPNET_DVR_CHAN_GROUP_RECORD_STATUS;
  9672. typedef struct tagNET_DVR_RECTCFG
  9673. {
  9674. WORD wXCoordinate; /*矩形左上角起始点X坐标*/
  9675. WORD wYCoordinate; /*矩形左上角Y坐标*/
  9676. WORD wWidth; /*矩形宽度*/
  9677. WORD wHeight; /*矩形高度*/
  9678. }NET_DVR_RECTCFG, *LPNET_DVR_RECTCFG;
  9679. /*窗口信息*/
  9680. typedef struct tagNET_DVR_WINCFG
  9681. {
  9682. DWORD dwSize;
  9683. BYTE byVaild;
  9684. BYTE byInputIdx; /*输入源索引*/
  9685. BYTE byLayerIdx; /*图层,0为最底层*/
  9686. BYTE byTransparency; //透明度,0~100
  9687. NET_DVR_RECTCFG struWin;//目的窗口(相对显示墙)
  9688. WORD wScreenHeight;//大屏高
  9689. WORD wScreenWidth;//大屏宽
  9690. BYTE byRes[20];
  9691. }NET_DVR_WINCFG, *LPNET_DVR_WINCFG;
  9692. #define MAX_LAYERNUMS 32
  9693. typedef struct tagNET_DVR_ALLWINCFG
  9694. {
  9695. DWORD dwSize;
  9696. NET_DVR_WINCFG struWinCfg[MAX_LAYERNUMS];
  9697. BYTE byRes2[24];
  9698. }NET_DVR_ALLWINCFG, *LPNET_DVR_ALLWINCFG;
  9699. typedef struct tagNET_DVR_SCREENZOOM
  9700. {
  9701. DWORD dwSize;
  9702. DWORD dwScreenNum;//大屏号
  9703. NET_DVR_POINT_FRAME struPointFrame;
  9704. BYTE byLayer;//图层号
  9705. BYTE byRes[11];
  9706. }NET_DVR_SCREENZOOM, *LPNET_DVR_SCREENZOOM;
  9707. NET_DVR_API BOOL __stdcall NET_DVR_ScreenZoomIn(LONG lUserID, LPNET_DVR_SCREENZOOM pStruScreen);
  9708. //2011-04-18
  9709. /*摄像机信息,最多9999个,从1开始 */
  9710. typedef struct tagNET_MATRIX_CAMERAINFO
  9711. {
  9712. DWORD dwGlobalCamId; /* cam的全局编号*/
  9713. BYTE sCamName[NAME_LEN]; /*cam的名称*/
  9714. DWORD dwMatrixId; /*cam对应矩阵的编号*/
  9715. DWORD dwLocCamId; /*cam对应矩阵的内部编号*/
  9716. BYTE byValid; /*是否有效,0-否,1-是*/
  9717. BYTE byPtzCtrl; /* 是否可控,0-否,1-是*/
  9718. BYTE byUseType; //*使用类型,0-不作为干线使用,1-BNC,2-SP3,3-V6光纤,4-其他光纤*/
  9719. BYTE byUsedByTrunk;//当前使用状态,0-没有被使用,1-被干线使用
  9720. BYTE byTrunkReq; /*摄像机分辨率,以D1为单位:1 - 1个D1,2- 2个D1,作为干线使用时,指的是干线的带宽*/
  9721. BYTE byRes1[3];
  9722. NET_DVR_TIME struInstallTime;//安装时间
  9723. BYTE sPurpose[NAME_LEN];/*用途描述*/
  9724. BYTE byRes2[20];
  9725. }NET_MATRIX_CAMERAINFO, *LPNET_MATRIX_CAMERAINFO;
  9726. /**************************************************************
  9727. 功能:获取所有全局Camera信息
  9728. 参数说明:
  9729. lUserID:NET_DVR_Login()的返回值
  9730. lpCamListInfo:LPNET_DVR_MATRIX_CAMERALIST结构指针
  9731. 返回值:
  9732. TRUE:成功,FALSE:失败
  9733. ***************************************************************/
  9734. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetAllCameraInfo(LONG lUserID, LPNET_DVR_MATRIX_CAMERALIST lpCamListInfo);
  9735. /**************************************************************
  9736. 功能:获取单个全局Camera信息
  9737. 参数说明:
  9738. lUserID:NET_DVR_Login()的返回值
  9739. dwCameraId:全局CAMERA编号
  9740. lpInter:LPNET_MATRIX_CAMERAINFO结构指针
  9741. 返回值:
  9742. TRUE:成功,FALSE:失败
  9743. ***************************************************************/
  9744. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetSingleCameraInfo(LONG lUserID, DWORD dwCameraId, LPNET_MATRIX_CAMERAINFO lpInter);
  9745. /**************************************************************
  9746. 功能:添加Camera
  9747. 参数说明:
  9748. lUserID:NET_DVR_Login()的返回值
  9749. dwCameraNum:要添加的Camera数量
  9750. pBuffer:Camera信息缓冲区,dwCameraNum 个NET_MATRIX_CAMERAINFO结构长度
  9751. dwBufLength:缓冲区长度
  9752. 返回值:
  9753. TRUE:成功,FALSE:失败
  9754. ***************************************************************/
  9755. NET_DVR_API BOOL __stdcall NET_DVR_MatrixAddCamera(LONG lUserID, DWORD dwCameraNum, BYTE *pBuffer, DWORD dwBufLength);
  9756. /**************************************************************
  9757. 功能:修改Camera信息
  9758. 参数说明:
  9759. lUserID:NET_DVR_Login()的返回值
  9760. lpInter:LPNET_MATRIX_CAMERAINFO结构指针
  9761. 返回值:
  9762. TRUE:成功,FALSE:失败
  9763. ***************************************************************/
  9764. NET_DVR_API BOOL __stdcall NET_DVR_MatrixModCameraInfo(LONG lUserID, LPNET_MATRIX_CAMERAINFO lpInter);
  9765. /**************************************************************
  9766. 功能:删除Camera信息
  9767. 参数说明:
  9768. lUserID:NET_DVR_Login()的返回值
  9769. dwCameraId:全局CAMERA编号
  9770. 返回值:
  9771. TRUE:成功,FALSE:失败
  9772. ***************************************************************/
  9773. NET_DVR_API BOOL __stdcall NET_DVR_MatrixDelCamera(LONG lUserID, DWORD dwCameraId);
  9774. /*监视器信息,最多2048个*/
  9775. typedef struct tagNET_MATRIX_MONITORINFO
  9776. {
  9777. DWORD dwGloalMonId; /*mon 的统一编号*/
  9778. BYTE sMonName[NAME_LEN];
  9779. DWORD dwMatrixId; /*mon所在矩阵的编号*/
  9780. DWORD dwLocalMonId; /*mon的内部编号*/
  9781. BYTE byValid; /*是否有效,0-否,1-是*/
  9782. BYTE byTrunkType; /*使用类型,0-不作为干线使用,1-BNC,2-SP3,3-V6光纤,4-其他光纤*/
  9783. BYTE byUsedByTrunk;//当前使用状态,0-没有被使用,1-被干线使用
  9784. BYTE byTrunkReq; /*分辨率, 以D1为单位:1- 1个D1,2- 2个D1,作为干线使用时,指的是干线的带宽*/
  9785. NET_DVR_TIME struInstallTime;//安装时间
  9786. BYTE sPurpose[NAME_LEN];/*用途描述*/
  9787. BYTE byRes[20];
  9788. }NET_MATRIX_MONITORINFO, *LPNET_MATRIX_MONITORINFO;
  9789. /**************************************************************
  9790. 功能:获取所有全局Monitor信息
  9791. 参数说明:
  9792. lUserID:NET_DVR_Login()的返回值
  9793. lpMonListInfo:LPNET_DVR_MATRIX_MONITORLIST结构指针
  9794. 返回值:
  9795. TRUE:成功,FALSE:失败
  9796. ***************************************************************/
  9797. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetAllMonitorInfo(LONG lUserID, LPNET_DVR_MATRIX_MONITORLIST lpMonListInfo);
  9798. /**************************************************************
  9799. 功能:获取单个全局Monitor信息
  9800. 参数说明:
  9801. lUserID:NET_DVR_Login()的返回值
  9802. dwMonitorId:全局MOTINOR编号
  9803. lpInter:LPNET_MATRIX_MONITORINFO结构指针
  9804. 返回值:
  9805. TRUE:成功,FALSE:失败
  9806. ***************************************************************/
  9807. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetSingleMonitorInfo(LONG lUserID, DWORD dwMonitorId, LPNET_MATRIX_MONITORINFO lpInter);
  9808. /**************************************************************
  9809. 功能:添加Monitor
  9810. 参数说明:
  9811. lUserID:NET_DVR_Login()的返回值
  9812. dwMonitorNum:要添加的Monitor数量
  9813. pBuffer:MONITOR信息缓冲区
  9814. dwBufLength:缓冲区长度,dwMonitorNum个NET_MATRIX_MONITORINFO长度
  9815. 返回值:
  9816. TRUE:成功,FALSE:失败
  9817. ***************************************************************/
  9818. NET_DVR_API BOOL __stdcall NET_DVR_MatrixAddMonitor(LONG lUserID, DWORD dwMonitorNum, BYTE *pBuffer, DWORD dwBufLength);
  9819. /**************************************************************
  9820. 功能:修改Monitor
  9821. 参数说明:
  9822. lUserID:NET_DVR_Login()的返回值
  9823. lpInter:LPNET_MATRIX_MONITORINFO结构指针
  9824. 返回值:
  9825. TRUE:成功,FALSE:失败
  9826. ***************************************************************/
  9827. NET_DVR_API BOOL __stdcall NET_DVR_MatrixModMonitorInfo(LONG lUserID, LPNET_MATRIX_MONITORINFO lpInter);
  9828. /**************************************************************
  9829. 功能:删除Monitor
  9830. 参数说明:
  9831. lUserID:NET_DVR_Login()的返回值
  9832. dwMonitorId:全局Monitor编号
  9833. 返回值:
  9834. TRUE:成功,FALSE:失败
  9835. ***************************************************************/
  9836. NET_DVR_API BOOL __stdcall NET_DVR_MatrixDelMonitor(LONG lUserID, DWORD dwMonitorId);
  9837. typedef struct tagNET_MATRIX_DIGITALMATRIX
  9838. {
  9839. NET_DVR_IPADDR struAddress; /*设备为数字设备时的IP信息*/
  9840. WORD wPort;
  9841. BYTE byNicNum; /*0 - eth0, 1 - eth1, 考虑双网口如何通信加入绑定的网口*/
  9842. BYTE byRes[69];
  9843. }NET_MATRIX_DIGITALMATRIX, *LPNET_MATRIX_DIGITALMATRIX;
  9844. typedef struct tagNET_MATRIX_ANALOGMATRIX
  9845. {
  9846. BYTE bySerPortNum; /*连接的串口号*/
  9847. BYTE byMatrixSerPortType;/* 矩阵接入网关的串口与模拟矩阵的键盘口(键盘协议)连接还是与矩阵通信口(矩阵协议)连接 ,0 --- 矩阵协议通讯口 1 --- 键盘通讯口*/
  9848. BYTE byRes[214];
  9849. }NET_MATRIX_ANALOGMATRIX, *LPNET_MATRIX_ANALOGMATRIX;
  9850. typedef union tagNET_MATRIX_UNION
  9851. {
  9852. NET_MATRIX_DIGITALMATRIX struDigitalMatrix;
  9853. NET_MATRIX_ANALOGMATRIX struAnalogMatrix;
  9854. }NET_MATRIX_UNION, *LPNET_MATRIX_UNION;
  9855. /*矩阵配置信息,最多20个*/
  9856. typedef struct tagNET_MATRIX_MATRIXINFO
  9857. {
  9858. DWORD dwSize;
  9859. DWORD dwMatrixId; /*矩阵编号*/
  9860. BYTE sDevName[NAME_LEN];
  9861. BYTE byCtrlType; /*指通讯方式是串口通信, 还是网络通信*/
  9862. BYTE byProtocolType;/*设置通信控制协议*/
  9863. BYTE byRes1[6]; /*预留*/
  9864. NET_MATRIX_UNION struMatrixUnion;
  9865. DWORD dwMaxPortsIn; /*矩阵输入数*/
  9866. DWORD dwMaxPortsOut;/*矩阵输出数*/
  9867. BYTE sUserName[NAME_LEN]; /*登录用户名*/
  9868. BYTE sPassword[PASSWD_LEN]; /*登录密码*/
  9869. NET_DVR_TIME struInstallTime;//安装时间
  9870. BYTE sPurpose[NAME_LEN];/*用途描述*/
  9871. BYTE byRes2[20]; /*预留*/
  9872. }NET_MATRIX_MATRIXINFO, *LPNET_MATRIX_MATRIXINFO;
  9873. typedef struct tagNET_DVR_MATRIXLIST
  9874. {
  9875. DWORD dwSize;
  9876. BYTE byRes[12];
  9877. DWORD dwMatrixNum;//设备返回的矩阵数量
  9878. BYTE *pBuffer;//矩阵信息缓冲区
  9879. DWORD dwBufLen;//所分配指针长度,输入参数
  9880. }NET_DVR_MATRIXLIST,*LPNET_DVR_MATRIXLIST;
  9881. /**************************************************************
  9882. 功能:获取所有矩阵信息
  9883. 参数说明:
  9884. lUserID:NET_DVR_Login()的返回值
  9885. lpMatrixListInfo:LPNET_DVR_MATRIXLIST结构指针
  9886. 返回值:
  9887. TRUE:成功,FALSE:失败
  9888. ***************************************************************/
  9889. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetAllMatrixInfo(LONG lUserID, LPNET_DVR_MATRIXLIST lpMatrixListInfo);
  9890. /**************************************************************
  9891. 功能:获取单个Matrix信息
  9892. 参数说明:
  9893. lUserID:NET_DVR_Login()的返回值
  9894. dwMatrixId:MATRIX编号
  9895. lpInter:LPNET_MATRIX_MATRIXINFO结构指针
  9896. 返回值:
  9897. TRUE:成功,FALSE:失败
  9898. ***************************************************************/
  9899. NET_DVR_API BOOL __stdcall NET_DVR_GetSingleMatrixInfo(LONG lUserID, DWORD dwMatrixId, LPNET_MATRIX_MATRIXINFO lpInter);
  9900. /**************************************************************
  9901. 功能:添加Monitor
  9902. 参数说明:
  9903. lUserID:NET_DVR_Login()的返回值
  9904. lpInter:LPNET_MATRIX_MATRIXINFO结构指针
  9905. 返回值:
  9906. TRUE:成功,FALSE:失败
  9907. ***************************************************************/
  9908. NET_DVR_API BOOL __stdcall NET_DVR_AddMatrix(LONG lUserID, LPNET_MATRIX_MATRIXINFO lpInter);
  9909. /**************************************************************
  9910. 功能:修改Monitor
  9911. 参数说明:
  9912. lUserID:NET_DVR_Login()的返回值
  9913. lpInter:LPNET_MATRIX_MATRIXINFO结构指针
  9914. 返回值:
  9915. TRUE:成功,FALSE:失败
  9916. ***************************************************************/
  9917. NET_DVR_API BOOL __stdcall NET_DVR_ModMatrixInfo(LONG lUserID, LPNET_MATRIX_MATRIXINFO lpInter);
  9918. /**************************************************************
  9919. 功能:删除Matrix
  9920. 参数说明:
  9921. lUserID:NET_DVR_Login()的返回值
  9922. dwMatrixId:全局Matrix编号
  9923. 返回值:
  9924. TRUE:成功,FALSE:失败
  9925. ***************************************************************/
  9926. NET_DVR_API BOOL __stdcall NET_DVR_DelMatrix(LONG lUserID, DWORD dwMatrixId);
  9927. /*串口配置信息*/
  9928. typedef struct tagNET_MATRIX_UARTPARAM
  9929. {
  9930. DWORD dwSize;
  9931. BYTE byPortName[NAME_LEN];
  9932. WORD wUserId; /*用户编号,当连接设备为键盘时,绑定一个用户,用于权限管理*/
  9933. BYTE byPortType; /*串口类型,三种0-RS232/1-RS485/2-RS422*/
  9934. BYTE byFuncType; /*串口连接的设备的类型0-空闲,1-键盘,2-用作透明通道(485串口不可配置成透明通道),3-模拟矩阵*/
  9935. BYTE byProtocolType; /*串口支持的协议类型, 当连接键盘设备时需要该信息,获取键盘支持协议的编号及描述符*/
  9936. BYTE byBaudRate;
  9937. BYTE byDataBits;
  9938. BYTE byStopBits; /*停止位*/
  9939. BYTE byParity; /*校验*/
  9940. BYTE byFlowCtrl; /*流控,软件流控,无流控*/
  9941. BYTE byRes[22]; /*预留*/
  9942. }NET_MATRIX_UARTPARAM, *LPNET_MATRIX_UARTPARAM;
  9943. /**************************************************************
  9944. 功能:获取串口信息
  9945. 参数说明:
  9946. lUserID:NET_DVR_Login()的返回值
  9947. dwSerialChan:串口号
  9948. lpInter:指向NET_MATRIX_UARTPARAM结构的指针
  9949. 返回值:
  9950. TRUE:成功,FALSE:失败
  9951. ***************************************************************/
  9952. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetUartParam(LONG lUserID, DWORD dwSerialChan, LPNET_MATRIX_UARTPARAM lpInter);
  9953. /**************************************************************
  9954. 功能:设置串口信息
  9955. 参数说明:
  9956. lUserID:NET_DVR_Login()的返回值
  9957. dwSerialChan:串口号
  9958. lpInter:指向NET_MATRIX_UARTPARAM结构的指针
  9959. 返回值:
  9960. TRUE:成功,FALSE:失败
  9961. ***************************************************************/
  9962. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetUartParam(LONG lUserID, DWORD dwSerialChan , LPNET_MATRIX_UARTPARAM lpInter);
  9963. //最多256个用户,1~256
  9964. typedef struct tagNET_MATRIX_USERPARAM
  9965. {
  9966. DWORD dwSize;
  9967. BYTE sUserName[NAME_LEN];
  9968. BYTE sPassword[PASSWD_LEN/*16*/];
  9969. BYTE byRole;/*用户角色:0-管理员,1-操作员;只有一个系统管理员,255个操作员*/
  9970. BYTE byLevel; /*统一级别,用于操作级别管理,1- 255*/
  9971. BYTE byRes[18];
  9972. }NET_MATRIX_USERPARAM, *LPNET_MATRIX_USERPARAM;
  9973. /**************************************************************
  9974. 功能:获取用户信息
  9975. 参数说明:
  9976. lUserID:NET_DVR_Login()的返回值
  9977. dwUserNum:用户编号
  9978. lpInter:LPNET_MATRIX_USERPARAM结构指针
  9979. 返回值:
  9980. TRUE:成功,FALSE:失败
  9981. ***************************************************************/
  9982. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetUserInfo(LONG lUserID, DWORD dwUserNum, LPNET_MATRIX_USERPARAM lpInter);
  9983. /**************************************************************
  9984. 功能:添加用户信息
  9985. 参数说明:
  9986. lUserID:NET_DVR_Login()的返回值
  9987. dwUserNum:用户编号
  9988. lpInter:LPNET_MATRIX_USERPARAM结构指针
  9989. 返回值:
  9990. TRUE:成功,FALSE:失败
  9991. ***************************************************************/
  9992. NET_DVR_API BOOL __stdcall NET_DVR_MatrixAddUser(LONG lUserID, DWORD dwUserNum, LPNET_MATRIX_USERPARAM lpInter);
  9993. /**************************************************************
  9994. 功能:修改用户信息
  9995. 参数说明:
  9996. lUserID:NET_DVR_Login()的返回值
  9997. dwUserNum:用户编号
  9998. lpInter:LPNET_MATRIX_USERPARAM结构指针
  9999. 返回值:
  10000. TRUE:成功,FALSE:失败
  10001. ***************************************************************/
  10002. NET_DVR_API BOOL __stdcall NET_DVR_MatrixModUserInfo(LONG lUserID, DWORD dwUserNum, LPNET_MATRIX_USERPARAM lpInter);
  10003. /**************************************************************
  10004. 功能:删除用户信息
  10005. 参数说明:
  10006. lUserID:NET_DVR_Login()的返回值
  10007. dwUserNum:用户编号
  10008. 返回值:
  10009. TRUE:成功,FALSE:失败
  10010. ***************************************************************/
  10011. NET_DVR_API BOOL __stdcall NET_DVR_MatrixDelUser(LONG lUserID, DWORD dwUserNum);
  10012. //最多255个资源组
  10013. typedef struct tagNET_MATRIX_RESOURSEGROUPPARAM
  10014. {
  10015. DWORD dwSize;
  10016. BYTE byGroupName[NAME_LEN];
  10017. BYTE byGroupType;/*0-摄像机CAM组,1-监视器MON组*/
  10018. BYTE byRes1;
  10019. WORD wMemNum;
  10020. DWORD dwGlobalId[512];
  10021. BYTE byRes2[20];
  10022. }NET_MATRIX_RESOURCEGROUPPARAM,*LPNET_MATRIX_RESOURSEGROUPPARAM;
  10023. /**************************************************************
  10024. 功能:获取资源组信息
  10025. 参数说明:
  10026. lUserID:NET_DVR_Login()的返回值
  10027. dwResourceNum:资源组编号
  10028. lpInter:LPNET_MATRIX_RESOURSEGROUPPARAM结构指针
  10029. 返回值:
  10030. TRUE:成功,FALSE:失败
  10031. ***************************************************************/
  10032. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetResourceInfo(LONG lUserID, DWORD dwResourceNum, LPNET_MATRIX_RESOURSEGROUPPARAM lpInter);
  10033. /**************************************************************
  10034. 功能:添加资源组信息
  10035. 参数说明:
  10036. lUserID:NET_DVR_Login()的返回值
  10037. dwResourceNum:资源组编号
  10038. lpInter:LPNET_MATRIX_RESOURSEGROUPPARAM结构指针
  10039. 返回值:
  10040. TRUE:成功,FALSE:失败
  10041. ***************************************************************/
  10042. NET_DVR_API BOOL __stdcall NET_DVR_MatrixAddResourceInfo(LONG lUserID, DWORD dwResourceNum, LPNET_MATRIX_RESOURSEGROUPPARAM lpInter);
  10043. /**************************************************************
  10044. 功能:修改资源组信息
  10045. 参数说明:
  10046. lUserID:NET_DVR_Login()的返回值
  10047. dwResourceNum:资源组编号
  10048. lpInter:LPNET_MATRIX_RESOURSEGROUPPARAM结构指针
  10049. 返回值:
  10050. TRUE:成功,FALSE:失败
  10051. ***************************************************************/
  10052. NET_DVR_API BOOL __stdcall NET_DVR_MatrixModResourceInfo(LONG lUserID, DWORD dwResourceNum, LPNET_MATRIX_RESOURSEGROUPPARAM lpInter);
  10053. /**************************************************************
  10054. 功能:删除资源组
  10055. 参数说明:
  10056. lUserID:NET_DVR_Login()的返回值
  10057. dwResourceNum:资源组编号
  10058. 返回值:
  10059. TRUE:成功,FALSE:失败
  10060. ***************************************************************/
  10061. NET_DVR_API BOOL __stdcall NET_DVR_MatrixDelResourceInfo(LONG lUserID, DWORD dwResourceNum);
  10062. //最多255个用户组
  10063. typedef struct tagNET_MATRIX_USERGROUPPARAM
  10064. {
  10065. DWORD dwSize;
  10066. BYTE sGroupName[NAME_LEN];
  10067. WORD wUserMember[255]; /*包含的用户成员*/
  10068. WORD wResorceGroupMember[255]; /*包含的资源组成员*/
  10069. BYTE byPermission[32];//权限,数组0-ptz权限、切换权限、查询权限
  10070. BYTE byRes[20];
  10071. } NET_MATRIX_USERGROUPPARAM, *LPNET_MATRIX_USERGROUPPARAM;
  10072. /**************************************************************
  10073. 功能:获取用户组信息
  10074. 参数说明:
  10075. lUserID:NET_DVR_Login()的返回值
  10076. dwUserGroupNum:用户组编号
  10077. lpInter:LPNET_MATRIX_USERGROUPPARAM结构指针
  10078. 返回值:
  10079. TRUE:成功,FALSE:失败
  10080. ***************************************************************/
  10081. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetUserGroupInfo(LONG lUserID, DWORD dwUserGroupNum, LPNET_MATRIX_USERGROUPPARAM lpInter);
  10082. /**************************************************************
  10083. 功能:添加用户组信息
  10084. 参数说明:
  10085. lUserID:NET_DVR_Login()的返回值
  10086. dwUserGroupNum:用户组编号
  10087. lpInter:LPNET_MATRIX_USERGROUPPARAM结构指针
  10088. 返回值:
  10089. TRUE:成功,FALSE:失败
  10090. ***************************************************************/
  10091. NET_DVR_API BOOL __stdcall NET_DVR_MatrixAddUserGroupInfo(LONG lUserID, DWORD dwUserGroupNum, LPNET_MATRIX_USERGROUPPARAM lpInter);
  10092. /**************************************************************
  10093. 功能:修改用户组信息
  10094. 参数说明:
  10095. lUserID:NET_DVR_Login()的返回值
  10096. dwUserGroupNum:用户组编号
  10097. lpInter:LPNET_MATRIX_USERGROUPPARAM结构指针
  10098. 返回值:
  10099. TRUE:成功,FALSE:失败
  10100. ***************************************************************/
  10101. NET_DVR_API BOOL __stdcall NET_DVR_MatrixModUserGroupInfo(LONG lUserID, DWORD dwUserGroupNum, LPNET_MATRIX_USERGROUPPARAM lpInter);
  10102. /**************************************************************
  10103. 功能:删除用户组
  10104. 参数说明:
  10105. lUserID:NET_DVR_Login()的返回值
  10106. dwUserGroupNum:用户组编号
  10107. 返回值:
  10108. TRUE:成功,FALSE:失败
  10109. ***************************************************************/
  10110. NET_DVR_API BOOL __stdcall NET_DVR_MatrixDelUserGroup (LONG lUserID, DWORD dwUserGroupNum);
  10111. /*说明:使用用户组的概念可以对用户进行权限管理和资源管理。因为用户组包含用户成员信息,管理资源信息,权限信息,所以, 可以实现用户的级别管理和权限管理*/
  10112. typedef struct tagNET_MATRIX_TRUNKPARAM
  10113. {
  10114. DWORD dwSize;
  10115. DWORD dwTrunkId;
  10116. BYTE sTrunkName[NAME_LEN];
  10117. DWORD dwSrcMonId;
  10118. DWORD dwDstCamId;
  10119. BYTE byTrunkType; /*使用类型 1-BNC,2-SP3光纤高清,3-SP3光纤D1, 4-V6光纤,5-其他光纤*/
  10120. BYTE byAbility; /*表示光纤的带宽,可以传输几路*/
  10121. BYTE bySubChan; /*针对光纤干线而言,表示子通道号*/
  10122. BYTE byLevel; /* 干线级别 1-255*/
  10123. BYTE byRes[20]; /*预留*/
  10124. } NET_MATRIX_TRUNKPARAM, *LPNET_MATRIX_TRUNKPARAM;
  10125. typedef struct tagNET_DVR_MATRIX_TRUNKLIST
  10126. {
  10127. DWORD dwSize;
  10128. BYTE byRes[12];
  10129. DWORD dwTrunkNum;//设备返回的干线数量
  10130. BYTE *pBuffer;//干线信息缓冲区
  10131. DWORD dwBufLen;//所分配指针长度,输入参数
  10132. }NET_DVR_MATRIX_TRUNKLIST,*LPNET_DVR_MATRIX_TRUNKLIST;
  10133. /**************************************************************
  10134. 功能:获取所有干线信息
  10135. 参数说明:
  10136. lUserID:NET_DVR_Login()的返回值
  10137. lpTrunkListInfo:LPNET_DVR_MATRIX_TRUNKLIST结构指针
  10138. 返回值:
  10139. TRUE:成功,FALSE:失败
  10140. ***************************************************************/
  10141. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetAllTrunkInfo(LONG lUserID, LPNET_DVR_MATRIX_TRUNKLIST lpTrunkListInfo);
  10142. /**************************************************************
  10143. 功能:获取干线信息
  10144. 参数说明:
  10145. lUserID:NET_DVR_Login()的返回值
  10146. dwTrunkNum:干线编号
  10147. lpInter:LPNET_MATRIX_TRUNKPARAM结构指针
  10148. 返回值:
  10149. TRUE:成功,FALSE:失败
  10150. ***************************************************************/
  10151. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetTrunkInfo(LONG lUserID, DWORD dwTrunkNum, LPNET_MATRIX_TRUNKPARAM lpInter);
  10152. /**************************************************************
  10153. 功能:添加干线
  10154. 参数说明:
  10155. lUserID:NET_DVR_Login()的返回值
  10156. lpInter:LPNET_MATRIX_TRUNKPARAM结构指针
  10157. 返回值:
  10158. TRUE:成功,FALSE:失败
  10159. ***************************************************************/
  10160. NET_DVR_API BOOL __stdcall NET_DVR_MatrixAddTrunk(LONG lUserID, LPNET_MATRIX_TRUNKPARAM lpInter);
  10161. /**************************************************************
  10162. 功能:修改干线信息
  10163. 参数说明:
  10164. lUserID:NET_DVR_Login()的返回值
  10165. lpInter:LPNET_MATRIX_TRUNKPARAM结构指针
  10166. 返回值:
  10167. TRUE:成功,FALSE:失败
  10168. ***************************************************************/
  10169. NET_DVR_API BOOL __stdcall NET_DVR_MatrixModTrunkInfo(LONG lUserID, LPNET_MATRIX_TRUNKPARAM lpInter);
  10170. /**************************************************************
  10171. 功能:干线控制
  10172. 参数说明:
  10173. lUserID:NET_DVR_Login()的返回值
  10174. dwTrunkNum:干线编号
  10175. byCtrlMode:控制方式,1-删除干线,2-预留干线,3-释放干线
  10176. 返回值:
  10177. TRUE:成功,FALSE:失败
  10178. ***************************************************************/
  10179. NET_DVR_API BOOL __stdcall NET_DVR_MatrixTrunkCtrl(LONG lUserID, DWORD dwTrunkNum, BYTE byCtrlMode);
  10180. /**************************************************************
  10181. 功能:干线状态查询
  10182. 参数说明:
  10183. lUserID:NET_DVR_Login()的返回值
  10184. dwTrunkNum:干线编号
  10185. byTrunkStatus:干线状态,1-占用,2-空闲,3-预留
  10186. 返回值:
  10187. TRUE:成功,FALSE:失败
  10188. ***************************************************************/
  10189. NET_DVR_API BOOL __stdcall NET_DVR_MatrixTrunkStatusQuery(LONG lUserID, DWORD dwTrunkNum, BYTE *byTrunkStatus);
  10190. #define MATRIX_PROTOCOL_NUM 20 //支持的最大矩阵协议数
  10191. #define KEYBOARD_PROTOCOL_NUM 20 //支持的最大键盘协议数
  10192. typedef struct tagNET_DVR_PROTO_TYPE_EX
  10193. {
  10194. WORD wType; /*ipc协议值*/
  10195. WORD wCommunitionType; /*0:模拟 1:数字 2:兼容模拟、数字*/
  10196. BYTE byDescribe[DESC_LEN]; /*协议描述字段*/
  10197. }NET_DVR_PROTO_TYPE_EX, LPNET_DVR_PROTO_TYPE_EX;
  10198. typedef struct tagNET_DVR_MATRIXMANAGE_ABIILITY
  10199. {
  10200. DWORD dwSize;
  10201. DWORD dwMaxCameraNum;//最大Camera数量
  10202. DWORD dwMaxMonitorNum;//最大监视器数量
  10203. WORD wMaxMatrixNum;//最大矩阵数量
  10204. WORD wMaxSerialNum;//串口数量
  10205. WORD wMaxUser;//最大用户数
  10206. WORD wMaxResourceArrayNum;//最大资源组数
  10207. WORD wMaxUserArrayNum;//最大用户组数
  10208. WORD wMaxTrunkNum;//最大干线数
  10209. BYTE nStartUserNum;//起始用户号
  10210. BYTE nStartUserGroupNum;//起始用户组号
  10211. BYTE nStartResourceGroupNum;//起始资源组号
  10212. BYTE nStartSerialNum;//起始串口号
  10213. DWORD dwMatrixProtoNum; /*有效的矩阵协议数目,从0开始*/
  10214. NET_DVR_PROTO_TYPE_EX struMatrixProto[MATRIX_PROTOCOL_NUM];/*最大协议列表长度*/
  10215. DWORD dwKeyBoardProtoNum; /*有效的键盘协议数目,从0开始*/
  10216. NET_DVR_PROTO_TYPE_EX struKeyBoardProto[KEYBOARD_PROTOCOL_NUM];/*最大协议列表长度*/
  10217. BYTE byRes[32];
  10218. } NET_DVR_MATRIXMANAGE_ABILITY, *LPNET_DVR_MATRIXMANAGE_ABILITY;
  10219. #define MATRIXMANAGEDEVICE_ABILITY 0x240 //矩阵接入网关能力集
  10220. //向设备发送命令,做操作:安全拔盘,重新扫描等等。
  10221. NET_DVR_API BOOL __stdcall NET_DVR_CommandDevice(LONG lUserID, DWORD dwCommand, LPVOID lpInBuffer, DWORD dwInLen);
  10222. //********************************nvr/dvr/dvs end**************************//
  10223. /********************************智能人脸识别****************************/
  10224. //人脸抓拍规则(单条)
  10225. typedef struct tagNET_VCA_SINGLE_FACESNAPCFG
  10226. {
  10227. BYTE byActive; //是否激活规则:0-否,1-是
  10228. BYTE byRes[3]; //保留
  10229. NET_VCA_SIZE_FILTER struSizeFilter; //尺寸过滤器
  10230. NET_VCA_POLYGON struVcaPolygon; //人脸识别区域
  10231. }NET_VCA_SINGLE_FACESNAPCFG, *LPNET_VCA_SINGLE_FACESNAPCFG;
  10232. //人脸抓拍规则参数
  10233. typedef struct tagNET_VCA_FACESNAPCFG
  10234. {
  10235. DWORD dwSize;
  10236. BYTE bySnapTime; //单个目标人脸的抓拍次数0-10
  10237. BYTE bySnapInterval; //抓拍间隔,单位:帧
  10238. BYTE bySnapThreshold; //抓拍阈值,0-100
  10239. BYTE byGenerateRate; //目标生成速度,范围[1, 5]
  10240. BYTE bySensitive; //目标检测灵敏度,范围[1, 5]
  10241. BYTE byRes1[3]; //保留
  10242. NET_DVR_JPEGPARA struPictureParam; //图片规格结构
  10243. NET_VCA_SINGLE_FACESNAPCFG struRule[MAX_RULE_NUM]; //人脸抓拍规则
  10244. BYTE byRes2[100];
  10245. }NET_VCA_FACESNAPCFG, *LPNET_VCA_FACESNAPCFG;
  10246. //人脸抓拍结果
  10247. typedef struct tagNET_VCA_FACESNAP_RESULT
  10248. {
  10249. DWORD dwSize; // 结构大小
  10250. DWORD dwRelativeTime; // 相对时标
  10251. DWORD dwAbsTime; // 绝对时标
  10252. DWORD dwFacePicID; //人脸图ID
  10253. DWORD dwFaceScore; //人脸评分,0-100
  10254. NET_VCA_TARGET_INFO struTargetInfo; //报警目标信息
  10255. NET_VCA_RECT struRect; //人脸子图区域
  10256. NET_VCA_DEV_INFO struDevInfo; //前端设备信息
  10257. DWORD dwFacePicLen; //人脸子图的长度,为0表示没有图片,大于0表示有图片
  10258. DWORD dwBackgroundPicLen; //背景图的长度,为0表示没有图片,大于0表示有图片(保留)
  10259. BYTE byRes[60]; // 保留字节
  10260. BYTE* pBuffer1; //人脸子图的图片数据
  10261. BYTE* pBuffer2; //背景图的图片数据(保留,通过查找背景图接口可以获取背景图)
  10262. }NET_VCA_FACESNAP_RESULT, *LPNET_VCA_FACESNAP_RESULT;
  10263. NET_DVR_API BOOL __stdcall NET_DVR_FindBackgroundPic(LONG lUserID, DWORD dwPicID, BYTE *pPicBuffer, DWORD *lpPicLen);
  10264. typedef struct tagNET_VCA_FD_IMAGE_CFG
  10265. {
  10266. DWORD dwWidth; //灰度图像数据宽度
  10267. DWORD dwHeight; //灰度图像高度
  10268. DWORD dwImageLen; //灰度图像数据长度
  10269. BYTE byRes[20]; //保留
  10270. BYTE *pImage; //灰度图像数据
  10271. }NET_VCA_FD_IMAGE_CFG, *LPNET_VCA_FD_IMAGE_CFG;
  10272. typedef struct tagNET_VCA_FD_PROCIMG_CFG
  10273. {
  10274. DWORD dwSize; //结构大小
  10275. BYTE byEnable; //是否激活规则;
  10276. BYTE bySensitivity; //检测灵敏度,[0,5]
  10277. BYTE byRes1[22]; //保留字节
  10278. NET_VCA_SIZE_FILTER struSizeFilter; //尺寸过滤器
  10279. NET_VCA_POLYGON struPolygon; //多边形
  10280. NET_VCA_FD_IMAGE_CFG struFDImage; //图片信息
  10281. BYTE byRes2[20]; //保留
  10282. }NET_VCA_FD_PROCIMG_CFG, *LPNET_VCA_FD_PROCIMG_CFG;
  10283. typedef struct tagNET_VCA_SUB_PROCIMG
  10284. {
  10285. DWORD dwImageLen; //图片数据长度
  10286. DWORD dwFaceScore; //人脸评分,0-100
  10287. NET_VCA_RECT struVcaRect; //人脸子图区域
  10288. BYTE byRes[20]; //保留
  10289. BYTE *pImage; //图片数据
  10290. }NET_VCA_SUB_PROCIMG, *LPNET_VCA_SUB_PROCIMG;
  10291. typedef struct tagNET_VCA_FD_PROCIMG_RESULT
  10292. {
  10293. DWORD dwSize; //结构大小
  10294. DWORD dwImageId; //大图ID
  10295. BYTE byRes[20]; //保留
  10296. DWORD dwSubImageNum; //人脸子图张数
  10297. NET_VCA_SUB_PROCIMG struProcImg[MAX_TARGET_NUM]; //单张子图信息
  10298. }NET_VCA_FD_PROCIMG_RESULT, *LPNET_VCA_FD_PROCIMG_RESULT;
  10299. NET_DVR_API BOOL __stdcall NET_DVR_DetectImage(LONG lUserID, LPNET_VCA_FD_PROCIMG_CFG lpFDProcImg,LPNET_VCA_FD_PROCIMG_RESULT lpOutBuf);
  10300. typedef struct tagNET_VCA_PICMODEL_RESULT
  10301. {
  10302. DWORD dwImageLen; //图片数据长度
  10303. DWORD dwModelLen; //模型数据长度
  10304. BYTE byRes[20]; //保留
  10305. BYTE *pImage; //人脸图片数据指针
  10306. BYTE *pModel; //模型数据指针
  10307. }NET_VCA_PICMODEL_RESULT, *LPNET_VCA_PICMODEL_RESULT;
  10308. typedef struct tagNET_VCA_REGISTER_PIC
  10309. {
  10310. DWORD dwImageID; //大图ID
  10311. DWORD dwFaceScore; //人脸评分,0-100
  10312. NET_VCA_RECT struVcaRect; //人脸子图区域
  10313. BYTE byRes[20]; //保留
  10314. }NET_VCA_REGISTER_PIC, *LPNET_VCA_REGISTER_PIC;
  10315. NET_DVR_API BOOL __stdcall NET_DVR_GetPictureModel(LONG lUserID, LPNET_VCA_REGISTER_PIC lpInBuf, LPNET_VCA_PICMODEL_RESULT lpOutBuf);
  10316. #define NET_DVR_GET_SAVE_PATH_CFG 5007 //获取存储信息参数
  10317. #define NET_DVR_SET_SAVE_PATH_CFG 5008 //设置存储信息参数
  10318. #define MAX_HUMAN_PICTURE_NUM 10 //最大照片数
  10319. #define MAX_HUMAN_BIRTHDATE_LEN 10 //最大出生年月长度
  10320. typedef struct tagNET_DVR_AREAINFOCFG
  10321. {
  10322. WORD wNationalityID; //国籍
  10323. WORD wProvinceID; //省
  10324. WORD wCityID; //市
  10325. WORD wCountyID; //县
  10326. BYTE byRes[4]; //保留
  10327. }NET_DVR_AREAINFOCFG, *LPNET_DVR_AREAINFOCFG;
  10328. typedef struct tagNET_VCA_HUMAN_ATTRIBUTE
  10329. {
  10330. BYTE bySex; //性别:0-男,1-女
  10331. BYTE byCertificateType; //证件类型:0-身份证,1-警官证
  10332. BYTE byBirthDate[MAX_HUMAN_BIRTHDATE_LEN]; //出生年月,如:201106
  10333. BYTE byName[NAME_LEN]; //姓名
  10334. NET_DVR_AREAINFOCFG struNativePlace; //籍贯参数
  10335. BYTE byCertificateNumber[NAME_LEN]; //证件号
  10336. BYTE byRes2[20];
  10337. }NET_VCA_HUMAN_ATTRIBUTE, *LPNET_VCA_HUMAN_ATTRIBUTE;
  10338. typedef struct tagNET_VCA_HUMANATTRIBUTE_COND
  10339. {
  10340. BYTE bySex; //性别:0-不启用,1-男,2-女
  10341. BYTE byCertificateType; //证件类型:0-不启用,1-身份证,2-警官证
  10342. BYTE byStartBirthDate[MAX_HUMAN_BIRTHDATE_LEN]; //起始出生年月,如:201106
  10343. BYTE byEndBirthDate[MAX_HUMAN_BIRTHDATE_LEN]; //截止出生年月,如201106
  10344. BYTE byName[NAME_LEN]; //姓名
  10345. NET_DVR_AREAINFOCFG struNativePlace; //籍贯参数
  10346. BYTE byCertificateNumber[NAME_LEN]; //证件号
  10347. BYTE byRes[20];
  10348. }NET_VCA_HUMANATTRIBUTE_COND, *LPNET_VCA_HUMANATTRIBUTE_COND;
  10349. typedef struct tagNET_VCA_BLACKLIST_INFO
  10350. {
  10351. DWORD dwSize; //结构大小
  10352. DWORD dwRegisterID; //名单注册ID号(只读)
  10353. DWORD dwGroupNo; //分组号
  10354. BYTE byType; //黑白名单标志:0-全部,1-白名单,2-黑名单
  10355. BYTE byLevel; //黑名单等级,0-全部,1-低,2-中,3-高
  10356. BYTE byRes1[2]; //保留
  10357. NET_VCA_HUMAN_ATTRIBUTE struAttribute; //人员信息
  10358. BYTE byRemark[NAME_LEN]; //备注信息
  10359. BYTE byRes2[20];
  10360. }NET_VCA_BLACKLIST_INFO, *LPNET_VCA_BLACKLIST_INFO;
  10361. typedef struct tagNET_VCA_BLACKLIST_PARA
  10362. {
  10363. DWORD dwSize; //结构大小
  10364. NET_VCA_BLACKLIST_INFO struBlackListInfo; //黑名单基本参数
  10365. DWORD dwRegisterPicNum; //黑名单图个数
  10366. NET_VCA_PICMODEL_RESULT struRegisterPic[MAX_HUMAN_PICTURE_NUM]; //黑名单图片信息
  10367. BYTE byRes[40]; //保留
  10368. }NET_VCA_BLACKLIST_PARA, *LPNET_VCA_BLACKLIST_PARA;
  10369. typedef struct tagNET_VCA_BLACKLIST_COND
  10370. {
  10371. LONG lChannel; //通道号
  10372. DWORD dwGroupNo; //分组号
  10373. BYTE byType; //黑白名单标志:0-全部,1-白名单,2-黑名单
  10374. BYTE byLevel; //黑名单等级,0-全部,1-低,2-中,3-高
  10375. BYTE byRes1[2]; //保留
  10376. NET_VCA_HUMAN_ATTRIBUTE struAttribute; //人员信息
  10377. BYTE byRes[20];
  10378. }NET_VCA_BLACKLIST_COND, *LPNET_VCA_BLACKLIST_COND;
  10379. typedef struct tagNET_VCA_BLACKLIST_PIC
  10380. {
  10381. DWORD dwSize; //结构大小
  10382. DWORD dwFacePicNum; //人脸图个数
  10383. BYTE byRes[20]; //保留
  10384. NET_VCA_PICMODEL_RESULT struBlackListPic[MAX_HUMAN_PICTURE_NUM]; //单张照片信息
  10385. }NET_VCA_BLACKLIST_PIC, *LPNET_VCA_BLACKLIST_PIC;
  10386. typedef struct tagNET_VCA_FIND_PICTURECOND
  10387. {
  10388. LONG lChannel;//通道号
  10389. NET_DVR_TIME struStartTime;//开始时间
  10390. NET_DVR_TIME struStopTime;//结束时间
  10391. BYTE byRes[12]; //保留
  10392. }NET_VCA_FIND_PICTURECOND, *LPNET_VCA_FIND_PICTURECOND;
  10393. #define MAX_FACE_PIC_LEN 6144 //最大人脸图片数据长度
  10394. typedef struct tagNET_VCA_SUB_SNAPPIC_DATA
  10395. {
  10396. DWORD dwFacePicID; //人脸图ID
  10397. DWORD dwFacePicLen; //人脸图数据长度
  10398. NET_DVR_TIME struSnapTime; //抓拍时间
  10399. DWORD dwSimilarity; //相似度
  10400. BYTE byRes[16]; //保留
  10401. char sPicBuf[MAX_FACE_PIC_LEN]; //图片数据
  10402. }NET_VCA_SUB_SNAPPIC_DATA, *LPNET_VCA_SUB_SNAPPIC_DATA;
  10403. typedef struct tagNET_VCA_ADVANCE_FIND
  10404. {
  10405. DWORD dwFacePicID; //人脸图片ID
  10406. BYTE byRes[36];
  10407. }NET_VCA_ADVANCE_FIND, *LPNET_VCA_ADVANCE_FIND;
  10408. typedef struct tagNET_VCA_NORMAL_FIND
  10409. {
  10410. DWORD dwImageID; //大图ID
  10411. DWORD dwFaceScore; //人脸评分
  10412. NET_VCA_RECT struVcaRect; //人脸子图区域
  10413. BYTE byRes[20];
  10414. }NET_VCA_NORMAL_FIND, *LPNET_VCA_NORMAL_FIND;
  10415. typedef union tagNET_VCA_FIND_SNAPPIC_UNION
  10416. {
  10417. NET_VCA_NORMAL_FIND struNormalFind; //普通检索
  10418. NET_VCA_ADVANCE_FIND struAdvanceFind; //高级检索
  10419. }NET_VCA_FIND_SNAPPIC_UNION, *LPNET_VCA_FIND_SNAPPIC_UNION;
  10420. typedef enum _VCA_FIND_SNAPPIC_TYPE_
  10421. {
  10422. VCA_NORMAL_FIND = 0x00000000, //普通检索
  10423. VCA_ADVANCE_FIND = 0x00000001 //高级检索
  10424. }VCA_FIND_SNAPPIC_TYPE;
  10425. typedef struct tagNET_VCA_FIND_PICTURECOND_ADVANCE
  10426. {
  10427. LONG lChannel;//通道号
  10428. NET_DVR_TIME struStartTime;//开始时间
  10429. NET_DVR_TIME struStopTime;//结束时间
  10430. BYTE byThreshold; //阈值,0-100
  10431. BYTE byRes[23]; //保留
  10432. VCA_FIND_SNAPPIC_TYPE dwFindType;//检索类型,详见VCA_FIND_SNAPPIC_TYPE
  10433. NET_VCA_FIND_SNAPPIC_UNION uFindParam; //检索参数
  10434. }NET_VCA_FIND_PICTURECOND_ADVANCE, *LPNET_VCA_FIND_PICTURECOND_ADVANCE;
  10435. NET_DVR_API BOOL __stdcall NET_DVR_AddBlackList(LONG lUserID,LONG lChannel,LPNET_VCA_BLACKLIST_PARA lpInter);
  10436. NET_DVR_API LONG __stdcall NET_DVR_FindBlackList(LONG lUserID, LPNET_VCA_BLACKLIST_COND lpBlackListCond);
  10437. NET_DVR_API LONG __stdcall NET_DVR_FindNextBlackList(LONG lFindHandle,LPNET_VCA_BLACKLIST_INFO lpFindData);
  10438. NET_DVR_API BOOL __stdcall NET_DVR_FindBlackListClose(LONG lFindHandle);
  10439. NET_DVR_API BOOL __stdcall NET_DVR_GetBlackListPicture(LONG lUserID, DWORD dwRegisterID, LPNET_VCA_BLACKLIST_PIC lpOutBuffer);
  10440. NET_DVR_API BOOL __stdcall NET_DVR_UpdateBlackList(LONG lUserID,LONG lChannel, LPNET_VCA_BLACKLIST_PARA lpInter);
  10441. NET_DVR_API BOOL __stdcall NET_DVR_DelBlackList(LONG lUserID,LONG lChannel, DWORD dwRegisterID);
  10442. NET_DVR_API LONG __stdcall NET_DVR_FindSnapPicture(LONG lUserID, LPNET_VCA_FIND_PICTURECOND lpFindParam);
  10443. NET_DVR_API LONG __stdcall NET_DVR_FindNextSnapPic(LONG lFindHandle,LPNET_VCA_SUB_SNAPPIC_DATA lpFindData);
  10444. NET_DVR_API BOOL __stdcall NET_DVR_FindSnapPicClose(LONG lFindHandle);
  10445. // NET_DVR_API LONG __stdcall NET_DVR_AdvanceFindDBInfo(LONG lUserID, LPNET_VCA_FIND_PICTURECOND_ADVANCE lpFindParam);
  10446. // NET_DVR_API LONG __stdcall NET_DVR_FindNextDBInfo(LONG lFindHandle, LPNET_VCA_FINDDB_RET lpFindDBRet);
  10447. // NET_DVR_API BOOL __stdcall NET_DVR_FindDBInfoClose(LONG lFindHandle);
  10448. NET_DVR_API LONG __stdcall NET_DVR_AdvanceFindSnapPicture(LONG lUserID, LPNET_VCA_FIND_PICTURECOND_ADVANCE lpFindParam);
  10449. #define COMM_SNAP_MATCH_ALARM 0x2902 //黑名单比对结果上传
  10450. typedef struct tagNET_VCA_FACESNAP_INFO_ALARM
  10451. {
  10452. DWORD dwRelativeTime; // 相对时标
  10453. DWORD dwAbsTime; // 绝对时标
  10454. DWORD dwSnapFacePicID; //抓拍人脸图ID
  10455. DWORD dwSnapFacePicLen; //抓拍人脸子图的长度,为0表示没有图片,大于0表示有图片
  10456. NET_VCA_DEV_INFO struDevInfo; //前端设备信息
  10457. BYTE byRes[20]; // 保留字节
  10458. BYTE *pBuffer1; //抓拍人脸子图的图片数据
  10459. }NET_VCA_FACESNAP_INFO_ALARM, *LPNET_VCA_FACESNAP_INFO_ALARM;
  10460. typedef struct tagNET_VCA_BLACKLIST_INFO_ALARM
  10461. {
  10462. NET_VCA_BLACKLIST_INFO struBlackListInfo; //黑名单基本信息
  10463. DWORD dwBlackListPicLen; //黑名单人脸子图的长度,为0表示没有图片,大于0表示有图片
  10464. BYTE byRes[20]; // 保留字节
  10465. BYTE *pBuffer1; //黑名单人脸子图的图片数据
  10466. }NET_VCA_BLACKLIST_INFO_ALARM, *LPNET_VCA_BLACKLIST_INFO_ALARM;
  10467. typedef struct tagNET_VCA_FACESNAP_MATCH_ALARM
  10468. {
  10469. DWORD dwSize; // 结构大小
  10470. float fSimilarity; //相似度,[0.001,1]
  10471. NET_VCA_FACESNAP_INFO_ALARM struSnapInfo; //抓拍信息
  10472. NET_VCA_BLACKLIST_INFO_ALARM struBlackListInfo; //黑名单信息
  10473. BYTE byRes[60]; // 保留字节
  10474. }NET_VCA_FACESNAP_MATCH_ALARM, *LPNET_VCA_FACESNAP_MATCH_ALARM;
  10475. typedef struct tagNET_VCA_BLACKLIST_INFO_ALARM_LOG
  10476. {
  10477. NET_VCA_BLACKLIST_INFO struBlackListInfo; //黑名单基本信息
  10478. DWORD dwBlackListPicID; //黑名单人脸子图ID,用于查找图片
  10479. BYTE byRes[20]; // 保留字节
  10480. }NET_VCA_BLACKLIST_INFO_ALARM_LOG, *LPNET_VCA_BLACKLIST_INFO_ALARM_LOG;
  10481. typedef struct tagNET_VCA_FACESNAP_INFO_ALARM_LOG
  10482. {
  10483. DWORD dwRelativeTime; // 相对时标
  10484. DWORD dwAbsTime; // 绝对时标
  10485. DWORD dwSnapFacePicID; //抓拍人脸图ID
  10486. NET_VCA_DEV_INFO struDevInfo; //前端设备信息
  10487. BYTE byRes[20]; // 保留字节
  10488. }NET_VCA_FACESNAP_INFO_ALARM_LOG, *LPNET_VCA_FACESNAP_INFO_ALARM_LOG;
  10489. typedef struct tagNET_VCA_FACESNAP_MATCH_ALARM_LOG
  10490. {
  10491. DWORD dwSize; // 结构大小
  10492. float fSimilarity; //相似度,[0.001,1]
  10493. NET_VCA_FACESNAP_INFO_ALARM_LOG struSnapInfoLog; //抓拍信息
  10494. NET_VCA_BLACKLIST_INFO_ALARM_LOG struBlackListInfoLog; //黑名单信息
  10495. BYTE byRes[60]; // 保留字节
  10496. }NET_VCA_FACESNAP_MATCH_ALARM_LOG, *LPNET_VCA_FACESNAP_MATCH_ALARM_LOG;
  10497. typedef struct tagNET_VCA_FACEMATCH_PICCOND
  10498. {
  10499. DWORD dwSize; // 结构大小
  10500. DWORD dwSnapFaceID; //抓拍人脸子图ID
  10501. DWORD dwBlackListID; //匹配的黑名单ID
  10502. DWORD dwBlackListFaceID; //比对的黑名单人脸子图ID
  10503. BYTE byRes[20]; // 保留字节
  10504. }NET_VCA_FACEMATCH_PICCOND, *LPNET_VCA_FACEMATCH_PICCOND;
  10505. typedef struct tagNET_VCA_FACEMATCH_PICTURE
  10506. {
  10507. DWORD dwSize; // 结构大小
  10508. DWORD dwSnapFaceLen; //抓拍人脸子图长度
  10509. DWORD dwBlackListFaceLen; //比对的黑名单人脸子图长度
  10510. BYTE byRes[20]; //保留字节
  10511. BYTE *pSnapFace; //抓拍人脸子图的图片数据
  10512. BYTE *pBlackListFace; //比对的黑名单人脸子图数据
  10513. }NET_VCA_FACEMATCH_PICTURE, *LPNET_VCA_FACEMATCH_PICTURE;
  10514. NET_DVR_API LONG __stdcall NET_DVR_FindFaceMatchAlarm(LONG lUserID, LPNET_VCA_FIND_PICTURECOND lpFindParam);
  10515. NET_DVR_API LONG __stdcall NET_DVR_FindNextFaceMatchAlarm(LONG lFindHandle, LPNET_VCA_FACESNAP_MATCH_ALARM_LOG lpFaceMatchAlarmLog);
  10516. NET_DVR_API BOOL __stdcall NET_DVR_FindFaceMatchAlarmClose(LONG lFindHandle);
  10517. NET_DVR_API BOOL __stdcall NET_DVR_GetFaceMatchPic(LONG lUserID, LPNET_VCA_FACEMATCH_PICCOND lpMatchCond, LPNET_VCA_FACEMATCH_PICTURE lpMatchPic);
  10518. typedef struct tagNET_VCA_BLACKLIST_FASTREGISTER_PARA
  10519. {
  10520. DWORD dwSize; //结构大小
  10521. NET_VCA_BLACKLIST_INFO struBlackListInfo; //黑名单基本参数
  10522. DWORD dwImageLen; //图像数据长度
  10523. BYTE byRes[124]; //保留
  10524. BYTE *pImage; //图像数据
  10525. }NET_VCA_BLACKLIST_FASTREGISTER_PARA, *LPNET_VCA_BLACKLIST_FASTREGISTER_PARA;
  10526. NET_DVR_API BOOL __stdcall NET_DVR_FastAddBlackList(LONG lUserID,LONG lChannel,LPNET_VCA_BLACKLIST_FASTREGISTER_PARA lpInter);
  10527. //单个分区配置
  10528. typedef struct tagNET_VCA_SINGLE_PATH
  10529. {
  10530. BYTE byActive; // 是否可用,0-否,1-是
  10531. BYTE byType; //0-存储抓拍,1-存储黑名单比对报警,2-存储抓拍和黑名单比对报警
  10532. BYTE byRes1[6]; //保留
  10533. DWORD dwDiskDriver; //盘符号,从0开始
  10534. DWORD dwLeftSpace; //预留容量(单位为G)
  10535. BYTE byRes2[8]; //保留
  10536. }NET_VCA_SINGLE_PATH, *LPNET_VCA_SINGLE_PATH;
  10537. //存储路径设置
  10538. typedef struct tagNET_VCA_SAVE_PATH_CFG
  10539. {
  10540. DWORD dwSize; //结构大小
  10541. NET_VCA_SINGLE_PATH struPathInfo[MAX_DISKNUM_V30]; //单个分区
  10542. BYTE byRes[40]; //保留
  10543. }NET_VCA_SAVE_PATH_CFG, *LPNET_VCA_SAVE_PATH_CFG;
  10544. /********************************智能人脸识别 end****************************/
  10545. /////***********************************64-T解码器*************************************//////
  10546. //分辨率
  10547. #define MAKE_RESOLUTION(_interlace_, _width_, _height_, _fps_) \
  10548. (((_interlace_)<<28) \
  10549. |((((_width_)>>3)&0x1ff)<<19)| \
  10550. ((((_height_)>>1)&0x7ff)<<8)| \
  10551. ((_fps_)&0xff))
  10552. #define GET_RES_INTERLACE(_res_) \
  10553. (((_res_)>>28)&0x1)
  10554. #define GET_RES_WIDTH(_res_) \
  10555. ((((_res_)>>19)&0x1ff)<<3)
  10556. #define GET_RES_HEIGHT(_res_) \
  10557. ((((_res_)>>8)&0x7ff)<<1)
  10558. #define GET_RES_FPS(_res_) \
  10559. ((_res_)&0xff)
  10560. #define NOT_AVALIABLE MAKE_RESOLUTION (0,0,0,0)
  10561. #define SVGA_60HZ MAKE_RESOLUTION(0, 800, 600, 60)
  10562. #define SVGA_75HZ MAKE_RESOLUTION(0, 800, 600, 75)
  10563. #define XGA_60HZ MAKE_RESOLUTION(0, 1024, 768, 60)
  10564. #define XGA_75HZ MAKE_RESOLUTION(0, 1024, 768, 75)
  10565. #define SXGA_60HZ MAKE_RESOLUTION(0, 1280, 1024, 60)
  10566. #define SXGA2_60HZ MAKE_RESOLUTION(0, 1280, 960, 60)
  10567. #define _720P_60HZ MAKE_RESOLUTION(0, 1280, 720, 60)
  10568. #define _720P_50HZ MAKE_RESOLUTION(0, 1280, 720, 50)
  10569. #define _1080I_60HZ MAKE_RESOLUTION(1, 1920, 1080, 60)
  10570. #define _1080I_50HZ MAKE_RESOLUTION(1, 1920, 1080, 50)
  10571. #define _1080P_60HZ MAKE_RESOLUTION(0, 1920, 1080, 60)
  10572. #define _1080P_50HZ MAKE_RESOLUTION(0, 1920, 1080, 50)
  10573. #define _1080P_30HZ MAKE_RESOLUTION(0, 1920, 1080, 30)
  10574. #define _1080P_25HZ MAKE_RESOLUTION(0, 1920, 1080, 25)
  10575. #define _1080P_24HZ MAKE_RESOLUTION(0, 1920, 1080, 24)
  10576. #define UXGA_60HZ MAKE_RESOLUTION(0, 1600, 1200, 60)
  10577. #define UXGA_30HZ MAKE_RESOLUTION(0, 1600, 1200, 30)
  10578. #define WSXGA_60HZ MAKE_RESOLUTION(0, 1680, 1050, 60)
  10579. #define WUXGA_60HZ MAKE_RESOLUTION(0, 1920, 1200, 60)
  10580. #define WUXGA_30HZ MAKE_RESOLUTION(0, 1920, 1200, 30)
  10581. //多屏控制器使用
  10582. #define WXGA_60HZ MAKE_RESOLUTION(0, 1360, 768, 60)
  10583. #define SXGA_PLUS_60HZ MAKE_RESOLUTION(0, 1400, 1050, 60)
  10584. ////能力集
  10585. #define MATRIXDECODER_ABILITY_V41 0x260 //解码器能力集
  10586. //显示通道画面分割模式
  10587. #define MAX_WINDOWS_NUM 12 //画面分割模式的数量
  10588. #define MAX_SUPPORT_RES 32
  10589. #define MAX_DISPNUM_V41 32
  10590. typedef struct tagNET_DVR_DISPWINDOWMODE
  10591. {
  10592. BYTE byDispChanType;//显示通道类型:0-BNC, 1-VGA, 2-HDMI, 3-DVI
  10593. BYTE byDispChanSeq;//显示通道序号,从1开始,如果类型是VGA,则表示第几个VGA
  10594. BYTE byRes[2];
  10595. BYTE byDispMode[MAX_WINDOWS_NUM/*12*/];
  10596. }NET_DVR_DISPWINDOWMODE, *LPNET_DVR_DISPWINDOWMODE;
  10597. typedef struct tagNET_DVR_DISPINFO
  10598. {
  10599. BYTE byChanNums;//通道个数
  10600. BYTE byStartChan;//起始通道
  10601. BYTE byRes[2];
  10602. DWORD dwSupportResolution[MAX_SUPPORT_RES/*32*/];//支持分辨率
  10603. }NET_DVR_DISPINFO, *LPNET_DVR_DISPINFO;
  10604. //大屏拼接信息
  10605. typedef struct tagNET_DVR_SCREENINFO
  10606. {
  10607. BYTE bySupportBigScreenNums;//最多大屏拼接数量
  10608. BYTE byStartBigScreenNum;//大屏拼接起始号
  10609. BYTE byMaxScreenX;//大屏拼接模式
  10610. BYTE byMaxScreenY;
  10611. BYTE byRes[8];
  10612. }NET_DVR_SCREENINFO, *LPNET_DVR_SCREENINFO;
  10613. typedef struct tagNET_DVR_MATRIX_ABILITY_V41
  10614. {
  10615. DWORD dwSize;
  10616. BYTE byDspNums;//DSP个数
  10617. BYTE byDecChanNums;//解码通道数
  10618. BYTE byStartChan;//起始解码通道
  10619. BYTE byRes1[5];
  10620. NET_DVR_DISPINFO struVgaInfo;//VGA显示通道信息
  10621. NET_DVR_DISPINFO struBncInfo;//BNC显示通道信息
  10622. NET_DVR_DISPINFO struHdmiInfo;//HDMI显示通道信息
  10623. NET_DVR_DISPINFO struDviInfo;//DVI显示通道信息
  10624. NET_DVR_DISPWINDOWMODE struDispMode[MAX_DISPNUM_V41/*32*/];
  10625. NET_DVR_SCREENINFO struBigScreenInfo;
  10626. BYTE byRes2[120];
  10627. } NET_DVR_MATRIX_ABILITY_V41, *LPNET_DVR_MATRIX_ABILITY_V41;
  10628. //显示通道配置
  10629. #define MAX_WINDOWS 16
  10630. #define MAX_WINDOWS_V41 36
  10631. #define STARTDISPCHAN_VGA 1
  10632. #define STARTDISPCHAN_BNC 9
  10633. #define STARTDISPCHAN_HDMI 25
  10634. #define STARTDISPCHAN_DVI 29
  10635. typedef union _tagNET_DVR_VIDEO_PLATFORM
  10636. {
  10637. BYTE byRes[160];
  10638. struct
  10639. {
  10640. /*各个子窗口对应解码通道所对应的解码子系统的槽位号(对于视频综合平台中解码子系统有效)*/
  10641. BYTE byJoinDecoderId[MAX_WINDOWS_V41];
  10642. //显示窗口所解视频分辨率,1-D1,2-720P,3-1080P,设备端需要根据此分辨率进行解码通道的分配,如1分屏配置成1080P,则设备会把4个解码通道都分配给此解码通道
  10643. BYTE byDecResolution[MAX_WINDOWS_V41];
  10644. BYTE byRes[88];
  10645. }struVideoPlatform;
  10646. struct
  10647. {
  10648. BYTE byRes[160];
  10649. }struNotVideoPlatform;
  10650. }NET_DVR_VIDEO_PLATFORM, LPNET_DVR_VIDEO_PLATFORM;
  10651. typedef struct _tagNET_DVR_MATRIX_VOUTCFG
  10652. {
  10653. DWORD dwSize;
  10654. BYTE byAudio; /*音频是否开启*/
  10655. BYTE byAudioWindowIdx; /*音频开启子窗口*/
  10656. BYTE byRes; /*保留*/
  10657. BYTE byVedioFormat; /*1:NTSC,2:PAL,0-NULL*/
  10658. DWORD dwResolution;//分辨率
  10659. DWORD dwWindowMode; /*画面模式,能力集获取*/
  10660. BYTE byJoinDecChan[MAX_WINDOWS_V41];/*各个子窗口关联的解码通道*/
  10661. BYTE byEnlargeStatus; /*是否处于放大状态,0:不放大,1:放大*/
  10662. BYTE byEnlargeSubWindowIndex;//放大的子窗口号
  10663. BYTE byScale; /*显示模式,0---真实显示,1---缩放显示( 针对BNC )*/
  10664. BYTE byUnionType;/*区分共用体,0-视频综合平台内部解码器显示通道配置,1-其他解码器显示通道配置*/
  10665. NET_DVR_VIDEO_PLATFORM struDiff;
  10666. BYTE byRes2[80];
  10667. }NET_DVR_MATRIX_VOUTCFG,*LPNET_DVR_MATRIX_VOUTCFG;
  10668. /*解码器设备状态*/
  10669. typedef struct _tagNET_DVR_DISP_CHAN_STATUS_V41
  10670. {
  10671. BYTE byDispStatus; /*显示状态:0:未显示,1:启动显示*/
  10672. BYTE byBVGA; /*0-BNC,1-VGA, 2-HDMI,3-DVI*/
  10673. BYTE byVideoFormat; /*视频制式,1:NTSC,2:PAL,0-NON*/
  10674. BYTE byWindowMode; /*画面模式*/
  10675. BYTE byJoinDecChan[MAX_WINDOWS_V41]; /*各个子画面关联的解码通道*/
  10676. BYTE byFpsDisp[MAX_WINDOWS_V41]; /*每个子画面的显示帧率*/
  10677. BYTE byScreenMode; /*屏幕模式0-普通 1-大屏*/
  10678. BYTE byRes1[31];
  10679. }NET_DVR_DISP_CHAN_STATUS_V41, *LPNET_DVR_DISP_CHAN_STATUS_V41;
  10680. /*解码器设备状态*/
  10681. typedef struct _NET_DVR_DECODER_WORK_STATUS_V41
  10682. {
  10683. DWORD dwSize;
  10684. NET_DVR_MATRIX_CHAN_STATUS struDecChanStatus[32]; /*解码通道状态*/
  10685. /*显示通道状态*/
  10686. NET_DVR_DISP_CHAN_STATUS_V41 struDispChanStatus[MAX_DISPNUM_V41/*32*/];
  10687. BYTE byAlarmInStatus[32]; /*报警输入状态*/
  10688. BYTE byAlarmOutStatus[32]; /*报警输出状态*/
  10689. byte byAudioInChanStatus; /*语音对讲状态*/
  10690. BYTE byRes[127];
  10691. }NET_DVR_DECODER_WORK_STATUS_V41,*LPNET_DVR_DECODER_WORK_STATUS_V41;
  10692. /*******************************文件回放-远程回放设置*******************************/
  10693. typedef struct _tagNET_DVR_MATRIX_DEC_REMOTE_PLAY_V41
  10694. {
  10695. DWORD dwSize;
  10696. NET_DVR_IPADDR struIP; /* DVR IP地址 */
  10697. WORD wDVRPort; /* 端口号 */
  10698. BYTE byChannel; /* 通道号 */
  10699. BYTE byReserve;
  10700. BYTE sUserName[NAME_LEN]; /* 用户名 */
  10701. BYTE sPassword[PASSWD_LEN]; /* 密码 */
  10702. DWORD dwPlayMode; /* 0-按文件 1-按时间*/
  10703. NET_DVR_TIME StartTime;
  10704. NET_DVR_TIME StopTime;
  10705. char sFileName[128];
  10706. BYTE byRes[64]; /*保留*/
  10707. }NET_DVR_MATRIX_DEC_REMOTE_PLAY_V41, *LPNET_DVR_MATRIX_DEC_REMOTE_PLAY_V41;
  10708. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetRemotePlay_V41(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_DEC_REMOTE_PLAY_V41 lpInter);
  10709. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDisplayCfg_V41(LONG lUserID, DWORD dwDispChanNum, LPNET_DVR_MATRIX_VOUTCFG lpVoutCfg);
  10710. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetDisplayCfg_V41(LONG lUserID, DWORD dwDispChanNum, LPNET_DVR_MATRIX_VOUTCFG lpDisplayCfg);
  10711. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetDeviceStatus_V41(LONG lUserID, LPNET_DVR_DECODER_WORK_STATUS_V41 lpDecoderCfg);
  10712. /////***********************************64-T解码器end*************************************//////
  10713. ///////////////////////场景配置/////////////////////////
  10714. #define MAX_BIGSCREENNUM_SCENE 100
  10715. #define MAX_LAYERNUMS 32
  10716. //显示通道配置结构
  10717. typedef struct tagNET_DVR_RECTCFG_SCENE
  10718. {
  10719. WORD wXCoordinate; /*矩形左上角起始点X坐标*/
  10720. WORD wYCoordinate; /*矩形左上角Y坐标*/
  10721. WORD wWidth; /*矩形宽度*/
  10722. WORD wHeight; /*矩形高度*/
  10723. }NET_DVR_RECTCFG_SCENE, *LPNET_DVR_RECTCFGSCENE;
  10724. typedef struct tagNET_DVR_SCENEDISPCFG
  10725. {
  10726. BYTE byEnable;//是否启用,0-不启用,1-启用
  10727. BYTE bySoltNum;//槽位号
  10728. BYTE byRes1[2];
  10729. BYTE byDispChanNum;
  10730. BYTE byAudio; /*音频是否开启,0-否,1-是*/
  10731. BYTE byAudioWindowIdx; /*音频开启子窗口*/
  10732. BYTE byVedioFormat; /*1:NTSC,2:PAL,0-NULL*/
  10733. BYTE byWindowMode; /*画面模式,从能力集获取*/
  10734. BYTE byEnlargeStatus; /*是否处于放大状态,0:不放大,1:放大*/
  10735. BYTE byEnlargeSubWindowIndex;//放大的子窗口号
  10736. BYTE byScale; /*显示模式,0-真实显示,1-缩放显示( 针对BNC )*/
  10737. DWORD dwResolution;//分辨率
  10738. BYTE byJoinDecChan[MAX_WINDOWS_V41];/*各个子窗口关联的解码通道*/
  10739. BYTE byJoinDecoderId[MAX_WINDOWS_V41];/*槽位号*/
  10740. //显示窗口所解视频分辨率,1-D1,2-720P,3-1080P,设备端需要根据此//分辨率进行解码通道的分配,如1分屏配置成1080P,则设备会把4个解码通道都分配给此解码通道
  10741. BYTE byDecResolution[MAX_WINDOWS_V41];
  10742. BYTE byRow;//大屏所在的行的序号
  10743. BYTE byColumn;//大屏所在的列的序号
  10744. BYTE byRes2[5];
  10745. NET_DVR_RECTCFG struDisp; //电视墙显示位置
  10746. } NET_DVR_SCENEDISPCFG,*LPNET_DVR_SCENEDISPCFG;
  10747. typedef struct tagDEV_CHAN_INFO_SCENE
  10748. {
  10749. NET_DVR_IPADDR struIP; /* DVR IP地址 */
  10750. WORD wDVRPort; /* 端口号 */
  10751. BYTE byChannel; /* 通道号,对于9000等设备的IPC接入,通道号从33开始 */
  10752. BYTE byTransProtocol; /* 传输协议类型0-TCP,1-UDP ,2-MCAST,3-RTP*/
  10753. BYTE byTransMode; /* 传输码流模式 0-主码流 1-子码流*/
  10754. BYTE byFactoryType; /*前端设备厂家类型*/
  10755. BYTE byDeviceType; //设备类型,1-IPC,2- ENCODER
  10756. BYTE byRes[5];
  10757. BYTE sUserName[NAME_LEN]; /* 监控主机登陆帐号 */
  10758. BYTE sPassword[PASSWD_LEN]; /* 监控主机密码 */
  10759. } NET_DVR_DEV_CHAN_INFO_SCENE,*LPNET_DVR_DEV_CHAN_INFO_SCENE;
  10760. /*流媒体服务器基本配置*/
  10761. typedef struct tagSTREAM_MEDIA_SERVER_CFG_SCENE
  10762. {
  10763. BYTE byValid; /*是否启用流媒体服务器取流,0表示无效*/
  10764. BYTE byRes1[3];
  10765. NET_DVR_IPADDR struDevIP; /*流媒体服务器地址*/
  10766. WORD wDevPort; /*流媒体服务器端口*/
  10767. BYTE byTransmitType; /*传输协议类型0-TCP,1-UDP */
  10768. BYTE byRes2[5];
  10769. }NET_DVR_STREAM_MEDIA_SERVER_CFG_SCENE,*LPNET_DVR_STREAM_MEDIA_SERVER_CFG_SCENE;
  10770. typedef struct tagPU_STREAM_CFG_SCENE
  10771. {
  10772. //DWORD dwSize;
  10773. NET_DVR_STREAM_MEDIA_SERVER_CFG_SCENE streamMediaServerCfg;
  10774. NET_DVR_DEV_CHAN_INFO_SCENE struDevChanInfo;
  10775. }NET_DVR_PU_STREAM_CFG_SCENE,*LPNET_DVR_PU_STREAM_CFG_SCENE;
  10776. typedef struct tagNET_DVR_CYC_SUR_CHAN_ELE_SCENE
  10777. {
  10778. BYTE byEnable; /* 是否启用 0-否 1-启用*/
  10779. BYTE byRes[3];
  10780. NET_DVR_STREAM_MEDIA_SERVER_CFG_SCENE struStreamMediaSvrCfg;
  10781. NET_DVR_DEV_CHAN_INFO_SCENE struDecChanInfo; /*轮巡解码通道信息*/
  10782. }NET_DVR_CYC_SUR_CHAN_ELE_SCENE,*LPNET_DVR_CYC_SUR_CHAN_ELE_SCENE;
  10783. //轮巡解码结构
  10784. typedef struct tagNET_DVR_MATRIX_LOOP_DECINFO_SCENE
  10785. {
  10786. WORD wPoolTime; /*轮询间隔*/
  10787. BYTE byRes1[2];
  10788. NET_DVR_CYC_SUR_CHAN_ELE_SCENE struChanArray[MAX_CYCLE_CHAN/*16*/];
  10789. BYTE byRes2[4];
  10790. } NET_DVR_MATRIX_LOOP_DECINFO_SCENE,*LPNET_DVR_MATRIX_LOOP_DECINFO_SCENE;
  10791. //单个解码通道配置结构体
  10792. typedef struct tagNET_DVR_DECODECHANCFG_SCENE/*struct size : 2064*/
  10793. {
  10794. BYTE byDecodeEnable;//解码起停标志,0-停止,1-启用动态解码,2-启用轮巡解码
  10795. BYTE bySlotNum;//槽位号
  10796. BYTE byDecChan;
  10797. BYTE byRes[5];
  10798. union
  10799. {
  10800. NET_DVR_PU_STREAM_CFG_SCENE struSceneDynamicDecCfg;
  10801. NET_DVR_MATRIX_LOOP_DECINFO_SCENE struSceneCycDecCfg;
  10802. } struDecCfg;
  10803. }NET_DVR_DECODECHANCFG_SCENE,*LPNET_DVR_DECODECHANCFG_SCENE;
  10804. typedef struct tagNET_DVR_BIGSCREENCFG_SCENE
  10805. {
  10806. BYTE byAllValid; /*漫游使能标志 */
  10807. BYTE byRes[3];
  10808. NET_DVR_WINCFG struWinCfg[MAX_LAYERNUMS];
  10809. NET_DVR_BIGSCREENCFG struBigScreen;
  10810. }NET_DVR_BIGSCREENCFG_SCENE, *LPNET_DVR_BIGSCREENCFG_SCENE;
  10811. typedef struct tagNET_DVR_MATRIX_SCENECFG
  10812. {
  10813. DWORD dwSize;
  10814. BYTE sSceneName[NAME_LEN];
  10815. BYTE byBigScreenNums;//大屏的个数,最大值通过能力集获取
  10816. BYTE byRes1[3];
  10817. WORD wDecChanNums;//场景中解码通道的个数
  10818. WORD wDispChanNums;//场景中显示通道的个数
  10819. BYTE byRes2[12];
  10820. BYTE *pBigScreenBuffer;//大屏配置缓冲区, byBigScreenNums×sizeof(NET_DVR_BIGSCREENCFG_SCENE)
  10821. BYTE *pDecChanBuffer;//解码通道配置缓冲区, wDecChanNums×sizeof(NET_DVR_DECODECHANCFG_SCENE)
  10822. BYTE *pDispChanBuffer;//显示通道配置缓冲区, wDispChanNums×sizeof(NET_DVR_SCENEDISPCFG)
  10823. }NET_DVR_MATRIX_SCENECFG, *LPNET_DVR_MATRIX_SCENECFG;
  10824. /**************************************************************
  10825. 函数名:NET_DVR_MatrixGetSceneCfg
  10826. 功能:获取场景配置
  10827. 参数说明:
  10828. lUserID[in]:NET_DVR_Login()的返回值
  10829. dwSceneNum[in]:场景号
  10830. lpSceneCfg[out]:指向NET_MATRIX_SCENECFG结构指针
  10831. 返回值:
  10832. TRUE:成功,FALSE:失败
  10833. ***************************************************************/
  10834. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetSceneCfg(LONG lUserID, DWORD dwSceneNum, LPNET_DVR_MATRIX_SCENECFG lpSceneCfg);
  10835. /**************************************************************
  10836. 函数名:NET_DVR_MatrixSetSceneCfg
  10837. 功能:配置场景模式参数
  10838. 参数说明:
  10839. lUserID[in]:NET_DVR_Login()的返回值
  10840. dwSceneNum[in]:场景号
  10841. lpSceneCfg[in]:指向NET_MATRIX_SCENECFG结构指针
  10842. 返回值:
  10843. TRUE:成功,FALSE:失败
  10844. ***************************************************************/
  10845. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetSceneCfg(LONG lUserID, DWORD dwSceneNum, LPNET_DVR_MATRIX_SCENECFG lpSceneCfg);
  10846. /**************************************************************
  10847. 函数名:NET_DVR_MatrixSceneControl
  10848. 功能:场景切换控制
  10849. 参数说明:
  10850. lUserID[in]:NET_DVR_Login()的返回值
  10851. dwSceneNum[in]:场景号
  10852. dwCmd:命令类型,1-场景模式切换
  10853. dwCmdParam:命令参数
  10854. 返回值:
  10855. TRUE:成功,FALSE:失败
  10856. ***************************************************************/
  10857. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSceneControl(LONG lUserID, DWORD dwSceneNum, DWORD dwCmd, DWORD dwCmdParam);
  10858. /**************************************************************
  10859. 函数名:NET_DVR_MatrixGetCurrentSceneMode
  10860. 功能:获取当前正在使用的场景模式
  10861. 参数说明:
  10862. lUserID[in]:NET_DVR_Login()的返回值
  10863. dwSceneNum:场景号,输出参数
  10864. 返回值:
  10865. TRUE:成功,FALSE:失败
  10866. ***************************************************************/
  10867. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetCurrentSceneMode(LONG lUserID, DWORD *dwSceneNum);
  10868. /********************************大屏控制器 begin****************************/
  10869. //1200起
  10870. #define NET_DVR_GETSCREENINFO 1601 //获取大屏信息配置
  10871. #define NET_DVR_SETSCREENINFO 1602 //设置大屏信息配置
  10872. #define NET_DVR_GET_SCREEN_WINCFG 1603//单个窗口参数获取
  10873. #define NET_DVR_LAYOUTLIST_GET 1605//获取布局列表
  10874. #define NET_DVR_SET_LAYOUTCFG 1606 //布局设置
  10875. #define NET_DVR_LAYOUTCTRL 1607//布局控制,1-open,2-close
  10876. #define NET_DVR_INPUTLIST_GET 1608 //获取输入信号源列表
  10877. #define NET_DVR_SET_INPUTSTREAMCFG 1609 //输入信号源设置
  10878. #define NET_DVR_OUTPUT_SET 1610 //输出参数设置
  10879. #define NET_DVR_OUTPUT_GET 1611 //输出参数获取
  10880. #define SCREENSERVER_ABILITY 0x610 //大屏服务器能力集
  10881. #define SCREENCONTROL_ABILITY 0x600 //大屏控制器能力集
  10882. #define COMM_SCREEN_ALARM 0x5000 //多屏控制器报警类型
  10883. //2011-11-2
  10884. #define NET_DVR_SET_OSDCFG 1612 //OSD参数设置
  10885. #define NET_DVR_GET_OSDCFG 1613 //OSD参数获取
  10886. #define NET_DVR_BIGSCREEN_GETSERIAL 1614//获取大屏串口信息
  10887. /*******************************窗口设置*******************************/
  10888. #define MAX_WIN_COUNT 224 //支持的最大开窗数
  10889. typedef struct tagNET_DVR_SCREEN_WINCFG
  10890. {
  10891. DWORD dwSize;
  10892. BYTE byVaild;
  10893. BYTE byInputType; //输入源类型,0-video,1-RGB,2-网络
  10894. WORD wInputIdx; /*输入源索引*/
  10895. DWORD dwLayerIdx; /*图层,0为最底层*/
  10896. NET_DVR_RECTCFG struWin; //目的窗口(相对显示墙)
  10897. BYTE byWndIndex; //窗口号
  10898. BYTE byCBD; //0-无,1-带背景,2-不带背景
  10899. BYTE bySubWnd; //0不是,1是
  10900. BYTE byRes[21];
  10901. }NET_DVR_SCREEN_WINCFG, *LPNET_DVR_SCREEN_WINCFG;
  10902. typedef struct tagNET_DVR_WINLIST
  10903. {
  10904. DWORD dwSize;
  10905. WORD wScreenSeq; //设备序号
  10906. BYTE byRes[10];
  10907. DWORD dwWinNum; //设备返回的窗口数量
  10908. BYTE *pBuffer; //窗口信息缓冲区,最大为224*sizeof(NET_DVR_WINCFG)
  10909. DWORD dwBufLen; //所分配指针长度
  10910. }NET_DVR_WINLIST,*LPNET_DVR_WINLIST;
  10911. /**************************************************************
  10912. 函数:NET_DVR_GetAllValidWinInfo
  10913. 功能:获取所有有效窗口信息
  10914. 参数说明:
  10915. lUserID: NET_DVR_Login()的返回值
  10916. lpWinListInfo:指向NET_DVR_WINLIST结构的指针
  10917. TRUE表示成功,FALSE表示失败
  10918. ***************************************************************/
  10919. NET_DVR_API BOOL __stdcall NET_DVR_GetAllValidWinInfo(LONG lUserID, LPNET_DVR_WINLIST lpWinListInfo);
  10920. /**************************************************************
  10921. 函数:NET_DVR_ScreenWinCtrl
  10922. 功能:窗口控制
  10923. 参数说明:
  10924. lUserID: NET_DVR_Login()的返回值
  10925. dwWinIndex:窗口序号,对于大屏服务器,高两字节表示设备号,低两字节表示窗口号;对于海康大屏控制器,表示窗口号
  10926. dwCommand:命令值1-open,2-close(窗口号0xffff表示对所有窗口的操作)3-top(窗口置顶)
  10927. lpInter:NET_DVR_WINCFG结构指针,命令值为open时传入的参数
  10928. 返回值:TRUE表示成功,FALSE表示失败
  10929. ***************************************************************/
  10930. NET_DVR_API BOOL __stdcall NET_DVR_ScreenWinCtrl(LONG lUserID, DWORD dwWinIndex, DWORD dwCommand, LPNET_DVR_SCREEN_WINCFG lpInter);
  10931. /*******************************窗口布局设置*******************************/
  10932. #define MAX_LAYOUT_COUNT 16 //最大布局数
  10933. typedef struct tagNET_DVR_LAYOUTCFG
  10934. {
  10935. DWORD dwSize;
  10936. BYTE byValid; //布局是否有效
  10937. BYTE byRes1[3];
  10938. BYTE byLayoutName[NAME_LEN/*32*/]; //布局名称
  10939. NET_DVR_SCREEN_WINCFG struWinCfg[MAX_WIN_COUNT/*224*/]; //布局内窗口参数
  10940. BYTE byRes2[16];
  10941. }NET_DVR_LAYOUTCFG, *LPNET_DVR_LAYOUTCFG;
  10942. typedef struct tagNET_DVR_LAYOUT_LIST
  10943. {
  10944. DWORD dwSize;
  10945. NET_DVR_LAYOUTCFG struLayoutInfo[MAX_LAYOUT_COUNT/*16*/]; //所有布局
  10946. BYTE byRes[4];
  10947. }NET_DVR_LAYOUT_LIST, *LPNET_DVR_LAYOUT_LIST;
  10948. /*******************************输入信号源配置*******************************/
  10949. #define MAX_CAM_COUNT 224
  10950. typedef enum _CAM_MODE
  10951. {
  10952. CAM_BNC=1,
  10953. CAM_VGA=2,
  10954. CAM_DVI=3,
  10955. CAM_HDMI=4,
  10956. CAM_IP=5
  10957. }CAM_MODE;
  10958. typedef struct _NET_DVR_INPUTSTREAMCFG
  10959. {
  10960. DWORD dwSize ;
  10961. BYTE byValid ;
  10962. BYTE byCamMode; //信号输入源类型,见CAM_MODE
  10963. WORD wInputNo; //信号源序号0-224
  10964. BYTE sCamName[NAME_LEN] ; //信号输入源名称
  10965. NET_DVR_VIDEOEFFECT struVideoEffect; //视频参数
  10966. NET_DVR_PU_STREAM_CFG struPuStream; //ip输入时使用
  10967. WORD wBoardNum ; //信号源所在的板卡号
  10968. WORD wInputIdxOnBoard; //信号源在板卡上的位置
  10969. WORD wResolutionX; //分辨率
  10970. WORD wResolutionY;
  10971. BYTE byVideoFormat; //视频制式,0-无,1-NTSC,2-PAL
  10972. BYTE byRes[35];
  10973. }NET_DVR_INPUTSTREAMCFG, *LPNET_DVR_INPUTSTREAMCFG;
  10974. typedef struct tagNET_DVR_INPUTSTREAM_LIST
  10975. {
  10976. DWORD dwSize;
  10977. NET_DVR_INPUTSTREAMCFG struInputStreamInfo[MAX_CAM_COUNT]; //所有信号源
  10978. BYTE byRes[4];
  10979. }NET_DVR_INPUTSTREAM_LIST, *LPNET_DVR_INPUTSTREAM_LIST;
  10980. /*******************************输出参数配置*******************************/
  10981. /*输出通道管理*/
  10982. //#define MAX_OUTPUTNUM 64 //最大输出数
  10983. typedef struct _NET_DVR_OUTPUTPARAM
  10984. {
  10985. DWORD dwSize;
  10986. BYTE byMonMode; /*输出连接模式,1-BNC,2-VGA,3-DVI,4-HDMI*/
  10987. BYTE byRes1[3];
  10988. DWORD dwResolution; /*分辨率,根据能力集获取所支持的进行设置*/;
  10989. NET_DVR_VIDEOEFFECT struVideoEffect; /*输出通道视频参数配置*/
  10990. BYTE byRes2[32];
  10991. }NET_DVR_OUTPUTPARAM, *LPNET_DVR_OUTPUTPARAM;
  10992. typedef struct _NET_DVR_OUTPUTCFG
  10993. {
  10994. DWORD dwSize;
  10995. BYTE byScreenLayX; //大屏布局-横坐标
  10996. BYTE byScreenLayY; //大屏布局-纵坐标
  10997. BYTE byRes1[6];
  10998. NET_DVR_OUTPUTPARAM struOutputParam; /*输出通道视频参数配置*/
  10999. BYTE byRes2[24];
  11000. }NET_DVR_OUTPUTCFG, *LPNET_DVR_OUTPUTCFG;
  11001. /*******************************能力集*******************************/
  11002. #define SCREEN_PROTOCOL_NUM 20 //支持的最大大屏控制器协议数
  11003. //多屏服务器能力集
  11004. typedef struct tagNET_DVR_SCREENSERVER_ABILITY
  11005. {
  11006. DWORD dwSize; /*结构长度*/
  11007. BYTE byIsSupportScreenNum; /*所支持大屏控制器的数目*/
  11008. BYTE bySerialNums; //串口个数
  11009. BYTE byMaxInputNums;
  11010. BYTE byMaxLayoutNums;
  11011. BYTE byMaxWinNums;
  11012. BYTE byRes1[19];
  11013. BYTE byMaxScreenLayX;//大屏布局-最大横坐标大屏数
  11014. BYTE byMaxScreenLayY;//大屏布局-最大纵坐标大屏数
  11015. WORD wMatrixProtoNum; /*有效的大屏协议数目*/
  11016. NET_DVR_PROTO_TYPE struScreenProto[SCREEN_PROTOCOL_NUM];/*最大协议列表*/
  11017. BYTE byRes2[24];
  11018. }NET_DVR_SCREENSERVER_ABILITY, *LPNET_DVR_SCREENSERVER_ABILITY;
  11019. //多屏控制器能力集
  11020. typedef struct tagNET_DVR_SCREENCONTROL_ABILITY
  11021. {
  11022. DWORD dwSize; /*结构长度*/
  11023. BYTE byLayoutNum; /* 布局个数*/
  11024. BYTE byWinNum; /*屏幕窗口个数*/
  11025. BYTE byOsdNum; /*OSD个数*/
  11026. BYTE byLogoNum; /*Logo个数*/
  11027. BYTE byInputStreamNum; /*输入源个数*/
  11028. BYTE byOutputChanNum; /*输出通道个数*/
  11029. BYTE byCamGroupNum; /*分组个数*/
  11030. BYTE byPlanNum; /*预案个数*/
  11031. BYTE byIsSupportOSD; /*是否支持OSD*/
  11032. BYTE byIsSupportLogo; /*是否支持logo*/
  11033. BYTE byIsSupportPlan; /*是否支预案*/
  11034. BYTE byIsSupportGroup; /*是否支分组*/
  11035. BYTE byIsSupportLayout; /*是否支布局管理*/
  11036. BYTE byIsSupportPlayBack; /*是否支持回放*/
  11037. BYTE byMatrixInputNum; //输入源支持最大个数
  11038. BYTE byMatrixOutputNum; //输出源支持最大个数
  11039. NET_DVR_DISPINFO struVgaInfo;//VGA输出信息
  11040. NET_DVR_DISPINFO struBncInfo;//BNC输出信息
  11041. NET_DVR_DISPINFO struHdmiInfo;//HDMI输出信息
  11042. NET_DVR_DISPINFO struDviInfo;//DVI输出信息
  11043. BYTE byRes[60];
  11044. }NET_DVR_SCREENCONTROL_ABILITY, *LPNET_DVR_SCREENCONTROL_ABILITY;
  11045. /*******************************输入信号状态*******************************/
  11046. typedef struct tagNET_DVR_ANALOGINPUTSTATUS
  11047. {
  11048. DWORD dwLostFrame; /*视频输入丢帧数*/
  11049. BYTE byHaveSignal; /*是否有视频信号输入*/
  11050. BYTE byVideoFormat; /*视频制式,1:NTSC,2:PAL,0:无*/
  11051. BYTE byRes[46];
  11052. } NET_DVR_ANALOGINPUTSTATUS, *LPNET_DVR_ANALOGINPUTSTATUS;
  11053. typedef union tagNET_DVR_INPUTSTATUS_UNION
  11054. {
  11055. NET_DVR_MATRIX_CHAN_STATUS struIpInputStatus;
  11056. NET_DVR_ANALOGINPUTSTATUS struAnalogInputStatus;
  11057. } NET_DVR_INPUTSTATUS_UNION, *LPNET_DVR_INPUTSTATUS_UNION;
  11058. typedef struct tagNET_DVR_INPUTSTATUS
  11059. {
  11060. WORD wInputNo; /*信号源序号*/
  11061. BYTE byInputType; //1:CAM_BNC 2:CAM_VGA 3: CAM_DVI 4:CAM_HDMI 5:CAM_IP
  11062. BYTE byRes1[9];
  11063. NET_DVR_INPUTSTATUS_UNION struStatusUnion;
  11064. BYTE byRes2[16];
  11065. } NET_DVR_INPUTSTATUS, *LPNET_DVR_INPUTSTATUS;
  11066. typedef struct tagNET_DVR_SCREENINPUTSTATUS
  11067. {
  11068. DWORD dwSize;
  11069. BYTE byRes[12];
  11070. DWORD dwNums; //设备返回的输入源状态的数量
  11071. BYTE *pBuffer; //缓冲区
  11072. DWORD dwBufLen; //所分配指针长度,输入参数
  11073. }NET_DVR_SCREENINPUTSTATUS,*LPNET_DVR_SCREENINPUTSTATUS;
  11074. /*************************************************
  11075. 函数:NET_DVR_GetScreenInputStatus
  11076. 功能:获取输入信号状态
  11077. 参数说明:
  11078. lpStatus:输入信号状态结构体
  11079. 返回值:TRUE:成功,FALSE:失败
  11080. *************************************************/
  11081. NET_DVR_API BOOL __stdcall NET_DVR_GetScreenInputStatus(LONG lUserID, LPNET_DVR_SCREENINPUTSTATUS lpStatus);
  11082. /*******************************多屏控制器报警*******************************/
  11083. typedef struct _NET_DVR_SCREENALARMCFG
  11084. {
  11085. DWORD dwSize;
  11086. BYTE byAlarmType; //报警类型,1-子板拔出,2-子板插入,3-子系统状态异常,4-子系统恢复恢复 5-输入源异常 6-温度报警
  11087. BYTE byBoardType; // 1-输入板 2-输出板
  11088. BYTE bySubException; //输入异常时具体子异常(其它目前build还没有) 1- 分辨率改变2-接口改变3-分辨率错误
  11089. BYTE byRes1;
  11090. WORD wStartInputNum; // 异常输入源(异常起点)
  11091. WORD wEndInputNum; // 异常输入源(异常终点)
  11092. BYTE byRes2[16];
  11093. }NET_DVR_SCREENALARMCFG, *LPNET_DVR_SCREENALARMCFG;
  11094. /*******************************配置多屏服务器中的大屏*******************************/
  11095. typedef struct tagNET_DVR_MATRIX_CFG
  11096. {
  11097. BYTE byValid; //判断是否是模拟矩阵(是否有效)
  11098. BYTE byCommandProtocol; //模拟矩阵的指令(4种)
  11099. BYTE byScreenType; //屏幕类型,1-TCL,2-中达
  11100. BYTE byRes1;
  11101. BYTE byScreenToMatrix[32]; //模拟矩阵的输出与屏幕的对应关系
  11102. BYTE byRes2[4];
  11103. }NET_DVR_MATRIX_CFG, *LPNET_DVR_MATRIX_CFG;
  11104. typedef struct tagNET_DVR_DIGITALSCREEN
  11105. {
  11106. NET_DVR_IPADDR struAddress;/*设备为数字设备时的IP信息*/
  11107. WORD wPort; //通道号
  11108. BYTE byRes[26]; //保留
  11109. }NET_DVR_DIGITALSCREEN, *LPNET_DVR_DIGITALSCREEN;
  11110. typedef struct tagNET_DVR_ANALOGSCREEN
  11111. {
  11112. BYTE byDevSerPortNum; /*连接设备的串口号*/
  11113. BYTE byScreenSerPort; /*连接大屏的串口号*/
  11114. BYTE byRes[130];
  11115. NET_DVR_MATRIX_CFG struMatrixCfg;
  11116. }NET_DVR_ANALOGSCREEN, *LPNET_DVR_ANALOGSCREEN;
  11117. typedef union tagNET_DVR_SCREEN_UNION
  11118. {
  11119. NET_DVR_DIGITALSCREEN struDigitalScreen;
  11120. NET_DVR_ANALOGSCREEN struAnalogScreen;
  11121. }NET_DVR_SCREEN_UNION, *LPNET_DVR_SCREEN_UNION;
  11122. typedef struct tagNET_DVR_SCREEN_SCREENINFO
  11123. {
  11124. DWORD dwSize;
  11125. BYTE byValid; //是否有效
  11126. BYTE nLinkMode; //连接方式,0-串口,1-网口
  11127. BYTE byDeviceType; //设备型号,能力集获取
  11128. BYTE byScreenLayX; //大屏布局-横坐标
  11129. BYTE byScreenLayY; //大屏布局-纵坐标
  11130. BYTE byRes1[3];
  11131. BYTE sUserName[NAME_LEN]; /*登录用户名*/
  11132. BYTE sPassword[PASSWD_LEN]; /*登录密码*/
  11133. BYTE sDevName[NAME_LEN]; /*设备名称*/
  11134. NET_DVR_SCREEN_UNION struScreenUnion;
  11135. BYTE byInputNum; // 输入源个数,主要用于矩阵情况
  11136. BYTE byOutputNum; // 输出源个数,主要用于矩阵情况
  11137. BYTE byCBDNum; //CBD个数
  11138. BYTE byRes2[29];
  11139. } NET_DVR_SCREEN_SCREENINFO, *LPNET_DVR_SCREEN_SCREENINFO;
  11140. /********************************大屏控制器 end****************************/
  11141. // 91系列HD-SDI高清DVR 相机信息
  11142. typedef struct tagNET_DVR_ACCESS_CAMERA_INFO
  11143. {
  11144. DWORD dwSize;
  11145. char sCameraInfo[32]; // 前端相机信息
  11146. BYTE byInterfaceType; // 前端接入接口类型,1:VGA, 2:HDMI, 3:YPbPr 4:SDI 5:FC
  11147. BYTE byRes[31];
  11148. }NET_DVR_ACCESS_CAMERA_INFO, *LPNET_DVR_ACCESS_CAMERA_INFO;
  11149. NET_DVR_API BOOL __stdcall NET_DVR_FocusOnePush(LONG lUserID, LONG lChannel);
  11150. NET_DVR_API BOOL __stdcall NET_DVR_ResetLens(LONG lUserID, LONG lChannel);
  11151. // 安全拔盘状态
  11152. #define PULL_DISK_SUCCESS 1 // 安全拔盘成功
  11153. #define PULL_DISK_FAIL 2 // 安全拔盘失败
  11154. #define PULL_DISK_PROCESSING 3 // 正在停止阵列
  11155. #define PULL_DISK_NO_ARRAY 4 // 阵列不存在
  11156. #define PULL_DISK_NOT_SUPPORT 5 // 不支持安全拔盘
  11157. // 扫描阵列状态
  11158. #define SCAN_RAID_SUC 1 // 扫描阵列成功
  11159. #define SCAN_RAID_FAIL 2 // 扫描阵列失败
  11160. #define SCAN_RAID_PROCESSING 3 // 正在扫描阵列
  11161. #define SCAN_RAID_NOT_SUPPORT 4 // 不支持阵列扫描
  11162. // 设置前端相机类型状态
  11163. #define SET_CAMERA_TYPE_SUCCESS 1 // 成功
  11164. #define SET_CAMERA_TYPE_FAIL 2 // 失败
  11165. #define SET_CAMERA_TYPE_PROCESSING 3 // 正在处理
  11166. typedef void(CALLBACK *fLongCfgStateCallback)(LONG lHandle, DWORD dwState, LPVOID pUserData);
  11167. NET_DVR_API LONG CALLBACK NET_DVR_RaidPullDiskStart(LONG lUserID, LONG lRaidID, fLongCfgStateCallback cbStateCallback, LPVOID pUserData);
  11168. NET_DVR_API LONG CALLBACK NET_DVR_ScanRaidStart(LONG lUserID, fLongCfgStateCallback cbStateCallback, LPVOID pUserData);
  11169. NET_DVR_API LONG CALLBACK NET_DVR_SetAccessCameraInfo(LONG lUserID, DWORD dwChannel, LPNET_DVR_ACCESS_CAMERA_INFO lpCameraInfo, fLongCfgStateCallback cbStateCallback, LPVOID pUserData);
  11170. NET_DVR_API BOOL CALLBACK NET_DVR_CloseLongCfgHandle(LONG lHandle);
  11171. //9000 2.2
  11172. typedef struct tagNET_DVR_RECORD_TIME_SPAN_INQUIRY
  11173. {
  11174. DWORD dwSize; //结构体大小
  11175. BYTE byType; //0 正常音视频录像, 1图片通道录像, 2ANR通道录像, 3抽帧通道录像
  11176. BYTE byRes[63]; //保留
  11177. }NET_DVR_RECORD_TIME_SPAN_INQUIRY, *LPNET_DVR_RECORD_TIME_SPAN_INQUIRY;
  11178. typedef struct tagNET_DVR_RECORD_TIME_SPAN
  11179. {
  11180. DWORD dwSize; //结构体大小
  11181. NET_DVR_TIME strBeginTime; //开始时间
  11182. NET_DVR_TIME strEndTime; //结束时间
  11183. BYTE byType; //0 正常音视频录像, 1图片通道录像, 2ANR通道录像, 3抽帧通道录像
  11184. BYTE byRes[35]; //保留
  11185. }NET_DVR_RECORD_TIME_SPAN, *LPNET_DVR_RECORD_TIME_SPAN;
  11186. typedef struct tagNET_DVR_DRAWFRAME_DISK_QUOTA_CFG
  11187. {
  11188. DWORD dwSize; //结构体大小
  11189. BYTE byPicQuota; //图片百分比
  11190. BYTE byRecordQuota; //录像百分比
  11191. BYTE byDrawFrameRecordQuota; //抽帧录像百分比
  11192. BYTE byRes[61]; //保留字节
  11193. }NET_DVR_DRAWFRAME_DISK_QUOTA_CFG, *LPNET_DVR_DRAWFRAME_DISK_QUOTA_CFG;
  11194. typedef struct tagNET_DVR_UPNP_PORT
  11195. {
  11196. WORD wEnable; //该端口是否使能映射
  11197. WORD wExtPort; //映射的外部端口号
  11198. BYTE byRes[12]; //保留
  11199. }NET_DVR_UPNP_PORT, *LPNET_DVR_UPNP_PORT;
  11200. typedef struct tagNET_DVR_UPNP_CFG
  11201. {
  11202. DWORD dwSize; //结构体大小
  11203. WORD wEnableUpnp; //UPNP功能是否启用
  11204. WORD wEnableNat; //UPNP端口映射(NAT)功能是否启用
  11205. NET_DVR_IPADDR struIpAddr; //NAT路由器LAN IP地址
  11206. NET_DVR_UPNP_PORT struWebPort; //web server端口映射配置
  11207. NET_DVR_UPNP_PORT struAdminPort; //管理端口映射配置
  11208. NET_DVR_UPNP_PORT struRtspPort; //rtsp端口映射配置
  11209. BYTE byRes[160]; //保留
  11210. }NET_DVR_UPNP_CFG, *LPNET_DVR_UPNP_CFG;
  11211. typedef struct
  11212. {
  11213. DWORD dwEnabled; //该端口是否被使能映射
  11214. WORD wInternalPort; //映射前的端口
  11215. WORD wExternalPort; //映射后的端口
  11216. DWORD dwStatus; /*端口映射状态
  11217. 0 未生效
  11218. 1 未生效:映射源端口与目的端口需一致
  11219. 2 未生效: 映射端口号已被使用
  11220. 3 生效
  11221. */
  11222. NET_DVR_IPADDR struNatExternalIp; //映射后的外部地址
  11223. NET_DVR_IPADDR struNatInternalIp; //NAT路由器LAN IP地址
  11224. BYTE byRes[16]; //保留
  11225. }NET_DVR_UPNP_PORT_STATE, *LPNET_DVR_UPNP_PORT_STATE;
  11226. typedef struct
  11227. {
  11228. NET_DVR_UPNP_PORT_STATE strUpnpPort[12]; //端口映射状态,数组0 web server端口 数组1 管理端口 数组2 rtsp端口
  11229. BYTE byRes[200]; //保留
  11230. }NET_DVR_UPNP_NAT_STATE, *LPNET_DVR_UPNP_NAT_STATE;
  11231. NET_DVR_API BOOL __stdcall NET_DVR_InquiryRecordTimeSpan(LONG lUserID, DWORD dwChannel, NET_DVR_RECORD_TIME_SPAN_INQUIRY const *lpInquiry, LPNET_DVR_RECORD_TIME_SPAN lpResult);
  11232. NET_DVR_API BOOL __stdcall NET_DVR_UpdateRecordIndex(LONG lUserID, DWORD dwChannel);
  11233. NET_DVR_API BOOL __stdcall NET_DVR_GetUpnpNatState(LONG lUserID, LPNET_DVR_UPNP_NAT_STATE lpState);
  11234. typedef struct tagNET_DVR_PLAYCOND
  11235. {
  11236. DWORD dwChannel;
  11237. NET_DVR_TIME struStartTime;
  11238. NET_DVR_TIME struStopTime;
  11239. BYTE byDrawFrame; //0:不抽帧,1:抽帧
  11240. BYTE byRes[63]; //保留
  11241. }NET_DVR_PLAYCOND, *LPNET_DVR_PLAYCOND;
  11242. typedef struct tagNET_DVR_FILECOND_V40
  11243. {
  11244. LONG lChannel;
  11245. DWORD dwFileType;
  11246. DWORD dwIsLocked;
  11247. DWORD dwUseCardNo;
  11248. BYTE sCardNumber[32];
  11249. NET_DVR_TIME struStartTime;
  11250. NET_DVR_TIME struStopTime;
  11251. BYTE byDrawFrame; //0:不抽帧,1:抽帧
  11252. BYTE byRes[63]; //保留
  11253. }NET_DVR_FILECOND_V40, *LPNET_DVR_FILECOND_V40;
  11254. typedef struct
  11255. {
  11256. BYTE sAESKey[16]; /*码流加密密钥*/
  11257. BYTE byRes[64]; /*保留字节*/
  11258. }NET_DVR_AES_KEY_INFO, *LPNET_DVR_AES_KEY_INFO;
  11259. typedef struct
  11260. {
  11261. NET_DVR_IPADDR struIP; //IP地址
  11262. BYTE byRes[128]; //保留
  11263. }NET_DVR_POE_CFG, *LPNET_DVR_POE_CFG;
  11264. #define MAX_PRO_PATH 256 //最大协议路径长度
  11265. typedef struct
  11266. {
  11267. DWORD dwSize; //结构体大小
  11268. DWORD dwEnabled; //是否启用该协议0 不启用 1 启用
  11269. char sProtocalName[DESC_LEN]; //自定义协议名称, 16位
  11270. BYTE byRes1[64]; //保留,用于协议名称扩展
  11271. DWORD dwEnableSubStream; //子码流是否启用0 不启用 1 启用
  11272. WORD wMainProType; //主码流协议类型 0 RTP 1 http
  11273. WORD wMainPort; //主码流端口
  11274. char sMainPath[MAX_PRO_PATH]; //主码流路径
  11275. WORD wSubProType; //子码流协议类型 0 RTP 1 http
  11276. WORD wSubPort; //子码流端口
  11277. char sSubPath[MAX_PRO_PATH]; //子码流路径
  11278. BYTE byRes2[200]; //保留
  11279. }NET_DVR_CUSTOM_PROTOCAL, *LPNET_DVR_CUSTOM_PROTOCAL;
  11280. NET_DVR_API LONG __stdcall NET_DVR_PlayBackReverseByName(LONG lUserID, char *sPlayBackFileName, HWND hWnd);
  11281. NET_DVR_API LONG __stdcall NET_DVR_PlayBackByTime_V40(LONG lUserID, HWND hWnd, LPNET_DVR_PLAYCOND pPlayCond);
  11282. NET_DVR_API LONG __stdcall NET_DVR_PlayBackReverseByTime_V40(LONG lUserID, HWND hWnd, LPNET_DVR_PLAYCOND pPlayCond);
  11283. NET_DVR_API LONG __stdcall NET_DVR_GetFileByTime_V40(LONG lUserID, char *sSavedFileName, LPNET_DVR_PLAYCOND pDownloadCond);
  11284. NET_DVR_API LONG __stdcall NET_DVR_FindFile_V40(LONG lUserID, LPNET_DVR_FILECOND_V40 pFindCond);
  11285. //B10能支持PSIA设备
  11286. //循环上墙结构体(实时)
  11287. typedef struct
  11288. {
  11289. DWORD dwEnable; /* 是否启用 0-否 1-启用*/
  11290. BYTE byType; //设备类型 0: DEV_SDK 1:DEV_DAHUA 2:DEV_EHOME 3:DEV_OTHERES
  11291. BYTE byRes[3]; //保留
  11292. NET_DVR_STREAM_MEDIA_SERVER_CFG streamMediaServerCfg;
  11293. NET_DVR_DEV_CHAN_INFO struDevChanInfo; /* 轮循解码通道信息 */
  11294. BYTE sRtspUrl[128];//流地址
  11295. }NET_DVR_MATRIX_CHAN_INFO_EX,*LPNET_DVR_MATRIX_CHAN_INFO_EX;
  11296. typedef struct
  11297. {
  11298. DWORD dwSize;
  11299. DWORD dwPoolTime; /*轮询间隔*/
  11300. NET_DVR_MATRIX_CHAN_INFO_EX struchanConInfo[MAX_CYCLE_CHAN_V30];
  11301. BYTE byRes[16];
  11302. }NET_DVR_MATRIX_LOOP_DECINFO_EX,*LPNET_DVR_MATRIX_LOOP_DECINFO_EX;
  11303. //实时预览上墙结构体
  11304. typedef struct
  11305. {
  11306. DWORD dwSize;
  11307. BYTE byType; //设备类型 0: DEV_SDK 1:DEV_DAHUA 2:DEV_EHOME 3:DEV_OTHERES
  11308. BYTE byRes[3]; //保留
  11309. NET_DVR_STREAM_MEDIA_SERVER_CFG struStreamMediaSvrCfg;
  11310. NET_DVR_DEV_CHAN_INFO struDevChanInfo;
  11311. BYTE sRtspUrl[128];//流地址
  11312. }NET_DVR_PU_STREAM_CFG_EX,*LPNET_DVR_PU_STREAM_CFG_EX;
  11313. NET_DVR_API BOOL __stdcall NET_DVR_MatrixSetLoopDecChanInfo_EX(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO_EX lpInter);
  11314. NET_DVR_API BOOL __stdcall NET_DVR_MatrixGetLoopDecChanInfo_EX(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_MATRIX_LOOP_DECINFO_EX lpInter);
  11315. NET_DVR_API BOOL __stdcall NET_DVR_MatrixStartDynamic_EX(LONG lUserID, DWORD dwDecChanNum, LPNET_DVR_PU_STREAM_CFG_EX lpDynamicInfo);
  11316. typedef struct tagNET_DVR_MATRIX_TRUNKCFG
  11317. {
  11318. DWORD dwGlobalIndex; //主键
  11319. DWORD dwInterIndex; //本地全局编号
  11320. BYTE sTrunkName[NAME_LEN];
  11321. BYTE byType; //设备类型1-bnc, 2-SP3, 3-V6
  11322. BYTE byDir; //干线方向 1-输入2-输出
  11323. BYTE byAbility; //干线能力,D1衡量
  11324. BYTE bySubsys; //子系统ID
  11325. BYTE byChan; //通道ID
  11326. BYTE byRes[255]; //预留
  11327. } NET_DVR_MATRIX_TRUNKCFG,*LPNET_DVR_MATRIX_TRUNKCFG;
  11328. NET_DVR_API BOOL __stdcall NET_DVR_GetTrunkListInfo(LONG lUserID, DWORD dwTrunkNum, DWORD dwStartTrunk, LPNET_DVR_MATRIX_TRUNKLIST lpTrunkListInfo, DWORD *pReturnSize);
  11329. typedef struct tagNET_DVR_DECSUBSYSTEMJIONSTATUS_V41
  11330. {
  11331. BYTE byJoinStatus;//关联状态,0-没有关联,1-已经关联,2-被占用
  11332. BYTE byJoinSubSystem;// 所关联或占用的子系统槽位号
  11333. BYTE byJoinDispNum;// 所关联或占用的显示通道号
  11334. BYTE byJoinSubWindowNum;// 所关联或占用的子窗口号
  11335. BYTE byDecodeAbility; //解码通道的当前解码能力,0-未关联,1-D1,2-720,3-1080
  11336. BYTE byRes[15];
  11337. }NET_DVR_DECSUBSYSTEMJIONSTATUS_V41,LPNET_DVR_DECSUBSYSTEMJIONSTATUS_V41;
  11338. typedef struct tagNET_DVR_SINGLESUBSYSTEMJOININFO_V41
  11339. {
  11340. /*子系统类型,1-解码用子系统,2-编码用子系统,3-级联输出子系统,4-级联输入子系统,5-码分器子系统,6-报警主机子系统,7-智能子系统,8-V6解码子系统,9-V6子系统,0-NULL(此参数只能获取)*/
  11341. BYTE bySubSystemType;
  11342. BYTE byConnectStatus;//级联系统关联状态,1-连接正常,2-连接断开
  11343. BYTE byMatrixNum;//级联视频综合平台号,子系统类型是3或4时可用
  11344. BYTE bySubSystemNum;//级联子系统槽位号,子系统类型是3或4时可用
  11345. NET_DVR_DECSUBSYSTEMJIONSTATUS_V41 struSubSystem[MAX_DECODECHANNUM];
  11346. BYTE byBindStatus;//绑定状态,0-没有绑定,1-已经绑定(大屏拼接时用到)
  11347. BYTE bySlotNum ;//槽位号,此参数只能获取
  11348. BYTE byUsedTrunk;//是否被干线使用,0-未被使用,1-被使用
  11349. BYTE byRes[65];
  11350. }NET_DVR_SINGLESUBSYSTEMJOININFO_V41,LPNET_DVR_SINGLESUBSYSTEMJOININFO_V41;
  11351. typedef struct tagNET_DVR_ALLDECSUBSYSTEMJOININFO_V41
  11352. {
  11353. DWORD dwSize;
  11354. NET_DVR_SINGLESUBSYSTEMJOININFO_V41 struSingleSubSystemJoinInfo[MAX_SUBSYSTEM_NUM_V40];
  11355. BYTE byRes[48];
  11356. }NET_DVR_ALLDECSUBSYSTEMJOININFO_V41,*LPNET_DVR_ALLDECSUBSYSTEMJOININFO_V41;
  11357. #endif //